From f4f8cb578afe4db4caab2a165c023910e98f204f Mon Sep 17 00:00:00 2001 From: RohitKini Date: Thu, 12 Sep 2024 17:15:46 +0530 Subject: [PATCH 01/20] removed csdx utilities code --- api/src/services/auth.service.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/api/src/services/auth.service.ts b/api/src/services/auth.service.ts index fe5eff2f2..023998071 100644 --- a/api/src/services/auth.service.ts +++ b/api/src/services/auth.service.ts @@ -23,7 +23,6 @@ import logger from "../utils/logger.js"; */ const login = async (req: Request): Promise => { const srcFun = "Login"; - const cliUtilities: any = await import('@contentstack/cli-utilities'); /* handles user authentication by making a request to an API, performing various checks and validations, @@ -110,10 +109,6 @@ const login = async (req: Request): Promise => { data.users[userIndex].authtoken = res?.data.user?.authtoken; data.users[userIndex].updated_at = new Date().toISOString(); } - - cliUtilities?.configHandler?.set('region', userData?.region); - cliUtilities?.configHandler?.set('authtoken', res?.data.user?.authtoken); - }); // JWT token generation From f14ecdd26a360245f867ccc1e5d4e71ecb80fe30 Mon Sep 17 00:00:00 2001 From: umeshmore45 Date: Mon, 16 Sep 2024 19:25:39 +0530 Subject: [PATCH 02/20] added updated code --- .gitignore | 1 - api/.gitignore | 3 +- api/package.json | 2 + api/src/config/index.ts | 1 + api/src/controllers/migration.controller.ts | 2 +- api/src/services/migration.service.ts | 105 ++++++++++++------- api/src/services/sitecore.service.ts | 24 +++-- api/src/utils/content-type-creator.utils.ts | 14 +-- api/src/utils/field-attacher.utils.ts | 4 +- api/src/utils/index.ts | 24 +++++ locale-cli | 1 - ui/src/components/TestMigration/index.tsx | 2 +- upload-api/.env | 2 +- upload-api/src/config/index.ts | 2 +- upload-api/src/controllers/sitecore/index.ts | 2 +- 15 files changed, 123 insertions(+), 66 deletions(-) delete mode 160000 locale-cli diff --git a/.gitignore b/.gitignore index bc0132150..d69aec3b1 100644 --- a/.gitignore +++ b/.gitignore @@ -355,4 +355,3 @@ package-lock.json ui/.env upload-api/sitecoreMigrationData upload-api/extracted_files -locale-cli diff --git a/api/.gitignore b/api/.gitignore index 8fd3924df..e3a5464ee 100644 --- a/api/.gitignore +++ b/api/.gitignore @@ -361,4 +361,5 @@ package-lock.json !example.env database/ -/sitecoreMigrationData \ No newline at end of file +/sitecoreMigrationData +/migration-data \ No newline at end of file diff --git a/api/package.json b/api/package.json index 355708275..c2a2e752e 100644 --- a/api/package.json +++ b/api/package.json @@ -35,6 +35,7 @@ "express": "^4.18.2", "express-validator": "^7.0.1", "express-winston": "^4.2.0", + "fs-extra": "^11.2.0", "fs-readdir-recursive": "^1.1.0", "helmet": "^7.1.0", "html-to-json-parser": "^2.0.1", @@ -50,6 +51,7 @@ "devDependencies": { "@types/cors": "^2.8.17", "@types/express": "^4.17.21", + "@types/fs-extra": "^11.0.4", "@types/fs-readdir-recursive": "^1.1.3", "@types/jsdom": "^21.1.7", "@types/jsonwebtoken": "^9.0.5", diff --git a/api/src/config/index.ts b/api/src/config/index.ts index 12b3e5386..c388ff7ae 100644 --- a/api/src/config/index.ts +++ b/api/src/config/index.ts @@ -10,6 +10,7 @@ dotenv.config({ path: path.resolve(process.cwd(), `${process.env.NODE_ENV}.env`), }); + /** * Configuration type for the application. */ diff --git a/api/src/controllers/migration.controller.ts b/api/src/controllers/migration.controller.ts index ac2113ad9..3f8ac5c84 100644 --- a/api/src/controllers/migration.controller.ts +++ b/api/src/controllers/migration.controller.ts @@ -21,7 +21,7 @@ const createTestStack = async (req: Request, res: Response): Promise => { * @returns {Promise} - A Promise that resolves when the stack is deleted. */ const fieldMapping = async (req: Request, res: Response): Promise => { - const resp = await migrationService.fieldMapping(req); + const resp = migrationService.fieldMapping(req); res.status(200).json(resp); }; diff --git a/api/src/services/migration.service.ts b/api/src/services/migration.service.ts index 2f2639eb0..2a51f3ea9 100644 --- a/api/src/services/migration.service.ts +++ b/api/src/services/migration.service.ts @@ -1,5 +1,5 @@ import { Request } from "express"; -import cliUtilities from '@contentstack/cli-utilities'; +// import cliUtilities from '@contentstack/cli-utilities'; import { config } from "../config/index.js"; import { safePromise, getLogMessage } from "../utils/index.js"; import https from "../utils/https.utils.js"; @@ -10,12 +10,16 @@ import { HTTP_TEXTS, HTTP_CODES, CS_REGIONS } from "../constants/index.js"; import { ExceptionFunction } from "../utils/custom-errors.utils.js"; import { fieldAttacher } from "../utils/field-attacher.utils.js"; import ProjectModelLowdb from "../models/project-lowdb.js"; -// import shell from 'shelljs' -// import path from "path"; +import shell from 'shelljs' +import path from "path"; import AuthenticationModel from "../models/authentication.js"; import { siteCoreService } from "./sitecore.service.js"; +import { fileURLToPath } from 'url'; +import { copyDirectory } from '../utils/index.js' + + + -// const importCmd: any = await import('@contentstack/cli-cm-import'); /** * Creates a test stack. @@ -198,61 +202,57 @@ const cliLogger = (child: any) => { console.info(`Error: Failed to install @contentstack/cli. Exit code: ${child.code}`); console.info(`stderr: ${child.stderr}`); } else { - console.info('Installation successful', child?.stdout); + console.info('Installation successful', child, child?.stdout); } }; -const runCli = async (rg: string, user_id: string) => { +const runCli = async (rg: string, user_id: string, project: any) => { try { const regionPresent = CS_REGIONS?.find((item: string) => item === rg) ?? 'NA'; - // const email = 'umesh.more+10@contentstack.com' await AuthenticationModel.read(); const userData = AuthenticationModel.chain .get("users") .find({ region: regionPresent, user_id }) .value(); - if (userData?.authtoken) { - - cliUtilities?.configHandler?.set('region', regionPresent); - cliUtilities?.configHandler?.set('authtoken', userData?.authtoken); - // shell.cd(path.resolve(process.cwd(), `../cli/packages/contentstack`)); - // const pwd = shell.exec('pwd'); - // cliLogger(pwd); - // const region = shell.exec(`node bin/run config:set:region ${regionPresent}`); - // cliLogger(region); - // const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${email}`) - // cliLogger(login); - // const exportData = shell.exec(`node bin/run cm:stacks:import -k blt3e7d2a4135d8bfab -d "/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/data" --backup-dir="/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/migrations/blt3e7d2a4135d8bfab"`); - // cliLogger(exportData); - // const cmd = [`-k ${userData?.authtoken}`, "-d /Users/umesh.more/Documents/ui-migration/migration-v2-node-server/api/sitecoreMigrationData", "--backup-dir=/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/migrations/blt3e7d2a4135d8bfab", "--yes"] - - // await importCmd.default.run(cmd); // This will bypass the type issue - // shell.cd(path.resolve(process.cwd(), '..', 'locale-cli', 'packages', 'contentstack')); - // const pwd = shell.exec('pwd'); - // cliLogger(pwd); - // const region = shell.exec(`node bin/run config:set:region ${regionPresent}`); - // cliLogger(region); - // const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${email}`) - // cliLogger(login); - // const exportData = shell.exec(`node bin/run cm:stacks:import -k blt69235b992c3d99c6 -d "/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/api/sitecoreMigrationData" --backup-dir="/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/test"`); - // cliLogger(exportData); + if (userData?.authtoken && project?.destination_stack_id) { + // Manually define __filename and __dirname + const __filename = fileURLToPath(import.meta.url); + const dirPath = path.join(path.dirname(__filename), '..', '..'); + const sourcePath = path.join(dirPath, 'sitecoreMigrationData', project?.destination_stack_id); + const backupPath = path.join(process.cwd(), 'migration-data', project?.destination_stack_id); + await copyDirectory(sourcePath, backupPath); + shell.cd(path.join(process.cwd(), '..', 'cli', 'packages', 'contentstack')); + const pwd = shell.exec('pwd'); + cliLogger(pwd); + const region = shell.exec(`node bin/run config:set:region ${regionPresent}`); + cliLogger(region); + const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${userData?.email}`); + cliLogger(login); + const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`); + cliLogger(exportData); } else { console.info('user not found.') } } catch (er) { - console.info("🚀 ~ runCli ~ er:", er) + console.error("🚀 ~ runCli ~ er:", er) } } const fieldMapping = async (req: Request): Promise => { const { orgId, projectId } = req?.params ?? {}; - const contentTypes = await fieldAttacher({ orgId, projectId }); - const packagePath = '/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/upload-api/extracted_files/package 45'; - await siteCoreService?.createEntry({ packagePath, contentTypes }); - await siteCoreService?.createLocale(req); - await siteCoreService?.createVersionFile(); const { region, user_id } = req?.body?.token_payload ?? {}; - await runCli(region, user_id); + const project = ProjectModelLowdb.chain + .get("projects") + .find({ id: projectId }) + .value(); + if (project?.extract_path && project?.destination_stack_id) { + const packagePath = project?.extract_path; + const contentTypes = await fieldAttacher({ orgId, projectId, destinationStackId: project?.destination_stack_id }); + await siteCoreService?.createEntry({ packagePath, contentTypes, destinationStackId: project?.destination_stack_id }); + await siteCoreService?.createLocale(req, project?.destination_stack_id); + await siteCoreService?.createVersionFile(project?.destination_stack_id); + await runCli(region, user_id, project); + } } export const migrationService = { @@ -260,3 +260,30 @@ export const migrationService = { deleteTestStack, fieldMapping }; + + + + + +// cliUtilities?.configHandler?.set('region', regionPresent); +// cliUtilities?.configHandler?.set('authtoken', userData?.authtoken); +// shell.cd(path.resolve(process.cwd(), `../cli/packages/contentstack`)); +// const pwd = shell.exec('pwd'); +// cliLogger(pwd); +// const region = shell.exec(`node bin/run config:set:region ${regionPresent}`); +// cliLogger(region); +// const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${email}`) +// cliLogger(login); +// const exportData = shell.exec(`node bin/run cm:stacks:import -k blt3e7d2a4135d8bfab -d "/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/data" --backup-dir="/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/migrations/blt3e7d2a4135d8bfab"`); +// cliLogger(exportData); +// const cmd = [`-k ${userData?.authtoken}`, "-d /Users/umesh.more/Documents/ui-migration/migration-v2-node-server/api/sitecoreMigrationData", "--backup-dir=/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/migrations/blt3e7d2a4135d8bfab", "--yes"] +// await importCmd.default.run(cmd); // This will bypass the type issue +// shell.cd(path.resolve(`${path?.dirname}`, '..', 'cli', 'packages', 'contentstack')); +// const importCmd: any = await import('@contentstack/cli-cm-import'); + + + + + + + diff --git a/api/src/services/sitecore.service.ts b/api/src/services/sitecore.service.ts index 966f7ba71..b77c31f5b 100644 --- a/api/src/services/sitecore.service.ts +++ b/api/src/services/sitecore.service.ts @@ -6,9 +6,7 @@ import _ from 'lodash'; import { LOCALE_MAPPER } from '../constants/index.js'; import { entriesFieldCreator, unflatten } from '../utils/entries-field-creator.utils.js'; import { orgService } from './org.service.js'; -const assetsSave = path.join('sitecoreMigrationData', 'assets'); -const entrySave = path.join('sitecoreMigrationData', 'entries'); -const localeSave = path.join('sitecoreMigrationData', 'locale'); + const append = "a"; const idCorrector = ({ id }: any) => { @@ -26,7 +24,7 @@ function startsWithNumber(str: string) { function getLastKey(path: string) { const keys = path?.split?.('.'); - const lastKey = keys[keys.length - 1]; + const lastKey = keys?.[keys?.length - 1]; return lastKey; } @@ -79,7 +77,8 @@ const uidCorrector = ({ uid }: any) => { return _.replace(uid, new RegExp("[ -]", "g"), '_')?.toLowerCase() } -const cretaeAssets = async ({ packagePath }: any) => { +const cretaeAssets = async ({ packagePath, baseDir }: any) => { + const assetsSave = path.join(baseDir, 'assets'); const allAssetJSON: any = {}; const folderName: any = path.join(packagePath, 'items', 'master', 'sitecore', 'media library'); const entryPath = read?.(folderName); @@ -163,9 +162,11 @@ const cretaeAssets = async ({ packagePath }: any) => { return allAssetJSON; } -const createEntry = async ({ packagePath, contentTypes, master_locale = 'en-us' }: { packagePath: any; contentTypes: any; master_locale?: string }) => { +const createEntry = async ({ packagePath, contentTypes, master_locale = 'en-us', destinationStackId }: { packagePath: any; contentTypes: any; master_locale?: string, destinationStackId: string }) => { try { - const allAssetJSON: any = await cretaeAssets({ packagePath }); + const baseDir = path.join('sitecoreMigrationData', destinationStackId); + const entrySave = path.join(baseDir, 'entries'); + const allAssetJSON: any = await cretaeAssets({ packagePath, baseDir }); const folderName: any = path.join(packagePath, 'items', 'master', 'sitecore', 'content'); const entriesData: any = []; if (fs.existsSync(folderName)) { @@ -240,7 +241,9 @@ const createEntry = async ({ packagePath, contentTypes, master_locale = 'en-us' } } -const createLocale = async (req: any) => { +const createLocale = async (req: any, destinationStackId: string) => { + const baseDir = path.join('sitecoreMigrationData', destinationStackId); + const localeSave = path.join(baseDir, 'locale'); const allLocalesResp = await orgService.getLocales(req) const masterLocale = Object?.keys?.(LOCALE_MAPPER?.masterLocale)?.[0]; const msLocale: any = {}; @@ -280,8 +283,9 @@ const createLocale = async (req: any) => { }) } -const createVersionFile = async () => { - fs.writeFile(path?.join?.('sitecoreMigrationData', 'export-info.json'), JSON.stringify({ +const createVersionFile = async (destinationStackId: string) => { + const baseDir = path.join('sitecoreMigrationData', destinationStackId); + fs.writeFile(path?.join?.(baseDir, 'export-info.json'), JSON.stringify({ "contentVersion": 2, "logsPath": "" }), (err) => { diff --git a/api/src/utils/content-type-creator.utils.ts b/api/src/utils/content-type-creator.utils.ts index 23227fb60..c08f40ee0 100644 --- a/api/src/utils/content-type-creator.utils.ts +++ b/api/src/utils/content-type-creator.utils.ts @@ -1,7 +1,5 @@ import fs from 'fs'; import path from 'path'; -const contentSave = path.join('sitecoreMigrationData', 'content_types'); -const globalSave = path.join('sitecoreMigrationData', 'global_fields'); interface Group { data_type: string; display_name?: string; // Assuming item?.contentstackField might be undefined @@ -332,7 +330,7 @@ const convertToSchemaFormate = ({ field, advanced = true }: any) => { } } -const saveContent = async (ct: any) => { +const saveContent = async (ct: any, contentSave: string) => { try { // Check if the directory exists await fs.promises.access(contentSave).catch(async () => { @@ -366,7 +364,7 @@ const saveContent = async (ct: any) => { } -const writeGlobalField = async (schema: any) => { +const writeGlobalField = async (schema: any, globalSave: string) => { const filePath = path.join(process.cwd(), globalSave, 'globalfields.json'); try { await fs.promises.access(globalSave); @@ -396,7 +394,7 @@ const writeGlobalField = async (schema: any) => { } }; -export const contenTypeMaker = async ({ contentType }: any) => { +export const contenTypeMaker = async ({ contentType, destinationStackId }: any) => { const ct: ContentType = { title: contentType?.contentstackTitle, uid: contentType?.contentstackUid, @@ -441,9 +439,11 @@ export const contenTypeMaker = async ({ contentType }: any) => { }) if (ct?.uid) { if (contentType?.type === 'global_field') { - await writeGlobalField(ct); + const globalSave = path.join('sitecoreMigrationData', destinationStackId, 'global_fields'); + await writeGlobalField(ct, globalSave); } else { - await saveContent(ct); + const contentSave = path.join('sitecoreMigrationData', destinationStackId, 'content_types'); + await saveContent(ct, contentSave); } } else { console.info(contentType?.contentstackUid, 'missing') diff --git a/api/src/utils/field-attacher.utils.ts b/api/src/utils/field-attacher.utils.ts index dafcb36f1..40459d52d 100644 --- a/api/src/utils/field-attacher.utils.ts +++ b/api/src/utils/field-attacher.utils.ts @@ -3,7 +3,7 @@ import ContentTypesMapperModelLowdb from "../models/contentTypesMapper-lowdb.js" import FieldMapperModel from "../models/FieldMapper.js"; import { contenTypeMaker } from "./content-type-creator.utils.js"; -export const fieldAttacher = async ({ projectId, orgId }: any) => { +export const fieldAttacher = async ({ projectId, orgId, destinationStackId }: any) => { await ProjectModelLowdb.read(); const projectData = ProjectModelLowdb.chain.get("projects").find({ id: projectId, @@ -27,7 +27,7 @@ export const fieldAttacher = async ({ projectId, orgId }: any) => { return field; }) } - await contenTypeMaker({ contentType }) + await contenTypeMaker({ contentType, destinationStackId }) contentTypes?.push?.(contentType); } } diff --git a/api/src/utils/index.ts b/api/src/utils/index.ts index 15e6ea61d..9404b302f 100644 --- a/api/src/utils/index.ts +++ b/api/src/utils/index.ts @@ -1,9 +1,11 @@ +import fs from 'fs-extra'; /** * Throws an error with a custom message and status code. * @param message - The error message. * @param statusCode - The HTTP status code associated with the error. * @throws {Error} - The error object with the specified message and status code. */ + export const throwError = (message: string, statusCode: number) => { throw Object.assign(new Error(message), { statusCode }); }; @@ -37,6 +39,7 @@ export const safePromise = (promise: Promise): Promise => * @param error - The error object. Optional. * @returns The log message object. */ + export const getLogMessage = ( methodName: string, message: string, @@ -50,3 +53,24 @@ export const getLogMessage = ( ...(error && { error }), }; }; + +/* + * Recursively copies a directory from source to destination + * @param srcDir - Source directory path + * @param destDir - Destination directory path +*/ + +export async function copyDirectory(srcDir: string, destDir: string): Promise { + try { + // Ensure the destination directory exists, if not, create it + await fs.ensureDir(destDir); + + // Copy the source directory to the destination + await fs.copy(srcDir, destDir); + + console.info(`Directory copied from ${srcDir} to ${destDir}`); + + } catch (error) { + console.error(`Error copying directory: ${error}`); + } +} \ No newline at end of file diff --git a/locale-cli b/locale-cli deleted file mode 160000 index c12e6b08d..000000000 --- a/locale-cli +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c12e6b08dac6174a719d104b56f9f95ca273614f diff --git a/ui/src/components/TestMigration/index.tsx b/ui/src/components/TestMigration/index.tsx index a4bdf8b76..ed0189939 100644 --- a/ui/src/components/TestMigration/index.tsx +++ b/ui/src/components/TestMigration/index.tsx @@ -79,7 +79,7 @@ const TestMigration = () => {
Execution Logs
- +
diff --git a/upload-api/.env b/upload-api/.env index 2c50b6496..5f3a84b6c 100644 --- a/upload-api/.env +++ b/upload-api/.env @@ -1,2 +1,2 @@ PORT=4002 -NODE_BACKEND_API =http://localhost:5001 \ No newline at end of file +NODE_BACKEND_API =http://localhost:5000 \ No newline at end of file diff --git a/upload-api/src/config/index.ts b/upload-api/src/config/index.ts index 2ffc1d757..39e83b803 100644 --- a/upload-api/src/config/index.ts +++ b/upload-api/src/config/index.ts @@ -12,5 +12,5 @@ export default { bucketName: 'migartion-test', buketKey: 'project/package 45.zip' }, - localPath: '/Users/rohit/Desktop/package 45.zip' + localPath: '/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/upload-api/extracted_files/package 45.zip' }; diff --git a/upload-api/src/controllers/sitecore/index.ts b/upload-api/src/controllers/sitecore/index.ts index ca56fce7c..69358c102 100644 --- a/upload-api/src/controllers/sitecore/index.ts +++ b/upload-api/src/controllers/sitecore/index.ts @@ -16,7 +16,7 @@ const createSitecoreMapper = async (filePath: string = "", projectId: string | s await contentTypes(newPath, affix, config); const infoMap = await reference(); if (infoMap?.contentTypeUids?.length) { - const fieldMapping: any = { contentTypes: [] }; + const fieldMapping: any = { contentTypes: [], extractPath: filePath }; for await (const contentType of infoMap?.contentTypeUids ?? []) { const fileContent = readFileSync(path?.join?.(infoMap?.path, 'content_types', contentType), 'utf8'); const jsonfileContent = JSON.parse(fileContent); From 1c49aa69f28f84acd0c99dbc171b48b716eedea9 Mon Sep 17 00:00:00 2001 From: umeshmore45 Date: Tue, 17 Sep 2024 20:09:37 +0530 Subject: [PATCH 03/20] added uid --- api/src/services/migration.service.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/api/src/services/migration.service.ts b/api/src/services/migration.service.ts index 2a51f3ea9..959c63bc5 100644 --- a/api/src/services/migration.service.ts +++ b/api/src/services/migration.service.ts @@ -16,6 +16,7 @@ import AuthenticationModel from "../models/authentication.js"; import { siteCoreService } from "./sitecore.service.js"; import { fileURLToPath } from 'url'; import { copyDirectory } from '../utils/index.js' +import { v4 } from "uuid"; @@ -202,10 +203,12 @@ const cliLogger = (child: any) => { console.info(`Error: Failed to install @contentstack/cli. Exit code: ${child.code}`); console.info(`stderr: ${child.stderr}`); } else { - console.info('Installation successful', child, child?.stdout); + console.info(child?.stdout); } }; + + const runCli = async (rg: string, user_id: string, project: any) => { try { const regionPresent = CS_REGIONS?.find((item: string) => item === rg) ?? 'NA'; @@ -219,7 +222,7 @@ const runCli = async (rg: string, user_id: string, project: any) => { const __filename = fileURLToPath(import.meta.url); const dirPath = path.join(path.dirname(__filename), '..', '..'); const sourcePath = path.join(dirPath, 'sitecoreMigrationData', project?.destination_stack_id); - const backupPath = path.join(process.cwd(), 'migration-data', project?.destination_stack_id); + const backupPath = path.join(process.cwd(), 'migration-data', `${project?.destination_stack_id}_${v4().slice(0, 4)}`); await copyDirectory(sourcePath, backupPath); shell.cd(path.join(process.cwd(), '..', 'cli', 'packages', 'contentstack')); const pwd = shell.exec('pwd'); @@ -228,7 +231,7 @@ const runCli = async (rg: string, user_id: string, project: any) => { cliLogger(region); const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${userData?.email}`); cliLogger(login); - const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`); + const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`, { async: true }); cliLogger(exportData); } else { console.info('user not found.') From 61d94859ac08b541759dba294f46c95ac2db03ff Mon Sep 17 00:00:00 2001 From: RohitKini Date: Wed, 18 Sep 2024 11:59:03 +0530 Subject: [PATCH 04/20] logger functionality --- api/src/config/index.ts | 1 + api/src/server.ts | 99 +++++++++++++++++---------- api/src/services/migration.service.ts | 8 ++- 3 files changed, 68 insertions(+), 40 deletions(-) diff --git a/api/src/config/index.ts b/api/src/config/index.ts index c388ff7ae..c74d8cb45 100644 --- a/api/src/config/index.ts +++ b/api/src/config/index.ts @@ -35,6 +35,7 @@ export type ConfigType = { AZURE_EU?: string; GCP_NA?: string; }; + LOG_FILE_PATH: string; }; /** diff --git a/api/src/server.ts b/api/src/server.ts index fbaf4cb60..3f92cc681 100644 --- a/api/src/server.ts +++ b/api/src/server.ts @@ -21,21 +21,53 @@ import { Server } from "socket.io"; import http from "http"; import fs from "fs"; +// Initialize file watcher for the log file +const watcher = chokidar.watch(config.LOG_FILE_PATH,{ + usePolling: true, // Enables polling to detect changes in all environments + interval: 100, // Poll every 100ms (you can adjust this if needed) + awaitWriteFinish: { // Wait for file to finish being written before triggering + stabilityThreshold: 500, // Time to wait before considering the file stable + pollInterval: 100, // Interval at which to poll for file stability + }, + persistent: true, // Keeps watching the file even after initial change +}); // Initialize with initial log path + +let io: Server; // Socket.IO server instance + +// Dynamically change the log file path and update the watcher +export async function setLogFilePath(path:string) { + console.info(`Setting new log file path: ${path}`); + + // Stop watching the old log file + watcher.unwatch(config.LOG_FILE_PATH); + + // Update the config and start watching the new log file + config.LOG_FILE_PATH = path; + watcher.add(path); +} + try { const app = express(); + + // Set security-related HTTP headers app.use( helmet({ - crossOriginOpenerPolicy: false, + crossOriginOpenerPolicy: false, // Disable to allow cross-origin resource sharing }) ); + // Enable CORS for all origins app.use(cors({ origin: "*" })); + + // Parsing request bodies app.use(express.urlencoded({ extended: false, limit: "10mb" })); app.use(express.json({ limit: "10mb" })); + + // Custom middleware for logging and request headers app.use(loggerMiddleware); app.use(requestHeadersMiddleware); - // Routes + // Define routes app.use("/v2/auth", authRoutes); app.use("/v2/user", authenticateUser, userRoutes); app.use("/v2/org/:orgId", authenticateUser, orgRoutes); @@ -43,64 +75,55 @@ try { app.use("/v2/mapper", authenticateUser, contentMapperRoutes); app.use("/v2/migration", authenticateUser, migrationRoutes); - //For unmatched route patterns + // Handle unmatched routes app.use(unmatchedRoutesMiddleware); - // Error Middleware + // Handle errors app.use(errorMiddleware); - // starting the server & DB connection. + // Start the server and establish DB connection (async () => { - await connectToDatabase(); + await connectToDatabase(); // Establish DB connection + const server = app.listen(config.PORT, () => logger.info(`Server listening at port ${config.PORT}`) ); - // Chokidar - Watch for log file changes - const logFilePath = config.LOG_FILE_PATH; - const watcher = chokidar.watch(logFilePath); - // Socket.IO - Send logs to client - /** - * The Socket.IO server instance. - * - * @remarks - * This server instance is responsible for handling real-time communication between the client and the server using the Socket.IO library. - * - * @type {Server} - */ - const io = new Server( - server, - (http, - { - cors: { - origin: "*", // This allows all origins. For production, specify exact origins for security. - methods: ["GET", "POST"], // Specify which HTTP methods are allowed. - allowedHeaders: ["my-custom-header"], // Specify which headers are allowed. - credentials: true, // If your client needs to send cookies or credentials with the requests. - }, - }) - ); + // Initialize Socket.IO for real-time log updates + io = new Server(server, { + cors: { + origin: "*", // Allow all origins; adjust for production + methods: ["GET", "POST"], + allowedHeaders: ["my-custom-header"], + credentials: true, + }, + }); + + // Emit initial log file content to connected clients + + // File watcher for log file changes watcher.on("change", (path) => { - // Read the updated log file + console.info(`File changed: ${path}`); + + // Read the updated file content fs.readFile(path, "utf8", (err, data) => { if (err) { logger.error(`Error reading log file: ${err}`); return; } - // Get just the updated data - // const updatedData = data.slice(data.lastIndexOf("\n") + 1); - console.info("updates", data); - // Emit the updated data to all connected clients + try { - const parsedData = data; - io.emit("logUpdate", parsedData); + // Emit the updated log content to connected clients + io.emit("logUpdate", data); } catch (error) { - logger.error(`Error parsing data: ${error}`); + logger.error(`Error emitting log data: ${error}`); } }); }); + })(); } catch (e) { logger.error("Error while starting the server!"); logger.error(e); } + diff --git a/api/src/services/migration.service.ts b/api/src/services/migration.service.ts index 2a51f3ea9..ba17a6a95 100644 --- a/api/src/services/migration.service.ts +++ b/api/src/services/migration.service.ts @@ -16,7 +16,7 @@ import AuthenticationModel from "../models/authentication.js"; import { siteCoreService } from "./sitecore.service.js"; import { fileURLToPath } from 'url'; import { copyDirectory } from '../utils/index.js' - +import { setLogFilePath } from "../server.js"; @@ -221,6 +221,10 @@ const runCli = async (rg: string, user_id: string, project: any) => { const sourcePath = path.join(dirPath, 'sitecoreMigrationData', project?.destination_stack_id); const backupPath = path.join(process.cwd(), 'migration-data', project?.destination_stack_id); await copyDirectory(sourcePath, backupPath); + + const loggerPath = path.join(backupPath, 'logs', 'import','success.log'); + console.info('loggerPath', loggerPath); + await setLogFilePath(loggerPath); shell.cd(path.join(process.cwd(), '..', 'cli', 'packages', 'contentstack')); const pwd = shell.exec('pwd'); cliLogger(pwd); @@ -228,7 +232,7 @@ const runCli = async (rg: string, user_id: string, project: any) => { cliLogger(region); const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${userData?.email}`); cliLogger(login); - const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`); + const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`, { async: true }); cliLogger(exportData); } else { console.info('user not found.') From 3bf2249b8d132f5d747d3c0257a679b74c713c52 Mon Sep 17 00:00:00 2001 From: RohitKini Date: Wed, 18 Sep 2024 12:59:26 +0530 Subject: [PATCH 05/20] logger functionality --- ui/src/components/LogScreen/index.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ui/src/components/LogScreen/index.tsx b/ui/src/components/LogScreen/index.tsx index 66170972e..50251a73d 100644 --- a/ui/src/components/LogScreen/index.tsx +++ b/ui/src/components/LogScreen/index.tsx @@ -1,5 +1,5 @@ // Libraries -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useRef } from 'react'; import { Icon } from '@contentstack/venus-components'; import io from 'socket.io-client'; @@ -110,9 +110,17 @@ const LogViewer = ({ serverPath }: LogsType) => { } }; + const logsContainerRef = useRef(null); + + useEffect(() => { + if (logsContainerRef.current) { + logsContainerRef.current.scrollTop = logsContainerRef.current.scrollHeight; + } + }, [logs]); + return (
-
+
{logs?.map((log, index) => { // console.log(log); @@ -124,7 +132,7 @@ const LogViewer = ({ serverPath }: LogsType) => { return (
{index}
-
{new Date(timestamp).toTimeString().split(' ')[0]}
+
{ timestamp ? new Date(timestamp)?.toTimeString()?.split(' ')[0] : new Date()?.toTimeString()?.split(' ')[0]}
{message}
); From 461362d37d6ad82fbc350c39ef02d8b5a18ddd8c Mon Sep 17 00:00:00 2001 From: umeshmore45 Date: Thu, 19 Sep 2024 11:54:15 +0530 Subject: [PATCH 06/20] added updated code --- api/package.json | 2 + api/src/server.ts | 15 +++--- api/src/services/migration.service.ts | 49 +++++++------------- api/src/utils/entries-field-creator.utils.ts | 13 +++++- 4 files changed, 38 insertions(+), 41 deletions(-) diff --git a/api/package.json b/api/package.json index c2a2e752e..c7616c293 100644 --- a/api/package.json +++ b/api/package.json @@ -43,6 +43,7 @@ "jsdom": "^24.1.0", "jsonwebtoken": "^9.0.2", "lowdb": "^7.0.1", + "mkdirp": "^3.0.1", "shelljs": "^0.8.5", "socket.io": "^4.7.5", "uuid": "^9.0.1", @@ -56,6 +57,7 @@ "@types/jsdom": "^21.1.7", "@types/jsonwebtoken": "^9.0.5", "@types/lodash": "^4.17.0", + "@types/mkdirp": "^2.0.0", "@types/node": "^20.10.4", "@types/shelljs": "^0.8.15", "@types/uuid": "^9.0.8", diff --git a/api/src/server.ts b/api/src/server.ts index 3f92cc681..5ae0274b4 100644 --- a/api/src/server.ts +++ b/api/src/server.ts @@ -18,11 +18,10 @@ import contentMapperRoutes from "./routes/contentMapper.routes.js"; import migrationRoutes from "./routes/migration.routes.js"; import chokidar from "chokidar"; import { Server } from "socket.io"; -import http from "http"; import fs from "fs"; // Initialize file watcher for the log file -const watcher = chokidar.watch(config.LOG_FILE_PATH,{ +const watcher = chokidar.watch(config.LOG_FILE_PATH, { usePolling: true, // Enables polling to detect changes in all environments interval: 100, // Poll every 100ms (you can adjust this if needed) awaitWriteFinish: { // Wait for file to finish being written before triggering @@ -35,12 +34,12 @@ const watcher = chokidar.watch(config.LOG_FILE_PATH,{ let io: Server; // Socket.IO server instance // Dynamically change the log file path and update the watcher -export async function setLogFilePath(path:string) { +export async function setLogFilePath(path: string) { console.info(`Setting new log file path: ${path}`); - + // Stop watching the old log file watcher.unwatch(config.LOG_FILE_PATH); - + // Update the config and start watching the new log file config.LOG_FILE_PATH = path; watcher.add(path); @@ -48,7 +47,7 @@ export async function setLogFilePath(path:string) { try { const app = express(); - + // Set security-related HTTP headers app.use( helmet({ @@ -62,7 +61,7 @@ try { // Parsing request bodies app.use(express.urlencoded({ extended: false, limit: "10mb" })); app.use(express.json({ limit: "10mb" })); - + // Custom middleware for logging and request headers app.use(loggerMiddleware); app.use(requestHeadersMiddleware); @@ -104,14 +103,12 @@ try { // File watcher for log file changes watcher.on("change", (path) => { console.info(`File changed: ${path}`); - // Read the updated file content fs.readFile(path, "utf8", (err, data) => { if (err) { logger.error(`Error reading log file: ${err}`); return; } - try { // Emit the updated log content to connected clients io.emit("logUpdate", data); diff --git a/api/src/services/migration.service.ts b/api/src/services/migration.service.ts index cd2b6b6dc..990fd5bd5 100644 --- a/api/src/services/migration.service.ts +++ b/api/src/services/migration.service.ts @@ -1,4 +1,5 @@ import { Request } from "express"; +import fs from 'fs'; // import cliUtilities from '@contentstack/cli-utilities'; import { config } from "../config/index.js"; import { safePromise, getLogMessage } from "../utils/index.js"; @@ -18,6 +19,7 @@ import { fileURLToPath } from 'url'; import { copyDirectory } from '../utils/index.js' import { v4 } from "uuid"; import { setLogFilePath } from "../server.js"; +import { mkdirp } from 'mkdirp'; @@ -207,6 +209,19 @@ const cliLogger = (child: any) => { } }; +function createDirectoryAndFile(filePath: string) { + // Get the directory from the file path + const dirPath = path.dirname(filePath); + // Create the directory if it doesn't exist + mkdirp.sync(dirPath); + // Check if the file exists; if not, create it + if (!fs.existsSync(filePath)) { + fs.writeFileSync(filePath, '', { mode: 0o666 }); // Create file with read/write for everyone + console.info(`File created at: ${filePath}`); + } else { + console.info(`File already exists at: ${filePath}`); + } +} const runCli = async (rg: string, user_id: string, project: any) => { @@ -224,9 +239,8 @@ const runCli = async (rg: string, user_id: string, project: any) => { const sourcePath = path.join(dirPath, 'sitecoreMigrationData', project?.destination_stack_id); const backupPath = path.join(process.cwd(), 'migration-data', `${project?.destination_stack_id}_${v4().slice(0, 4)}`); await copyDirectory(sourcePath, backupPath); - - const loggerPath = path.join(backupPath, 'logs', 'import','success.log'); - console.info('loggerPath', loggerPath); + const loggerPath = path.join(backupPath, 'logs', 'import', 'combine.log'); + createDirectoryAndFile(loggerPath); await setLogFilePath(loggerPath); shell.cd(path.join(process.cwd(), '..', 'cli', 'packages', 'contentstack')); const pwd = shell.exec('pwd'); @@ -235,7 +249,7 @@ const runCli = async (rg: string, user_id: string, project: any) => { cliLogger(region); const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${userData?.email}`); cliLogger(login); - const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`, { async: true }, { async: true }); + const exportData = shell.exec(`node bin/run cm:stacks:import -k ${project?.destination_stack_id} -d ${sourcePath} --backup-dir=${backupPath} --yes`, { async: true }); cliLogger(exportData); } else { console.info('user not found.') @@ -267,30 +281,3 @@ export const migrationService = { deleteTestStack, fieldMapping }; - - - - - -// cliUtilities?.configHandler?.set('region', regionPresent); -// cliUtilities?.configHandler?.set('authtoken', userData?.authtoken); -// shell.cd(path.resolve(process.cwd(), `../cli/packages/contentstack`)); -// const pwd = shell.exec('pwd'); -// cliLogger(pwd); -// const region = shell.exec(`node bin/run config:set:region ${regionPresent}`); -// cliLogger(region); -// const login = shell.exec(`node bin/run login -a ${userData?.authtoken} -e ${email}`) -// cliLogger(login); -// const exportData = shell.exec(`node bin/run cm:stacks:import -k blt3e7d2a4135d8bfab -d "/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/data" --backup-dir="/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/migrations/blt3e7d2a4135d8bfab"`); -// cliLogger(exportData); -// const cmd = [`-k ${userData?.authtoken}`, "-d /Users/umesh.more/Documents/ui-migration/migration-v2-node-server/api/sitecoreMigrationData", "--backup-dir=/Users/umesh.more/Documents/ui-migration/migration-v2-node-server/migrations/blt3e7d2a4135d8bfab", "--yes"] -// await importCmd.default.run(cmd); // This will bypass the type issue -// shell.cd(path.resolve(`${path?.dirname}`, '..', 'cli', 'packages', 'contentstack')); -// const importCmd: any = await import('@contentstack/cli-cm-import'); - - - - - - - diff --git a/api/src/utils/entries-field-creator.utils.ts b/api/src/utils/entries-field-creator.utils.ts index 0b6789b07..5ea4494d9 100644 --- a/api/src/utils/entries-field-creator.utils.ts +++ b/api/src/utils/entries-field-creator.utils.ts @@ -176,8 +176,19 @@ export const entriesFieldCreator = async ({ field, content, idCorrector, allAsse case 'dropdown': { if (content?.includes('{')) { return idCorrector({ id: content }); + } else { + const isOptionPresent = field?.advanced?.options?.find((ops: any) => ops?.key === content || ops?.value === content); + if (isOptionPresent) { + if (isOptionPresent?.value?.includes('{')) { + return { key: isOptionPresent?.key, value: content } + } else if (!isOptionPresent?.key) { + return { value: content } + } + return { key: isOptionPresent?.key, value: content } + } else { + return { value: field?.advanced?.Default_value } + } } - return content; } case 'number': { From 5c605e6dc1c99d737b8e9f8874f46420643940e0 Mon Sep 17 00:00:00 2001 From: umeshmore45 Date: Thu, 19 Sep 2024 12:40:34 +0530 Subject: [PATCH 07/20] added cli code --- .gitignore | 3 +- cli/.gitignore | 21 + cli/.npmrc | 1 + cli/.prettierignore | 1 + cli/.prettierrc | 7 + cli/.talismanrc | 112 + cli/CHANGELOG.md | 3 + cli/CODEOWNERS | 1 + cli/LICENSE | 21 + cli/README.md | 57 + cli/SECURITY.md | 27 + cli/install.sh | 7 + cli/package.json | 26 + cli/packages/contentstack-audit/.eslintignore | 1 + cli/packages/contentstack-audit/.eslintrc | 6 + cli/packages/contentstack-audit/.gitignore | 21 + cli/packages/contentstack-audit/.mocharc.json | 12 + cli/packages/contentstack-audit/LICENSE | 21 + cli/packages/contentstack-audit/README.md | 537 + cli/packages/contentstack-audit/package.json | 89 + .../src/audit-base-command.ts | 470 + .../contentstack-audit/src/base-command.ts | 120 + .../src/commands/cm/stacks/audit/fix.ts | 77 + .../src/commands/cm/stacks/audit/index.ts | 51 + .../contentstack-audit/src/config/index.ts | 81 + cli/packages/contentstack-audit/src/index.ts | 4 + .../contentstack-audit/src/messages/index.ts | 90 + .../src/modules/content-types.ts | 706 + .../contentstack-audit/src/modules/entries.ts | 1280 ++ .../src/modules/extensions.ts | 127 + .../src/modules/global-fields.ts | 45 + .../contentstack-audit/src/modules/index.ts | 6 + .../src/modules/workflows.ts | 171 + .../contentstack-audit/src/types/common.ts | 12 + .../src/types/content-types.ts | 166 + .../contentstack-audit/src/types/entries.ts | 109 + .../contentstack-audit/src/types/extension.ts | 48 + .../src/types/extensions.ts | 24 + .../contentstack-audit/src/types/index.ts | 6 + .../contentstack-audit/src/types/utils.ts | 35 + .../contentstack-audit/src/types/workflow.ts | 14 + .../contentstack-audit/src/util/flags.ts | 57 + .../contentstack-audit/src/util/index.ts | 2 + .../contentstack-audit/src/util/log.ts | 182 + .../contentstack-audit/test/helpers/init.js | 6 + .../contentstack-audit/test/tsconfig.json | 10 + .../test/unit/audit-base-command.test.ts | 300 + .../test/unit/base-command.test.ts | 65 + .../test/unit/commands/fix.test.ts | 30 + .../test/unit/commands/index.test.ts | 46 + .../test/unit/messages/index.test.ts | 24 + .../test/unit/mock/config.json | 1 + .../test/unit/mock/invalid-config.json | 3 + .../test/unit/mock/mock.json | 222 + .../test/unit/modules/content-types.test.ts | 318 + .../test/unit/modules/entries.test.ts | 327 + .../test/unit/modules/extensions.test.ts | 384 + .../test/unit/modules/workflow.test.ts | 142 + .../test/unit/util/flags.test.ts | 30 + .../test/unit/util/log.test.ts | 99 + cli/packages/contentstack-audit/tsconfig.json | 28 + cli/packages/contentstack-auth/.eslintignore | 2 + cli/packages/contentstack-auth/.eslintrc | 40 + cli/packages/contentstack-auth/.gitignore | 12 + cli/packages/contentstack-auth/.mocharc.json | 12 + cli/packages/contentstack-auth/.nycrc.json | 5 + cli/packages/contentstack-auth/.prettierrc | 7 + cli/packages/contentstack-auth/LICENSE | 21 + cli/packages/contentstack-auth/README.md | 331 + cli/packages/contentstack-auth/env.example | 8 + .../contentstack-auth/messages/index.json | 51 + cli/packages/contentstack-auth/package.json | 99 + .../contentstack-auth/src/base-command.ts | 48 + .../src/commands/auth/login.ts | 112 + .../src/commands/auth/logout.ts | 78 + .../src/commands/auth/tokens/add.ts | 169 + .../src/commands/auth/tokens/index.ts | 61 + .../src/commands/auth/tokens/remove.ts | 67 + .../src/commands/auth/whoami.ts | 28 + .../contentstack-auth/src/config/index.ts | 0 .../contentstack-auth/src/interfaces/index.ts | 25 + .../src/utils/auth-handler.ts | 132 + .../contentstack-auth/src/utils/index.ts | 3 + .../src/utils/interactive.ts | 52 + .../src/utils/tokens-validation.ts | 55 + .../contentstack-auth/test/config.json | 8 + .../contentstack-auth/test/helpers/init.js | 9 + .../test/integration/auth.test.ts | 105 + .../test/integration/config.json | 4 + .../test/integration/helper.ts | 68 + .../contentstack-auth/test/run.test.ts | 81 + .../contentstack-auth/test/tsconfig.json | 12 + .../test/unit/auth-handler.test.ts | 135 + .../test/unit/commands/login.test.ts | 55 + .../test/unit/commands/logout.test.ts | 44 + .../test/unit/commands/tokens-add.test.ts | 327 + .../test/unit/commands/tokens-list.test.ts | 41 + .../test/unit/commands/tokens-remove.test.ts | 54 + .../test/unit/commands/whoami.test.ts | 38 + .../test/unit/interactive.test.ts | 42 + .../test/unit/message-handler.test.ts | 9 + .../test/unit/tokens-validation.test.ts | 157 + cli/packages/contentstack-auth/tsconfig.json | 20 + .../contentstack-bootstrap/.editorconfig | 11 + .../contentstack-bootstrap/.eslintignore | 0 cli/packages/contentstack-bootstrap/.eslintrc | 13 + .../contentstack-bootstrap/.gitignore | 10 + .../contentstack-bootstrap/.nycrc.json | 5 + cli/packages/contentstack-bootstrap/LICENSE | 21 + cli/packages/contentstack-bootstrap/README.md | 77 + .../messages/index.json | 18 + .../contentstack-bootstrap/package.json | 76 + .../src/bootstrap/bootstrap-error.ts | 16 + .../src/bootstrap/github/client.ts | 96 + .../src/bootstrap/github/github-error.ts | 16 + .../src/bootstrap/index.ts | 134 + .../src/bootstrap/interactive.ts | 112 + .../src/bootstrap/utils.ts | 355 + .../src/commands/cm/bootstrap.ts | 201 + .../contentstack-bootstrap/src/config.ts | 103 + .../contentstack-bootstrap/src/messages.ts | 24 + .../test/bootstrap.test.js | 20 + .../test/github.test.js | 38 + .../test/interactive.test.js | 0 .../contentstack-bootstrap/test/utils.test.js | 235 + .../contentstack-bootstrap/tsconfig.json | 16 + .../contentstack-branches/.eslintignore | 4 + cli/packages/contentstack-branches/.eslintrc | 55 + cli/packages/contentstack-branches/.gitignore | 14 + .../contentstack-branches/.mocharc.json | 12 + .../contentstack-branches/.nycrc.json | 5 + .../contentstack-branches/.prettierrc | 7 + cli/packages/contentstack-branches/LICENSE | 21 + cli/packages/contentstack-branches/README.md | 225 + .../contentstack-branches/messages/index.json | 12 + .../contentstack-branches/package.json | 98 + .../src/branch/diff-handler.ts | 131 + .../contentstack-branches/src/branch/index.ts | 6 + .../src/branch/merge-handler.ts | 328 + .../src/commands/cm/branches/create.ts | 52 + .../src/commands/cm/branches/delete.ts | 57 + .../src/commands/cm/branches/diff.ts | 73 + .../src/commands/cm/branches/index.ts | 92 + .../src/commands/cm/branches/merge.ts | 105 + .../contentstack-branches/src/config/index.ts | 5 + .../src/interfaces/index.ts | 112 + .../src/utils/asset-folder-create-script.ts | 157 + .../src/utils/branch-diff-utility.ts | 588 + .../src/utils/create-branch.ts | 37 + .../src/utils/create-merge-scripts.ts | 107 + .../src/utils/delete-branch.ts | 28 + .../src/utils/entry-create-script.ts | 602 + .../src/utils/entry-create-update-script.ts | 670 + .../src/utils/entry-update-script.ts | 668 + .../contentstack-branches/src/utils/index.ts | 141 + .../src/utils/interactive.ts | 336 + .../src/utils/merge-helper.ts | 177 + .../contentstack-branches/test/config.json | 9 + .../test/helpers/init.js | 6 + .../contentstack-branches/test/mocha.opts | 3 + .../contentstack-branches/test/run.test.js | 114 + .../contentstack-branches/test/tsconfig.json | 7 + .../unit/commands/cm/branches/create.test.ts | 59 + .../unit/commands/cm/branches/delete.test.ts | 48 + .../unit/commands/cm/branches/diff.test.ts | 57 + .../unit/commands/cm/branches/list.test.ts | 36 + .../unit/commands/cm/branches/merge.test.ts | 40 + .../unit/mock/contentstack-management-sdk.ts | 62 + .../test/unit/mock/data.ts | 879 + .../unit/utils/create-branch-handler.test.ts | 0 .../unit/utils/create-merge-scripts.test.ts | 49 + .../unit/utils/diff-branch-handler.test.ts | 269 + .../test/unit/utils/interactive.test.ts | 136 + .../unit/utils/merge-branch-handler.test.ts | 413 + .../contentstack-branches/tsconfig.json | 30 + .../contentstack-bulk-publish/.editorconfig | 11 + .../contentstack-bulk-publish/.eslintrc | 3 + .../contentstack-bulk-publish/.gitignore | 9 + .../contentstack-bulk-publish/.mocharc.json | 13 + .../contentstack-bulk-publish/LICENSE | 21 + .../contentstack-bulk-publish/README.md | 1632 ++ .../contentstack-bulk-publish/copyLogs.js | 36 + .../contentstack-bulk-publish/package.json | 102 + .../src/commands/cm/assets/publish.js | 262 + .../src/commands/cm/assets/unpublish.js | 198 + .../commands/cm/bulk-publish/cross-publish.js | 285 + .../src/commands/cm/bulk-publish/index.js | 14 + .../commands/cm/entries/publish-modified.js | 220 + .../entries/publish-non-localized-fields.js | 231 + .../cm/entries/publish-only-unpublished.js | 118 + .../src/commands/cm/entries/publish.js | 277 + .../src/commands/cm/entries/unpublish.js | 201 + .../commands/cm/entries/update-and-publish.js | 210 + .../commands/cm/stacks/publish-clear-logs.js | 82 + .../commands/cm/stacks/publish-configure.js | 51 + .../src/commands/cm/stacks/publish-revert.js | 102 + .../src/commands/cm/stacks/publish.js | 112 + .../src/commands/cm/stacks/unpublish.js | 300 + .../src/config/defaults.json | 5 + .../src/config/dummy.json | 115 + .../src/config/index.js | 71 + .../src/consumer/publish.js | 736 + .../src/producer/add-fields.js | 361 + .../src/producer/cross-publish.js | 318 + .../producer/nonlocalized-field-changes.js | 383 + .../src/producer/publish-assets.js | 146 + .../src/producer/publish-edits.js | 181 + .../src/producer/publish-entries.js | 188 + .../src/producer/publish-unpublished-env.js | 183 + .../src/producer/revert.js | 388 + .../src/producer/unpublish.js | 308 + .../src/services/publish-only-unpublished.js | 138 + .../src/util/client.js | 31 + .../src/util/command-helper.js | 25 + .../contentstack-bulk-publish/src/util/fs.js | 70 + .../src/util/index.js | 64 + .../src/util/logger.js | 56 + .../src/util/queue.js | 57 + .../src/util/retryfailed.js | 43 + .../src/util/store.js | 83 + .../test/helpers/init.js | 4 + .../test/unit/commands/assets/publish.test.js | 43 + .../unit/commands/assets/unpublish.test.js | 57 + .../bulk-publish/cross-publish.test.js | 73 + .../commands/entries/publish-modified.test.js | 44 + .../publish-non-localized-fields.test.js | 44 + .../entries/publish-only-unpublished.js | 46 + .../unit/commands/entries/publish.test.js | 44 + .../unit/commands/entries/unpublish.test.js | 57 + .../entries/update-and-publish.test.js | 45 + .../test/unit/commands/stacks/publish.test.js | 52 + .../unit/commands/stacks/unpublish.test.js | 57 + cli/packages/contentstack-clone/.editorconfig | 11 + cli/packages/contentstack-clone/.eslintrc | 3 + cli/packages/contentstack-clone/.gitignore | 8 + cli/packages/contentstack-clone/LICENSE | 21 + cli/packages/contentstack-clone/README.md | 146 + cli/packages/contentstack-clone/package.json | 75 + .../src/commands/cm/stacks/clone.js | 266 + .../src/lib/helpers/command-helpers.js | 67 + .../src/lib/util/abort-controller.js | 49 + .../src/lib/util/clone-handler.js | 685 + .../src/lib/util/dummyConfig.json | 1 + .../contentstack-clone/src/lib/util/log.js | 105 + .../test/commands/stack-clone.test.js | 61 + .../test/dummyConfig/config.json | 3 + .../test/dummyConfig/index.js | 314 + .../contentstack-clone/test/mocha.opts | 3 + .../contentstack-command/.eslintignore | 2 + cli/packages/contentstack-command/.eslintrc | 40 + cli/packages/contentstack-command/.gitignore | 11 + .../contentstack-command/.mocharc.json | 12 + cli/packages/contentstack-command/.nycrc.json | 5 + cli/packages/contentstack-command/LICENSE | 21 + .../contentstack-command/package.json | 68 + .../contentstack-command/src/index.ts | 102 + .../src/interfaces/index.ts | 6 + .../contentstack-command/tsconfig.json | 17 + .../contentstack-config/.eslintignore | 2 + cli/packages/contentstack-config/.eslintrc | 40 + cli/packages/contentstack-config/.gitignore | 11 + .../contentstack-config/.mocharc.json | 11 + cli/packages/contentstack-config/.nycrc.json | 5 + cli/packages/contentstack-config/LICENSE | 21 + cli/packages/contentstack-config/README.md | 301 + .../contentstack-config/messages/index.json | 19 + cli/packages/contentstack-config/package.json | 88 + .../contentstack-config/src/base-command.ts | 49 + .../src/commands/config/get/base-branch.ts | 35 + .../config/get/early-access-header.ts | 38 + .../src/commands/config/get/region.ts | 24 + .../src/commands/config/remove/base-branch.ts | 46 + .../config/remove/early-access-header.ts | 41 + .../src/commands/config/set/base-branch.ts | 41 + .../config/set/early-access-header.ts | 36 + .../src/commands/config/set/region.ts | 103 + .../contentstack-config/src/config/index.ts | 6 + .../src/interfaces/index.ts | 18 + .../contentstack-config/src/utils/index.ts | 2 + .../src/utils/interactive.ts | 98 + .../src/utils/region-handler.ts | 142 + .../contentstack-config/test/config.json | 5 + .../test/integration/config.json | 6 + .../test/integration/config.test.ts | 170 + .../test/integration/utils.ts | 10 + .../contentstack-config/test/run.test.ts | 78 + .../contentstack-config/test/tsconfig.json | 12 + .../test/unit/commands/base-branch.test.ts | 56 + .../unit/commands/early-access-header.test.ts | 99 + .../test/unit/commands/region.test.ts | 43 + .../unit/commands/remove-base-branch.test.ts | 50 + .../test/unit/helpers/init.js | 4 + .../test/unit/mock/index.ts | 19 + .../contentstack-config/tsconfig.json | 17 + .../.eslintignore | 2 + .../contentstack-dev-dependencies/.eslintrc | 40 + .../contentstack-dev-dependencies/.gitignore | 10 + .../contentstack-dev-dependencies/.nycrc.json | 5 + .../contentstack-dev-dependencies/.snyk | 10 + .../contentstack-dev-dependencies/LICENSE | 21 + .../package.json | 40 + .../src/csdx-test-suite/command.ts | 33 + .../src/csdx-test-suite/exit.ts | 19 + .../src/csdx-test-suite/hook.ts | 26 + .../src/csdx-test-suite/index.ts | 21 + .../src/csdx-test-suite/load-config.ts | 25 + .../src/index.ts | 2 + .../contentstack-dev-dependencies/src/spy.ts | 42 + .../src/types.ts | 140 + .../tsconfig.json | 17 + .../contentstack-export-to-csv/.editorconfig | 11 + .../contentstack-export-to-csv/.eslintrc | 3 + .../contentstack-export-to-csv/.eslintrc.json | 17 + .../contentstack-export-to-csv/.gitignore | 10 + .../contentstack-export-to-csv/LICENSE | 21 + .../contentstack-export-to-csv/README.md | 40 + .../contentstack-export-to-csv/env.example | 7 + .../contentstack-export-to-csv/package.json | 68 + .../src/commands/cm/export-to-csv.js | 489 + .../src/util/client.js | 0 .../src/util/config.js | 13 + .../src/util/index.js | 1256 ++ .../test/commands/export-to-csv.test.js | 43 + .../test/mocha.opts | 3 + .../test/mock-data/common.mock.json | 400 + .../test/mock-data/entries.json | 121 + .../test/unit/commands/export-to-csv.test.js | 414 + .../test/util/common-utils.test.js | 52 + .../test/util/index.test.js | 445 + .../contentstack-export/.eslintignore | 4 + cli/packages/contentstack-export/.eslintrc | 55 + cli/packages/contentstack-export/.gitignore | 14 + .../contentstack-export/.mocharc.json | 12 + cli/packages/contentstack-export/.nycrc.json | 5 + cli/packages/contentstack-export/.prettierrc | 7 + cli/packages/contentstack-export/LICENSE | 21 + cli/packages/contentstack-export/README.md | 150 + .../example_config/auth_config.json | 14 + .../example_config/management_config.json | 14 + .../contentstack-export/messages/index.json | 1 + cli/packages/contentstack-export/package.json | 101 + .../src/commands/cm/stacks/export.ts | 126 + .../contentstack-export/src/config/index.ts | 403 + .../contentstack-export/src/export/index.ts | 1 + .../src/export/module-exporter.ts | 114 + .../src/export/modules-js/assets.js | 445 + .../src/export/modules-js/content-types.js | 89 + .../src/export/modules-js/custom-roles.js | 91 + .../src/export/modules-js/entries.js | 200 + .../src/export/modules-js/environments.js | 69 + .../src/export/modules-js/extensions.js | 66 + .../src/export/modules-js/global-fields.js | 121 + .../src/export/modules-js/index.js | 8 + .../src/export/modules-js/labels.js | 63 + .../src/export/modules-js/locales.js | 71 + .../src/export/modules-js/marketplace-apps.js | 172 + .../src/export/modules-js/stack.js | 99 + .../src/export/modules-js/webhooks.js | 73 + .../src/export/modules-js/workflows.js | 102 + .../src/export/modules/assets.ts | 370 + .../src/export/modules/base-class.ts | 190 + .../src/export/modules/content-types.ts | 109 + .../src/export/modules/custom-roles.ts | 98 + .../src/export/modules/entries.ts | 234 + .../src/export/modules/environments.ts | 79 + .../src/export/modules/extensions.ts | 78 + .../src/export/modules/global-fields.ts | 84 + .../src/export/modules/index.ts | 9 + .../src/export/modules/labels.ts | 77 + .../src/export/modules/locales.ts | 93 + .../src/export/modules/marketplace-apps.ts | 207 + .../src/export/modules/stack.ts | 95 + .../src/export/modules/taxonomies.ts | 138 + .../src/export/modules/webhooks.ts | 78 + .../src/export/modules/workflows.ts | 101 + .../src/types/default-config.ts | 177 + .../src/types/export-config.ts | 41 + .../contentstack-export/src/types/index.ts | 135 + .../src/types/marketplace-app.ts | 65 + .../src/utils/basic-login.ts | 58 + .../src/utils/common-helper.ts | 90 + .../src/utils/export-config-handler.ts | 91 + .../src/utils/file-helper.ts | 116 + .../contentstack-export/src/utils/index.ts | 10 + .../src/utils/interactive.ts | 68 + .../contentstack-export/src/utils/logger.ts | 165 + .../src/utils/marketplace-app-helper.ts | 42 + .../src/utils/setup-branches.ts | 49 + .../src/utils/setup-export-dir.ts | 13 + .../contentstack-export/test/.mocharc.js | 6 + .../contentstack-export/test/config.json | 8 + .../contentstack-export/test/helpers/init.js | 6 + .../test/integration/assets.test.js | 113 + .../test/integration/clean-up.test.js | 62 + .../test/integration/config.json | 8 + .../test/integration/content-types.test.js | 100 + .../test/integration/custom-roles.test.js | 90 + .../test/integration/entries.test.js | 112 + .../test/integration/environments.test.js | 92 + .../test/integration/extensions.test.js | 90 + .../test/integration/global-fields.test.js | 89 + .../test/integration/init.test.js | 62 + .../test/integration/labels.test.js | 93 + .../test/integration/locales.test.js | 92 + .../test/integration/marketplace-apps.test.js | 94 + .../test/integration/utils/helper.js | 426 + .../test/integration/webhooks.test.js | 89 + .../test/integration/workflows.test.js | 89 + .../contentstack-export/test/mocha.opts | 3 + .../contentstack-export/test/run.test.js | 128 + .../contentstack-export/test/tsconfig.json | 10 + .../export/modules/marketplace-apps.test.ts | 346 + .../test/unit/mock/assets.ts | 88 + .../contentstack-export/tsconfig.json | 31 + .../contentstack-export/types/index.d.ts | 1 + cli/packages/contentstack-import/.env.sample | 18 + .../contentstack-import/.eslintignore | 2 + cli/packages/contentstack-import/.eslintrc | 56 + cli/packages/contentstack-import/.gitignore | 14 + .../contentstack-import/.mocharc.json | 8 + cli/packages/contentstack-import/.nycrc.json | 5 + cli/packages/contentstack-import/.prettierrc | 7 + cli/packages/contentstack-import/LICENSE | 21 + cli/packages/contentstack-import/README.md | 165 + .../example_config/auth_config.json | 18 + .../example_config/management_config.json | 16 + .../contentstack-import/messages/index.json | 1 + cli/packages/contentstack-import/package.json | 102 + .../src/commands/cm/stacks/import.ts | 173 + .../contentstack-import/src/config/index.ts | 402 + .../contentstack-import/src/import/index.ts | 1 + .../src/import/module-importer.ts | 178 + .../src/import/modules-js/assets.js | 498 + .../src/import/modules-js/content-types.js | 231 + .../src/import/modules-js/custom-roles.js | 168 + .../src/import/modules-js/entries.js | 1517 ++ .../src/import/modules-js/environments.js | 102 + .../src/import/modules-js/extensions.js | 100 + .../src/import/modules-js/global-fields.js | 123 + .../src/import/modules-js/index.js | 6 + .../src/import/modules-js/labels.js | 172 + .../src/import/modules-js/locales.js | 213 + .../src/import/modules-js/marketplace-apps.js | 557 + .../src/import/modules-js/webhooks.js | 106 + .../src/import/modules-js/workflows.js | 200 + .../src/import/modules/assets.ts | 356 + .../src/import/modules/base-class.ts | 406 + .../src/import/modules/content-types.ts | 313 + .../src/import/modules/custom-roles.ts | 214 + .../src/import/modules/entries.ts | 980 + .../src/import/modules/environments.ts | 147 + .../src/import/modules/extensions.ts | 243 + .../src/import/modules/global-fields.ts | 209 + .../src/import/modules/index.ts | 10 + .../src/import/modules/labels.ts | 198 + .../src/import/modules/locales.ts | 186 + .../src/import/modules/marketplace-apps.ts | 512 + .../src/import/modules/taxonomies.ts | 162 + .../src/import/modules/webhooks.ts | 132 + .../src/import/modules/workflows.ts | 307 + .../src/types/default-config.ts | 161 + .../contentstack-import/src/types/entries.ts | 9 + .../src/types/import-config.ts | 64 + .../contentstack-import/src/types/index.ts | 109 + .../src/types/marketplace-app.ts | 65 + .../src/utils/asset-helper.ts | 436 + .../src/utils/backup-handler.ts | 72 + .../src/utils/common-helper.ts | 255 + .../src/utils/content-type-helper.ts | 188 + .../src/utils/entries-helper.ts | 706 + .../src/utils/extension-helper.ts | 87 + .../src/utils/file-helper.ts | 138 + .../src/utils/import-config-handler.ts | 105 + .../contentstack-import/src/utils/index.ts | 28 + .../src/utils/interactive.ts | 98 + .../contentstack-import/src/utils/log.ts | 38 + .../contentstack-import/src/utils/logger.ts | 202 + .../src/utils/login-handler.ts | 51 + .../src/utils/marketplace-app-helper.ts | 188 + .../src/utils/taxonomies-helper.ts | 134 + .../contentstack-import/test/config.json | 35 + .../test/integration/assets.test.js | 137 + .../auth-token-modules/assets.test.js | 105 + .../auth-token-modules/content-types.test.js | 97 + .../auth-token-modules/custom-roles.test.js | 96 + .../auth-token-modules/entries.test.js | 105 + .../auth-token-modules/environments.test.js | 97 + .../auth-token-modules/extensions.test.js | 97 + .../auth-token-modules/global-fields.test.js | 98 + .../auth-token-modules/locales.test.js | 97 + .../auth-token-modules/webhooks.test.js | 97 + .../auth-token-modules/workflows.test.js | 97 + .../test/integration/auth-token.test.js | 139 + .../test/integration/clean-up.test.js | 65 + .../test/integration/config.json | 7 + .../test/integration/content-types.test.js | 129 + .../test/integration/custom-roles.test.js | 127 + .../test/integration/entries.test.js | 137 + .../test/integration/environments.test.js | 129 + .../test/integration/extensions.test.js | 129 + .../test/integration/global-fields.test.js | 129 + .../test/integration/init.test.js | 62 + .../test/integration/locales.test.js | 129 + .../test/integration/management-token.test.js | 166 + .../test/integration/utils/helper.js | 401 + .../test/integration/webhooks.test.js | 129 + .../test/integration/workflows.test.js | 129 + .../contentstack-import/test/mocha.opts | 3 + .../contentstack-import/test/run.test.js | 123 + .../contentstack-import/tsconfig.json | 31 + .../contentstack-import/types/index.d.ts | 1 + .../contentstack-launch/.eslintignore | 1 + cli/packages/contentstack-launch/.eslintrc | 6 + cli/packages/contentstack-launch/.gitignore | 19 + .../contentstack-launch/.mocharc.json | 12 + cli/packages/contentstack-launch/.talismanrc | 4 + cli/packages/contentstack-launch/LICENSE | 21 + cli/packages/contentstack-launch/README.md | 57 + cli/packages/contentstack-launch/SECURITY.md | 27 + cli/packages/contentstack-launch/example.env | 3 + cli/packages/contentstack-launch/package.json | 108 + .../src/adapters/base-class.ts | 794 + .../src/adapters/file-upload.ts | 343 + .../src/adapters/github.ts | 287 + .../contentstack-launch/src/adapters/index.ts | 6 + .../src/adapters/pre-check.ts | 156 + .../contentstack-launch/src/base-command.ts | 204 + .../src/commands/launch/deployments.ts | 145 + .../src/commands/launch/environments.ts | 157 + .../src/commands/launch/functions.ts | 33 + .../src/commands/launch/index.ts | 141 + .../src/commands/launch/logs.ts | 246 + .../src/commands/launch/open.ts | 161 + .../contentstack-launch/src/config/index.ts | 45 + .../contentstack-launch/src/graphql/index.ts | 2 + .../src/graphql/mutation.ts | 82 + .../src/graphql/queries.ts | 190 + cli/packages/contentstack-launch/src/index.ts | 1 + .../contentstack-launch/src/types/index.ts | 2 + .../contentstack-launch/src/types/launch.ts | 76 + .../contentstack-launch/src/types/utils.ts | 39 + .../src/util/apollo-client.ts | 230 + .../cloud-functions-validator.ts | 85 + .../util/cloud-function/cloud-functions.ts | 182 + .../src/util/cloud-function/constants.ts | 3 + .../src/util/cloud-function/contentfly.ts | 22 + .../errors/cloud-function.errors.ts | 45 + .../src/util/cloud-function/index.ts | 2 + .../src/util/cloud-function/os-helper.ts | 23 + .../src/util/cloud-function/types.ts | 16 + .../src/util/common-utility.ts | 154 + .../src/util/create-git-meta.ts | 43 + .../contentstack-launch/src/util/fs.ts | 30 + .../contentstack-launch/src/util/index.ts | 8 + .../contentstack-launch/src/util/log.ts | 187 + .../src/util/logs-polling-utilities.ts | 239 + .../contentstack-launch/test/helpers/init.js | 6 + .../contentstack-launch/test/tsconfig.json | 9 + .../test/unit/adapters/file-upload.test.ts | 254 + .../test/unit/adapters/github.test.ts | 254 + .../test/unit/commands/deployments.test.ts | 74 + .../test/unit/commands/environments.test.ts | 66 + .../test/unit/commands/functions.test.ts | 48 + .../test/unit/commands/launch.test.ts | 71 + .../test/unit/commands/log.test.ts | 335 + .../test/unit/commands/open.test.ts | 86 + .../test/unit/mock/index.ts | 55 + .../test/unit/util/log.test.ts | 35 + .../unit/util/logs-polling-utilities.test.ts | 192 + .../test/unit/z-cleanup.test.ts | 3 + .../contentstack-launch/tsconfig.json | 16 + .../contentstack-migrate-rte/.eslintrc | 3 + .../contentstack-migrate-rte/.gitignore | 9 + cli/packages/contentstack-migrate-rte/LICENSE | 21 + .../contentstack-migrate-rte/README.md | 152 + .../contentstack-migrate-rte/package.json | 70 + .../commands/cm/entries/migrate-html-rte.js | 170 + .../src/lib/util/config_schema.json | 272 + .../src/lib/util/index.js | 720 + .../test/commands/json-migration.test.js | 897 + .../config/config-for-images-in-rte.json | 12 + .../test/dummy/config/config-locale-2.json | 13 + .../test/dummy/config/config-locale.json | 13 + .../test/dummy/config/config.json | 12 + .../dummy/config/configForGlobalField.json | 12 + .../config/configForInvalidContentType.json | 12 + .../dummy/config/configForMultipleRte.json | 12 + .../dummy/config/configWithEmptyPath.json | 7 + .../test/dummy/config/config_locale.json | 13 + .../test/dummy/config/invalidConfig.json | 12 + .../test/dummy/contentTypeResponse.json | 3014 ++++ .../test/dummy/defaultConfig.json | 5 + .../test/dummy/entriesResponse.json | 444 + .../test/dummy/expectedEntriesResponse.json | 663 + .../test/dummy/globalFieldResponse.json | 257 + .../contentstack-migrate-rte/test/mocha.opts | 3 + .../test/utils/index.js | 140 + .../contentstack-migration/.editorconfig | 11 + cli/packages/contentstack-migration/.eslintrc | 3 + .../contentstack-migration/.gitignore | 8 + cli/packages/contentstack-migration/LICENSE | 21 + cli/packages/contentstack-migration/README.md | 123 + .../docs/api-reference.md | 477 + .../examples/01-transform-contenttype.js | 205 + .../examples/02-publishing-entries.js | 35 + .../examples/03-edit-content-type.js | 14 + .../examples/04-create-release-deploy.js | 70 + .../05-Update-reference-entry-from-mapper.js | 171 + .../06-update-environment-sample-config.json | 7 + .../examples/06-update-environment.js | 171 + .../01-change-master-locale.js | 82 + ...change-master-locale-new-file-structure.js | 161 + .../change-master-locale/locales.json | 238 + .../examples/entry-create.js | 59 + .../examples/entry-update.js | 112 + .../examples/multi-file/01-create-ct-blog.js | 56 + .../multi-file/02-create-author-ct.js | 30 + .../multi-file/03-edit-content-type.js | 14 + .../examples/multi-file/README.md | 0 .../examples/rename-field/01-rename-field.js | 98 + .../rename-field/02-publishing-entries.js | 34 + .../examples/sample-config.json | 9 + .../examples/taxonomies/import-taxonomies.js | 143 + .../examples/taxonomies/test_taxonomies.csv | 21 + .../contentstack-migration/package.json | 69 + .../src/actions/action-list.js | 32 + .../src/actions/index.js | 217 + .../src/commands/cm/stacks/migration.js | 317 + .../src/config/api-config.js | 18 + .../src/config/default-options.js | 7 + .../src/config/index.js | 7 + .../src/config/master-locale.js | 10 + .../src/modules/base.js | 95 + .../src/modules/content-types.js | 208 + .../src/modules/fields.js | 339 + .../src/modules/index.js | 8 + .../src/modules/locale.js | 33 + .../src/modules/migration.js | 112 + .../src/modules/parser.js | 105 + .../src/services/content-types.js | 317 + .../src/services/index.js | 6 + .../src/services/locales.js | 71 + .../src/utils/auto-retry.js | 32 + .../src/utils/callsite.js | 23 + .../src/utils/constants.js | 223 + .../src/utils/contentstack-sdk.js | 70 + .../src/utils/error-helper.js | 105 + .../src/utils/fs-helper.js | 29 + .../src/utils/get-batches.js | 7 + .../src/utils/get-config.js | 13 + .../src/utils/group-by.js | 38 + .../contentstack-migration/src/utils/index.js | 21 + .../src/utils/logger.js | 75 + .../contentstack-migration/src/utils/map.js | 40 + .../src/utils/migration-logger.js | 21 + .../src/utils/modules.js | 139 + .../src/utils/object-helper.js | 9 + .../src/utils/request.js | 95 + .../src/utils/safe-promise.js | 3 + .../src/utils/schema-helper.js | 35 + .../src/utils/success-handler.js | 12 + .../src/validators/api-error.js | 20 + .../src/validators/base-validator.js | 39 + .../create-content-type-validator.js | 54 + .../validators/edit-content-type-validator.js | 53 + .../src/validators/field-validator.js | 21 + .../src/validators/index.js | 11 + .../src/validators/migration-error.js | 20 + .../src/validators/schema-validator.js | 23 + .../src/validators/type-error.js | 22 + .../create-content-type.json | 715 + .../__nock-fixtures__/delete-field.json | 1603 ++ .../__nock-fixtures__/edit-content-type.json | 719 + .../__nock-fixtures__/edit-field.json | 3065 ++++ .../missing-required-field.json | 779 + .../__nock-fixtures__/move-field.json | 3959 +++++ .../test/commands/create-content-type.test.js | 107 + .../test/commands/delete-field.test.js | 73 + .../test/commands/edit-content-type.test.js | 93 + .../test/commands/edit-field.test.js | 81 + .../test/commands/move-field.test.js | 71 + .../contentstack-migration/test/mocha.opts | 3 + .../test/setup/constants.js | 8 + .../examples/create-ct/create-ct-chaining.js | 162 + .../create-ct/create-ct-misspelled-props.js | 9 + .../create-ct/create-ct-misspelled.js | 9 + .../examples/create-ct/create-ct-opts.js | 18 + .../setup/examples/create-ct/create-ct.js | 12 + .../examples/delete-field/create-field.js | 6 + .../examples/delete-field/delete-field.js | 6 + .../delete-field/delete-invalid-field.js | 6 + .../setup/examples/edit-ct/create-field.js | 14 + .../test/setup/examples/edit-ct/delete-ct.js | 7 + .../edit-ct/edit-ct-misspelled-method.js | 7 + .../edit-ct/edit-ct-misspelled-props.js | 8 + .../setup/examples/edit-ct/edit-ct.failure.js | 14 + .../setup/examples/edit-ct/edit-ct.success.js | 15 + .../setup/examples/edit-field/edit-field.js | 8 + .../examples/edit-field/edit-invalid-field.js | 9 + .../edit-field/edit-invalid-method.js | 9 + .../edit-field/missing-required-fields.js | 15 + .../edit-field/missing-required-props.js | 13 + .../setup/examples/move-field/move-field.js | 12 + .../examples/move-field/move-invalid-field.js | 9 + .../move-field/move-invalid-method.js | 8 + .../examples/multifile/01-create-ct-blog.js | 56 + .../examples/multifile/02-create-author-ct.js | 30 + .../multifile/03-edit-content-type.js | 14 + .../test/setup/examples/multifile/README.md | 0 .../test/setup/index.js | 44 + .../test/setup/mocks.js | 107 + cli/packages/contentstack-seed/.editorconfig | 11 + cli/packages/contentstack-seed/.eslintignore | 0 cli/packages/contentstack-seed/.eslintrc | 11 + cli/packages/contentstack-seed/.gitignore | 10 + cli/packages/contentstack-seed/LICENSE | 21 + cli/packages/contentstack-seed/README.md | 130 + cli/packages/contentstack-seed/jest.config.js | 12 + cli/packages/contentstack-seed/package.json | 76 + .../src/commands/cm/stacks/seed.ts | 135 + .../src/seed/contentstack/client.ts | 226 + .../src/seed/contentstack/error.ts | 16 + .../contentstack-seed/src/seed/error.ts | 16 + .../src/seed/github/client.ts | 160 + .../src/seed/github/error.ts | 16 + .../contentstack-seed/src/seed/importer.ts | 27 + .../contentstack-seed/src/seed/index.ts | 275 + .../contentstack-seed/src/seed/interactive.ts | 154 + .../contentstack-seed/tests/config.json | 7 + .../tests/contentstack.error.test.ts | 14 + .../tests/contentstack.test.ts | 126 + .../contentstack-seed/tests/github.error.ts | 14 + .../contentstack-seed/tests/github.test.ts | 97 + .../contentstack-seed/tests/importer.test.ts | 27 + .../tests/interactive.test.ts | 139 + .../contentstack-seed/tests/seeder.test.ts | 190 + cli/packages/contentstack-seed/tsconfig.json | 16 + .../contentstack-seed/types/index.d.ts | 1 + .../contentstack-utilities/.eslintignore | 2 + cli/packages/contentstack-utilities/.eslintrc | 40 + .../contentstack-utilities/.gitignore | 10 + .../contentstack-utilities/.mocharc.json | 12 + .../contentstack-utilities/.nycrc.json | 5 + cli/packages/contentstack-utilities/LICENSE | 21 + .../contentstack-utilities/messages/auth.json | 48 + .../messages/config.json | 9 + .../contentstack-utilities/messages/core.json | 6 + .../contentstack-utilities/package.json | 87 + .../contentstack-utilities/src/add-locale.ts | 18 + .../src/auth-handler.ts | 514 + .../contentstack-utilities/src/cli-error.ts | 15 + .../contentstack-utilities/src/cli-ux.ts | 107 + .../src/config-handler.ts | 204 + .../src/contentstack-management-sdk.ts | 118 + .../src/contentstack-marketplace-sdk.ts | 142 + .../contentstack-utilities/src/date-time.ts | 15 + .../contentstack-utilities/src/encrypter.ts | 65 + .../src/flag-deprecation-check.ts | 41 + .../src/fs-utility/core.ts | 468 + .../src/fs-utility/helper.ts | 43 + .../src/fs-utility/index.ts | 5 + .../src/fs-utility/types.ts | 79 + .../contentstack-utilities/src/helpers.ts | 116 + .../src/http-client/base-client-decorator.ts | 28 + .../src/http-client/client-interface.ts | 11 + .../src/http-client/client.ts | 435 + .../src/http-client/http-client-decorator.ts | 33 + .../src/http-client/http-response.ts | 55 + .../src/http-client/index.ts | 10 + .../src/http-client/oauth-decorator.ts | 49 + .../contentstack-utilities/src/index.ts | 79 + .../src/inquirer-table-prompt.ts | 218 + .../src/interfaces/index.ts | 69 + .../contentstack-utilities/src/logger.ts | 290 + .../src/message-handler.ts | 45 + .../src/path-validator.ts | 8 + .../test/helpers/init.js | 4 + .../contentstack-utilities/test/tsconfig.json | 6 + .../test/unit/auth-handler.test.ts | 511 + .../test/unit/config.json | 4 + .../unit/contentstack-marketplace-sdk.test.ts | 93 + .../test/unit/helper.test.ts | 25 + .../contentstack-utilities/tsconfig.json | 17 + cli/packages/contentstack/.eslintignore | 2 + cli/packages/contentstack/.eslintrc | 40 + cli/packages/contentstack/.gitignore | 13 + cli/packages/contentstack/.mocharc.json | 12 + cli/packages/contentstack/.nycrc.json | 5 + cli/packages/contentstack/.prettierrc | 7 + cli/packages/contentstack/LICENSE | 21 + cli/packages/contentstack/README.md | 3836 ++++ cli/packages/contentstack/branches.json | 1 + cli/packages/contentstack/messages/index.json | 6 + cli/packages/contentstack/package.json | 163 + cli/packages/contentstack/src/config/index.ts | 7 + cli/packages/contentstack/src/help.ts | 61 + .../src/hooks/init/context-init.ts | 8 + .../contentstack/src/hooks/init/utils-init.ts | 12 + .../src/hooks/prerun/auth-guard.ts | 42 + .../hooks/prerun/command-deprecation-check.ts | 12 + cli/packages/contentstack/src/index.ts | 1 + .../contentstack/src/interfaces/index.ts | 35 + .../contentstack/src/utils/context-handler.ts | 66 + cli/packages/contentstack/src/utils/index.ts | 1 + .../contentstack/test/helpers/init.js | 4 + cli/packages/contentstack/test/tsconfig.json | 6 + cli/packages/contentstack/test/utils.test.ts | 50 + cli/packages/contentstack/tsconfig.json | 25 + cli/pnpm-lock.yaml | 14814 ++++++++++++++++ cli/pnpm-workspace.yaml | 2 + 810 files changed, 115146 insertions(+), 1 deletion(-) create mode 100644 cli/.gitignore create mode 100644 cli/.npmrc create mode 100644 cli/.prettierignore create mode 100644 cli/.prettierrc create mode 100644 cli/.talismanrc create mode 100644 cli/CHANGELOG.md create mode 100644 cli/CODEOWNERS create mode 100644 cli/LICENSE create mode 100644 cli/README.md create mode 100644 cli/SECURITY.md create mode 100755 cli/install.sh create mode 100755 cli/package.json create mode 100644 cli/packages/contentstack-audit/.eslintignore create mode 100644 cli/packages/contentstack-audit/.eslintrc create mode 100644 cli/packages/contentstack-audit/.gitignore create mode 100644 cli/packages/contentstack-audit/.mocharc.json create mode 100644 cli/packages/contentstack-audit/LICENSE create mode 100644 cli/packages/contentstack-audit/README.md create mode 100644 cli/packages/contentstack-audit/package.json create mode 100644 cli/packages/contentstack-audit/src/audit-base-command.ts create mode 100644 cli/packages/contentstack-audit/src/base-command.ts create mode 100644 cli/packages/contentstack-audit/src/commands/cm/stacks/audit/fix.ts create mode 100644 cli/packages/contentstack-audit/src/commands/cm/stacks/audit/index.ts create mode 100644 cli/packages/contentstack-audit/src/config/index.ts create mode 100644 cli/packages/contentstack-audit/src/index.ts create mode 100644 cli/packages/contentstack-audit/src/messages/index.ts create mode 100644 cli/packages/contentstack-audit/src/modules/content-types.ts create mode 100644 cli/packages/contentstack-audit/src/modules/entries.ts create mode 100644 cli/packages/contentstack-audit/src/modules/extensions.ts create mode 100644 cli/packages/contentstack-audit/src/modules/global-fields.ts create mode 100644 cli/packages/contentstack-audit/src/modules/index.ts create mode 100644 cli/packages/contentstack-audit/src/modules/workflows.ts create mode 100644 cli/packages/contentstack-audit/src/types/common.ts create mode 100644 cli/packages/contentstack-audit/src/types/content-types.ts create mode 100644 cli/packages/contentstack-audit/src/types/entries.ts create mode 100644 cli/packages/contentstack-audit/src/types/extension.ts create mode 100644 cli/packages/contentstack-audit/src/types/extensions.ts create mode 100644 cli/packages/contentstack-audit/src/types/index.ts create mode 100644 cli/packages/contentstack-audit/src/types/utils.ts create mode 100644 cli/packages/contentstack-audit/src/types/workflow.ts create mode 100644 cli/packages/contentstack-audit/src/util/flags.ts create mode 100644 cli/packages/contentstack-audit/src/util/index.ts create mode 100755 cli/packages/contentstack-audit/src/util/log.ts create mode 100755 cli/packages/contentstack-audit/test/helpers/init.js create mode 100755 cli/packages/contentstack-audit/test/tsconfig.json create mode 100644 cli/packages/contentstack-audit/test/unit/audit-base-command.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/base-command.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/commands/fix.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/commands/index.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/messages/index.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/mock/config.json create mode 100644 cli/packages/contentstack-audit/test/unit/mock/invalid-config.json create mode 100644 cli/packages/contentstack-audit/test/unit/mock/mock.json create mode 100644 cli/packages/contentstack-audit/test/unit/modules/content-types.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/modules/entries.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/modules/extensions.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/modules/workflow.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/util/flags.test.ts create mode 100644 cli/packages/contentstack-audit/test/unit/util/log.test.ts create mode 100644 cli/packages/contentstack-audit/tsconfig.json create mode 100644 cli/packages/contentstack-auth/.eslintignore create mode 100644 cli/packages/contentstack-auth/.eslintrc create mode 100644 cli/packages/contentstack-auth/.gitignore create mode 100644 cli/packages/contentstack-auth/.mocharc.json create mode 100644 cli/packages/contentstack-auth/.nycrc.json create mode 100644 cli/packages/contentstack-auth/.prettierrc create mode 100644 cli/packages/contentstack-auth/LICENSE create mode 100644 cli/packages/contentstack-auth/README.md create mode 100644 cli/packages/contentstack-auth/env.example create mode 100644 cli/packages/contentstack-auth/messages/index.json create mode 100644 cli/packages/contentstack-auth/package.json create mode 100644 cli/packages/contentstack-auth/src/base-command.ts create mode 100644 cli/packages/contentstack-auth/src/commands/auth/login.ts create mode 100644 cli/packages/contentstack-auth/src/commands/auth/logout.ts create mode 100644 cli/packages/contentstack-auth/src/commands/auth/tokens/add.ts create mode 100644 cli/packages/contentstack-auth/src/commands/auth/tokens/index.ts create mode 100644 cli/packages/contentstack-auth/src/commands/auth/tokens/remove.ts create mode 100644 cli/packages/contentstack-auth/src/commands/auth/whoami.ts create mode 100644 cli/packages/contentstack-auth/src/config/index.ts create mode 100644 cli/packages/contentstack-auth/src/interfaces/index.ts create mode 100644 cli/packages/contentstack-auth/src/utils/auth-handler.ts create mode 100644 cli/packages/contentstack-auth/src/utils/index.ts create mode 100644 cli/packages/contentstack-auth/src/utils/interactive.ts create mode 100644 cli/packages/contentstack-auth/src/utils/tokens-validation.ts create mode 100644 cli/packages/contentstack-auth/test/config.json create mode 100644 cli/packages/contentstack-auth/test/helpers/init.js create mode 100644 cli/packages/contentstack-auth/test/integration/auth.test.ts create mode 100644 cli/packages/contentstack-auth/test/integration/config.json create mode 100644 cli/packages/contentstack-auth/test/integration/helper.ts create mode 100644 cli/packages/contentstack-auth/test/run.test.ts create mode 100644 cli/packages/contentstack-auth/test/tsconfig.json create mode 100644 cli/packages/contentstack-auth/test/unit/auth-handler.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/commands/login.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/commands/logout.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/commands/tokens-add.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/commands/tokens-list.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/commands/tokens-remove.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/commands/whoami.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/interactive.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/message-handler.test.ts create mode 100644 cli/packages/contentstack-auth/test/unit/tokens-validation.test.ts create mode 100644 cli/packages/contentstack-auth/tsconfig.json create mode 100644 cli/packages/contentstack-bootstrap/.editorconfig create mode 100644 cli/packages/contentstack-bootstrap/.eslintignore create mode 100644 cli/packages/contentstack-bootstrap/.eslintrc create mode 100644 cli/packages/contentstack-bootstrap/.gitignore create mode 100644 cli/packages/contentstack-bootstrap/.nycrc.json create mode 100644 cli/packages/contentstack-bootstrap/LICENSE create mode 100644 cli/packages/contentstack-bootstrap/README.md create mode 100644 cli/packages/contentstack-bootstrap/messages/index.json create mode 100644 cli/packages/contentstack-bootstrap/package.json create mode 100644 cli/packages/contentstack-bootstrap/src/bootstrap/bootstrap-error.ts create mode 100644 cli/packages/contentstack-bootstrap/src/bootstrap/github/client.ts create mode 100644 cli/packages/contentstack-bootstrap/src/bootstrap/github/github-error.ts create mode 100644 cli/packages/contentstack-bootstrap/src/bootstrap/index.ts create mode 100644 cli/packages/contentstack-bootstrap/src/bootstrap/interactive.ts create mode 100644 cli/packages/contentstack-bootstrap/src/bootstrap/utils.ts create mode 100644 cli/packages/contentstack-bootstrap/src/commands/cm/bootstrap.ts create mode 100644 cli/packages/contentstack-bootstrap/src/config.ts create mode 100644 cli/packages/contentstack-bootstrap/src/messages.ts create mode 100644 cli/packages/contentstack-bootstrap/test/bootstrap.test.js create mode 100644 cli/packages/contentstack-bootstrap/test/github.test.js create mode 100644 cli/packages/contentstack-bootstrap/test/interactive.test.js create mode 100644 cli/packages/contentstack-bootstrap/test/utils.test.js create mode 100644 cli/packages/contentstack-bootstrap/tsconfig.json create mode 100644 cli/packages/contentstack-branches/.eslintignore create mode 100644 cli/packages/contentstack-branches/.eslintrc create mode 100644 cli/packages/contentstack-branches/.gitignore create mode 100644 cli/packages/contentstack-branches/.mocharc.json create mode 100644 cli/packages/contentstack-branches/.nycrc.json create mode 100644 cli/packages/contentstack-branches/.prettierrc create mode 100644 cli/packages/contentstack-branches/LICENSE create mode 100755 cli/packages/contentstack-branches/README.md create mode 100644 cli/packages/contentstack-branches/messages/index.json create mode 100644 cli/packages/contentstack-branches/package.json create mode 100644 cli/packages/contentstack-branches/src/branch/diff-handler.ts create mode 100644 cli/packages/contentstack-branches/src/branch/index.ts create mode 100644 cli/packages/contentstack-branches/src/branch/merge-handler.ts create mode 100644 cli/packages/contentstack-branches/src/commands/cm/branches/create.ts create mode 100644 cli/packages/contentstack-branches/src/commands/cm/branches/delete.ts create mode 100644 cli/packages/contentstack-branches/src/commands/cm/branches/diff.ts create mode 100644 cli/packages/contentstack-branches/src/commands/cm/branches/index.ts create mode 100644 cli/packages/contentstack-branches/src/commands/cm/branches/merge.ts create mode 100644 cli/packages/contentstack-branches/src/config/index.ts create mode 100644 cli/packages/contentstack-branches/src/interfaces/index.ts create mode 100644 cli/packages/contentstack-branches/src/utils/asset-folder-create-script.ts create mode 100644 cli/packages/contentstack-branches/src/utils/branch-diff-utility.ts create mode 100644 cli/packages/contentstack-branches/src/utils/create-branch.ts create mode 100644 cli/packages/contentstack-branches/src/utils/create-merge-scripts.ts create mode 100644 cli/packages/contentstack-branches/src/utils/delete-branch.ts create mode 100644 cli/packages/contentstack-branches/src/utils/entry-create-script.ts create mode 100644 cli/packages/contentstack-branches/src/utils/entry-create-update-script.ts create mode 100644 cli/packages/contentstack-branches/src/utils/entry-update-script.ts create mode 100644 cli/packages/contentstack-branches/src/utils/index.ts create mode 100644 cli/packages/contentstack-branches/src/utils/interactive.ts create mode 100644 cli/packages/contentstack-branches/src/utils/merge-helper.ts create mode 100644 cli/packages/contentstack-branches/test/config.json create mode 100644 cli/packages/contentstack-branches/test/helpers/init.js create mode 100644 cli/packages/contentstack-branches/test/mocha.opts create mode 100644 cli/packages/contentstack-branches/test/run.test.js create mode 100644 cli/packages/contentstack-branches/test/tsconfig.json create mode 100644 cli/packages/contentstack-branches/test/unit/commands/cm/branches/create.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/commands/cm/branches/delete.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/commands/cm/branches/diff.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/commands/cm/branches/list.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/commands/cm/branches/merge.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/mock/contentstack-management-sdk.ts create mode 100644 cli/packages/contentstack-branches/test/unit/mock/data.ts create mode 100644 cli/packages/contentstack-branches/test/unit/utils/create-branch-handler.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/utils/create-merge-scripts.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/utils/diff-branch-handler.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/utils/interactive.test.ts create mode 100644 cli/packages/contentstack-branches/test/unit/utils/merge-branch-handler.test.ts create mode 100644 cli/packages/contentstack-branches/tsconfig.json create mode 100644 cli/packages/contentstack-bulk-publish/.editorconfig create mode 100644 cli/packages/contentstack-bulk-publish/.eslintrc create mode 100644 cli/packages/contentstack-bulk-publish/.gitignore create mode 100644 cli/packages/contentstack-bulk-publish/.mocharc.json create mode 100644 cli/packages/contentstack-bulk-publish/LICENSE create mode 100644 cli/packages/contentstack-bulk-publish/README.md create mode 100644 cli/packages/contentstack-bulk-publish/copyLogs.js create mode 100644 cli/packages/contentstack-bulk-publish/package.json create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/assets/publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/assets/unpublish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/bulk-publish/cross-publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/bulk-publish/index.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/entries/publish-modified.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/entries/publish-non-localized-fields.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/entries/publish-only-unpublished.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/entries/publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/entries/unpublish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/entries/update-and-publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/stacks/publish-clear-logs.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/stacks/publish-configure.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/stacks/publish-revert.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/stacks/publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/commands/cm/stacks/unpublish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/config/defaults.json create mode 100644 cli/packages/contentstack-bulk-publish/src/config/dummy.json create mode 100644 cli/packages/contentstack-bulk-publish/src/config/index.js create mode 100644 cli/packages/contentstack-bulk-publish/src/consumer/publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/add-fields.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/cross-publish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/nonlocalized-field-changes.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/publish-assets.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/publish-edits.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/publish-entries.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/publish-unpublished-env.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/revert.js create mode 100644 cli/packages/contentstack-bulk-publish/src/producer/unpublish.js create mode 100644 cli/packages/contentstack-bulk-publish/src/services/publish-only-unpublished.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/client.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/command-helper.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/fs.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/index.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/logger.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/queue.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/retryfailed.js create mode 100644 cli/packages/contentstack-bulk-publish/src/util/store.js create mode 100644 cli/packages/contentstack-bulk-publish/test/helpers/init.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/assets/publish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/assets/unpublish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/bulk-publish/cross-publish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/entries/publish-modified.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/entries/publish-non-localized-fields.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/entries/publish-only-unpublished.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/entries/publish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/entries/unpublish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/entries/update-and-publish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/stacks/publish.test.js create mode 100644 cli/packages/contentstack-bulk-publish/test/unit/commands/stacks/unpublish.test.js create mode 100644 cli/packages/contentstack-clone/.editorconfig create mode 100644 cli/packages/contentstack-clone/.eslintrc create mode 100644 cli/packages/contentstack-clone/.gitignore create mode 100644 cli/packages/contentstack-clone/LICENSE create mode 100644 cli/packages/contentstack-clone/README.md create mode 100644 cli/packages/contentstack-clone/package.json create mode 100644 cli/packages/contentstack-clone/src/commands/cm/stacks/clone.js create mode 100644 cli/packages/contentstack-clone/src/lib/helpers/command-helpers.js create mode 100644 cli/packages/contentstack-clone/src/lib/util/abort-controller.js create mode 100644 cli/packages/contentstack-clone/src/lib/util/clone-handler.js create mode 100644 cli/packages/contentstack-clone/src/lib/util/dummyConfig.json create mode 100644 cli/packages/contentstack-clone/src/lib/util/log.js create mode 100644 cli/packages/contentstack-clone/test/commands/stack-clone.test.js create mode 100644 cli/packages/contentstack-clone/test/dummyConfig/config.json create mode 100644 cli/packages/contentstack-clone/test/dummyConfig/index.js create mode 100644 cli/packages/contentstack-clone/test/mocha.opts create mode 100644 cli/packages/contentstack-command/.eslintignore create mode 100644 cli/packages/contentstack-command/.eslintrc create mode 100644 cli/packages/contentstack-command/.gitignore create mode 100644 cli/packages/contentstack-command/.mocharc.json create mode 100644 cli/packages/contentstack-command/.nycrc.json create mode 100644 cli/packages/contentstack-command/LICENSE create mode 100644 cli/packages/contentstack-command/package.json create mode 100644 cli/packages/contentstack-command/src/index.ts create mode 100644 cli/packages/contentstack-command/src/interfaces/index.ts create mode 100644 cli/packages/contentstack-command/tsconfig.json create mode 100644 cli/packages/contentstack-config/.eslintignore create mode 100644 cli/packages/contentstack-config/.eslintrc create mode 100644 cli/packages/contentstack-config/.gitignore create mode 100644 cli/packages/contentstack-config/.mocharc.json create mode 100644 cli/packages/contentstack-config/.nycrc.json create mode 100644 cli/packages/contentstack-config/LICENSE create mode 100644 cli/packages/contentstack-config/README.md create mode 100644 cli/packages/contentstack-config/messages/index.json create mode 100644 cli/packages/contentstack-config/package.json create mode 100644 cli/packages/contentstack-config/src/base-command.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/get/base-branch.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/get/early-access-header.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/get/region.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/remove/base-branch.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/remove/early-access-header.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/set/base-branch.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/set/early-access-header.ts create mode 100644 cli/packages/contentstack-config/src/commands/config/set/region.ts create mode 100644 cli/packages/contentstack-config/src/config/index.ts create mode 100644 cli/packages/contentstack-config/src/interfaces/index.ts create mode 100644 cli/packages/contentstack-config/src/utils/index.ts create mode 100644 cli/packages/contentstack-config/src/utils/interactive.ts create mode 100644 cli/packages/contentstack-config/src/utils/region-handler.ts create mode 100644 cli/packages/contentstack-config/test/config.json create mode 100644 cli/packages/contentstack-config/test/integration/config.json create mode 100644 cli/packages/contentstack-config/test/integration/config.test.ts create mode 100644 cli/packages/contentstack-config/test/integration/utils.ts create mode 100644 cli/packages/contentstack-config/test/run.test.ts create mode 100644 cli/packages/contentstack-config/test/tsconfig.json create mode 100644 cli/packages/contentstack-config/test/unit/commands/base-branch.test.ts create mode 100644 cli/packages/contentstack-config/test/unit/commands/early-access-header.test.ts create mode 100644 cli/packages/contentstack-config/test/unit/commands/region.test.ts create mode 100644 cli/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts create mode 100644 cli/packages/contentstack-config/test/unit/helpers/init.js create mode 100644 cli/packages/contentstack-config/test/unit/mock/index.ts create mode 100644 cli/packages/contentstack-config/tsconfig.json create mode 100644 cli/packages/contentstack-dev-dependencies/.eslintignore create mode 100644 cli/packages/contentstack-dev-dependencies/.eslintrc create mode 100644 cli/packages/contentstack-dev-dependencies/.gitignore create mode 100644 cli/packages/contentstack-dev-dependencies/.nycrc.json create mode 100644 cli/packages/contentstack-dev-dependencies/.snyk create mode 100644 cli/packages/contentstack-dev-dependencies/LICENSE create mode 100644 cli/packages/contentstack-dev-dependencies/package.json create mode 100644 cli/packages/contentstack-dev-dependencies/src/csdx-test-suite/command.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/csdx-test-suite/exit.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/csdx-test-suite/hook.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/csdx-test-suite/index.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/csdx-test-suite/load-config.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/index.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/spy.ts create mode 100644 cli/packages/contentstack-dev-dependencies/src/types.ts create mode 100644 cli/packages/contentstack-dev-dependencies/tsconfig.json create mode 100644 cli/packages/contentstack-export-to-csv/.editorconfig create mode 100644 cli/packages/contentstack-export-to-csv/.eslintrc create mode 100644 cli/packages/contentstack-export-to-csv/.eslintrc.json create mode 100644 cli/packages/contentstack-export-to-csv/.gitignore create mode 100644 cli/packages/contentstack-export-to-csv/LICENSE create mode 100644 cli/packages/contentstack-export-to-csv/README.md create mode 100644 cli/packages/contentstack-export-to-csv/env.example create mode 100644 cli/packages/contentstack-export-to-csv/package.json create mode 100644 cli/packages/contentstack-export-to-csv/src/commands/cm/export-to-csv.js create mode 100644 cli/packages/contentstack-export-to-csv/src/util/client.js create mode 100644 cli/packages/contentstack-export-to-csv/src/util/config.js create mode 100644 cli/packages/contentstack-export-to-csv/src/util/index.js create mode 100644 cli/packages/contentstack-export-to-csv/test/commands/export-to-csv.test.js create mode 100644 cli/packages/contentstack-export-to-csv/test/mocha.opts create mode 100644 cli/packages/contentstack-export-to-csv/test/mock-data/common.mock.json create mode 100644 cli/packages/contentstack-export-to-csv/test/mock-data/entries.json create mode 100644 cli/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js create mode 100644 cli/packages/contentstack-export-to-csv/test/util/common-utils.test.js create mode 100644 cli/packages/contentstack-export-to-csv/test/util/index.test.js create mode 100644 cli/packages/contentstack-export/.eslintignore create mode 100644 cli/packages/contentstack-export/.eslintrc create mode 100644 cli/packages/contentstack-export/.gitignore create mode 100644 cli/packages/contentstack-export/.mocharc.json create mode 100644 cli/packages/contentstack-export/.nycrc.json create mode 100644 cli/packages/contentstack-export/.prettierrc create mode 100644 cli/packages/contentstack-export/LICENSE create mode 100755 cli/packages/contentstack-export/README.md create mode 100644 cli/packages/contentstack-export/example_config/auth_config.json create mode 100644 cli/packages/contentstack-export/example_config/management_config.json create mode 100644 cli/packages/contentstack-export/messages/index.json create mode 100644 cli/packages/contentstack-export/package.json create mode 100644 cli/packages/contentstack-export/src/commands/cm/stacks/export.ts create mode 100644 cli/packages/contentstack-export/src/config/index.ts create mode 100644 cli/packages/contentstack-export/src/export/index.ts create mode 100644 cli/packages/contentstack-export/src/export/module-exporter.ts create mode 100644 cli/packages/contentstack-export/src/export/modules-js/assets.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/content-types.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/custom-roles.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/entries.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/environments.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/extensions.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/global-fields.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/index.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/labels.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/locales.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/marketplace-apps.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/stack.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/webhooks.js create mode 100644 cli/packages/contentstack-export/src/export/modules-js/workflows.js create mode 100644 cli/packages/contentstack-export/src/export/modules/assets.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/base-class.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/content-types.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/custom-roles.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/entries.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/environments.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/extensions.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/global-fields.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/index.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/labels.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/locales.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/marketplace-apps.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/stack.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/taxonomies.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/webhooks.ts create mode 100644 cli/packages/contentstack-export/src/export/modules/workflows.ts create mode 100644 cli/packages/contentstack-export/src/types/default-config.ts create mode 100644 cli/packages/contentstack-export/src/types/export-config.ts create mode 100644 cli/packages/contentstack-export/src/types/index.ts create mode 100644 cli/packages/contentstack-export/src/types/marketplace-app.ts create mode 100644 cli/packages/contentstack-export/src/utils/basic-login.ts create mode 100644 cli/packages/contentstack-export/src/utils/common-helper.ts create mode 100644 cli/packages/contentstack-export/src/utils/export-config-handler.ts create mode 100644 cli/packages/contentstack-export/src/utils/file-helper.ts create mode 100644 cli/packages/contentstack-export/src/utils/index.ts create mode 100644 cli/packages/contentstack-export/src/utils/interactive.ts create mode 100644 cli/packages/contentstack-export/src/utils/logger.ts create mode 100644 cli/packages/contentstack-export/src/utils/marketplace-app-helper.ts create mode 100644 cli/packages/contentstack-export/src/utils/setup-branches.ts create mode 100644 cli/packages/contentstack-export/src/utils/setup-export-dir.ts create mode 100644 cli/packages/contentstack-export/test/.mocharc.js create mode 100644 cli/packages/contentstack-export/test/config.json create mode 100644 cli/packages/contentstack-export/test/helpers/init.js create mode 100644 cli/packages/contentstack-export/test/integration/assets.test.js create mode 100644 cli/packages/contentstack-export/test/integration/clean-up.test.js create mode 100644 cli/packages/contentstack-export/test/integration/config.json create mode 100644 cli/packages/contentstack-export/test/integration/content-types.test.js create mode 100644 cli/packages/contentstack-export/test/integration/custom-roles.test.js create mode 100644 cli/packages/contentstack-export/test/integration/entries.test.js create mode 100644 cli/packages/contentstack-export/test/integration/environments.test.js create mode 100644 cli/packages/contentstack-export/test/integration/extensions.test.js create mode 100644 cli/packages/contentstack-export/test/integration/global-fields.test.js create mode 100644 cli/packages/contentstack-export/test/integration/init.test.js create mode 100644 cli/packages/contentstack-export/test/integration/labels.test.js create mode 100644 cli/packages/contentstack-export/test/integration/locales.test.js create mode 100644 cli/packages/contentstack-export/test/integration/marketplace-apps.test.js create mode 100644 cli/packages/contentstack-export/test/integration/utils/helper.js create mode 100644 cli/packages/contentstack-export/test/integration/webhooks.test.js create mode 100644 cli/packages/contentstack-export/test/integration/workflows.test.js create mode 100644 cli/packages/contentstack-export/test/mocha.opts create mode 100644 cli/packages/contentstack-export/test/run.test.js create mode 100644 cli/packages/contentstack-export/test/tsconfig.json create mode 100644 cli/packages/contentstack-export/test/unit/export/modules/marketplace-apps.test.ts create mode 100644 cli/packages/contentstack-export/test/unit/mock/assets.ts create mode 100644 cli/packages/contentstack-export/tsconfig.json create mode 100644 cli/packages/contentstack-export/types/index.d.ts create mode 100644 cli/packages/contentstack-import/.env.sample create mode 100644 cli/packages/contentstack-import/.eslintignore create mode 100644 cli/packages/contentstack-import/.eslintrc create mode 100644 cli/packages/contentstack-import/.gitignore create mode 100644 cli/packages/contentstack-import/.mocharc.json create mode 100644 cli/packages/contentstack-import/.nycrc.json create mode 100644 cli/packages/contentstack-import/.prettierrc create mode 100644 cli/packages/contentstack-import/LICENSE create mode 100644 cli/packages/contentstack-import/README.md create mode 100644 cli/packages/contentstack-import/example_config/auth_config.json create mode 100644 cli/packages/contentstack-import/example_config/management_config.json create mode 100644 cli/packages/contentstack-import/messages/index.json create mode 100644 cli/packages/contentstack-import/package.json create mode 100644 cli/packages/contentstack-import/src/commands/cm/stacks/import.ts create mode 100644 cli/packages/contentstack-import/src/config/index.ts create mode 100644 cli/packages/contentstack-import/src/import/index.ts create mode 100755 cli/packages/contentstack-import/src/import/module-importer.ts create mode 100755 cli/packages/contentstack-import/src/import/modules-js/assets.js create mode 100755 cli/packages/contentstack-import/src/import/modules-js/content-types.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/custom-roles.js create mode 100755 cli/packages/contentstack-import/src/import/modules-js/entries.js create mode 100755 cli/packages/contentstack-import/src/import/modules-js/environments.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/extensions.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/global-fields.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/index.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/labels.js create mode 100755 cli/packages/contentstack-import/src/import/modules-js/locales.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/marketplace-apps.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/webhooks.js create mode 100644 cli/packages/contentstack-import/src/import/modules-js/workflows.js create mode 100644 cli/packages/contentstack-import/src/import/modules/assets.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/base-class.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/content-types.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/custom-roles.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/entries.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/environments.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/extensions.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/global-fields.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/index.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/labels.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/locales.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/marketplace-apps.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/taxonomies.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/webhooks.ts create mode 100644 cli/packages/contentstack-import/src/import/modules/workflows.ts create mode 100644 cli/packages/contentstack-import/src/types/default-config.ts create mode 100644 cli/packages/contentstack-import/src/types/entries.ts create mode 100644 cli/packages/contentstack-import/src/types/import-config.ts create mode 100644 cli/packages/contentstack-import/src/types/index.ts create mode 100644 cli/packages/contentstack-import/src/types/marketplace-app.ts create mode 100644 cli/packages/contentstack-import/src/utils/asset-helper.ts create mode 100755 cli/packages/contentstack-import/src/utils/backup-handler.ts create mode 100644 cli/packages/contentstack-import/src/utils/common-helper.ts create mode 100644 cli/packages/contentstack-import/src/utils/content-type-helper.ts create mode 100644 cli/packages/contentstack-import/src/utils/entries-helper.ts create mode 100644 cli/packages/contentstack-import/src/utils/extension-helper.ts create mode 100644 cli/packages/contentstack-import/src/utils/file-helper.ts create mode 100644 cli/packages/contentstack-import/src/utils/import-config-handler.ts create mode 100644 cli/packages/contentstack-import/src/utils/index.ts create mode 100644 cli/packages/contentstack-import/src/utils/interactive.ts create mode 100644 cli/packages/contentstack-import/src/utils/log.ts create mode 100644 cli/packages/contentstack-import/src/utils/logger.ts create mode 100644 cli/packages/contentstack-import/src/utils/login-handler.ts create mode 100644 cli/packages/contentstack-import/src/utils/marketplace-app-helper.ts create mode 100644 cli/packages/contentstack-import/src/utils/taxonomies-helper.ts create mode 100644 cli/packages/contentstack-import/test/config.json create mode 100644 cli/packages/contentstack-import/test/integration/assets.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/assets.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/content-types.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/custom-roles.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/entries.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/environments.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/extensions.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/global-fields.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/locales.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/webhooks.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token-modules/workflows.test.js create mode 100644 cli/packages/contentstack-import/test/integration/auth-token.test.js create mode 100644 cli/packages/contentstack-import/test/integration/clean-up.test.js create mode 100644 cli/packages/contentstack-import/test/integration/config.json create mode 100644 cli/packages/contentstack-import/test/integration/content-types.test.js create mode 100644 cli/packages/contentstack-import/test/integration/custom-roles.test.js create mode 100644 cli/packages/contentstack-import/test/integration/entries.test.js create mode 100644 cli/packages/contentstack-import/test/integration/environments.test.js create mode 100644 cli/packages/contentstack-import/test/integration/extensions.test.js create mode 100644 cli/packages/contentstack-import/test/integration/global-fields.test.js create mode 100644 cli/packages/contentstack-import/test/integration/init.test.js create mode 100644 cli/packages/contentstack-import/test/integration/locales.test.js create mode 100644 cli/packages/contentstack-import/test/integration/management-token.test.js create mode 100644 cli/packages/contentstack-import/test/integration/utils/helper.js create mode 100644 cli/packages/contentstack-import/test/integration/webhooks.test.js create mode 100644 cli/packages/contentstack-import/test/integration/workflows.test.js create mode 100644 cli/packages/contentstack-import/test/mocha.opts create mode 100644 cli/packages/contentstack-import/test/run.test.js create mode 100644 cli/packages/contentstack-import/tsconfig.json create mode 100644 cli/packages/contentstack-import/types/index.d.ts create mode 100755 cli/packages/contentstack-launch/.eslintignore create mode 100755 cli/packages/contentstack-launch/.eslintrc create mode 100755 cli/packages/contentstack-launch/.gitignore create mode 100755 cli/packages/contentstack-launch/.mocharc.json create mode 100755 cli/packages/contentstack-launch/.talismanrc create mode 100755 cli/packages/contentstack-launch/LICENSE create mode 100755 cli/packages/contentstack-launch/README.md create mode 100755 cli/packages/contentstack-launch/SECURITY.md create mode 100644 cli/packages/contentstack-launch/example.env create mode 100755 cli/packages/contentstack-launch/package.json create mode 100755 cli/packages/contentstack-launch/src/adapters/base-class.ts create mode 100755 cli/packages/contentstack-launch/src/adapters/file-upload.ts create mode 100755 cli/packages/contentstack-launch/src/adapters/github.ts create mode 100755 cli/packages/contentstack-launch/src/adapters/index.ts create mode 100755 cli/packages/contentstack-launch/src/adapters/pre-check.ts create mode 100755 cli/packages/contentstack-launch/src/base-command.ts create mode 100755 cli/packages/contentstack-launch/src/commands/launch/deployments.ts create mode 100755 cli/packages/contentstack-launch/src/commands/launch/environments.ts create mode 100755 cli/packages/contentstack-launch/src/commands/launch/functions.ts create mode 100755 cli/packages/contentstack-launch/src/commands/launch/index.ts create mode 100755 cli/packages/contentstack-launch/src/commands/launch/logs.ts create mode 100755 cli/packages/contentstack-launch/src/commands/launch/open.ts create mode 100755 cli/packages/contentstack-launch/src/config/index.ts create mode 100755 cli/packages/contentstack-launch/src/graphql/index.ts create mode 100755 cli/packages/contentstack-launch/src/graphql/mutation.ts create mode 100755 cli/packages/contentstack-launch/src/graphql/queries.ts create mode 100755 cli/packages/contentstack-launch/src/index.ts create mode 100755 cli/packages/contentstack-launch/src/types/index.ts create mode 100755 cli/packages/contentstack-launch/src/types/launch.ts create mode 100755 cli/packages/contentstack-launch/src/types/utils.ts create mode 100755 cli/packages/contentstack-launch/src/util/apollo-client.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/cloud-functions-validator.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/cloud-functions.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/constants.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/contentfly.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/errors/cloud-function.errors.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/index.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/os-helper.ts create mode 100755 cli/packages/contentstack-launch/src/util/cloud-function/types.ts create mode 100644 cli/packages/contentstack-launch/src/util/common-utility.ts create mode 100755 cli/packages/contentstack-launch/src/util/create-git-meta.ts create mode 100755 cli/packages/contentstack-launch/src/util/fs.ts create mode 100755 cli/packages/contentstack-launch/src/util/index.ts create mode 100755 cli/packages/contentstack-launch/src/util/log.ts create mode 100755 cli/packages/contentstack-launch/src/util/logs-polling-utilities.ts create mode 100755 cli/packages/contentstack-launch/test/helpers/init.js create mode 100755 cli/packages/contentstack-launch/test/tsconfig.json create mode 100644 cli/packages/contentstack-launch/test/unit/adapters/file-upload.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/adapters/github.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/commands/deployments.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/commands/environments.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/commands/functions.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/commands/launch.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/commands/log.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/commands/open.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/mock/index.ts create mode 100644 cli/packages/contentstack-launch/test/unit/util/log.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/util/logs-polling-utilities.test.ts create mode 100644 cli/packages/contentstack-launch/test/unit/z-cleanup.test.ts create mode 100755 cli/packages/contentstack-launch/tsconfig.json create mode 100644 cli/packages/contentstack-migrate-rte/.eslintrc create mode 100644 cli/packages/contentstack-migrate-rte/.gitignore create mode 100644 cli/packages/contentstack-migrate-rte/LICENSE create mode 100644 cli/packages/contentstack-migrate-rte/README.md create mode 100644 cli/packages/contentstack-migrate-rte/package.json create mode 100644 cli/packages/contentstack-migrate-rte/src/commands/cm/entries/migrate-html-rte.js create mode 100644 cli/packages/contentstack-migrate-rte/src/lib/util/config_schema.json create mode 100644 cli/packages/contentstack-migrate-rte/src/lib/util/index.js create mode 100644 cli/packages/contentstack-migrate-rte/test/commands/json-migration.test.js create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/config-for-images-in-rte.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/config-locale-2.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/config-locale.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/config.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/configForGlobalField.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/configForInvalidContentType.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/configForMultipleRte.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/configWithEmptyPath.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/config_locale.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/config/invalidConfig.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/contentTypeResponse.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/defaultConfig.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/entriesResponse.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/expectedEntriesResponse.json create mode 100644 cli/packages/contentstack-migrate-rte/test/dummy/globalFieldResponse.json create mode 100644 cli/packages/contentstack-migrate-rte/test/mocha.opts create mode 100644 cli/packages/contentstack-migrate-rte/test/utils/index.js create mode 100644 cli/packages/contentstack-migration/.editorconfig create mode 100644 cli/packages/contentstack-migration/.eslintrc create mode 100644 cli/packages/contentstack-migration/.gitignore create mode 100644 cli/packages/contentstack-migration/LICENSE create mode 100644 cli/packages/contentstack-migration/README.md create mode 100644 cli/packages/contentstack-migration/docs/api-reference.md create mode 100644 cli/packages/contentstack-migration/examples/01-transform-contenttype.js create mode 100644 cli/packages/contentstack-migration/examples/02-publishing-entries.js create mode 100644 cli/packages/contentstack-migration/examples/03-edit-content-type.js create mode 100644 cli/packages/contentstack-migration/examples/04-create-release-deploy.js create mode 100644 cli/packages/contentstack-migration/examples/05-Update-reference-entry-from-mapper.js create mode 100644 cli/packages/contentstack-migration/examples/06-update-environment-sample-config.json create mode 100644 cli/packages/contentstack-migration/examples/06-update-environment.js create mode 100644 cli/packages/contentstack-migration/examples/change-master-locale/01-change-master-locale.js create mode 100644 cli/packages/contentstack-migration/examples/change-master-locale/02-change-master-locale-new-file-structure.js create mode 100644 cli/packages/contentstack-migration/examples/change-master-locale/locales.json create mode 100644 cli/packages/contentstack-migration/examples/entry-create.js create mode 100644 cli/packages/contentstack-migration/examples/entry-update.js create mode 100644 cli/packages/contentstack-migration/examples/multi-file/01-create-ct-blog.js create mode 100644 cli/packages/contentstack-migration/examples/multi-file/02-create-author-ct.js create mode 100644 cli/packages/contentstack-migration/examples/multi-file/03-edit-content-type.js create mode 100644 cli/packages/contentstack-migration/examples/multi-file/README.md create mode 100644 cli/packages/contentstack-migration/examples/rename-field/01-rename-field.js create mode 100644 cli/packages/contentstack-migration/examples/rename-field/02-publishing-entries.js create mode 100644 cli/packages/contentstack-migration/examples/sample-config.json create mode 100644 cli/packages/contentstack-migration/examples/taxonomies/import-taxonomies.js create mode 100644 cli/packages/contentstack-migration/examples/taxonomies/test_taxonomies.csv create mode 100644 cli/packages/contentstack-migration/package.json create mode 100644 cli/packages/contentstack-migration/src/actions/action-list.js create mode 100644 cli/packages/contentstack-migration/src/actions/index.js create mode 100644 cli/packages/contentstack-migration/src/commands/cm/stacks/migration.js create mode 100644 cli/packages/contentstack-migration/src/config/api-config.js create mode 100644 cli/packages/contentstack-migration/src/config/default-options.js create mode 100644 cli/packages/contentstack-migration/src/config/index.js create mode 100644 cli/packages/contentstack-migration/src/config/master-locale.js create mode 100644 cli/packages/contentstack-migration/src/modules/base.js create mode 100644 cli/packages/contentstack-migration/src/modules/content-types.js create mode 100644 cli/packages/contentstack-migration/src/modules/fields.js create mode 100644 cli/packages/contentstack-migration/src/modules/index.js create mode 100644 cli/packages/contentstack-migration/src/modules/locale.js create mode 100644 cli/packages/contentstack-migration/src/modules/migration.js create mode 100644 cli/packages/contentstack-migration/src/modules/parser.js create mode 100644 cli/packages/contentstack-migration/src/services/content-types.js create mode 100644 cli/packages/contentstack-migration/src/services/index.js create mode 100644 cli/packages/contentstack-migration/src/services/locales.js create mode 100644 cli/packages/contentstack-migration/src/utils/auto-retry.js create mode 100644 cli/packages/contentstack-migration/src/utils/callsite.js create mode 100644 cli/packages/contentstack-migration/src/utils/constants.js create mode 100644 cli/packages/contentstack-migration/src/utils/contentstack-sdk.js create mode 100644 cli/packages/contentstack-migration/src/utils/error-helper.js create mode 100644 cli/packages/contentstack-migration/src/utils/fs-helper.js create mode 100644 cli/packages/contentstack-migration/src/utils/get-batches.js create mode 100644 cli/packages/contentstack-migration/src/utils/get-config.js create mode 100644 cli/packages/contentstack-migration/src/utils/group-by.js create mode 100644 cli/packages/contentstack-migration/src/utils/index.js create mode 100644 cli/packages/contentstack-migration/src/utils/logger.js create mode 100644 cli/packages/contentstack-migration/src/utils/map.js create mode 100644 cli/packages/contentstack-migration/src/utils/migration-logger.js create mode 100644 cli/packages/contentstack-migration/src/utils/modules.js create mode 100644 cli/packages/contentstack-migration/src/utils/object-helper.js create mode 100644 cli/packages/contentstack-migration/src/utils/request.js create mode 100644 cli/packages/contentstack-migration/src/utils/safe-promise.js create mode 100644 cli/packages/contentstack-migration/src/utils/schema-helper.js create mode 100644 cli/packages/contentstack-migration/src/utils/success-handler.js create mode 100644 cli/packages/contentstack-migration/src/validators/api-error.js create mode 100644 cli/packages/contentstack-migration/src/validators/base-validator.js create mode 100644 cli/packages/contentstack-migration/src/validators/create-content-type-validator.js create mode 100644 cli/packages/contentstack-migration/src/validators/edit-content-type-validator.js create mode 100644 cli/packages/contentstack-migration/src/validators/field-validator.js create mode 100644 cli/packages/contentstack-migration/src/validators/index.js create mode 100644 cli/packages/contentstack-migration/src/validators/migration-error.js create mode 100644 cli/packages/contentstack-migration/src/validators/schema-validator.js create mode 100644 cli/packages/contentstack-migration/src/validators/type-error.js create mode 100644 cli/packages/contentstack-migration/test/commands/__nock-fixtures__/create-content-type.json create mode 100644 cli/packages/contentstack-migration/test/commands/__nock-fixtures__/delete-field.json create mode 100644 cli/packages/contentstack-migration/test/commands/__nock-fixtures__/edit-content-type.json create mode 100644 cli/packages/contentstack-migration/test/commands/__nock-fixtures__/edit-field.json create mode 100644 cli/packages/contentstack-migration/test/commands/__nock-fixtures__/missing-required-field.json create mode 100644 cli/packages/contentstack-migration/test/commands/__nock-fixtures__/move-field.json create mode 100644 cli/packages/contentstack-migration/test/commands/create-content-type.test.js create mode 100644 cli/packages/contentstack-migration/test/commands/delete-field.test.js create mode 100644 cli/packages/contentstack-migration/test/commands/edit-content-type.test.js create mode 100644 cli/packages/contentstack-migration/test/commands/edit-field.test.js create mode 100644 cli/packages/contentstack-migration/test/commands/move-field.test.js create mode 100644 cli/packages/contentstack-migration/test/mocha.opts create mode 100644 cli/packages/contentstack-migration/test/setup/constants.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/create-ct/create-ct-chaining.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/create-ct/create-ct-misspelled-props.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/create-ct/create-ct-misspelled.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/create-ct/create-ct-opts.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/create-ct/create-ct.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/delete-field/create-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/delete-field/delete-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/delete-field/delete-invalid-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-ct/create-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-ct/delete-ct.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-ct/edit-ct-misspelled-method.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-ct/edit-ct-misspelled-props.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-ct/edit-ct.failure.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-ct/edit-ct.success.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-field/edit-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-field/edit-invalid-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-field/edit-invalid-method.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-field/missing-required-fields.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/edit-field/missing-required-props.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/move-field/move-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/move-field/move-invalid-field.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/move-field/move-invalid-method.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/multifile/01-create-ct-blog.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/multifile/02-create-author-ct.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/multifile/03-edit-content-type.js create mode 100644 cli/packages/contentstack-migration/test/setup/examples/multifile/README.md create mode 100644 cli/packages/contentstack-migration/test/setup/index.js create mode 100644 cli/packages/contentstack-migration/test/setup/mocks.js create mode 100644 cli/packages/contentstack-seed/.editorconfig create mode 100644 cli/packages/contentstack-seed/.eslintignore create mode 100644 cli/packages/contentstack-seed/.eslintrc create mode 100644 cli/packages/contentstack-seed/.gitignore create mode 100644 cli/packages/contentstack-seed/LICENSE create mode 100644 cli/packages/contentstack-seed/README.md create mode 100644 cli/packages/contentstack-seed/jest.config.js create mode 100644 cli/packages/contentstack-seed/package.json create mode 100644 cli/packages/contentstack-seed/src/commands/cm/stacks/seed.ts create mode 100644 cli/packages/contentstack-seed/src/seed/contentstack/client.ts create mode 100644 cli/packages/contentstack-seed/src/seed/contentstack/error.ts create mode 100644 cli/packages/contentstack-seed/src/seed/error.ts create mode 100644 cli/packages/contentstack-seed/src/seed/github/client.ts create mode 100644 cli/packages/contentstack-seed/src/seed/github/error.ts create mode 100644 cli/packages/contentstack-seed/src/seed/importer.ts create mode 100644 cli/packages/contentstack-seed/src/seed/index.ts create mode 100644 cli/packages/contentstack-seed/src/seed/interactive.ts create mode 100644 cli/packages/contentstack-seed/tests/config.json create mode 100644 cli/packages/contentstack-seed/tests/contentstack.error.test.ts create mode 100644 cli/packages/contentstack-seed/tests/contentstack.test.ts create mode 100644 cli/packages/contentstack-seed/tests/github.error.ts create mode 100644 cli/packages/contentstack-seed/tests/github.test.ts create mode 100644 cli/packages/contentstack-seed/tests/importer.test.ts create mode 100644 cli/packages/contentstack-seed/tests/interactive.test.ts create mode 100644 cli/packages/contentstack-seed/tests/seeder.test.ts create mode 100644 cli/packages/contentstack-seed/tsconfig.json create mode 100644 cli/packages/contentstack-seed/types/index.d.ts create mode 100644 cli/packages/contentstack-utilities/.eslintignore create mode 100644 cli/packages/contentstack-utilities/.eslintrc create mode 100644 cli/packages/contentstack-utilities/.gitignore create mode 100644 cli/packages/contentstack-utilities/.mocharc.json create mode 100644 cli/packages/contentstack-utilities/.nycrc.json create mode 100644 cli/packages/contentstack-utilities/LICENSE create mode 100644 cli/packages/contentstack-utilities/messages/auth.json create mode 100644 cli/packages/contentstack-utilities/messages/config.json create mode 100644 cli/packages/contentstack-utilities/messages/core.json create mode 100644 cli/packages/contentstack-utilities/package.json create mode 100644 cli/packages/contentstack-utilities/src/add-locale.ts create mode 100644 cli/packages/contentstack-utilities/src/auth-handler.ts create mode 100644 cli/packages/contentstack-utilities/src/cli-error.ts create mode 100644 cli/packages/contentstack-utilities/src/cli-ux.ts create mode 100644 cli/packages/contentstack-utilities/src/config-handler.ts create mode 100644 cli/packages/contentstack-utilities/src/contentstack-management-sdk.ts create mode 100644 cli/packages/contentstack-utilities/src/contentstack-marketplace-sdk.ts create mode 100644 cli/packages/contentstack-utilities/src/date-time.ts create mode 100644 cli/packages/contentstack-utilities/src/encrypter.ts create mode 100644 cli/packages/contentstack-utilities/src/flag-deprecation-check.ts create mode 100644 cli/packages/contentstack-utilities/src/fs-utility/core.ts create mode 100644 cli/packages/contentstack-utilities/src/fs-utility/helper.ts create mode 100644 cli/packages/contentstack-utilities/src/fs-utility/index.ts create mode 100644 cli/packages/contentstack-utilities/src/fs-utility/types.ts create mode 100644 cli/packages/contentstack-utilities/src/helpers.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/base-client-decorator.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/client-interface.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/client.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/http-client-decorator.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/http-response.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/index.ts create mode 100644 cli/packages/contentstack-utilities/src/http-client/oauth-decorator.ts create mode 100644 cli/packages/contentstack-utilities/src/index.ts create mode 100644 cli/packages/contentstack-utilities/src/inquirer-table-prompt.ts create mode 100644 cli/packages/contentstack-utilities/src/interfaces/index.ts create mode 100644 cli/packages/contentstack-utilities/src/logger.ts create mode 100644 cli/packages/contentstack-utilities/src/message-handler.ts create mode 100644 cli/packages/contentstack-utilities/src/path-validator.ts create mode 100644 cli/packages/contentstack-utilities/test/helpers/init.js create mode 100644 cli/packages/contentstack-utilities/test/tsconfig.json create mode 100644 cli/packages/contentstack-utilities/test/unit/auth-handler.test.ts create mode 100644 cli/packages/contentstack-utilities/test/unit/config.json create mode 100644 cli/packages/contentstack-utilities/test/unit/contentstack-marketplace-sdk.test.ts create mode 100644 cli/packages/contentstack-utilities/test/unit/helper.test.ts create mode 100644 cli/packages/contentstack-utilities/tsconfig.json create mode 100644 cli/packages/contentstack/.eslintignore create mode 100644 cli/packages/contentstack/.eslintrc create mode 100644 cli/packages/contentstack/.gitignore create mode 100644 cli/packages/contentstack/.mocharc.json create mode 100644 cli/packages/contentstack/.nycrc.json create mode 100644 cli/packages/contentstack/.prettierrc create mode 100644 cli/packages/contentstack/LICENSE create mode 100644 cli/packages/contentstack/README.md create mode 100644 cli/packages/contentstack/branches.json create mode 100644 cli/packages/contentstack/messages/index.json create mode 100755 cli/packages/contentstack/package.json create mode 100644 cli/packages/contentstack/src/config/index.ts create mode 100644 cli/packages/contentstack/src/help.ts create mode 100644 cli/packages/contentstack/src/hooks/init/context-init.ts create mode 100644 cli/packages/contentstack/src/hooks/init/utils-init.ts create mode 100644 cli/packages/contentstack/src/hooks/prerun/auth-guard.ts create mode 100644 cli/packages/contentstack/src/hooks/prerun/command-deprecation-check.ts create mode 100644 cli/packages/contentstack/src/index.ts create mode 100644 cli/packages/contentstack/src/interfaces/index.ts create mode 100644 cli/packages/contentstack/src/utils/context-handler.ts create mode 100644 cli/packages/contentstack/src/utils/index.ts create mode 100644 cli/packages/contentstack/test/helpers/init.js create mode 100644 cli/packages/contentstack/test/tsconfig.json create mode 100644 cli/packages/contentstack/test/utils.test.ts create mode 100644 cli/packages/contentstack/tsconfig.json create mode 100644 cli/pnpm-lock.yaml create mode 100644 cli/pnpm-workspace.yaml diff --git a/.gitignore b/.gitignore index d69aec3b1..0003c8827 100644 --- a/.gitignore +++ b/.gitignore @@ -187,7 +187,7 @@ PublishScripts/ # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* +# **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed @@ -349,6 +349,7 @@ MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ + upload-api/node_modules upload-api/build package-lock.json diff --git a/cli/.gitignore b/cli/.gitignore new file mode 100644 index 000000000..5db4308bd --- /dev/null +++ b/cli/.gitignore @@ -0,0 +1,21 @@ +node_modules +.todo +.env +.dccache +logs +contents +lerna-debug.log +.DS_Store +contentTest +build +_backup* +oclif.manifest.json +.vscode +.nyc_output +contentstack-cli-logs +packages/**/package-lock.json +.dccache +yarn.lock +contents-* +*.http +*.todo diff --git a/cli/.npmrc b/cli/.npmrc new file mode 100644 index 000000000..a0134a1ab --- /dev/null +++ b/cli/.npmrc @@ -0,0 +1 @@ +# shamefully-hoist=true \ No newline at end of file diff --git a/cli/.prettierignore b/cli/.prettierignore new file mode 100644 index 000000000..70988e213 --- /dev/null +++ b/cli/.prettierignore @@ -0,0 +1 @@ +**/README.md \ No newline at end of file diff --git a/cli/.prettierrc b/cli/.prettierrc new file mode 100644 index 000000000..ba93fc77d --- /dev/null +++ b/cli/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "trailingComma": "all", + "singleQuote": true, + "printWidth": 120, + "tabWidth": 2 +} \ No newline at end of file diff --git a/cli/.talismanrc b/cli/.talismanrc new file mode 100644 index 000000000..ed3ff8da4 --- /dev/null +++ b/cli/.talismanrc @@ -0,0 +1,112 @@ +fileignoreconfig: +- filename: packages/contentstack-export/.env + checksum: b057ae11234ac9411fe5dfa54ac3b029a71db51b4c334dce8677ab6fc1e41ecf +- filename: packages/contentstack-export/test/integration/environments.test.js + checksum: fb3760705545f4d672efcd86640441ba6ddc42b69ecf1aef2db9f6c9fd545aa3 +- filename: packages/contentstack-import/.env.sample + checksum: 0d6b520e59241f40e3999047dbf308905b0ce0c933865cac8f3453f464d6ddc1 +- filename: packages/contentstack-import/test/integration/auth-token-modules/environments.test.js + checksum: f2f4e81e754a37d597bf7d432c397f19c10204dd253f427f9b633147ef8b4fa0 +- filename: packages/contentstack-import/test/integration/environments.test.js + checksum: 0f66f696dbb0bd328532398a559df0e4eb1b4e395e5457cd1d55761f55fa9d4b +- filename: packages/contentstack-export/test/integration/clean-up.test.js + checksum: 51d9127d98972ba890d77a3ce25e2e3afc5963e9547bcd96648af0daf42e5d91 +- filename: packages/contentstack-export/test/integration/assets.test.js + checksum: b0551e2667693d9800ea37873a018e74a9de34d00e888a5c77bb25f237d0390a +- filename: packages/contentstack-export/test/integration/content-types.test.js + checksum: e546611b8ca3b91eef3cdcf0def7a407706dbfa328dfab75298adc5e99cd9126 +- filename: packages/contentstack-export/test/integration/init.test.js + checksum: acf2f842960d0ac14b8ea7dfe29e921aca1ffddd814520526c5a527ed7c207e9 +- filename: packages/contentstack-export/test/integration/entries.test.js + checksum: 6d79a28d9fe40b197b9aba0c2b175c5bac2719330e36c4029efcfd99c0b753bc +- filename: packages/contentstack-export/test/integration/extensions.test.js + checksum: 12c729d89a44961ea1291e45d5b35446d298770c7529eef1b54e9a381a5c0b95 +- filename: packages/contentstack-export/test/integration/custom-roles.test.js + checksum: 8d55673098b48885707c1e6c76712cce2b3f4290b701e47b06b3f19c97cd9cce +- filename: packages/contentstack-export/test/integration/labels.test.js + checksum: c222ffab43134f6a946ddd1299cfb51a5814e4b2973cd3f46c7bafc5e54deeb8 +- filename: packages/contentstack-export/test/integration/locales.test.js + checksum: 09704b368fc294d272ec534057f255be7f2163dccf7c0fb633eab2c90747f73b +- filename: packages/contentstack-export/test/integration/global-fields.test.js + checksum: 88916475ed109bf556164a061907c1458c8732ff84a7ac799b25d1818b684ce2 +- filename: packages/contentstack-export/test/integration/marketplace-apps.test.js + checksum: 44c0bec62c7a6595684ade6fbf345b86a4e2ba62123a5d1c5efa87d798fb3b3e +- filename: packages/contentstack-export/test/integration/webhooks.test.js + checksum: af5d0f6f6d6f5a5e57dc9dd4c9a6415cc6f87ea94c523a4456292204cf94df7d +- filename: packages/contentstack-import/test/integration/locales.test.js + checksum: 535c19c2f72d335df20dd6c39beecd7791af0e931cfb3c3bfb9b32897ba9984f +- filename: packages/contentstack-import/test/integration/management-token.test.js + checksum: 38f4a5015e525d13b4782fbeff726103b30fc718d5b3e38f544310aec9b442b7 +- filename: packages/contentstack-export/test/integration/workflows.test.js + checksum: fc86976f89c6d5d51943929fcafc030560fca2a868b742e43f64cde25bf77ad9 +- filename: packages/contentstack-export/test/integration/utils/helper.js + checksum: f187f9f5b0f6b3ceb6c22f0ec93d08c68d38aff87a49c1de8803792eadd8ba8f +- filename: packages/contentstack-import/test/integration/webhooks.test.js + checksum: 172adffdde8575609a7782b3374d071bd4ee11774b4019beded0ea1a97900c42 +- filename: packages/contentstack-utilities/types/index.d.ts + checksum: aed7069f6bff928bcdf84c773ef33e883db89d768f83b791d430eaff543ba33b +- filename: packages/contentstack-import/test/integration/workflows.test.js + checksum: 9c37be03cad2630706df1199350e17bbbadba19c63d3736e25e3d32d2ec89c60 +- filename: packages/contentstack-import/test/integration/utils/helper.js + checksum: eed26f2fb07b3369dc8e474f9fbe45dd4f4aa60f63ec7b779e6061a863e9ea17 +- filename: packages/contentstack-import/test/integration/auth-token-modules/assets.test.js + checksum: 5502c031c4d4a024fccf4fb1289d5983c27c1972629f8adc136bc6d33d11bdbc +- filename: packages/contentstack-import/test/integration/assets.test.js + checksum: 547e601910f8eeb094e51425a881af6bb59cb18a23f6dad16c79c1294e2182cd +- filename: packages/contentstack-import/test/integration/auth-token-modules/content-types.test.js + checksum: 022b6fc5fb5a2044c42d82bc51d83ab2b3cb315cf402dc223f2ea0a7a1b81cc9 +- filename: packages/contentstack-import/test/integration/auth-token-modules/custom-roles.test.js + checksum: 9c973633d4927ffcbe45712760d32c4299d5731376dff6b8335c745fef4ce307 +- filename: packages/contentstack-import/test/integration/auth-token-modules/entries.test.js + checksum: 11a5fbd92e17f064b55989c4c5c80d6144f1e0348c1b32c899fe92d72dfdd437 +- filename: packages/contentstack-import/test/integration/content-types.test.js + checksum: a2f426ff6f0e11e8a56c6cb85ff9e78a1db717506dc59ccba86730bdbdff7fc0 +- filename: packages/contentstack-import/test/integration/extensions.test.js + checksum: 1cb29b60cb629372a782a3f19fdb26f29563e99c0e571e24bd4f81f1655ef8c5 +- filename: packages/contentstack-import/test/integration/auth-token-modules/extensions.test.js + checksum: 901e5e702103056c503176cdd8366f83d0720128a72145188401d13c312d995c +- filename: packages/contentstack-import/test/integration/entries.test.js + checksum: 9058a902d097577734fd658e41d3e5c3383cc7891a6efc76614a3d7cba287c09 +- filename: packages/contentstack-import/test/integration/auth-token-modules/global-fields.test.js + checksum: 546cb9cd32bcda685f81b0b20263aa589ac69684fd6f1a9423e25f0856d0f9f7 +- filename: packages/contentstack-import/test/integration/auth-token-modules/workflows.test.js + checksum: 69d6115078c805ea933d815d6032de843618497ca1281bb24c486b2e95002f5c +- filename: packages/contentstack-import/test/integration/clean-up.test.js + checksum: 827dc2102b03b4c1a0ef77fa12b821ed69e549f360a35bcb6aa4010d3fbe4cf0 +- filename: packages/contentstack-import/test/integration/init.test.js + checksum: acad0ab08cfd3a6ceb7569fdce23586ddb36249e3597da8970a8c9ebe68a3500 +- filename: packages/contentstack-import/test/integration/custom-roles.test.js + checksum: 694056f3b237e31b54745297f46e7b1c363377d1868572b109588963f6be2c9b +- filename: packages/contentstack-import/test/integration/auth-token-modules/locales.test.js + checksum: 142276d6e683c11d6c68ba212ab9dc8f0ba74175d7e4b914266e888770fdd70d +- filename: packages/contentstack-import/test/integration/auth-token.test.js + checksum: 1d9e3c40d10b8f0ebc117c3b8a5bd3a4616472ff5ebbeb19b5a5cc0ba90a829b +- filename: packages/contentstack-import/test/integration/global-fields.test.js + checksum: 1c1f05989f22d06b600fba7456c1935a385997292c770d573165b9a07e1a3b8a +- filename: packages/contentstack-import/test/integration/auth-token-modules/webhooks.test.js + checksum: f41c4c354482293e4d6e52923d451266b150ba675e61681e21ba83ebf5dd8382 +- filename: pnpm-lock.yaml + checksum: 8bc914084e311432154f0e3bd05e2bbb60516460e09b9f8a6356c69d335b38b2 +- filename: package-lock.json + checksum: 64cca4648257efc253c34babd3d857eadc2e4a42c8e84959f2005ec4dae0ed8a +- filename: packages/contentstack-launch/src/commands/launch/environments.ts + checksum: a9f5fc3fad1915ca8812f1159c4019b957db59f7b4c8e2da0d214e45b8835ef7 +- filename: packages/contentstack-launch/tsconfig.tsbuildinfo + checksum: 0c363e5b14b8e5c3b696d81aeeac4b8ae3cf98bbe255d90600c4c1f4757f33a2 +- filename: packages/contentstack-launch/src/adapters/file-upload.ts + checksum: e17a1112b724b51ce3e3c4a1eed19c4f84b5c2f9cb70a9a49c075ed08f2fef97 +- filename: packages/contentstack-launch/src/adapters/github.ts + checksum: b82c72f8d1dc52dc099075905b038cea23e3547edcc2938eefcac7129c0656a4 +- filename: packages/contentstack-launch/src/commands/launch/base-command.ts + checksum: b3cafb6f98c27abf4024639a3ca029861de8f80789dc98754dd694500782d968 +- filename: packages/contentstack-launch/src/adapters/base-class.ts + checksum: d95e179bf489e552faa4d6cebb05473a2f92ceaccb9284a429ebf5ab61ec5ca0 +- filename: packages/contentstack-launch/src/util/cloud-function/errors/cloud-function.errors.ts + checksum: e2da74b8b0f25ff58639aab329da77b3408838136f5bcd16c671bc113057a036 +- filename: packages/contentstack-utilities/src/auth-handler.ts + checksum: b1f05a05bd25543ba3bbd9941b0d498e3291bf320574d9676f154716530fc552 +- filename: packages/contentstack-utilities/src/config-handler.ts + checksum: e345a745f027c76081df71e4fe9872c1f4adac076689b036e195b84041807b59 +- filename: packages/contentstack-launch/src/util/create-git-meta.ts + checksum: 8cbd32dbbd2989c7c082f8a0b7615916125d211bce25531e9a882b8ebd5674af +version: "" \ No newline at end of file diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md new file mode 100644 index 000000000..9b83054c6 --- /dev/null +++ b/cli/CHANGELOG.md @@ -0,0 +1,3 @@ +# Changelog + +Please refer to the Contentstack Command-line Interface release notes [here](https://www.contentstack.com/docs/developers/cli/cli-changelog). diff --git a/cli/CODEOWNERS b/cli/CODEOWNERS new file mode 100644 index 000000000..07739234e --- /dev/null +++ b/cli/CODEOWNERS @@ -0,0 +1 @@ +* @contentstack/security-admin \ No newline at end of file diff --git a/cli/LICENSE b/cli/LICENSE new file mode 100644 index 000000000..ffb4ad010 --- /dev/null +++ b/cli/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Contentstack + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cli/README.md b/cli/README.md new file mode 100644 index 000000000..60eca7d5e --- /dev/null +++ b/cli/README.md @@ -0,0 +1,57 @@ +# Contentstack CLI + + +Contentstack is a headless CMS with an API-first approach that puts content at the centre. It is designed to simplify the process of publication by separating code from content. + +CLI supports content management scripts through which you can perform the following tasks: + +- Bulk publish content +- Export content +- Import content +- Clone Stack +- Seed Stack from GitHub +- Perform Launch operations +- Migrate content +- Migrate HTML RTE to JSON RTE content +- Change Master Locale +- Use Bootstrap plugin +- Use Tsgen plugin + + +## Installing CLI +### Prerequisites +Contentstack account +Node.js version 16 or above + +### Installation +To install CLI on your system, run the below command in your terminal: + +``` +npm install -g @contentstack/cli +``` + +To verify the installation, run `csdx` in the command window. + +## Usage +After the successful installation of CLI, use the `--help` parameter to display the help section of the CLI. You can even combine this parameter with a specific command to get the help section of that command. + +```shell +$ csdx --help +``` + +## Namespaces +**auth**: To perform [authentication-related](/packages/contentstack-auth) activities + +**cm**: To perform content management activities such as [bulk publish](/packages/contentstack-bulk-publish), [import](/packages/contentstack-import), and [export](/packages/contentstack-export), [export-to-csv] (/packages/contentstack-export-to-csv), [seed] (/packages/contentstack-seed) + +**help**: To list the helpful commands in CLI + +**config**: To set regions and customize them + +## Documentation + +To get a more detailed documentation for every command, visit the [CLI section](https://www.contentstack.com/docs/developers/cli) in our docs. + +## Useful Plugins + +- [Generate TypeScript typings from a Stack](https://github.com/Contentstack-Solutions/contentstack-cli-tsgen) diff --git a/cli/SECURITY.md b/cli/SECURITY.md new file mode 100644 index 000000000..1f44e3424 --- /dev/null +++ b/cli/SECURITY.md @@ -0,0 +1,27 @@ +## Security + +Contentstack takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations. + +If you believe you have found a security vulnerability in any Contentstack-owned repository, please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Send email to [security@contentstack.com](mailto:security@contentstack.com). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + +- Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) +- Full paths of source file(s) related to the manifestation of the issue +- The location of the affected source code (tag/branch/commit or direct URL) +- Any special configuration required to reproduce the issue +- Step-by-step instructions to reproduce the issue +- Proof-of-concept or exploit code (if possible) +- Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +[https://www.contentstack.com/trust/](https://www.contentstack.com/trust/) diff --git a/cli/install.sh b/cli/install.sh new file mode 100755 index 000000000..ca06650e7 --- /dev/null +++ b/cli/install.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +echo 'Installing Contentstack CLI' +npm run setup-repo || { echo -e '\e[31mFailed to install root dependencies.' && exit 1; } +echo 'Installtion, Done!!!' +cd packages/contentstack || { echo -e '\e[31mCould not found the working directory.' && exit 1; } +./bin/run --help \ No newline at end of file diff --git a/cli/package.json b/cli/package.json new file mode 100755 index 000000000..c3fe63cbc --- /dev/null +++ b/cli/package.json @@ -0,0 +1,26 @@ +{ + "name": "csdx", + "version": "1.0.0", + "devDependencies": { + "pnpm": "^7.33.7" + }, + "engines": { + "node": ">=18.0.0" + }, + "private": true, + "scripts": { + "cache:clear": "pnpm store prune", + "clean": "pnpm --filter './packages/*' -w clean", + "bootstrap": "pnpm install --no-frozen-lockfile", + "prepack": "pnpm --filter \"./packages/*\" -w prepack", + "package-lock-only": "npm i --package-lock-only --workspaces", + "setup-repo-old": "npm i && pnpm package-lock-only && pnpm clean && pnpm install --no-frozen-lockfile && pnpm prepack", + "clean-repo": "rm -rf ./package-lock.json ./node_modules ./packages/**/node_modules ./packages/**/.nyc_output ./packages/**/package-lock.json", + "preinstall-clean": "npm run clean-repo && npm cache clean --force && npx pnpm store prune", + "setup-repo": "npm run preinstall-clean && npm i && npm run package-lock-only && npm run clean && pnpm install --no-frozen-lockfile && npm run prepack" + }, + "license": "MIT", + "workspaces": [ + "packages/*" + ] +} diff --git a/cli/packages/contentstack-audit/.eslintignore b/cli/packages/contentstack-audit/.eslintignore new file mode 100644 index 000000000..9b1c8b133 --- /dev/null +++ b/cli/packages/contentstack-audit/.eslintignore @@ -0,0 +1 @@ +/dist diff --git a/cli/packages/contentstack-audit/.eslintrc b/cli/packages/contentstack-audit/.eslintrc new file mode 100644 index 000000000..7b846193c --- /dev/null +++ b/cli/packages/contentstack-audit/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": [ + "oclif", + "oclif-typescript" + ] +} diff --git a/cli/packages/contentstack-audit/.gitignore b/cli/packages/contentstack-audit/.gitignore new file mode 100644 index 000000000..74daa1ef5 --- /dev/null +++ b/cli/packages/contentstack-audit/.gitignore @@ -0,0 +1,21 @@ +*-debug.log +*-error.log +/.nyc_output +/dist +/lib +/package-lock.json +/tmp +/yarn.lock +node_modules +oclif.manifest.json +.env +*.log +tsconfig.tsbuildinfo +dependabot.yml +.vscode +*.todo +/bkp +.editorconfig +oclif.manifest.json +*.env +.vscode/ \ No newline at end of file diff --git a/cli/packages/contentstack-audit/.mocharc.json b/cli/packages/contentstack-audit/.mocharc.json new file mode 100644 index 000000000..4a09d1446 --- /dev/null +++ b/cli/packages/contentstack-audit/.mocharc.json @@ -0,0 +1,12 @@ +{ + "require": [ + "test/helpers/init.js", + "ts-node/register" + ], + "watch-extensions": [ + "ts" + ], + "recursive": true, + "reporter": "spec", + "timeout": 60000 +} diff --git a/cli/packages/contentstack-audit/LICENSE b/cli/packages/contentstack-audit/LICENSE new file mode 100644 index 000000000..f99e9ee58 --- /dev/null +++ b/cli/packages/contentstack-audit/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Contentstack + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/cli/packages/contentstack-audit/README.md b/cli/packages/contentstack-audit/README.md new file mode 100644 index 000000000..23d84184f --- /dev/null +++ b/cli/packages/contentstack-audit/README.md @@ -0,0 +1,537 @@ + + + +# @contentstack/cli-audit + +Audit plugin + +## How to install this plugin + +```shell +$ csdx plugins:install @contentstack/cli-audit +``` + +## How to use this plugin + + +```sh-session +$ npm install -g @contentstack/cli-audit +$ csdx COMMAND +running command... +$ csdx (--version|-v) +@contentstack/cli-audit/1.6.5 darwin-arm64 node-v21.6.1 +$ csdx --help [COMMAND] +USAGE + $ csdx COMMAND +... +``` + + +# Commands + + +* [`csdx audit`](#csdx-audit) +* [`csdx audit:fix`](#csdx-auditfix) +* [`csdx cm:stacks:audit`](#csdx-cmstacksaudit) +* [`csdx cm:stacks:audit:fix`](#csdx-cmstacksauditfix) +* [`csdx help [COMMANDS]`](#csdx-help-commands) +* [`csdx plugins`](#csdx-plugins) +* [`csdx plugins:add PLUGIN`](#csdx-pluginsadd-plugin) +* [`csdx plugins:inspect PLUGIN...`](#csdx-pluginsinspect-plugin) +* [`csdx plugins:install PLUGIN`](#csdx-pluginsinstall-plugin) +* [`csdx plugins:link PATH`](#csdx-pluginslink-path) +* [`csdx plugins:remove [PLUGIN]`](#csdx-pluginsremove-plugin) +* [`csdx plugins:reset`](#csdx-pluginsreset) +* [`csdx plugins:uninstall [PLUGIN]`](#csdx-pluginsuninstall-plugin) +* [`csdx plugins:unlink [PLUGIN]`](#csdx-pluginsunlink-plugin) +* [`csdx plugins:update`](#csdx-pluginsupdate) + +## `csdx audit` + +Perform audits and find possible errors in the exported Contentstack data + +``` +USAGE + $ csdx audit [--report-path ] [--modules content-types|global-fields|entries|extensions|workflows] + [--columns | ] [--sort ] [--filter ] [--csv | --no-truncate] + +FLAGS + --modules=