@elliemae/ds-codemods 3.0.0-next.8 → 3.0.0-next.80
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/bin/cli/code-mods/cli.js +34 -0
- package/bin/cli/code-mods/command-arguments/promptCheckEmPackagesInconsistencies.js +22 -0
- package/bin/cli/code-mods/command-arguments/promptDeprecatedPackages.js +13 -0
- package/bin/cli/code-mods/command-arguments/promptFixLegacyImports.js +21 -0
- package/bin/cli/code-mods/command-arguments/promptHelpMigrateToV3.js +21 -0
- package/bin/cli/code-mods/command-arguments/promptMissingPackages.js +29 -0
- package/bin/cli/code-mods/command-logics/check-deprecated-packages/constants.js +87 -0
- package/{dist/esm → bin/cli}/code-mods/command-logics/check-deprecated-packages/getEmDsPackagesFromNPMLS.js +4 -7
- package/bin/cli/code-mods/command-logics/check-deprecated-packages/index.js +19 -0
- package/bin/cli/code-mods/command-logics/check-deprecated-packages/logResults.js +70 -0
- package/bin/cli/code-mods/command-logics/check-missing-packages/index.js +82 -0
- package/{dist/esm → bin/cli}/code-mods/command-logics/check-packages-inconsistencies/getPackageJsonEmDsVersions.js +9 -9
- package/bin/cli/code-mods/command-logics/check-packages-inconsistencies/index.js +59 -0
- package/{dist/esm → bin/cli}/code-mods/command-logics/execute-commands-map.js +11 -11
- package/bin/cli/code-mods/command-logics/fix-legacy-imports/index.js +29 -0
- package/bin/cli/code-mods/command-logics/fix-legacy-imports/legacyImportMap.js +109 -0
- package/bin/cli/code-mods/command-logics/help-migrate-to-v3/constants.js +284 -0
- package/bin/cli/code-mods/command-logics/help-migrate-to-v3/getSolutions.js +106 -0
- package/bin/cli/code-mods/command-logics/help-migrate-to-v3/index.js +84 -0
- package/bin/cli/code-mods/command-logics/help-migrate-to-v3/logMatch.js +39 -0
- package/bin/cli/code-mods/command-logics/help-migrate-to-v3/matchDsBasicImports.js +20 -0
- package/bin/cli/code-mods/command-logics/help-migrate-to-v3/replaceFromSolutions.js +15 -0
- package/bin/cli/code-mods/commands.js +11 -0
- package/bin/cli/code-mods/inquirer-questions-prompter.js +60 -0
- package/bin/cli/utils/generatePathFromCurrentFolder.js +11 -0
- package/bin/cli/utils/getLatestDimsumVersion.js +15 -0
- package/bin/cli/utils/globArray.js +11 -0
- package/bin/cli/utils/index.js +5 -0
- package/{dist/esm → bin/cli}/utils/matchHelpers.js +16 -15
- package/{dist/esm → bin/cli}/utils/replaceFromMap.js +5 -9
- package/bin/ds-codemods +1 -1
- package/package.json +10 -20
- package/dist/cjs/code-mods/cli.js +0 -63
- package/dist/cjs/code-mods/cli.js.map +0 -7
- package/dist/cjs/code-mods/command-arguments/promptCheckEmPackagesInconsistencies.js +0 -55
- package/dist/cjs/code-mods/command-arguments/promptCheckEmPackagesInconsistencies.js.map +0 -7
- package/dist/cjs/code-mods/command-arguments/promptDeprecatedPackages.js +0 -47
- package/dist/cjs/code-mods/command-arguments/promptDeprecatedPackages.js.map +0 -7
- package/dist/cjs/code-mods/command-arguments/promptFixLegacyImports.js +0 -55
- package/dist/cjs/code-mods/command-arguments/promptFixLegacyImports.js.map +0 -7
- package/dist/cjs/code-mods/command-arguments/promptMissingPackages.js +0 -63
- package/dist/cjs/code-mods/command-arguments/promptMissingPackages.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/constants.js +0 -116
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/constants.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/getEmDsPackagesFromNPMLS.js +0 -50
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/getEmDsPackagesFromNPMLS.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/index.js +0 -53
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/index.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/logResults.js +0 -82
- package/dist/cjs/code-mods/command-logics/check-deprecated-packages/logResults.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-missing-packages/index.js +0 -110
- package/dist/cjs/code-mods/command-logics/check-missing-packages/index.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-packages-inconsistencies/getPackageJsonEmDsVersions.js +0 -72
- package/dist/cjs/code-mods/command-logics/check-packages-inconsistencies/getPackageJsonEmDsVersions.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/check-packages-inconsistencies/index.js +0 -99
- package/dist/cjs/code-mods/command-logics/check-packages-inconsistencies/index.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/execute-commands-map.js +0 -60
- package/dist/cjs/code-mods/command-logics/execute-commands-map.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/fix-legacy-imports/index.js +0 -59
- package/dist/cjs/code-mods/command-logics/fix-legacy-imports/index.js.map +0 -7
- package/dist/cjs/code-mods/command-logics/fix-legacy-imports/legacyImportMap.js +0 -142
- package/dist/cjs/code-mods/command-logics/fix-legacy-imports/legacyImportMap.js.map +0 -7
- package/dist/cjs/code-mods/commands.js +0 -44
- package/dist/cjs/code-mods/commands.js.map +0 -7
- package/dist/cjs/code-mods/inquirer-questions-prompter.js +0 -94
- package/dist/cjs/code-mods/inquirer-questions-prompter.js.map +0 -7
- package/dist/cjs/utils/generatePathFromCurrentFolder.js +0 -38
- package/dist/cjs/utils/generatePathFromCurrentFolder.js.map +0 -7
- package/dist/cjs/utils/getLatestDimsumVersion.js +0 -48
- package/dist/cjs/utils/getLatestDimsumVersion.js.map +0 -7
- package/dist/cjs/utils/globArray.js +0 -44
- package/dist/cjs/utils/globArray.js.map +0 -7
- package/dist/cjs/utils/index.js +0 -32
- package/dist/cjs/utils/index.js.map +0 -7
- package/dist/cjs/utils/matchHelpers.js +0 -66
- package/dist/cjs/utils/matchHelpers.js.map +0 -7
- package/dist/cjs/utils/replaceFromMap.js +0 -48
- package/dist/cjs/utils/replaceFromMap.js.map +0 -7
- package/dist/esm/code-mods/cli.js +0 -34
- package/dist/esm/code-mods/cli.js.map +0 -7
- package/dist/esm/code-mods/command-arguments/promptCheckEmPackagesInconsistencies.js +0 -26
- package/dist/esm/code-mods/command-arguments/promptCheckEmPackagesInconsistencies.js.map +0 -7
- package/dist/esm/code-mods/command-arguments/promptDeprecatedPackages.js +0 -18
- package/dist/esm/code-mods/command-arguments/promptDeprecatedPackages.js.map +0 -7
- package/dist/esm/code-mods/command-arguments/promptFixLegacyImports.js +0 -26
- package/dist/esm/code-mods/command-arguments/promptFixLegacyImports.js.map +0 -7
- package/dist/esm/code-mods/command-arguments/promptMissingPackages.js +0 -34
- package/dist/esm/code-mods/command-arguments/promptMissingPackages.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/constants.js +0 -87
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/constants.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/getEmDsPackagesFromNPMLS.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/index.js +0 -24
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/index.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/logResults.js +0 -54
- package/dist/esm/code-mods/command-logics/check-deprecated-packages/logResults.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-missing-packages/index.js +0 -81
- package/dist/esm/code-mods/command-logics/check-missing-packages/index.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-packages-inconsistencies/getPackageJsonEmDsVersions.js.map +0 -7
- package/dist/esm/code-mods/command-logics/check-packages-inconsistencies/index.js +0 -77
- package/dist/esm/code-mods/command-logics/check-packages-inconsistencies/index.js.map +0 -7
- package/dist/esm/code-mods/command-logics/execute-commands-map.js.map +0 -7
- package/dist/esm/code-mods/command-logics/fix-legacy-imports/index.js +0 -30
- package/dist/esm/code-mods/command-logics/fix-legacy-imports/index.js.map +0 -7
- package/dist/esm/code-mods/command-logics/fix-legacy-imports/legacyImportMap.js +0 -113
- package/dist/esm/code-mods/command-logics/fix-legacy-imports/legacyImportMap.js.map +0 -7
- package/dist/esm/code-mods/commands.js +0 -15
- package/dist/esm/code-mods/commands.js.map +0 -7
- package/dist/esm/code-mods/inquirer-questions-prompter.js +0 -67
- package/dist/esm/code-mods/inquirer-questions-prompter.js.map +0 -7
- package/dist/esm/utils/generatePathFromCurrentFolder.js +0 -9
- package/dist/esm/utils/generatePathFromCurrentFolder.js.map +0 -7
- package/dist/esm/utils/getLatestDimsumVersion.js +0 -19
- package/dist/esm/utils/getLatestDimsumVersion.js.map +0 -7
- package/dist/esm/utils/globArray.js +0 -15
- package/dist/esm/utils/globArray.js.map +0 -7
- package/dist/esm/utils/index.js +0 -7
- package/dist/esm/utils/index.js.map +0 -7
- package/dist/esm/utils/matchHelpers.js.map +0 -7
- package/dist/esm/utils/replaceFromMap.js.map +0 -7
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import arg from 'arg';
|
|
2
|
+
import { promptForMissingOptions } from './inquirer-questions-prompter';
|
|
3
|
+
import { executeCommandsMap } from './command-logics/execute-commands-map';
|
|
4
|
+
|
|
5
|
+
function parseArgumentsIntoOptions(rawArgs) {
|
|
6
|
+
const args = arg(
|
|
7
|
+
{
|
|
8
|
+
'--cwd': String,
|
|
9
|
+
'--globPattern': String,
|
|
10
|
+
'--globPatternIgnore': String,
|
|
11
|
+
'--projectFolderPath': String,
|
|
12
|
+
'--ignorePackagesGlobPattern': String,
|
|
13
|
+
'--ignoreFilesGlobPattern': String,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
argv: rawArgs.slice(2),
|
|
17
|
+
},
|
|
18
|
+
);
|
|
19
|
+
return {
|
|
20
|
+
cwd: args['--cwd'],
|
|
21
|
+
globPattern: args['--globPattern'],
|
|
22
|
+
globPatternIgnore: args['--globPatternIgnore'],
|
|
23
|
+
projectFolderPath: args['--projectFolderPath'],
|
|
24
|
+
ignorePackagesGlobPattern: args['--ignorePackagesGlobPattern'],
|
|
25
|
+
ignoreFilesGlobPattern: args['--ignoreFilesGlobPattern'],
|
|
26
|
+
script: args._[0],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export async function cli(args) {
|
|
31
|
+
let options = parseArgumentsIntoOptions(args);
|
|
32
|
+
options = await promptForMissingOptions(options);
|
|
33
|
+
executeCommandsMap(args, options);
|
|
34
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const getPackagesInconsistenciesQuestions = (originalOptions) => {
|
|
2
|
+
const extraOptions = [];
|
|
3
|
+
const { globPattern, globPatternIgnore } = originalOptions;
|
|
4
|
+
if (!globPattern && globPattern !== '') {
|
|
5
|
+
extraOptions.push({
|
|
6
|
+
type: 'input',
|
|
7
|
+
name: 'globPattern',
|
|
8
|
+
message:
|
|
9
|
+
'Please provide a comma separated list of globPatterns catching the file in which to check for inconsistencies',
|
|
10
|
+
default: './package.json', // './packages/ds-codemods/test-ables/check-packages-inconsistencies/package.json.test',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
if (!globPatternIgnore && globPatternIgnore !== '') {
|
|
14
|
+
extraOptions.push({
|
|
15
|
+
type: 'input',
|
|
16
|
+
name: 'globPatternIgnore',
|
|
17
|
+
message: 'Please provide a comma separated list of ignored files for your globPattern',
|
|
18
|
+
default: '**/node_modules/**/*',
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return extraOptions;
|
|
22
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const getDeprecatedPackagesQuestions = (originalOptions) => {
|
|
2
|
+
const extraOptions = [];
|
|
3
|
+
const { cwd } = originalOptions;
|
|
4
|
+
if (!cwd && cwd !== '') {
|
|
5
|
+
extraOptions.push({
|
|
6
|
+
type: 'input',
|
|
7
|
+
name: 'globPatternIgnore',
|
|
8
|
+
message: 'Please provide the project root directory (where node_modules folder lives)',
|
|
9
|
+
default: './',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return extraOptions;
|
|
13
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const getLegacyImportsQuestions = (originalOptions) => {
|
|
2
|
+
const extraOptions = [];
|
|
3
|
+
const { globPattern, globPatternIgnore } = originalOptions;
|
|
4
|
+
if (!globPattern && globPattern !== '') {
|
|
5
|
+
extraOptions.push({
|
|
6
|
+
type: 'input',
|
|
7
|
+
name: 'globPattern',
|
|
8
|
+
message: 'Please provide a comma separated list of globPatterns catching the file in which to fix the imports',
|
|
9
|
+
default: './**/*.js,./**/*.jsx,./**/*.ts,./**/*.tsx',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
if (!globPatternIgnore && globPatternIgnore !== '') {
|
|
13
|
+
extraOptions.push({
|
|
14
|
+
type: 'input',
|
|
15
|
+
name: 'globPatternIgnore',
|
|
16
|
+
message: 'Please provide a comma separated list of ignored files for your globPattern',
|
|
17
|
+
default: '**/node_modules/**/*',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return extraOptions;
|
|
21
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const getHelpMigrateToV3Questions = (originalOptions) => {
|
|
2
|
+
const extraOptions = [];
|
|
3
|
+
const { globPattern, globPatternIgnore } = originalOptions;
|
|
4
|
+
if (!globPattern && globPattern !== '') {
|
|
5
|
+
extraOptions.push({
|
|
6
|
+
type: 'input',
|
|
7
|
+
name: 'globPattern',
|
|
8
|
+
message: 'Please provide a comma separated list of globPatterns catching the file in which to fix the imports',
|
|
9
|
+
default: './**/*.js,./**/*.jsx,./**/*.ts,./**/*.tsx',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
if (!globPatternIgnore && globPatternIgnore !== '') {
|
|
13
|
+
extraOptions.push({
|
|
14
|
+
type: 'input',
|
|
15
|
+
name: 'globPatternIgnore',
|
|
16
|
+
message: 'Please provide a comma separated list of ignored files for your globPattern',
|
|
17
|
+
default: '**/node_modules/**/*',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return extraOptions;
|
|
21
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const getMissingPackagesQuestions = (originalOptions) => {
|
|
2
|
+
const extraOptions = [];
|
|
3
|
+
const { projectFolderPath, ignorePackagesGlobPattern, ignoreFilesGlobPattern } = originalOptions;
|
|
4
|
+
if (!projectFolderPath && projectFolderPath !== '') {
|
|
5
|
+
extraOptions.push({
|
|
6
|
+
type: 'input',
|
|
7
|
+
name: 'projectFolderPath',
|
|
8
|
+
message: 'path to the project folder containing package.json file',
|
|
9
|
+
default: './',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
if (!ignorePackagesGlobPattern && ignorePackagesGlobPattern !== '') {
|
|
13
|
+
extraOptions.push({
|
|
14
|
+
type: 'input',
|
|
15
|
+
name: 'ignorePackagesGlobPattern',
|
|
16
|
+
message: 'Please provide a comma separated list of globPatterns for ignored packages, if any.',
|
|
17
|
+
default: '',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
if (!ignoreFilesGlobPattern && ignoreFilesGlobPattern !== '') {
|
|
21
|
+
extraOptions.push({
|
|
22
|
+
type: 'input',
|
|
23
|
+
name: 'ignoreFilesGlobPattern',
|
|
24
|
+
message: 'Please provide a comma separated list of globPatterns for ignored files, if any.',
|
|
25
|
+
default: '**/*.eslintrc.js',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return extraOptions;
|
|
29
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export const SEVERITY = {
|
|
2
|
+
NON_STARTER: ['Failing to upgrade will make the project impossible to start/use', 1],
|
|
3
|
+
KNOWN_ISSUES: [
|
|
4
|
+
'The component has unfixable known issues. Failing to upgrade means APP will have to live with those',
|
|
5
|
+
2,
|
|
6
|
+
],
|
|
7
|
+
FRAGILE_AND_UNMANTAINED: [
|
|
8
|
+
'Failing to upgrade will make the project fragile and any error will have to be addressed by the APP team',
|
|
9
|
+
3,
|
|
10
|
+
],
|
|
11
|
+
UNMANTAINED: ['Failing to upgrade will mean that any error will have to be addressed by the APP team', 4],
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const SOLUTIONS = {
|
|
15
|
+
REMOVED: 'the component has been regarded as supreflous and has hencheforth been removed in favor of examples',
|
|
16
|
+
NEW_VERSION_BREAKING: 'the component impedes further enhancments/bugfixes, a new version ex-novo has been created.',
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const DEPRECATED_PACKAGES = {
|
|
20
|
+
'@elliemae/ds-datagrids': {
|
|
21
|
+
name: 'data-grid',
|
|
22
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
23
|
+
severity: SEVERITY.KNOWN_ISSUES,
|
|
24
|
+
// TODO create relative confluence
|
|
25
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Breaking+changes+-+Migration+steps+and+rationale',
|
|
26
|
+
},
|
|
27
|
+
'@elliemae/ds-date-picker': {
|
|
28
|
+
name: 'date-picker',
|
|
29
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
30
|
+
severity: SEVERITY.KNOWN_ISSUES,
|
|
31
|
+
// TODO create relative confluence
|
|
32
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Breaking+changes+-+Migration+steps+and+rationale',
|
|
33
|
+
},
|
|
34
|
+
'@elliemae/ds-date-range-picker': {
|
|
35
|
+
name: 'date-range-picker',
|
|
36
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
37
|
+
severity: SEVERITY.KNOWN_ISSUES,
|
|
38
|
+
// TODO create relative confluence
|
|
39
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Breaking+changes+-+Migration+steps+and+rationale',
|
|
40
|
+
},
|
|
41
|
+
'@elliemae/ds-date-time-picker': {
|
|
42
|
+
name: 'date-time-picker',
|
|
43
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
44
|
+
severity: SEVERITY.KNOWN_ISSUES,
|
|
45
|
+
// TODO create relative confluence
|
|
46
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Breaking+changes+-+Migration+steps+and+rationale',
|
|
47
|
+
},
|
|
48
|
+
'@elliemae/ds-time-picker': {
|
|
49
|
+
name: 'time-picker',
|
|
50
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
51
|
+
severity: SEVERITY.KNOWN_ISSUES,
|
|
52
|
+
// TODO create relative confluence
|
|
53
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Breaking+changes+-+Migration+steps+and+rationale',
|
|
54
|
+
},
|
|
55
|
+
'@elliemae/ds-button-group': {
|
|
56
|
+
name: 'button-group',
|
|
57
|
+
solution: SOLUTIONS.REMOVED,
|
|
58
|
+
severity: SEVERITY.NON_STARTER,
|
|
59
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Button+Group+-+Dimsum+2.x',
|
|
60
|
+
},
|
|
61
|
+
'@elliemae/ds-card-array': {
|
|
62
|
+
name: 'card-array',
|
|
63
|
+
solution: SOLUTIONS.REMOVED,
|
|
64
|
+
severity: SEVERITY.NON_STARTER,
|
|
65
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Card+Array+-+Dimsum+2.x',
|
|
66
|
+
},
|
|
67
|
+
'@elliemae/ds-form': {
|
|
68
|
+
subComponents: [
|
|
69
|
+
{
|
|
70
|
+
name: 'combobox',
|
|
71
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
72
|
+
severity: SEVERITY.FRAGILE_AND_UNMANTAINED,
|
|
73
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Combo-box+-+Dimsum+2.x',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
'@elliemae/ds-combobox-v1': {
|
|
78
|
+
subComponents: [
|
|
79
|
+
{
|
|
80
|
+
name: 'combobox',
|
|
81
|
+
solution: SOLUTIONS.NEW_VERSION_BREAKING,
|
|
82
|
+
severity: SEVERITY.FRAGILE_AND_UNMANTAINED,
|
|
83
|
+
confluence: 'https://confluence.elliemae.io/display/FEAE/Combo-box+-+Dimsum+2.x',
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
function getEmDsPackagesFromNPMLS(npmLsStdout =
|
|
1
|
+
/* eslint-disable max-statements */
|
|
2
|
+
export function getEmDsPackagesFromNPMLS(npmLsStdout = '') {
|
|
3
3
|
const dsPackageRegExp = /@elliemae\/ds-.*?@(.*)/gm;
|
|
4
4
|
const matches = [];
|
|
5
5
|
if (npmLsStdout) {
|
|
@@ -8,14 +8,11 @@ function getEmDsPackagesFromNPMLS(npmLsStdout = "") {
|
|
|
8
8
|
const matchObj = {
|
|
9
9
|
fullMatch,
|
|
10
10
|
version,
|
|
11
|
-
package: fullMatch.split(version)[0].slice(0, -1)
|
|
11
|
+
package: fullMatch.split(version)[0].slice(0, -1),
|
|
12
12
|
};
|
|
13
13
|
matches.push(matchObj);
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
+
|
|
16
17
|
return matches;
|
|
17
18
|
}
|
|
18
|
-
export {
|
|
19
|
-
getEmDsPackagesFromNPMLS
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=getEmDsPackagesFromNPMLS.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { getEmDsPackagesFromNPMLS } from './getEmDsPackagesFromNPMLS';
|
|
3
|
+
import { logResults, logCyanQuestion } from './logResults';
|
|
4
|
+
|
|
5
|
+
const npmLs = async ({ cwd }) => {
|
|
6
|
+
const [, stdout] = await new Promise((resolve) => {
|
|
7
|
+
exec('npm ls', { cwd }, (...cbRes) => resolve(cbRes));
|
|
8
|
+
});
|
|
9
|
+
if (stdout) return getEmDsPackagesFromNPMLS(stdout);
|
|
10
|
+
return [];
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const checkDeprecatedPackages = async (options) => {
|
|
14
|
+
const installedPackages = await npmLs(options);
|
|
15
|
+
if (installedPackages.length === 0) logCyanQuestion('no dimsum packages found... did you specify the correct cwd?');
|
|
16
|
+
logResults(installedPackages);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export default checkDeprecatedPackages;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { DEPRECATED_PACKAGES } from './constants';
|
|
3
|
+
// Colors
|
|
4
|
+
// black
|
|
5
|
+
// red
|
|
6
|
+
// green
|
|
7
|
+
// yellow
|
|
8
|
+
// blue
|
|
9
|
+
// magenta
|
|
10
|
+
// cyan
|
|
11
|
+
// white
|
|
12
|
+
// blackBright (alias: gray, grey)
|
|
13
|
+
// redBright
|
|
14
|
+
// greenBright
|
|
15
|
+
// yellowBright
|
|
16
|
+
// blueBright
|
|
17
|
+
// magentaBright
|
|
18
|
+
// cyanBright
|
|
19
|
+
// whiteBright
|
|
20
|
+
|
|
21
|
+
// Background colors
|
|
22
|
+
// bgBlack
|
|
23
|
+
// bgRed
|
|
24
|
+
// bgGreen
|
|
25
|
+
// bgYellow
|
|
26
|
+
// bgBlue
|
|
27
|
+
// bgMagenta
|
|
28
|
+
// bgCyan
|
|
29
|
+
// bgWhite
|
|
30
|
+
// bgBlackBright (alias: bgGray, bgGrey)
|
|
31
|
+
// bgRedBright
|
|
32
|
+
// bgGreenBright
|
|
33
|
+
// bgYellowBright
|
|
34
|
+
// bgBlueBright
|
|
35
|
+
// bgMagentaBright
|
|
36
|
+
// bgCyanBright
|
|
37
|
+
// bgWhiteBright
|
|
38
|
+
|
|
39
|
+
const chalkMap = {
|
|
40
|
+
1: chalk.bold.yellowBright.bgRed,
|
|
41
|
+
2: chalk.bold.redBright,
|
|
42
|
+
3: chalk.bold.red,
|
|
43
|
+
4: chalk.red,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const logDeprecatedComponent = ({ name, solution, severity, confluence }) => {
|
|
47
|
+
const [sevDesc, sevLevel] = severity;
|
|
48
|
+
const chalkLog = chalkMap[sevLevel];
|
|
49
|
+
console.log(chalk.yellow('--------------------------------'));
|
|
50
|
+
console.log(chalk.bold.cyan(`${name} deprecation!`));
|
|
51
|
+
console.log(chalkLog(sevDesc));
|
|
52
|
+
console.log(chalk.bold.green(solution));
|
|
53
|
+
console.log(chalk.white(confluence));
|
|
54
|
+
console.log(chalk.yellow('--------------------------------'));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export function logCyanQuestion(question) {
|
|
58
|
+
console.log(chalk.cyanBright(question));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function logResults(detectedPackages) {
|
|
62
|
+
detectedPackages.forEach((pack) => {
|
|
63
|
+
const deprecatedMetaInfo = DEPRECATED_PACKAGES[pack.package];
|
|
64
|
+
if (deprecatedMetaInfo) {
|
|
65
|
+
const { subComponents, ...metainfo } = deprecatedMetaInfo;
|
|
66
|
+
if (JSON.stringify(metainfo) !== '{}') logDeprecatedComponent(metainfo);
|
|
67
|
+
if (subComponents) subComponents.forEach(logDeprecatedComponent);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import depcheck from 'depcheck';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { generatePathFromCurrentFolder } from '../../../utils';
|
|
5
|
+
|
|
6
|
+
const logUnusedDep = (unused) => {
|
|
7
|
+
console.log(chalk.yellowBright('### Found unused dependencies :>>'));
|
|
8
|
+
console.log('```');
|
|
9
|
+
console.log(unused.dependencies);
|
|
10
|
+
console.log('```');
|
|
11
|
+
};
|
|
12
|
+
const logUnusedDevDep = (unused) => {
|
|
13
|
+
console.log(chalk.magentaBright('### Found unused dev dependencies :>>'));
|
|
14
|
+
console.log('```');
|
|
15
|
+
console.log(unused.devDependencies);
|
|
16
|
+
console.log('```');
|
|
17
|
+
};
|
|
18
|
+
const logMissing = (unused) => {
|
|
19
|
+
const missingString = [...Object.keys(unused.missing)].map((pack) => `\t${pack}`).join(',\n');
|
|
20
|
+
console.log(chalk.redBright('### Found missing dependencies :>>'));
|
|
21
|
+
console.log('```');
|
|
22
|
+
console.log('{');
|
|
23
|
+
console.log(missingString);
|
|
24
|
+
console.log('}');
|
|
25
|
+
console.log('```');
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const checkMissingPackages = async (options) => {
|
|
29
|
+
const { projectFolderPath, ignorePackagesGlobPattern, ignoreFilesGlobPattern } = options;
|
|
30
|
+
const ignorePatterns = ignorePackagesGlobPattern
|
|
31
|
+
.split(',')
|
|
32
|
+
.map((pattern) => (pattern && pattern !== '' ? generatePathFromCurrentFolder(pattern) : ''));
|
|
33
|
+
const ignoreMatches = ignoreFilesGlobPattern
|
|
34
|
+
.split(',')
|
|
35
|
+
.map((pattern) => (pattern && pattern !== '' ? generatePathFromCurrentFolder(pattern) : ''));
|
|
36
|
+
const depCheckOptions = {
|
|
37
|
+
ignoreBinPackage: false, // ignore the packages with bin entry
|
|
38
|
+
skipMissing: false, // skip calculation of missing dependencies
|
|
39
|
+
parsers: {
|
|
40
|
+
// the target parsers
|
|
41
|
+
'**/*.js': depcheck.parser.jsx,
|
|
42
|
+
'**/*.jsx': depcheck.parser.jsx,
|
|
43
|
+
'**/*.ts': depcheck.parser.typescript,
|
|
44
|
+
'**/*.tsx': depcheck.parser.typescript,
|
|
45
|
+
},
|
|
46
|
+
detectors: [
|
|
47
|
+
depcheck.detector.requireCallExpression,
|
|
48
|
+
depcheck.detector.requireResolveCallExpression,
|
|
49
|
+
depcheck.detector.importDeclaration,
|
|
50
|
+
depcheck.detector.typescriptImportType,
|
|
51
|
+
depcheck.detector.exportDeclaration,
|
|
52
|
+
],
|
|
53
|
+
specials: [
|
|
54
|
+
// the target special parsers
|
|
55
|
+
depcheck.special.babel,
|
|
56
|
+
depcheck.special.bin,
|
|
57
|
+
depcheck.special.eslint,
|
|
58
|
+
depcheck.special.husky,
|
|
59
|
+
depcheck.special.jest,
|
|
60
|
+
depcheck.special.mocha,
|
|
61
|
+
depcheck.special.prettier,
|
|
62
|
+
depcheck.special.tslint,
|
|
63
|
+
depcheck.special.webpack,
|
|
64
|
+
],
|
|
65
|
+
ignorePatterns,
|
|
66
|
+
ignoreMatches,
|
|
67
|
+
};
|
|
68
|
+
const pathToRoot = generatePathFromCurrentFolder(projectFolderPath);
|
|
69
|
+
|
|
70
|
+
depcheck(pathToRoot, depCheckOptions).then((unused) => {
|
|
71
|
+
const unusedDep = Array.isArray(unused.dependencies) && unused.dependencies.length > 0;
|
|
72
|
+
const unusedDevDep = Array.isArray(unused.devDependencies) && unused.devDependencies.length > 0;
|
|
73
|
+
const missing = Object.keys(unused.missing).length > 0;
|
|
74
|
+
const hasErrors = unusedDep || unusedDevDep || missing;
|
|
75
|
+
console.log(chalk.bold.cyanBright(`# Dependencies results for ${pathToRoot}`));
|
|
76
|
+
console.log(chalk.bold.cyanBright(`[${pathToRoot}](${pathToRoot}package.json)`));
|
|
77
|
+
if (unusedDep) logUnusedDep(unused);
|
|
78
|
+
if (unusedDevDep) logUnusedDevDep(unused);
|
|
79
|
+
if (missing) logMissing(unused);
|
|
80
|
+
if (!hasErrors) console.log(chalk.bold.green(`no problems found!`));
|
|
81
|
+
});
|
|
82
|
+
};
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
function getPackageJsonEmDsVersions(packageJsonAsString =
|
|
1
|
+
/* eslint-disable max-statements */
|
|
2
|
+
export function getPackageJsonEmDsVersions(packageJsonAsString = '') {
|
|
3
3
|
const dependenciesRegExp = /"dependencies": {(.*?)},?/gs;
|
|
4
4
|
const devDependenciesRegExp = /"devDependencies": {(.*?)},?/gs;
|
|
5
5
|
const peerDependenciesRegExp = /"peerDependencies": {(.*?)},?/gs;
|
|
6
6
|
const dsPackageRegExp = /"@elliemae\/ds-.*?": "(.*?)",?/gm;
|
|
7
|
+
|
|
7
8
|
const [dependenciesString] = packageJsonAsString.match(dependenciesRegExp) || [];
|
|
8
9
|
const [devDependenciesString] = packageJsonAsString.match(devDependenciesRegExp) || [];
|
|
9
10
|
const [peerDependenciesString] = packageJsonAsString.match(peerDependenciesRegExp) || [];
|
|
11
|
+
|
|
10
12
|
const matches = [];
|
|
11
13
|
const dependenciesMatches = [];
|
|
12
14
|
const devDependenciesMatches = [];
|
|
13
15
|
const peerDependenciesMatches = [];
|
|
16
|
+
|
|
14
17
|
if (dependenciesString) {
|
|
15
18
|
const depMatches = [...dependenciesString.matchAll(dsPackageRegExp)];
|
|
16
19
|
depMatches.forEach(([fullMatch, version]) => {
|
|
17
|
-
const matchObj = { fullMatch, version, dependencyType:
|
|
20
|
+
const matchObj = { fullMatch, version, dependencyType: 'dependency' };
|
|
18
21
|
matches.push(matchObj);
|
|
19
22
|
dependenciesMatches.push(matchObj);
|
|
20
23
|
});
|
|
@@ -22,7 +25,7 @@ function getPackageJsonEmDsVersions(packageJsonAsString = "") {
|
|
|
22
25
|
if (devDependenciesString) {
|
|
23
26
|
const devDepMatches = [...devDependenciesString.matchAll(dsPackageRegExp)];
|
|
24
27
|
devDepMatches.forEach(([fullMatch, version]) => {
|
|
25
|
-
const matchObj = { fullMatch, version, dependencyType:
|
|
28
|
+
const matchObj = { fullMatch, version, dependencyType: 'devDependency' };
|
|
26
29
|
matches.push(matchObj);
|
|
27
30
|
devDependenciesMatches.push(matchObj);
|
|
28
31
|
});
|
|
@@ -30,14 +33,11 @@ function getPackageJsonEmDsVersions(packageJsonAsString = "") {
|
|
|
30
33
|
if (peerDependenciesString) {
|
|
31
34
|
const peerDepMatches = [...peerDependenciesString.matchAll(dsPackageRegExp)];
|
|
32
35
|
peerDepMatches.forEach(([fullMatch, version]) => {
|
|
33
|
-
const matchObj = { fullMatch, version, dependencyType:
|
|
36
|
+
const matchObj = { fullMatch, version, dependencyType: 'peerDependency' };
|
|
34
37
|
matches.push(matchObj);
|
|
35
38
|
peerDependenciesMatches.push(matchObj);
|
|
36
39
|
});
|
|
37
40
|
}
|
|
41
|
+
|
|
38
42
|
return { matches, dependenciesMatches, devDependenciesMatches, peerDependenciesMatches };
|
|
39
43
|
}
|
|
40
|
-
export {
|
|
41
|
-
getPackageJsonEmDsVersions
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=getPackageJsonEmDsVersions.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { getPackageJsonEmDsVersions } from './getPackageJsonEmDsVersions';
|
|
4
|
+
import {
|
|
5
|
+
generatePathFromCurrentFolder,
|
|
6
|
+
globArray,
|
|
7
|
+
getHighestMatchVersion,
|
|
8
|
+
getLatestDimsumVersion,
|
|
9
|
+
} from '../../../utils';
|
|
10
|
+
|
|
11
|
+
const getErrors = (highestVersion, matches = []) => {
|
|
12
|
+
const errors = [];
|
|
13
|
+
let hasErrors = false;
|
|
14
|
+
matches.forEach((match) => {
|
|
15
|
+
const { version } = match;
|
|
16
|
+
if (version !== highestVersion.fullVersion) {
|
|
17
|
+
hasErrors = true;
|
|
18
|
+
errors.push({ ...match, suggestedVersion: highestVersion.fullVersion });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return { errors, hasErrors };
|
|
22
|
+
};
|
|
23
|
+
export const checkPackagesInconsistencies = async (options) => {
|
|
24
|
+
const csvGlobs = options.globPattern.split(',').map((pattern) => generatePathFromCurrentFolder(pattern));
|
|
25
|
+
|
|
26
|
+
const ignoredPatterns = options.globPatternIgnore.split(',');
|
|
27
|
+
const globOptions = { ignore: ignoredPatterns };
|
|
28
|
+
|
|
29
|
+
const pathToFileToProcess = globArray(csvGlobs, globOptions);
|
|
30
|
+
const { latestVersionParsed } = await getLatestDimsumVersion();
|
|
31
|
+
|
|
32
|
+
pathToFileToProcess.forEach((path) => {
|
|
33
|
+
const fileContent = fs.readFileSync(path, {
|
|
34
|
+
encoding: 'utf8',
|
|
35
|
+
flag: 'r',
|
|
36
|
+
});
|
|
37
|
+
if (fileContent && typeof fileContent === 'string') {
|
|
38
|
+
const { matches } = getPackageJsonEmDsVersions(fileContent);
|
|
39
|
+
const highestVersion = getHighestMatchVersion(matches);
|
|
40
|
+
const { errors, hasErrors } = getErrors(highestVersion, matches);
|
|
41
|
+
if (hasErrors) {
|
|
42
|
+
console.log(chalk.yellow('Your Package json has some Elliemae dimsum inconsistencies'));
|
|
43
|
+
console.log(errors);
|
|
44
|
+
console.log(chalk.yellow('Please solve them as soon as possible to avoid unexpected errors'));
|
|
45
|
+
}
|
|
46
|
+
const shouldUpdateToNewest =
|
|
47
|
+
highestVersion.major < latestVersionParsed.major ||
|
|
48
|
+
(highestVersion.major === latestVersionParsed.major && highestVersion.minor < latestVersionParsed.minor - 6);
|
|
49
|
+
if (shouldUpdateToNewest) {
|
|
50
|
+
console.log(chalk.bold.yellowBright.bgRed('We detected that you are using a version that is too outdated'));
|
|
51
|
+
console.log(chalk.yellowBright(`Detected (highest) version:`, chalk.bold.red(highestVersion.fullVersion)));
|
|
52
|
+
console.log(chalk.yellowBright(`Latest version:`, chalk.bold.cyanBright(latestVersionParsed.fullVersion)));
|
|
53
|
+
console.log(chalk.bold.yellowBright.bgRed('Please update to the newest version release as soon as possible!'));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export default checkPackagesInconsistencies;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { COMMANDS } from
|
|
7
|
-
|
|
1
|
+
import { fixLegacyImports } from './fix-legacy-imports';
|
|
2
|
+
import { checkPackagesInconsistencies } from './check-packages-inconsistencies';
|
|
3
|
+
import { checkMissingPackages } from './check-missing-packages';
|
|
4
|
+
import { checkDeprecatedPackages } from './check-deprecated-packages';
|
|
5
|
+
import { helpMigrateToV3 } from './help-migrate-to-v3';
|
|
6
|
+
import { COMMANDS } from '../commands';
|
|
7
|
+
|
|
8
|
+
export async function executeCommandsMap(args, options) {
|
|
8
9
|
switch (options.script) {
|
|
9
10
|
case COMMANDS.FIX_LEGACY_IMPORTS:
|
|
10
11
|
fixLegacyImports(options);
|
|
@@ -21,11 +22,10 @@ async function executeCommandsMap(args, options) {
|
|
|
21
22
|
case COMMANDS.CHECK_DEPRECATED_PACKAGES:
|
|
22
23
|
checkDeprecatedPackages(options);
|
|
23
24
|
break;
|
|
25
|
+
case COMMANDS.HELP_MIGRATE_TO_V3:
|
|
26
|
+
helpMigrateToV3(options);
|
|
27
|
+
break;
|
|
24
28
|
default:
|
|
25
29
|
break;
|
|
26
30
|
}
|
|
27
31
|
}
|
|
28
|
-
export {
|
|
29
|
-
executeCommandsMap
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=execute-commands-map.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import fse from 'fs-extra';
|
|
3
|
+
import { generatePathFromCurrentFolder, replaceFromMap, globArray } from '../../../utils';
|
|
4
|
+
import { legacyImportMap, legacyImportMapRevert } from './legacyImportMap';
|
|
5
|
+
|
|
6
|
+
export const fixLegacyImports = (options, isRevert = false) => {
|
|
7
|
+
const csvGlobs = options.globPattern.split(',').map((pattern) => generatePathFromCurrentFolder(pattern));
|
|
8
|
+
|
|
9
|
+
const ignoredPatterns = options.globPatternIgnore.split(',');
|
|
10
|
+
const globOptions = { ignore: ignoredPatterns };
|
|
11
|
+
|
|
12
|
+
const pathToFileToProcess = globArray(csvGlobs, globOptions);
|
|
13
|
+
|
|
14
|
+
const replaceMap = isRevert ? legacyImportMapRevert : legacyImportMap;
|
|
15
|
+
console.log('replaceMap :>> ', replaceMap);
|
|
16
|
+
pathToFileToProcess.forEach((path) => {
|
|
17
|
+
console.log('path :>> ', path);
|
|
18
|
+
const fileContent = fs.readFileSync(path, {
|
|
19
|
+
encoding: 'utf8',
|
|
20
|
+
flag: 'r',
|
|
21
|
+
});
|
|
22
|
+
if (fileContent && typeof fileContent === 'string') {
|
|
23
|
+
const newContent = replaceFromMap(fileContent, replaceMap);
|
|
24
|
+
fse.outputFileSync(path, newContent);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default fixLegacyImports;
|