contensis-cli 1.0.12-beta.4 → 1.0.12-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/get.js +1 -1
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/globalOptions.js +8 -1
- package/dist/commands/globalOptions.js.map +2 -2
- package/dist/commands/import.js +9 -6
- package/dist/commands/import.js.map +2 -2
- package/dist/services/ContensisCliService.js +13 -15
- package/dist/services/ContensisCliService.js.map +2 -2
- package/dist/util/console.printer.js +9 -11
- package/dist/util/console.printer.js.map +2 -2
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +2 -2
- package/src/commands/get.ts +1 -1
- package/src/commands/globalOptions.ts +8 -0
- package/src/commands/import.ts +16 -4
- package/src/services/ContensisCliService.ts +10 -11
- package/src/util/console.printer.ts +23 -19
- package/src/version.ts +1 -1
|
@@ -240,22 +240,20 @@ const printNodesMigrateResult = ({ log, messages, currentProject }, migrateResul
|
|
|
240
240
|
if (showAll || showChanged)
|
|
241
241
|
console.log(``);
|
|
242
242
|
for (const [projectId, counts] of Object.entries(migrateResult.nodes || {})) {
|
|
243
|
-
log.
|
|
244
|
-
|
|
245
|
-
log.warningText(currentProject)
|
|
246
|
-
)}`}`
|
|
247
|
-
);
|
|
243
|
+
const importTitle = action === "delete" ? `Delete from project ${log.warningText(currentProject)}` : `Import ${projectId && projectId !== "null" ? `from project ${log.highlightText(projectId)} ` : ""}to ${log.boldText(log.warningText(currentProject))}`;
|
|
244
|
+
log.help(importTitle);
|
|
248
245
|
const migrateStatusAndCount = migrateResult.nodesToMigrate[currentProject];
|
|
249
246
|
const existingCount = ((_b = (_a = migrateResult.existing) == null ? void 0 : _a[currentProject]) == null ? void 0 : _b.totalCount) || 0;
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
);
|
|
253
|
-
const
|
|
254
|
-
const changedPercentage = (noChangeOrTotalEntriesCount / counts.totalCount * 100).toFixed(0);
|
|
247
|
+
const totalCount = Object.keys(migrateResult.nodesToMigrate.nodeIds).length;
|
|
248
|
+
const existingPercent = counts.totalCount ? (existingCount / totalCount * 100).toFixed(0) : "0";
|
|
249
|
+
const noChangeCount = (migrateStatusAndCount == null ? void 0 : migrateStatusAndCount["no change"]) || 0;
|
|
250
|
+
const changedPercentage = counts.totalCount ? (noChangeCount / totalCount * 100).toFixed(0) : "0";
|
|
255
251
|
const existingColor = existingPercent === "0" || action === "delete" ? log.warningText : log.infoText;
|
|
256
252
|
const changedColor = changedPercentage === "100" ? log.successText : log.warningText;
|
|
257
253
|
console.log(
|
|
258
|
-
` - ${log.highlightText(
|
|
254
|
+
` - ${log.highlightText(
|
|
255
|
+
`totalCount: ${migrateStatusAndCount.totalCount}`
|
|
256
|
+
)}${changedPercentage === "100" ? "" : existingColor(` [existing: ${`${existingPercent}%`}]`)}${existingPercent === "0" ? "" : changedColor(
|
|
259
257
|
` ${changedPercentage === "100" ? "up to date" : `[needs update: ${100 - Number(changedPercentage)}%]`}`
|
|
260
258
|
)}`
|
|
261
259
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/util/console.printer.ts"],
|
|
4
|
-
"sourcesContent": ["import { Node } from 'contensis-delivery-api/lib/models';\nimport dayjs from 'dayjs';\nimport {\n BlockVersion,\n EntriesResult,\n MigrateModelsResult,\n MigrateStatus,\n NodesResult,\n ProjectNodesToMigrate,\n} from 'migratortron';\nimport ContensisCli from '~/services/ContensisCliService';\nimport { Logger } from './logger';\n\nconst formatDate = (date: Date | string, format = 'DD/MM/YYYY HH:mm') =>\n dayjs(date).format(format);\n\nexport const printBlockVersion = (\n { log, messages }: ContensisCli,\n block: BlockVersion,\n printOptions = {\n showSource: true,\n showStatus: true,\n showStaticPaths: true,\n showImage: true,\n }\n) => {\n console.log(\n ` ${log.standardText(`v${block.version.versionNo}`)} ${block.id}`\n );\n console.log(\n ` state: ${messages.blocks.runningStatus(\n block.status.broken ? 'broken' : block.status.running.global\n )}`\n );\n console.log(\n ` released: ${log.infoText(\n block.version.released\n ? `[${formatDate(block.version.released)}] ${block.version.releasedBy}`\n : 'no'\n )}`\n );\n if (block.version.madeLive)\n console.log(\n ` live: ${log.infoText(\n `[${formatDate(block.version.madeLive)}] ${block.version.madeLiveBy}`\n )}`\n );\n if (printOptions.showStatus) {\n console.log(` status:`);\n console.log(` deployment: ${log.infoText(block.status.deployment)}`);\n console.log(` workflow: ${log.infoText(block.status.workflow)}`);\n console.log(\n ` running status: ${messages.blocks.runningStatus(\n block.status.running.global\n )}`\n );\n console.log(` datacentres:`);\n console.log(\n ` hq: ${messages.blocks.runningStatus(\n block.status.running.dataCenters.hq\n )}`\n );\n console.log(\n ` london: ${messages.blocks.runningStatus(\n block.status.running.dataCenters.london\n )}`\n );\n console.log(\n ` manchester: ${messages.blocks.runningStatus(\n block.status.running.dataCenters.manchester\n )}`\n );\n }\n if (printOptions.showSource) {\n console.log(` source:`);\n console.log(` commit: ${log.helpText(block.source.commit.id)}`);\n console.log(\n ` message: ${log.infoText(\n block.source.commit.message\n ?.replaceAll('\\n', '\\\\n')\n .replaceAll('\\\\n\\\\n', '\\\\n')\n .replaceAll('\\\\n', '; ')\n )}`\n );\n console.log(\n ` committed: ${log.infoText(\n `[${formatDate(block.source.commit.dateTime)}] ${\n block.source.commit.authorEmail\n }`\n )}`\n );\n console.log(\n ` pushed: ${log.infoText(\n `[${formatDate(block.version.pushed)}] ${block.version.pushedBy}`\n )}`\n );\n console.log(` ${log.infoText(block.source.commit.commitUrl)}`);\n }\n if (printOptions.showImage) {\n console.log(` image:`);\n console.log(` uri: ${log.infoText(block.image.uri)}`);\n console.log(` tag: ${log.helpText(block.image.tag)}`);\n }\n if (printOptions.showStaticPaths) {\n if (block.staticPaths?.length) {\n console.log(` static paths:`);\n for (const path of block.staticPaths) console.log(` - ${path}`);\n }\n }\n if (block.stagingUrl)\n console.log(` staging url: ${log.infoText(block.stagingUrl)}`);\n console.log('');\n};\n\nexport const printEntriesMigrateResult = (\n { log, messages, currentProject }: ContensisCli,\n migrateResult: EntriesResult,\n {\n action = 'import',\n showDiff = false,\n showAll = false,\n showChanged = false,\n }: {\n action?: 'import' | 'delete';\n showDiff?: boolean;\n showAll?: boolean;\n showChanged?: boolean;\n } = {}\n) => {\n console.log(``);\n\n for (const [contentTypeId, entryRes] of Object.entries(\n migrateResult.entriesToMigrate.entryIds\n ) as [string, any]) {\n for (const [originalId, entryStatus] of Object.entries(entryRes) as [\n string,\n any\n ][]) {\n if (\n showAll ||\n (showChanged &&\n (\n Object.entries(\n Object.entries(entryStatus[currentProject])[0]\n )[1][1] as any\n ).status !== 'no change')\n ) {\n console.log(\n log.infoText(\n `${originalId} ${Object.entries(entryStatus || {})\n .filter(x => x[0] !== 'entryTitle')\n .map(([projectId, projectStatus]) => {\n const [targetGuid, { status }] = (Object.entries(\n projectStatus || {}\n )?.[0] as [string, { status: MigrateStatus }]) || [\n '',\n { x: { status: undefined } },\n ];\n return `${messages.migrate.status(status)(`${status}`)}${\n targetGuid !== originalId ? `-> ${targetGuid}` : ''\n }`;\n })}`\n ) + ` ${log.helpText(contentTypeId)} ${entryStatus.entryTitle}`\n );\n\n for (const [projectId, projectStatus] of Object.entries(\n entryStatus\n ).filter(([key]) => key !== 'entryTitle') as [string, any][]) {\n const [targetGuid, { error, diff, status }] = Object.entries(\n projectStatus\n )[0] as [string, any];\n if (error) log.error(error);\n if (diff && showDiff) {\n console.log(\n ` ${log.highlightText(`diff:`)} ${log.infoText(\n highlightDiffText(diff)\n )}\\n`\n );\n }\n }\n }\n }\n }\n if (showAll || showChanged) console.log(``);\n\n for (const [projectId, contentTypeCounts] of Object.entries(\n migrateResult.entries || {}\n ) as [string, any][]) {\n log.help(\n `${action} from project ${\n action === 'delete'\n ? log.warningText(currentProject)\n : `${log.highlightText(projectId)} to ${log.boldText(\n log.warningText(currentProject)\n )}`\n }`\n );\n for (const [contentTypeId, count] of Object.entries(contentTypeCounts) as [\n string,\n number\n ][]) {\n const isTotalCountRow = contentTypeId === 'totalCount';\n const migrateStatusAndCount =\n migrateResult.entriesToMigrate[currentProject][contentTypeId];\n const existingCount =\n migrateResult.existing?.[currentProject]?.[contentTypeId] || 0;\n const existingPercent = ((existingCount / count) * 100).toFixed(0);\n const noChangeOrTotalEntriesCount =\n typeof migrateStatusAndCount !== 'number'\n ? migrateStatusAndCount?.['no change'] || 0\n : migrateStatusAndCount;\n\n const changedPercentage = (\n (noChangeOrTotalEntriesCount / count) *\n 100\n ).toFixed(0);\n\n const existingColor =\n existingPercent === '0' || action === 'delete'\n ? log.warningText\n : log.infoText;\n\n const changedColor = isTotalCountRow\n ? log.helpText\n : changedPercentage === '100'\n ? log.successText\n : log.warningText;\n\n console.log(\n ` - ${\n isTotalCountRow\n ? log.highlightText(\n `${contentTypeId}: ${noChangeOrTotalEntriesCount}`\n )\n : `${contentTypeId}: ${log.helpText(count)}`\n }${\n changedPercentage === '100' || isTotalCountRow\n ? ''\n : existingColor(` [existing: ${`${existingPercent}%`}]`)\n }${\n existingPercent === '0' || (action === 'import' && isTotalCountRow)\n ? ''\n : changedColor(\n ` ${\n isTotalCountRow\n ? `[to ${action}: ${noChangeOrTotalEntriesCount}]`\n : changedPercentage === '100'\n ? 'up to date'\n : `[needs update: ${100 - Number(changedPercentage)}%]`\n }`\n )\n }`\n );\n }\n }\n if (migrateResult.errors?.length) {\n console.log(\n ` - ${log.errorText(`errors: ${migrateResult.errors.length}`)}\\n`\n );\n for (const error of migrateResult.errors)\n log.error(error.message, null, '');\n }\n};\n\nexport const printNodesMigrateResult = (\n { log, messages, currentProject }: ContensisCli,\n migrateResult: NodesResult,\n {\n action = 'import',\n showDiff = false,\n showAll = false,\n showChanged = false,\n }: {\n action?: 'import' | 'delete';\n showDiff?: boolean;\n showAll?: boolean;\n showChanged?: boolean;\n } = {}\n) => {\n console.log(``);\n\n for (const [originalId, migrateNodeId] of Object.entries(\n migrateResult.nodesToMigrate.nodeIds\n )) {\n if (showAll || (showChanged && migrateNodeId.status !== 'no change')) {\n console.log(\n log.infoText(\n `${originalId} ${`${messages.migrate.status(migrateNodeId.status)(\n `${migrateNodeId.status}`\n )}${\n migrateNodeId.id !== originalId ? `-> ${migrateNodeId.id}` : ''\n }`}`\n ) + ` ${log.helpText(migrateNodeId.path)} ${migrateNodeId.displayName}`\n );\n\n if (migrateNodeId.diff && showDiff)\n console.log(\n ` ${log.highlightText(`diff:`)} ${log.infoText(\n highlightDiffText(migrateNodeId.diff)\n )}\\n`\n );\n }\n }\n if (showAll || showChanged) console.log(``);\n\n for (const [projectId, counts] of Object.entries(migrateResult.nodes || {})) {\n log.help(\n `${action} from project ${\n action === 'delete'\n ? log.warningText(currentProject)\n : `${log.highlightText(projectId)} to ${log.boldText(\n log.warningText(currentProject)\n )}`\n }`\n );\n\n const migrateStatusAndCount = migrateResult.nodesToMigrate[\n currentProject\n ] as ProjectNodesToMigrate;\n\n const existingCount =\n migrateResult.existing?.[currentProject]?.totalCount || 0;\n const existingPercent = ((existingCount / counts.totalCount) * 100).toFixed(\n 0\n );\n const noChangeOrTotalEntriesCount =\n migrateStatusAndCount?.['no change'] || 0;\n const changedPercentage = (\n (noChangeOrTotalEntriesCount / counts.totalCount) *\n 100\n ).toFixed(0);\n\n const existingColor =\n existingPercent === '0' || action === 'delete'\n ? log.warningText\n : log.infoText;\n\n const changedColor =\n changedPercentage === '100' ? log.successText : log.warningText;\n\n console.log(\n ` - ${log.highlightText(`totalCount: ${counts.totalCount}`)}${\n changedPercentage === '100'\n ? ''\n : existingColor(` [existing: ${`${existingPercent}%`}]`)\n }${\n existingPercent === '0'\n ? ''\n : changedColor(\n ` ${\n changedPercentage === '100'\n ? 'up to date'\n : `[needs update: ${100 - Number(changedPercentage)}%]`\n }`\n )\n }`\n );\n }\n if (migrateResult.errors?.length) {\n console.log(\n ` - ${log.errorText(`errors: ${migrateResult.errors.length}`)}\\n`\n );\n for (const error of migrateResult.errors) {\n let inner = '';\n if (error.data?.[0]) {\n inner = `${error.data?.[0].Field}: ${error.data?.[0].Message}`;\n }\n log.error(`${error.message} ${inner}`, null, '');\n }\n }\n};\nconst highlightDiffText = (str: string) => {\n const addedRegex = new RegExp(/<<\\+>>(.*?)<<\\/\\+>>/, 'g');\n const removedRegex = new RegExp(/<<->>(.*?)<<\\/->>/, 'g');\n return str\n .replace(addedRegex, match => {\n return Logger.successText(\n match.replace(/<<\\+>>/g, '<+>').replace(/<<\\/\\+>>/g, '</+>')\n );\n })\n .replace(removedRegex, match => {\n return Logger.errorText(\n match.replace(/<<->>/g, '<->').replace(/<<\\/->>/g, '</->')\n );\n });\n};\n\nexport const printModelMigrationAnalysis = (\n { log, messages }: ContensisCli,\n result: any = {}\n) => {\n for (const [contentTypeId, model] of Object.entries(result) as [\n string,\n any\n ][]) {\n let mainOutput = log.standardText(` - ${contentTypeId}`);\n let extraOutput = '';\n let errorOutput = '';\n let diffOutput = '';\n for (const [key, details] of Object.entries(model) as [string, any][]) {\n if (key === 'dependencies') {\n extraOutput += log.infoText(\n ` references: [${details?.join(', ')}]\\n`\n );\n }\n if (key === 'dependencyOf') {\n extraOutput += log.infoText(\n ` required by: [${details?.join(', ')}]\\n`\n );\n }\n if (key === 'projects') {\n for (const [projectId, projectDetails] of Object.entries(details) as [\n string,\n any\n ][]) {\n mainOutput += log.infoText(\n ` [${messages.migrate.status(projectDetails.status)(\n `${projectId}: ${projectDetails.status}`\n )}] v${projectDetails.versionNo}`\n );\n if (projectDetails.diff)\n diffOutput += ` ${log.highlightText(`diff:`)} ${log.infoText(\n highlightDiffText(projectDetails.diff)\n )}\\n`;\n if (projectDetails.error)\n errorOutput += ` ${log.highlightText(\n `error::`\n )} ${log.errorText(projectDetails.error)}`;\n }\n }\n }\n console.log(mainOutput);\n if (extraOutput) {\n const search = '\\n';\n const replace = '';\n console.log(\n extraOutput.replace(\n new RegExp(search + '([^' + search + ']*)$'),\n replace + '$1'\n )\n );\n }\n if (diffOutput) console.log(diffOutput);\n if (errorOutput) console.log(errorOutput);\n }\n};\n\ntype MigrateResultSummary = MigrateModelsResult['']['contentTypes'];\ntype MigrateResultStatus = keyof MigrateResultSummary;\n\nexport const printModelMigrationResult = (\n { log, messages }: ContensisCli,\n result: MigrateResultSummary\n) => {\n for (const [status, ids] of Object.entries(result) as [\n MigrateResultStatus,\n string[]\n ][]) {\n if (ids?.length) {\n if (status === 'errors') {\n const errors: [string, MappedError][] = ids as any;\n log.raw(\n ` - ${status}: [ ${messages.migrate.models.result(status)(\n ids.map(id => id[0]).join(', ')\n )} ]\\n`\n );\n for (const [contentTypeId, error] of errors)\n log.error(\n `${log.highlightText(contentTypeId)}: ${error.message}`,\n error\n );\n } else\n log.raw(\n ` - ${status}: [ ${messages.migrate.models.result(status)(\n ids.join(', ')\n )} ]`\n );\n }\n }\n};\n\nexport const printNodeTreeOutput = (\n { log }: ContensisCli,\n root: Node | undefined\n) => {\n log.object({ ...root, children: undefined });\n log.raw('');\n log.info(\n `${log.highlightText('e')} = has entry; ${log.highlightText(\n 'c'\n )} = canonical; ${log.highlightText('m')} = include in menu`\n );\n log.line();\n\n const outputNode = (node: Node | any, spaces: string) =>\n `${node.entry ? log.highlightText('e') : log.infoText('-')}${\n node.isCanonical ? log.highlightText('c') : log.infoText('-')\n }${\n node.includeInMenu ? log.highlightText('m') : log.infoText('-')\n }${spaces}${\n node.isCanonical ? log.boldText(`/${node.slug}`) : `/${node.slug}`\n }${node.entry ? ` ${log.helpText(node.entry.sys.contentTypeId)}` : ''}${\n node.childCount ? ` +${node.childCount}` : ``\n } ${log.infoText(node.displayName)}`;\n\n const outputChildren = (root: Node | undefined, depth = 2) => {\n let str = '';\n for (const node of (root as any)?.children as Node[]) {\n str += `${outputNode(node, Array(depth + 1).join(' '))}\\n`;\n if ('children' in node) str += outputChildren(node, depth + 1);\n }\n return str;\n };\n\n const children = outputChildren(root);\n log.limits(\n `${outputNode(root, ' ')}${children ? `\\n${children}` : ''}`,\n 100\n );\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { Node } from 'contensis-delivery-api/lib/models';\nimport dayjs from 'dayjs';\nimport {\n BlockVersion,\n EntriesResult,\n MigrateModelsResult,\n MigrateStatus,\n NodesResult,\n ProjectNodesToMigrate,\n} from 'migratortron';\nimport ContensisCli from '~/services/ContensisCliService';\nimport { Logger } from './logger';\n\nconst formatDate = (date: Date | string, format = 'DD/MM/YYYY HH:mm') =>\n dayjs(date).format(format);\n\nexport const printBlockVersion = (\n { log, messages }: ContensisCli,\n block: BlockVersion,\n printOptions = {\n showSource: true,\n showStatus: true,\n showStaticPaths: true,\n showImage: true,\n }\n) => {\n console.log(\n ` ${log.standardText(`v${block.version.versionNo}`)} ${block.id}`\n );\n console.log(\n ` state: ${messages.blocks.runningStatus(\n block.status.broken ? 'broken' : block.status.running.global\n )}`\n );\n console.log(\n ` released: ${log.infoText(\n block.version.released\n ? `[${formatDate(block.version.released)}] ${block.version.releasedBy}`\n : 'no'\n )}`\n );\n if (block.version.madeLive)\n console.log(\n ` live: ${log.infoText(\n `[${formatDate(block.version.madeLive)}] ${block.version.madeLiveBy}`\n )}`\n );\n if (printOptions.showStatus) {\n console.log(` status:`);\n console.log(` deployment: ${log.infoText(block.status.deployment)}`);\n console.log(` workflow: ${log.infoText(block.status.workflow)}`);\n console.log(\n ` running status: ${messages.blocks.runningStatus(\n block.status.running.global\n )}`\n );\n console.log(` datacentres:`);\n console.log(\n ` hq: ${messages.blocks.runningStatus(\n block.status.running.dataCenters.hq\n )}`\n );\n console.log(\n ` london: ${messages.blocks.runningStatus(\n block.status.running.dataCenters.london\n )}`\n );\n console.log(\n ` manchester: ${messages.blocks.runningStatus(\n block.status.running.dataCenters.manchester\n )}`\n );\n }\n if (printOptions.showSource) {\n console.log(` source:`);\n console.log(` commit: ${log.helpText(block.source.commit.id)}`);\n console.log(\n ` message: ${log.infoText(\n block.source.commit.message\n ?.replaceAll('\\n', '\\\\n')\n .replaceAll('\\\\n\\\\n', '\\\\n')\n .replaceAll('\\\\n', '; ')\n )}`\n );\n console.log(\n ` committed: ${log.infoText(\n `[${formatDate(block.source.commit.dateTime)}] ${\n block.source.commit.authorEmail\n }`\n )}`\n );\n console.log(\n ` pushed: ${log.infoText(\n `[${formatDate(block.version.pushed)}] ${block.version.pushedBy}`\n )}`\n );\n console.log(` ${log.infoText(block.source.commit.commitUrl)}`);\n }\n if (printOptions.showImage) {\n console.log(` image:`);\n console.log(` uri: ${log.infoText(block.image.uri)}`);\n console.log(` tag: ${log.helpText(block.image.tag)}`);\n }\n if (printOptions.showStaticPaths) {\n if (block.staticPaths?.length) {\n console.log(` static paths:`);\n for (const path of block.staticPaths) console.log(` - ${path}`);\n }\n }\n if (block.stagingUrl)\n console.log(` staging url: ${log.infoText(block.stagingUrl)}`);\n console.log('');\n};\n\nexport const printEntriesMigrateResult = (\n { log, messages, currentProject }: ContensisCli,\n migrateResult: EntriesResult,\n {\n action = 'import',\n showDiff = false,\n showAll = false,\n showChanged = false,\n }: {\n action?: 'import' | 'delete';\n showDiff?: boolean;\n showAll?: boolean;\n showChanged?: boolean;\n } = {}\n) => {\n console.log(``);\n\n for (const [contentTypeId, entryRes] of Object.entries(\n migrateResult.entriesToMigrate.entryIds\n ) as [string, any]) {\n for (const [originalId, entryStatus] of Object.entries(entryRes) as [\n string,\n any\n ][]) {\n if (\n showAll ||\n (showChanged &&\n (\n Object.entries(\n Object.entries(entryStatus[currentProject])[0]\n )[1][1] as any\n ).status !== 'no change')\n ) {\n console.log(\n log.infoText(\n `${originalId} ${Object.entries(entryStatus || {})\n .filter(x => x[0] !== 'entryTitle')\n .map(([projectId, projectStatus]) => {\n const [targetGuid, { status }] = (Object.entries(\n projectStatus || {}\n )?.[0] as [string, { status: MigrateStatus }]) || [\n '',\n { x: { status: undefined } },\n ];\n return `${messages.migrate.status(status)(`${status}`)}${\n targetGuid !== originalId ? `-> ${targetGuid}` : ''\n }`;\n })}`\n ) + ` ${log.helpText(contentTypeId)} ${entryStatus.entryTitle}`\n );\n\n for (const [projectId, projectStatus] of Object.entries(\n entryStatus\n ).filter(([key]) => key !== 'entryTitle') as [string, any][]) {\n const [targetGuid, { error, diff, status }] = Object.entries(\n projectStatus\n )[0] as [string, any];\n if (error) log.error(error);\n if (diff && showDiff) {\n console.log(\n ` ${log.highlightText(`diff:`)} ${log.infoText(\n highlightDiffText(diff)\n )}\\n`\n );\n }\n }\n }\n }\n }\n if (showAll || showChanged) console.log(``);\n\n for (const [projectId, contentTypeCounts] of Object.entries(\n migrateResult.entries || {}\n ) as [string, any][]) {\n log.help(\n `${action} from project ${\n action === 'delete'\n ? log.warningText(currentProject)\n : `${log.highlightText(projectId)} to ${log.boldText(\n log.warningText(currentProject)\n )}`\n }`\n );\n for (const [contentTypeId, count] of Object.entries(contentTypeCounts) as [\n string,\n number\n ][]) {\n const isTotalCountRow = contentTypeId === 'totalCount';\n const migrateStatusAndCount =\n migrateResult.entriesToMigrate[currentProject][contentTypeId];\n const existingCount =\n migrateResult.existing?.[currentProject]?.[contentTypeId] || 0;\n const existingPercent = ((existingCount / count) * 100).toFixed(0);\n const noChangeOrTotalEntriesCount =\n typeof migrateStatusAndCount !== 'number'\n ? migrateStatusAndCount?.['no change'] || 0\n : migrateStatusAndCount;\n\n const changedPercentage = (\n (noChangeOrTotalEntriesCount / count) *\n 100\n ).toFixed(0);\n\n const existingColor =\n existingPercent === '0' || action === 'delete'\n ? log.warningText\n : log.infoText;\n\n const changedColor = isTotalCountRow\n ? log.helpText\n : changedPercentage === '100'\n ? log.successText\n : log.warningText;\n\n console.log(\n ` - ${\n isTotalCountRow\n ? log.highlightText(\n `${contentTypeId}: ${noChangeOrTotalEntriesCount}`\n )\n : `${contentTypeId}: ${log.helpText(count)}`\n }${\n changedPercentage === '100' || isTotalCountRow\n ? ''\n : existingColor(` [existing: ${`${existingPercent}%`}]`)\n }${\n existingPercent === '0' || (action === 'import' && isTotalCountRow)\n ? ''\n : changedColor(\n ` ${\n isTotalCountRow\n ? `[to ${action}: ${noChangeOrTotalEntriesCount}]`\n : changedPercentage === '100'\n ? 'up to date'\n : `[needs update: ${100 - Number(changedPercentage)}%]`\n }`\n )\n }`\n );\n }\n }\n if (migrateResult.errors?.length) {\n console.log(\n ` - ${log.errorText(`errors: ${migrateResult.errors.length}`)}\\n`\n );\n for (const error of migrateResult.errors)\n log.error(error.message, null, '');\n }\n};\n\nexport const printNodesMigrateResult = (\n { log, messages, currentProject }: ContensisCli,\n migrateResult: NodesResult,\n {\n action = 'import',\n showDiff = false,\n showAll = false,\n showChanged = false,\n }: {\n action?: 'import' | 'delete';\n showDiff?: boolean;\n showAll?: boolean;\n showChanged?: boolean;\n } = {}\n) => {\n console.log(``);\n\n for (const [originalId, migrateNodeId] of Object.entries(\n migrateResult.nodesToMigrate.nodeIds\n )) {\n if (showAll || (showChanged && migrateNodeId.status !== 'no change')) {\n console.log(\n log.infoText(\n `${originalId} ${`${messages.migrate.status(migrateNodeId.status)(\n `${migrateNodeId.status}`\n )}${\n migrateNodeId.id !== originalId ? `-> ${migrateNodeId.id}` : ''\n }`}`\n ) + ` ${log.helpText(migrateNodeId.path)} ${migrateNodeId.displayName}`\n );\n\n if (migrateNodeId.diff && showDiff)\n console.log(\n ` ${log.highlightText(`diff:`)} ${log.infoText(\n highlightDiffText(migrateNodeId.diff)\n )}\\n`\n );\n }\n }\n if (showAll || showChanged) console.log(``);\n\n for (const [projectId, counts] of Object.entries(migrateResult.nodes || {})) {\n const importTitle =\n action === 'delete'\n ? `Delete from project ${log.warningText(currentProject)}`\n : `Import ${\n projectId && projectId !== 'null'\n ? `from project ${log.highlightText(projectId)} `\n : ''\n }to ${log.boldText(log.warningText(currentProject))}`;\n log.help(importTitle);\n\n const migrateStatusAndCount = migrateResult.nodesToMigrate[\n currentProject\n ] as ProjectNodesToMigrate;\n\n const existingCount =\n migrateResult.existing?.[currentProject]?.totalCount || 0;\n\n const totalCount = Object.keys(migrateResult.nodesToMigrate.nodeIds).length;\n const existingPercent = counts.totalCount\n ? ((existingCount / totalCount) * 100).toFixed(0)\n : '0';\n\n const noChangeCount = migrateStatusAndCount?.['no change'] || 0;\n\n const changedPercentage = counts.totalCount\n ? ((noChangeCount / totalCount) * 100).toFixed(0)\n : '0';\n\n const existingColor =\n existingPercent === '0' || action === 'delete'\n ? log.warningText\n : log.infoText;\n\n const changedColor =\n changedPercentage === '100' ? log.successText : log.warningText;\n\n console.log(\n ` - ${log.highlightText(\n `totalCount: ${migrateStatusAndCount.totalCount}`\n )}${\n changedPercentage === '100'\n ? ''\n : existingColor(` [existing: ${`${existingPercent}%`}]`)\n }${\n existingPercent === '0'\n ? ''\n : changedColor(\n ` ${\n changedPercentage === '100'\n ? 'up to date'\n : `[needs update: ${100 - Number(changedPercentage)}%]`\n }`\n )\n }`\n );\n }\n if (migrateResult.errors?.length) {\n console.log(\n ` - ${log.errorText(`errors: ${migrateResult.errors.length}`)}\\n`\n );\n for (const error of migrateResult.errors) {\n let inner = '';\n if (error.data?.[0]) {\n inner = `${error.data?.[0].Field}: ${error.data?.[0].Message}`;\n }\n log.error(`${error.message} ${inner}`, null, '');\n }\n }\n};\nconst highlightDiffText = (str: string) => {\n const addedRegex = new RegExp(/<<\\+>>(.*?)<<\\/\\+>>/, 'g');\n const removedRegex = new RegExp(/<<->>(.*?)<<\\/->>/, 'g');\n return str\n .replace(addedRegex, match => {\n return Logger.successText(\n match.replace(/<<\\+>>/g, '<+>').replace(/<<\\/\\+>>/g, '</+>')\n );\n })\n .replace(removedRegex, match => {\n return Logger.errorText(\n match.replace(/<<->>/g, '<->').replace(/<<\\/->>/g, '</->')\n );\n });\n};\n\nexport const printModelMigrationAnalysis = (\n { log, messages }: ContensisCli,\n result: any = {}\n) => {\n for (const [contentTypeId, model] of Object.entries(result) as [\n string,\n any\n ][]) {\n let mainOutput = log.standardText(` - ${contentTypeId}`);\n let extraOutput = '';\n let errorOutput = '';\n let diffOutput = '';\n for (const [key, details] of Object.entries(model) as [string, any][]) {\n if (key === 'dependencies') {\n extraOutput += log.infoText(\n ` references: [${details?.join(', ')}]\\n`\n );\n }\n if (key === 'dependencyOf') {\n extraOutput += log.infoText(\n ` required by: [${details?.join(', ')}]\\n`\n );\n }\n if (key === 'projects') {\n for (const [projectId, projectDetails] of Object.entries(details) as [\n string,\n any\n ][]) {\n mainOutput += log.infoText(\n ` [${messages.migrate.status(projectDetails.status)(\n `${projectId}: ${projectDetails.status}`\n )}] v${projectDetails.versionNo}`\n );\n if (projectDetails.diff)\n diffOutput += ` ${log.highlightText(`diff:`)} ${log.infoText(\n highlightDiffText(projectDetails.diff)\n )}\\n`;\n if (projectDetails.error)\n errorOutput += ` ${log.highlightText(\n `error::`\n )} ${log.errorText(projectDetails.error)}`;\n }\n }\n }\n console.log(mainOutput);\n if (extraOutput) {\n const search = '\\n';\n const replace = '';\n console.log(\n extraOutput.replace(\n new RegExp(search + '([^' + search + ']*)$'),\n replace + '$1'\n )\n );\n }\n if (diffOutput) console.log(diffOutput);\n if (errorOutput) console.log(errorOutput);\n }\n};\n\ntype MigrateResultSummary = MigrateModelsResult['']['contentTypes'];\ntype MigrateResultStatus = keyof MigrateResultSummary;\n\nexport const printModelMigrationResult = (\n { log, messages }: ContensisCli,\n result: MigrateResultSummary\n) => {\n for (const [status, ids] of Object.entries(result) as [\n MigrateResultStatus,\n string[]\n ][]) {\n if (ids?.length) {\n if (status === 'errors') {\n const errors: [string, MappedError][] = ids as any;\n log.raw(\n ` - ${status}: [ ${messages.migrate.models.result(status)(\n ids.map(id => id[0]).join(', ')\n )} ]\\n`\n );\n for (const [contentTypeId, error] of errors)\n log.error(\n `${log.highlightText(contentTypeId)}: ${error.message}`,\n error\n );\n } else\n log.raw(\n ` - ${status}: [ ${messages.migrate.models.result(status)(\n ids.join(', ')\n )} ]`\n );\n }\n }\n};\n\nexport const printNodeTreeOutput = (\n { log }: ContensisCli,\n root: Node | undefined\n) => {\n log.object({ ...root, children: undefined });\n log.raw('');\n log.info(\n `${log.highlightText('e')} = has entry; ${log.highlightText(\n 'c'\n )} = canonical; ${log.highlightText('m')} = include in menu`\n );\n log.line();\n\n const outputNode = (node: Node | any, spaces: string) =>\n `${node.entry ? log.highlightText('e') : log.infoText('-')}${\n node.isCanonical ? log.highlightText('c') : log.infoText('-')\n }${\n node.includeInMenu ? log.highlightText('m') : log.infoText('-')\n }${spaces}${\n node.isCanonical ? log.boldText(`/${node.slug}`) : `/${node.slug}`\n }${node.entry ? ` ${log.helpText(node.entry.sys.contentTypeId)}` : ''}${\n node.childCount ? ` +${node.childCount}` : ``\n } ${log.infoText(node.displayName)}`;\n\n const outputChildren = (root: Node | undefined, depth = 2) => {\n let str = '';\n for (const node of (root as any)?.children as Node[]) {\n str += `${outputNode(node, Array(depth + 1).join(' '))}\\n`;\n if ('children' in node) str += outputChildren(node, depth + 1);\n }\n return str;\n };\n\n const children = outputChildren(root);\n log.limits(\n `${outputNode(root, ' ')}${children ? `\\n${children}` : ''}`,\n 100\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["dayjs", "_a", "root"]
|
|
7
7
|
}
|
package/dist/version.js
CHANGED
|
@@ -21,7 +21,7 @@ __export(version_exports, {
|
|
|
21
21
|
LIB_VERSION: () => LIB_VERSION
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(version_exports);
|
|
24
|
-
const LIB_VERSION = "1.0.12-beta.
|
|
24
|
+
const LIB_VERSION = "1.0.12-beta.5";
|
|
25
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
26
|
0 && (module.exports = {
|
|
27
27
|
LIB_VERSION
|
package/dist/version.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/version.ts"],
|
|
4
|
-
"sourcesContent": ["export const LIB_VERSION = \"1.0.12-beta.
|
|
4
|
+
"sourcesContent": ["export const LIB_VERSION = \"1.0.12-beta.5\";\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "contensis-cli",
|
|
3
|
-
"version": "1.0.12-beta.
|
|
3
|
+
"version": "1.0.12-beta.5",
|
|
4
4
|
"description": "A fully featured Contensis command line interface with a shell UI provides simple and intuitive ways to manage or profile your content in any NodeJS terminal.",
|
|
5
5
|
"repository": "https://github.com/contensis/cli",
|
|
6
6
|
"homepage": "https://github.com/contensis/cli/tree/main/packages/contensis-cli#readme",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"jsonpath-mapper": "^1.1.0",
|
|
41
41
|
"keytar": "^7.9.0",
|
|
42
42
|
"lodash": "^4.17.21",
|
|
43
|
-
"migratortron": "^1.0.0-beta.
|
|
43
|
+
"migratortron": "^1.0.0-beta.36",
|
|
44
44
|
"nanospinner": "^1.1.0",
|
|
45
45
|
"node-fetch": "^2.6.7",
|
|
46
46
|
"parse-git-config": "^3.0.0",
|
package/src/commands/get.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command, Option } from 'commander';
|
|
2
2
|
import { url } from '~/util';
|
|
3
3
|
|
|
4
|
+
// Map various input options into a request to be processed
|
|
5
|
+
// by Migratortron / Contensis import library
|
|
4
6
|
export const mapContensisOpts = (opts: any = {}) => ({
|
|
5
7
|
source:
|
|
6
8
|
opts.sourceAlias || opts.sourceProjectId
|
|
@@ -35,6 +37,7 @@ export const mapContensisOpts = (opts: any = {}) => ({
|
|
|
35
37
|
: undefined,
|
|
36
38
|
zenQL: opts.zenql,
|
|
37
39
|
transformGuids: !opts.preserveGuids,
|
|
40
|
+
ignoreErrors: opts.ignoreErrors,
|
|
38
41
|
});
|
|
39
42
|
|
|
40
43
|
/* Output options */
|
|
@@ -113,6 +116,11 @@ export const commit = new Option(
|
|
|
113
116
|
'add this flag only after you have run a preview of the import and agree with the analysis'
|
|
114
117
|
).default(false);
|
|
115
118
|
|
|
119
|
+
export const ignoreErrors = new Option(
|
|
120
|
+
'-ignore --ignore-errors',
|
|
121
|
+
'commit the import ignoring any reported errors'
|
|
122
|
+
).default(false);
|
|
123
|
+
|
|
116
124
|
export const addConnectOptions = (program: Command) =>
|
|
117
125
|
program.addOption(alias.hideHelp()).addOption(project.hideHelp());
|
|
118
126
|
|
package/src/commands/import.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Command, Option } from 'commander';
|
|
2
2
|
import { cliCommand } from '~/services/ContensisCliService';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
commit,
|
|
5
|
+
getEntryOptions,
|
|
6
|
+
ignoreErrors,
|
|
7
|
+
mapContensisOpts,
|
|
8
|
+
} from './globalOptions';
|
|
4
9
|
|
|
5
10
|
export const makeImportCommand = () => {
|
|
6
11
|
const program = new Command()
|
|
@@ -116,6 +121,7 @@ Example call:
|
|
|
116
121
|
.choices(['errors', 'changes', 'all'])
|
|
117
122
|
.default('errors')
|
|
118
123
|
)
|
|
124
|
+
.addOption(ignoreErrors)
|
|
119
125
|
.addHelpText(
|
|
120
126
|
'after',
|
|
121
127
|
`
|
|
@@ -139,6 +145,11 @@ Example call:
|
|
|
139
145
|
program
|
|
140
146
|
.command('nodes')
|
|
141
147
|
.description('import nodes')
|
|
148
|
+
.argument('[root]', 'import nodes from the specified path e.g. /blog', '/')
|
|
149
|
+
.option(
|
|
150
|
+
'-preserve --preserve-guids',
|
|
151
|
+
'include this flag when you are importing nodes that you have previously exported and wish to update'
|
|
152
|
+
)
|
|
142
153
|
.addOption(commit)
|
|
143
154
|
.addOption(
|
|
144
155
|
new Option(
|
|
@@ -148,19 +159,20 @@ Example call:
|
|
|
148
159
|
.choices(['errors', 'changes', 'all'])
|
|
149
160
|
.default('errors')
|
|
150
161
|
)
|
|
162
|
+
.addOption(ignoreErrors)
|
|
151
163
|
.addHelpText(
|
|
152
164
|
'after',
|
|
153
165
|
`
|
|
154
166
|
Example call:
|
|
155
|
-
> import nodes --from-file
|
|
167
|
+
> import nodes --from-file site-backup.json
|
|
156
168
|
> import nodes --source-alias example-alias --source-project-id example-project
|
|
157
169
|
`
|
|
158
170
|
)
|
|
159
|
-
.action(async opts => {
|
|
171
|
+
.action(async (root: string, opts) => {
|
|
160
172
|
await cliCommand(
|
|
161
173
|
['import', 'nodes'],
|
|
162
174
|
opts,
|
|
163
|
-
mapContensisOpts({ ...opts })
|
|
175
|
+
mapContensisOpts({ paths: root.split(' '), ...opts })
|
|
164
176
|
).ImportNodes({
|
|
165
177
|
commit: opts.commit,
|
|
166
178
|
fromFile: opts.fromFile,
|
|
@@ -1593,7 +1593,7 @@ class ContensisCli {
|
|
|
1593
1593
|
}
|
|
1594
1594
|
} else {
|
|
1595
1595
|
log.error(messages.entries.failedRemove(currentEnv), err);
|
|
1596
|
-
if (!result
|
|
1596
|
+
if (!result?.entriesToMigrate?.[currentProject]?.totalCount)
|
|
1597
1597
|
log.help(messages.entries.notFound(currentEnv));
|
|
1598
1598
|
}
|
|
1599
1599
|
}
|
|
@@ -1684,7 +1684,7 @@ class ContensisCli {
|
|
|
1684
1684
|
}
|
|
1685
1685
|
} else {
|
|
1686
1686
|
log.error(messages.entries.failedImport(currentEnv), err);
|
|
1687
|
-
if (!result
|
|
1687
|
+
if (!result?.entriesToMigrate?.[currentProject]?.totalCount)
|
|
1688
1688
|
log.help(messages.entries.notFound(currentEnv));
|
|
1689
1689
|
}
|
|
1690
1690
|
} else {
|
|
@@ -1699,18 +1699,16 @@ class ContensisCli {
|
|
|
1699
1699
|
|
|
1700
1700
|
if (contensis) {
|
|
1701
1701
|
log.line();
|
|
1702
|
-
const [err] = await to(
|
|
1703
|
-
contensis.content.sourceRepo.nodes.GetNodes(rootPath, depth)
|
|
1704
|
-
);
|
|
1702
|
+
const [err, nodes] = await to(contensis.nodes.GetNodes(rootPath, depth));
|
|
1705
1703
|
if (err) {
|
|
1706
1704
|
log.error(messages.nodes.failedGet(currentProject), err);
|
|
1707
1705
|
return;
|
|
1708
1706
|
}
|
|
1709
|
-
const root = contensis.
|
|
1707
|
+
const root = contensis.nodes.sourceRepo.nodes.tree;
|
|
1710
1708
|
|
|
1711
1709
|
log.success(messages.nodes.get(currentProject, rootPath, depth));
|
|
1712
1710
|
|
|
1713
|
-
this.HandleFormattingAndOutput(
|
|
1711
|
+
this.HandleFormattingAndOutput(nodes, () => {
|
|
1714
1712
|
// print the nodes to console
|
|
1715
1713
|
printNodeTreeOutput(this, root);
|
|
1716
1714
|
});
|
|
@@ -1751,21 +1749,22 @@ class ContensisCli {
|
|
|
1751
1749
|
else
|
|
1752
1750
|
this.HandleFormattingAndOutput(result, () => {
|
|
1753
1751
|
// print the migrateResult to console
|
|
1754
|
-
// TODO: fix
|
|
1755
1752
|
printNodesMigrateResult(this, result, {
|
|
1756
1753
|
showAll: logOutput === 'all',
|
|
1757
1754
|
showChanged: logOutput === 'changes',
|
|
1758
1755
|
});
|
|
1759
1756
|
});
|
|
1760
1757
|
|
|
1761
|
-
const nodesTotalCount =
|
|
1758
|
+
const nodesTotalCount =
|
|
1759
|
+
result?.nodesToMigrate?.[currentProject].totalCount;
|
|
1762
1760
|
const nodesCreated = result?.nodesResult?.['created'] || 0;
|
|
1763
1761
|
const nodesUpdated = result?.nodesResult?.['updated'] || 0;
|
|
1764
|
-
const noChange =
|
|
1762
|
+
const noChange =
|
|
1763
|
+
result?.nodesToMigrate?.[currentProject]['no change'] !== 0;
|
|
1765
1764
|
|
|
1766
1765
|
if (
|
|
1767
1766
|
!err &&
|
|
1768
|
-
!result.errors?.length &&
|
|
1767
|
+
(!result.errors?.length || this.contensisOpts.ignoreErrors) &&
|
|
1769
1768
|
((!commit && nodesTotalCount) ||
|
|
1770
1769
|
(commit && (nodesCreated || nodesUpdated)))
|
|
1771
1770
|
) {
|
|
@@ -304,15 +304,15 @@ export const printNodesMigrateResult = (
|
|
|
304
304
|
if (showAll || showChanged) console.log(``);
|
|
305
305
|
|
|
306
306
|
for (const [projectId, counts] of Object.entries(migrateResult.nodes || {})) {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
log.
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
);
|
|
307
|
+
const importTitle =
|
|
308
|
+
action === 'delete'
|
|
309
|
+
? `Delete from project ${log.warningText(currentProject)}`
|
|
310
|
+
: `Import ${
|
|
311
|
+
projectId && projectId !== 'null'
|
|
312
|
+
? `from project ${log.highlightText(projectId)} `
|
|
313
|
+
: ''
|
|
314
|
+
}to ${log.boldText(log.warningText(currentProject))}`;
|
|
315
|
+
log.help(importTitle);
|
|
316
316
|
|
|
317
317
|
const migrateStatusAndCount = migrateResult.nodesToMigrate[
|
|
318
318
|
currentProject
|
|
@@ -320,15 +320,17 @@ export const printNodesMigrateResult = (
|
|
|
320
320
|
|
|
321
321
|
const existingCount =
|
|
322
322
|
migrateResult.existing?.[currentProject]?.totalCount || 0;
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
323
|
+
|
|
324
|
+
const totalCount = Object.keys(migrateResult.nodesToMigrate.nodeIds).length;
|
|
325
|
+
const existingPercent = counts.totalCount
|
|
326
|
+
? ((existingCount / totalCount) * 100).toFixed(0)
|
|
327
|
+
: '0';
|
|
328
|
+
|
|
329
|
+
const noChangeCount = migrateStatusAndCount?.['no change'] || 0;
|
|
330
|
+
|
|
331
|
+
const changedPercentage = counts.totalCount
|
|
332
|
+
? ((noChangeCount / totalCount) * 100).toFixed(0)
|
|
333
|
+
: '0';
|
|
332
334
|
|
|
333
335
|
const existingColor =
|
|
334
336
|
existingPercent === '0' || action === 'delete'
|
|
@@ -339,7 +341,9 @@ export const printNodesMigrateResult = (
|
|
|
339
341
|
changedPercentage === '100' ? log.successText : log.warningText;
|
|
340
342
|
|
|
341
343
|
console.log(
|
|
342
|
-
` - ${log.highlightText(
|
|
344
|
+
` - ${log.highlightText(
|
|
345
|
+
`totalCount: ${migrateStatusAndCount.totalCount}`
|
|
346
|
+
)}${
|
|
343
347
|
changedPercentage === '100'
|
|
344
348
|
? ''
|
|
345
349
|
: existingColor(` [existing: ${`${existingPercent}%`}]`)
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "1.0.12-beta.
|
|
1
|
+
export const LIB_VERSION = "1.0.12-beta.5";
|