@contentstack/cli-migration 2.0.0-beta.7 → 2.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,7 +21,7 @@ $ npm install -g @contentstack/cli-migration
21
21
  $ csdx COMMAND
22
22
  running command...
23
23
  $ csdx (--version)
24
- @contentstack/cli-migration/2.0.0-beta.7 linux-x64 node-v22.22.0
24
+ @contentstack/cli-migration/2.0.0-beta.9 linux-x64 node-v22.22.1
25
25
  $ csdx --help [COMMAND]
26
26
  USAGE
27
27
  $ csdx COMMAND
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  // @ts-ignore - no types available
5
5
  const cardinal_1 = require("cardinal");
6
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
+ const cli_utilities_1 = require("@contentstack/cli-utilities");
7
7
  const isEmpty_1 = tslib_1.__importDefault(require("lodash/isEmpty"));
8
8
  const migration_logger_1 = tslib_1.__importDefault(require("./migration-logger"));
9
9
  const fs_helper_1 = require("./fs-helper");
@@ -43,7 +43,7 @@ exports.default = (errors, filePath) => {
43
43
  const fileContents = (0, fs_helper_1.readFile)(file);
44
44
  const highlightedCode = (0, cardinal_1.highlight)(fileContents, { linenos: true });
45
45
  const lines = highlightedCode.split('\n');
46
- const fileErrorsMessage = (0, chalk_1.default) `{red Errors in ${file}}\n\n`;
46
+ const fileErrorsMessage = ((0, cli_utilities_1.getChalk)()) `{red Errors in ${file}}\n\n`;
47
47
  errorLogs[file].fileErrorsMessage = fileErrorsMessage.replace(/\u001b\[\d+m/g, '');
48
48
  const errorMessages = errorsByFile[file]
49
49
  .map((error) => {
@@ -51,9 +51,9 @@ exports.default = (errors, filePath) => {
51
51
  const callsite = error.meta.callsite;
52
52
  const context = 2;
53
53
  let { before, line, after } = getLineWithContext(lines, callsite.line, context);
54
- const beforeLines = before.map((_line) => (0, chalk_1.default) `${_line}\n`);
55
- const afterLines = after.map((_line) => (0, chalk_1.default) `${_line}\n`);
56
- const highlightedLine = (0, chalk_1.default) `{bold ${line}}\n`;
54
+ const beforeLines = before.map((_line) => ((0, cli_utilities_1.getChalk)()) `${_line}\n`);
55
+ const afterLines = after.map((_line) => ((0, cli_utilities_1.getChalk)()) `${_line}\n`);
56
+ const highlightedLine = ((0, cli_utilities_1.getChalk)()) `{bold ${line}}\n`;
57
57
  before = removeSpecialCharacter(before.join('\n'));
58
58
  after = removeSpecialCharacter(after.join('\n'));
59
59
  line = removeSpecialCharacter(line);
@@ -90,7 +90,7 @@ exports.default = (errors, filePath) => {
90
90
  }
91
91
  if ((0, isEmpty_1.default)(messages) && errors !== undefined && (0, isEmpty_1.default)(errorsByFile)) {
92
92
  logger.log('error', { errors: errors });
93
- console.log((0, chalk_1.default) `{bold.red migration unsuccessful}`);
93
+ console.log(((0, cli_utilities_1.getChalk)()) `{bold.red migration unsuccessful}`);
94
94
  }
95
95
  else {
96
96
  logger.log('error', { error: messages.join('\n') });
@@ -1 +1 @@
1
- {"version":3,"file":"error-helper.js","sourceRoot":"","sources":["../../src/utils/error-helper.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-ignore - no types available\nimport { highlight } from 'cardinal';\nimport chalk from 'chalk';\nimport isEmpty from 'lodash/isEmpty';\nimport MigrationLogger from './migration-logger';\nimport fs from 'fs';\nimport { readFile } from './fs-helper';\nimport groupBy from './group-by';\n\nconst getLineWithContext = (lines: string[], lineNumber: number, context: number): any => {\n const line = lineNumber - 1;\n\n const firstLine = line > context ? line - context : 0;\n const lastLine = line + context < lines.length ? line + context : lines.length;\n\n return {\n before: lines.slice(firstLine, line),\n line: lines[line],\n after: lines.slice(line + 1, lastLine + 1),\n };\n};\n\nfunction removeSpecialCharacter(str: string): string {\n return str.replace(/\\u001b\\[\\d+m/g, '');\n}\n\nexport default (errors: any, filePath?: string): void => {\n const logger = new MigrationLogger(process.env.CS_CLI_LOG_PATH ?? process.cwd());\n\n const errorsByFile = groupBy(errors, 'file');\n const messages: string[] = [];\n if (filePath) {\n if (errors.request) {\n errors.data = errors.request?.data;\n delete errors.request;\n }\n if (errors.message) {\n delete errors.message;\n }\n logger.log('error', { [filePath]: errors });\n } else {\n for (const file of Object.keys(errorsByFile)) {\n const errorLogs: any = {};\n errorLogs[file] = {};\n const fileContents = readFile(file);\n const highlightedCode = highlight(fileContents, { linenos: true });\n const lines = highlightedCode.split('\\n');\n\n const fileErrorsMessage = chalk`{red Errors in ${file}}\\n\\n`;\n errorLogs[file].fileErrorsMessage = fileErrorsMessage.replace(/\\u001b\\[\\d+m/g, '');\n const errorMessages = errorsByFile[file]\n .map((error: any) => {\n const callsite = error.meta.callsite;\n const context = 2;\n let { before, line, after } = getLineWithContext(lines, callsite.line, context);\n\n const beforeLines = before.map((_line: string) => chalk`${_line}\\n`);\n const afterLines = after.map((_line: string) => chalk`${_line}\\n`);\n const highlightedLine = chalk`{bold ${line}}\\n`;\n\n before = removeSpecialCharacter(before.join('\\n'));\n after = removeSpecialCharacter(after.join('\\n'));\n line = removeSpecialCharacter(line);\n errorLogs[file].lines = { before, line, after };\n if (error.request) {\n error.data = error.request?.data;\n delete error.request;\n }\n if (error.message) {\n delete error.message;\n }\n const formattedCode = beforeLines + highlightedLine + afterLines;\n if (error.payload?.apiError) {\n errorLogs[file].apiError = true;\n errorLogs[file].errorCode = error.payload.apiError.errorCode;\n errorLogs[file].errors = error.payload.apiError.errors;\n errorLogs[file].data = error.data;\n }\n if (error.message && !error.payload.apiError) {\n errorLogs[file].apiError = false;\n errorLogs[file].error = error.message;\n }\n })\n .join('\\n');\n\n messages.push(`${fileErrorsMessage}${errorMessages}`);\n logger.log('error', errorLogs);\n }\n if (errors?.request) {\n errors.data = errors.request?.data;\n delete errors.request;\n }\n if (errors?.message) {\n delete errors.message;\n }\n if (isEmpty(messages) && errors !== undefined && isEmpty(errorsByFile)) {\n logger.log('error', { errors: errors });\n console.log(chalk`{bold.red migration unsuccessful}`);\n } else {\n logger.log('error', { error: messages.join('\\n') });\n }\n }\n // eslint-disable-next-line\n // console.log(chalk`{bold.red Migration unsuccessful}`);\n};\n"]}
1
+ {"version":3,"file":"error-helper.js","sourceRoot":"","sources":["../../src/utils/error-helper.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-ignore - no types available\nimport { highlight } from 'cardinal';\nimport { getChalk } from '@contentstack/cli-utilities';\nimport isEmpty from 'lodash/isEmpty';\nimport MigrationLogger from './migration-logger';\nimport fs from 'fs';\nimport { readFile } from './fs-helper';\nimport groupBy from './group-by';\n\nconst getLineWithContext = (lines: string[], lineNumber: number, context: number): any => {\n const line = lineNumber - 1;\n\n const firstLine = line > context ? line - context : 0;\n const lastLine = line + context < lines.length ? line + context : lines.length;\n\n return {\n before: lines.slice(firstLine, line),\n line: lines[line],\n after: lines.slice(line + 1, lastLine + 1),\n };\n};\n\nfunction removeSpecialCharacter(str: string): string {\n return str.replace(/\\u001b\\[\\d+m/g, '');\n}\n\nexport default (errors: any, filePath?: string): void => {\n const logger = new MigrationLogger(process.env.CS_CLI_LOG_PATH ?? process.cwd());\n\n const errorsByFile = groupBy(errors, 'file');\n const messages: string[] = [];\n if (filePath) {\n if (errors.request) {\n errors.data = errors.request?.data;\n delete errors.request;\n }\n if (errors.message) {\n delete errors.message;\n }\n logger.log('error', { [filePath]: errors });\n } else {\n for (const file of Object.keys(errorsByFile)) {\n const errorLogs: any = {};\n errorLogs[file] = {};\n const fileContents = readFile(file);\n const highlightedCode = highlight(fileContents, { linenos: true });\n const lines = highlightedCode.split('\\n');\n\n const fileErrorsMessage = (getChalk())`{red Errors in ${file}}\\n\\n`;\n errorLogs[file].fileErrorsMessage = fileErrorsMessage.replace(/\\u001b\\[\\d+m/g, '');\n const errorMessages = errorsByFile[file]\n .map((error: any) => {\n const callsite = error.meta.callsite;\n const context = 2;\n let { before, line, after } = getLineWithContext(lines, callsite.line, context);\n\n const beforeLines = before.map((_line: string) => (getChalk())`${_line}\\n`);\n const afterLines = after.map((_line: string) => (getChalk())`${_line}\\n`);\n const highlightedLine = (getChalk())`{bold ${line}}\\n`;\n\n before = removeSpecialCharacter(before.join('\\n'));\n after = removeSpecialCharacter(after.join('\\n'));\n line = removeSpecialCharacter(line);\n errorLogs[file].lines = { before, line, after };\n if (error.request) {\n error.data = error.request?.data;\n delete error.request;\n }\n if (error.message) {\n delete error.message;\n }\n const formattedCode = beforeLines + highlightedLine + afterLines;\n if (error.payload?.apiError) {\n errorLogs[file].apiError = true;\n errorLogs[file].errorCode = error.payload.apiError.errorCode;\n errorLogs[file].errors = error.payload.apiError.errors;\n errorLogs[file].data = error.data;\n }\n if (error.message && !error.payload.apiError) {\n errorLogs[file].apiError = false;\n errorLogs[file].error = error.message;\n }\n })\n .join('\\n');\n\n messages.push(`${fileErrorsMessage}${errorMessages}`);\n logger.log('error', errorLogs);\n }\n if (errors?.request) {\n errors.data = errors.request?.data;\n delete errors.request;\n }\n if (errors?.message) {\n delete errors.message;\n }\n if (isEmpty(messages) && errors !== undefined && isEmpty(errorsByFile)) {\n logger.log('error', { errors: errors });\n console.log((getChalk())`{bold.red migration unsuccessful}`);\n } else {\n logger.log('error', { error: messages.join('\\n') });\n }\n }\n // eslint-disable-next-line\n // console.log(chalk`{bold.red Migration unsuccessful}`);\n};\n"]}
@@ -138,5 +138,5 @@
138
138
  ]
139
139
  }
140
140
  },
141
- "version": "2.0.0-beta.7"
141
+ "version": "2.0.0-beta.9"
142
142
  }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@contentstack/cli-migration",
3
- "version": "2.0.0-beta.7",
3
+ "version": "2.0.0-beta.9",
4
4
  "author": "@contentstack",
5
5
  "bugs": "https://github.com/contentstack/cli/issues",
6
6
  "dependencies": {
7
- "@contentstack/cli-command": "~2.0.0-beta.2",
8
- "@contentstack/cli-utilities": "~2.0.0-beta.2",
7
+ "@contentstack/cli-command": "~2.0.0-beta.4",
8
+ "@contentstack/cli-utilities": "~2.0.0-beta.4",
9
9
  "@oclif/core": "^4.3.0",
10
10
  "@oclif/plugin-help": "^6.2.28",
11
11
  "async": "^3.2.6",
12
12
  "callsites": "^3.1.0",
13
13
  "cardinal": "^2.1.1",
14
- "chalk": "^4.1.2",
14
+ "chalk": "^5.6.2",
15
15
  "concat-stream": "^2.0.0",
16
16
  "listr": "^0.14.3",
17
17
  "rxjs": "^6.6.7",
@@ -71,4 +71,4 @@
71
71
  "cm:stacks:migration": "MGRTN"
72
72
  }
73
73
  }
74
- }
74
+ }