@atlaskit/codemod-cli 0.11.5 → 0.12.1
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/CHANGELOG.md +16 -0
- package/dist/cjs/cli.js +75 -68
- package/dist/cjs/filepath.js +29 -69
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/main.js +167 -337
- package/dist/cjs/presets/css-to-design-tokens/css-to-design-tokens.js +31 -73
- package/dist/cjs/presets/css-to-design-tokens/utils/legacy-colors.js +3 -3
- package/dist/cjs/presets/css-to-design-tokens/utils/meta.js +6 -19
- package/dist/cjs/presets/index.js +1 -3
- package/dist/cjs/presets/styled-to-emotion/styled-to-emotion.js +12 -19
- package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +32 -61
- package/dist/cjs/presets/theme-to-design-tokens/utils/ast-meta.js +13 -26
- package/dist/cjs/presets/theme-to-design-tokens/utils/color.js +7 -11
- package/dist/cjs/presets/theme-to-design-tokens/utils/fuzzy-search.js +6 -10
- package/dist/cjs/presets/theme-to-design-tokens/utils/legacy-colors.js +3 -3
- package/dist/cjs/presets/theme-to-design-tokens/utils/named-colors.js +1 -1
- package/dist/cjs/presets/theme-to-design-tokens/utils/tokens.js +2 -16
- package/dist/cjs/sinceRef.js +35 -70
- package/dist/cjs/transforms.js +26 -44
- package/dist/cjs/types.js +3 -27
- package/dist/cjs/utils.js +6 -6
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/cli.js +53 -55
- package/dist/esm/filepath.js +50 -54
- package/dist/esm/main.js +220 -230
- package/dist/esm/presets/css-to-design-tokens/css-to-design-tokens.js +11 -13
- package/dist/esm/sinceRef.js +48 -50
- package/dist/esm/version.json +1 -1
- package/dist/types-ts4.0/cli.d.ts +1 -0
- package/dist/types-ts4.0/filepath.d.ts +2 -0
- package/dist/types-ts4.0/index.d.ts +4 -0
- package/dist/types-ts4.0/main.d.ts +19 -0
- package/dist/types-ts4.0/presets/css-to-design-tokens/css-to-design-tokens.d.ts +2 -0
- package/dist/types-ts4.0/presets/css-to-design-tokens/utils/legacy-colors.d.ts +3 -0
- package/dist/types-ts4.0/presets/css-to-design-tokens/utils/meta.d.ts +1 -0
- package/dist/types-ts4.0/presets/index.d.ts +9 -0
- package/dist/types-ts4.0/presets/styled-to-emotion/styled-to-emotion.d.ts +6 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/theme-to-design-tokens.d.ts +2 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/ast-meta.d.ts +3 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/ast.d.ts +3 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/color.d.ts +4 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/fuzzy-search.d.ts +5 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/legacy-colors.d.ts +3 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/named-colors.d.ts +1 -0
- package/dist/types-ts4.0/presets/theme-to-design-tokens/utils/tokens.d.ts +2 -0
- package/dist/types-ts4.0/sinceRef.d.ts +5 -0
- package/dist/types-ts4.0/transforms.d.ts +10 -0
- package/dist/types-ts4.0/types.d.ts +59 -0
- package/dist/types-ts4.0/utils.d.ts +1 -0
- package/package.json +2 -2
|
@@ -9,11 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
/**
|
|
10
10
|
* Fuzzy search ripped from the internet.
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
14
|
-
var useLevenshtein = arguments.length > 1 ? arguments[1] : undefined;
|
|
15
|
-
var gramSizeLower = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
16
|
-
var gramSizeUpper = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 3;
|
|
12
|
+
const FuzzySet = function (arr = [], useLevenshtein, gramSizeLower = 2, gramSizeUpper = 3) {
|
|
17
13
|
var fuzzyset = {
|
|
18
14
|
gramSizeLower: gramSizeLower,
|
|
19
15
|
gramSizeUpper: gramSizeUpper,
|
|
@@ -22,7 +18,7 @@ var FuzzySet = function FuzzySet() {
|
|
|
22
18
|
matchDict: {},
|
|
23
19
|
items: {}
|
|
24
20
|
};
|
|
25
|
-
var levenshtein = function
|
|
21
|
+
var levenshtein = function (str1, str2) {
|
|
26
22
|
var current = [];
|
|
27
23
|
var prev;
|
|
28
24
|
var value;
|
|
@@ -47,7 +43,7 @@ var FuzzySet = function FuzzySet() {
|
|
|
47
43
|
};
|
|
48
44
|
|
|
49
45
|
// return an edit distance from 0 to 1
|
|
50
|
-
var _distance = function
|
|
46
|
+
var _distance = function (str1, str2) {
|
|
51
47
|
if (str1 === null && str2 === null) {
|
|
52
48
|
throw new Error('Trying to compare two null values');
|
|
53
49
|
}
|
|
@@ -64,7 +60,7 @@ var FuzzySet = function FuzzySet() {
|
|
|
64
60
|
}
|
|
65
61
|
};
|
|
66
62
|
var _nonWordRe = /[^a-zA-Z0-9\u00C0-\u00FF, ]+/g;
|
|
67
|
-
var _iterateGrams = function
|
|
63
|
+
var _iterateGrams = function (value, gramSize) {
|
|
68
64
|
gramSize = gramSize || 2;
|
|
69
65
|
var simplified = '-' + value.toLowerCase().replace(_nonWordRe, '') + '-',
|
|
70
66
|
lenDiff = gramSize - simplified.length,
|
|
@@ -79,7 +75,7 @@ var FuzzySet = function FuzzySet() {
|
|
|
79
75
|
}
|
|
80
76
|
return results;
|
|
81
77
|
};
|
|
82
|
-
var _gramCounter = function
|
|
78
|
+
var _gramCounter = function (value, gramSize) {
|
|
83
79
|
// return an object where key=gram, value=number of occurrences
|
|
84
80
|
gramSize = gramSize || 2;
|
|
85
81
|
var result = {},
|
|
@@ -169,7 +165,7 @@ var FuzzySet = function FuzzySet() {
|
|
|
169
165
|
matchScore = matches[matchIndex];
|
|
170
166
|
results.push([matchScore / (vectorNormal * items[matchIndex][0]), items[matchIndex][1]]);
|
|
171
167
|
}
|
|
172
|
-
var sortDescending = function
|
|
168
|
+
var sortDescending = function (a, b) {
|
|
173
169
|
if (a[0] < b[0]) {
|
|
174
170
|
return 1;
|
|
175
171
|
} else if (a[0] > b[0]) {
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.legacyColors = exports.legacyColorMixins = exports.legacyColorMetaMap = void 0;
|
|
7
|
-
|
|
7
|
+
const legacyColors = ['R50', 'R75', 'R100', 'R200', 'R300', 'R400', 'R500', 'Y50', 'Y75', 'Y100', 'Y200', 'Y300', 'Y400', 'Y500', 'G50', 'G75', 'G100', 'G200', 'G300', 'G400', 'G500', 'B50', 'B75', 'B100', 'B200', 'B300', 'B400', 'B500', 'P50', 'P75', 'P100', 'P200', 'P300', 'P400', 'P500', 'T50', 'T75', 'T100', 'T200', 'T300', 'T400', 'T500', 'N0', 'N10', 'N20', 'N30', 'N40', 'N50', 'N60', 'N70', 'N80', 'N90', 'N100', 'N200', 'N300', 'N400', 'N500', 'N600', 'N700', 'N800', 'N900', 'N10A', 'N20A', 'N30A', 'N40A', 'N50A', 'N60A', 'N70A', 'N80A', 'N90A', 'N100A', 'N200A', 'N300A', 'N400A', 'N500A', 'N600A', 'N700A', 'N800A', 'DN900', 'DN800', 'DN700', 'DN600', 'DN500', 'DN400', 'DN300', 'DN200', 'DN100', 'DN90', 'DN80', 'DN70', 'DN60', 'DN50', 'DN40', 'DN30', 'DN20', 'DN10', 'DN0', 'DN800A', 'DN700A', 'DN600A', 'DN500A', 'DN400A', 'DN300A', 'DN200A', 'DN100A', 'DN90A', 'DN80A', 'DN70A', 'DN60A', 'DN50A', 'DN40A', 'DN30A', 'DN20A', 'DN10A'];
|
|
8
8
|
exports.legacyColors = legacyColors;
|
|
9
|
-
|
|
9
|
+
const legacyColorMixins = ['background', 'backgroundActive', 'backgroundHover', 'backgroundOnLayer', 'text', 'textHover', 'textActive', 'subtleText', 'placeholderText', 'heading', 'subtleHeading', 'codeBlock', 'link', 'linkHover', 'linkActive', 'linkOutline', 'primary', 'blue', 'teal', 'purple', 'red', 'yellow', 'green', 'skeleton'];
|
|
10
10
|
exports.legacyColorMixins = legacyColorMixins;
|
|
11
|
-
|
|
11
|
+
const legacyColorMetaMap = {
|
|
12
12
|
R50: ['danger'],
|
|
13
13
|
R75: ['danger'],
|
|
14
14
|
R100: ['danger'],
|
|
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.namedColors = void 0;
|
|
7
|
-
|
|
7
|
+
const namedColors = ['black', 'silver', 'gray', 'white', 'maroon', 'red', 'purple', 'fuchsia', 'green', 'lime', 'olive', 'yellow', 'navy', 'blue', 'teal', 'aqua', 'orange', 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'blanchedalmond', 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki', 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow', 'limegreen', 'linen', 'magenta', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'oldlace', 'olivedrab', 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat', 'whitesmoke', 'yellowgreen', 'rebeccapurple'];
|
|
8
8
|
exports.namedColors = namedColors;
|
|
@@ -1,27 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.tokens = exports.getUniqueWordsFromTokens = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
7
|
var _tokensRaw = require("@atlaskit/tokens/tokens-raw");
|
|
10
|
-
|
|
11
|
-
return t.attributes.state === 'active';
|
|
12
|
-
}).map(function (t) {
|
|
13
|
-
return t.name.replace(/\.\[default\]/g, '');
|
|
14
|
-
}).filter(function (t) {
|
|
15
|
-
return !t.includes('UNSAFE') && !t.includes('interaction') && !t.includes('chart');
|
|
16
|
-
});
|
|
8
|
+
const tokens = _tokensRaw.light.filter(t => t.attributes.state === 'active').map(t => t.name.replace(/\.\[default\]/g, '')).filter(t => !t.includes('UNSAFE') && !t.includes('interaction') && !t.includes('chart'));
|
|
17
9
|
exports.tokens = tokens;
|
|
18
|
-
|
|
19
|
-
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split('.')));
|
|
20
|
-
}, []).reduce(function (accum, val) {
|
|
21
|
-
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split(/(?=[A-Z])/g).map(function (e) {
|
|
22
|
-
return e.toLowerCase();
|
|
23
|
-
})));
|
|
24
|
-
}, []).reduce(function (accum, val) {
|
|
10
|
+
const getUniqueWordsFromTokens = tokens.reduce((accum, val) => [...accum, ...val.split('.')], []).reduce((accum, val) => [...accum, ...val.split(/(?=[A-Z])/g).map(e => e.toLowerCase())], []).reduce((accum, val) => {
|
|
25
11
|
if (!accum.includes(val)) {
|
|
26
12
|
accum.push(val);
|
|
27
13
|
}
|
package/dist/cjs/sinceRef.js
CHANGED
|
@@ -5,19 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getPackagesSinceRef = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
8
|
var _simpleGit = _interopRequireDefault(require("simple-git"));
|
|
11
9
|
var _types = require("./types");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const packageRegex = /"(@(?:atlaskit|atlassian|atlassiansox)\/.*)": "(.*)"/;
|
|
11
|
+
const parseDiffLine = line => {
|
|
12
|
+
const type = line.startsWith('-') ? 'deleted' : line.startsWith('+') ? 'added' : null;
|
|
13
|
+
const match = line.match(packageRegex);
|
|
16
14
|
if (!type || !match) {
|
|
17
15
|
return null;
|
|
18
16
|
}
|
|
19
17
|
return {
|
|
20
|
-
type
|
|
18
|
+
type,
|
|
21
19
|
name: match[1],
|
|
22
20
|
version: match[2]
|
|
23
21
|
};
|
|
@@ -26,70 +24,37 @@ var parseDiffLine = function parseDiffLine(line) {
|
|
|
26
24
|
/** Returns packages that have been upgraded in package.json since ref. The version refers to their previous
|
|
27
25
|
* version
|
|
28
26
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
addedPackages = new Map(modifiedPackages.filter(function (pkg) {
|
|
57
|
-
return pkg.type === 'added';
|
|
58
|
-
}).map(function (pkg) {
|
|
59
|
-
return [pkg.name, pkg];
|
|
60
|
-
}));
|
|
61
|
-
/* This is holds the previous version of packages that have been upgraded. Packages are treated as
|
|
62
|
-
* upgraded if they have both an addition/deletion entry in the diff and their versions differ
|
|
63
|
-
*/
|
|
64
|
-
upgradedPackages = modifiedPackages.filter(function (pkg) {
|
|
65
|
-
var addedEntry = addedPackages.get(pkg.name);
|
|
66
|
-
if (pkg.type !== 'deleted' || !addedEntry) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
return pkg.version !== addedEntry.version;
|
|
70
|
-
}).map(function (_ref2) {
|
|
71
|
-
var name = _ref2.name,
|
|
72
|
-
version = _ref2.version;
|
|
73
|
-
return {
|
|
74
|
-
name: name,
|
|
75
|
-
version: version
|
|
76
|
-
};
|
|
77
|
-
});
|
|
78
|
-
return _context.abrupt("return", upgradedPackages);
|
|
79
|
-
case 17:
|
|
80
|
-
case "end":
|
|
81
|
-
return _context.stop();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}, _callee, null, [[1, 7]]);
|
|
27
|
+
const getPackagesSinceRef = async ref => {
|
|
28
|
+
const git = (0, _simpleGit.default)();
|
|
29
|
+
let commit;
|
|
30
|
+
try {
|
|
31
|
+
commit = await git.revparse(['--verify', ref]);
|
|
32
|
+
} catch (e) {
|
|
33
|
+
throw new _types.ValidationError(`Invalid git ref "${ref}"`);
|
|
34
|
+
}
|
|
35
|
+
const diff = await git.diff([commit, '--', 'package.json']);
|
|
36
|
+
const modifiedPackages = diff.split('\n').map(parseDiffLine).filter(pkg => Boolean(pkg));
|
|
37
|
+
const addedPackages = new Map(modifiedPackages.filter(pkg => pkg.type === 'added').map(pkg => [pkg.name, pkg]));
|
|
38
|
+
|
|
39
|
+
/* This is holds the previous version of packages that have been upgraded. Packages are treated as
|
|
40
|
+
* upgraded if they have both an addition/deletion entry in the diff and their versions differ
|
|
41
|
+
*/
|
|
42
|
+
const upgradedPackages = modifiedPackages.filter(pkg => {
|
|
43
|
+
const addedEntry = addedPackages.get(pkg.name);
|
|
44
|
+
if (pkg.type !== 'deleted' || !addedEntry) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return pkg.version !== addedEntry.version;
|
|
48
|
+
}).map(({
|
|
49
|
+
name,
|
|
50
|
+
version
|
|
51
|
+
}) => ({
|
|
52
|
+
name,
|
|
53
|
+
version
|
|
85
54
|
}));
|
|
86
|
-
return
|
|
87
|
-
|
|
88
|
-
};
|
|
89
|
-
}();
|
|
55
|
+
return upgradedPackages;
|
|
56
|
+
};
|
|
90
57
|
exports.getPackagesSinceRef = getPackagesSinceRef;
|
|
91
58
|
if (require.main === module) {
|
|
92
|
-
getPackagesSinceRef(process.argv[2]).then(
|
|
93
|
-
return console.log(res);
|
|
94
|
-
});
|
|
59
|
+
getPackagesSinceRef(process.argv[2]).then(res => console.log(res));
|
|
95
60
|
}
|
package/dist/cjs/transforms.js
CHANGED
|
@@ -5,77 +5,59 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.parseTransformPath = exports.hasTransform = exports.getTransforms = exports.getTransformVersion = exports.getTransformPath = exports.getTransformModule = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
8
|
var _path = _interopRequireDefault(require("path"));
|
|
10
9
|
var _glob = _interopRequireDefault(require("glob"));
|
|
11
10
|
var _semver = _interopRequireDefault(require("semver"));
|
|
12
11
|
var _presets = _interopRequireDefault(require("./presets"));
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}).join(','), ",}")] : ['@{atlaskit,atlassian,atlassiansox}', '*'];
|
|
17
|
-
return _path.default.join.apply(_path.default, [process.cwd(), 'node_modules'].concat(packageDirectory, ['codemods']));
|
|
18
|
-
};
|
|
19
|
-
var hasTransform = function hasTransform(transformPath) {
|
|
20
|
-
return _glob.default.sync(transformPath).length > 0;
|
|
12
|
+
const basePath = packages => {
|
|
13
|
+
const packageDirectory = packages && packages.length > 0 ? [`{${packages.map(pkg => pkg.name).join(',')},}`] : ['@{atlaskit,atlassian,atlassiansox}', '*'];
|
|
14
|
+
return _path.default.join(process.cwd(), 'node_modules', ...packageDirectory, 'codemods');
|
|
21
15
|
};
|
|
16
|
+
const hasTransform = transformPath => _glob.default.sync(transformPath).length > 0;
|
|
22
17
|
|
|
23
18
|
/** Retrieves transforms for `packages` if provided, otherwise all transforms including presets */
|
|
24
19
|
exports.hasTransform = hasTransform;
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
const getTransforms = packages => {
|
|
21
|
+
const transforms = [_path.default.join(basePath(packages), '*.@(ts|tsx|js)'), _path.default.join(basePath(packages), '*', 'index.@(ts|tsx|js)')];
|
|
27
22
|
if (!packages) {
|
|
28
|
-
transforms.unshift
|
|
23
|
+
transforms.unshift(..._presets.default);
|
|
29
24
|
}
|
|
30
|
-
return transforms.map(
|
|
31
|
-
return _glob.default.sync(transform);
|
|
32
|
-
}).reduce(function (acc, val) {
|
|
33
|
-
return acc.concat(val);
|
|
34
|
-
}, []).map(function (transform) {
|
|
35
|
-
return parseTransformPath(transform);
|
|
36
|
-
}).filter(filterTransforms(packages)).sort();
|
|
25
|
+
return transforms.map(transform => _glob.default.sync(transform)).reduce((acc, val) => acc.concat(val), []).map(transform => parseTransformPath(transform)).filter(filterTransforms(packages)).sort();
|
|
37
26
|
};
|
|
38
27
|
exports.getTransforms = getTransforms;
|
|
39
|
-
|
|
40
|
-
return _path.default.parse(transformPath);
|
|
41
|
-
};
|
|
28
|
+
const parseTransformPath = transformPath => _path.default.parse(transformPath);
|
|
42
29
|
exports.parseTransformPath = parseTransformPath;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
};
|
|
30
|
+
const getTransformPath = ({
|
|
31
|
+
dir,
|
|
32
|
+
base
|
|
33
|
+
}) => `${dir}/${base}`;
|
|
48
34
|
exports.getTransformPath = getTransformPath;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
35
|
+
const getTransformModule = transform => {
|
|
36
|
+
const pathSegments = transform.dir.split(_path.default.sep);
|
|
37
|
+
const nodeModulesIdx = pathSegments.indexOf('node_modules');
|
|
52
38
|
// pathSegments will be of the form [node_modules, '@atlaskit', 'avatar', 'codemods']
|
|
53
39
|
return pathSegments.slice(nodeModulesIdx + 1, nodeModulesIdx + 3).join('/');
|
|
54
40
|
};
|
|
55
41
|
exports.getTransformModule = getTransformModule;
|
|
56
|
-
|
|
57
|
-
|
|
42
|
+
const getTransformVersion = transform => {
|
|
43
|
+
let transformName = transform.base;
|
|
58
44
|
if (transformName.startsWith('index.')) {
|
|
59
|
-
|
|
45
|
+
const pathSegments = transform.dir.split(_path.default.sep);
|
|
60
46
|
transformName = pathSegments[pathSegments.length - 1];
|
|
61
47
|
}
|
|
62
48
|
return transformName.split('-')[0];
|
|
63
49
|
};
|
|
64
50
|
exports.getTransformVersion = getTransformVersion;
|
|
65
|
-
|
|
51
|
+
const filterTransforms = packages => {
|
|
66
52
|
if (!packages || packages.length === 0) {
|
|
67
|
-
return
|
|
68
|
-
return true;
|
|
69
|
-
};
|
|
53
|
+
return () => true;
|
|
70
54
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
var transformVersion = getTransformVersion(transform);
|
|
76
|
-
var pkgVersion = packageMap.get(getTransformModule(transform));
|
|
55
|
+
const packageMap = new Map(packages.map(pkg => [pkg.name, pkg.version]));
|
|
56
|
+
return transform => {
|
|
57
|
+
const transformVersion = getTransformVersion(transform);
|
|
58
|
+
const pkgVersion = packageMap.get(getTransformModule(transform));
|
|
77
59
|
if (pkgVersion === undefined) {
|
|
78
|
-
throw Error(
|
|
60
|
+
throw Error(`No corresponding package found for transform "${transform.dir}/${transform.base}`);
|
|
79
61
|
}
|
|
80
62
|
if (transformVersion === 'next' || pkgVersion === null) {
|
|
81
63
|
return true;
|
package/dist/cjs/types.js
CHANGED
|
@@ -1,38 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.ValidationError = exports.NoTransformsExistError = void 0;
|
|
8
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
11
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
-
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
14
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
15
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
16
7
|
/** Converts required args to optional if they have a default
|
|
17
8
|
* Example: export type UserFlags = Default<Flags, keyof typeof defaultFlags>;
|
|
18
9
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var _super = _createSuper(ValidationError);
|
|
22
|
-
function ValidationError() {
|
|
23
|
-
(0, _classCallCheck2.default)(this, ValidationError);
|
|
24
|
-
return _super.apply(this, arguments);
|
|
25
|
-
}
|
|
26
|
-
return (0, _createClass2.default)(ValidationError);
|
|
27
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
10
|
+
|
|
11
|
+
class ValidationError extends Error {}
|
|
28
12
|
exports.ValidationError = ValidationError;
|
|
29
|
-
|
|
30
|
-
(0, _inherits2.default)(NoTransformsExistError, _Error2);
|
|
31
|
-
var _super2 = _createSuper(NoTransformsExistError);
|
|
32
|
-
function NoTransformsExistError() {
|
|
33
|
-
(0, _classCallCheck2.default)(this, NoTransformsExistError);
|
|
34
|
-
return _super2.apply(this, arguments);
|
|
35
|
-
}
|
|
36
|
-
return (0, _createClass2.default)(NoTransformsExistError);
|
|
37
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
13
|
+
class NoTransformsExistError extends Error {}
|
|
38
14
|
exports.NoTransformsExistError = NoTransformsExistError;
|
package/dist/cjs/utils.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.fixLineEnding = void 0;
|
|
7
7
|
/* Utility functions to be used in codemod-cli. */
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
const returnLineEnding = source => {
|
|
10
10
|
var cr = source.split('\r').length;
|
|
11
11
|
var lf = source.split('\n').length;
|
|
12
12
|
var crlf = source.split('\r\n').length;
|
|
@@ -22,7 +22,7 @@ var returnLineEnding = function returnLineEnding(source) {
|
|
|
22
22
|
return 'LF';
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
const getLineEndingRegex = type => {
|
|
26
26
|
if (['CR', 'LF', 'CRLF'].indexOf(type) === -1) {
|
|
27
27
|
throw new Error("Line ending '" + type + "' is not supported, use CR, LF or CRLF");
|
|
28
28
|
}
|
|
@@ -36,13 +36,13 @@ var getLineEndingRegex = function getLineEndingRegex(type) {
|
|
|
36
36
|
return '\r\n';
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
const fixLineEnding = (source, lineEnding) => {
|
|
40
|
+
const current = returnLineEnding(source);
|
|
41
41
|
if (current === lineEnding) {
|
|
42
42
|
return source;
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const regexCurrentLineEnding = getLineEndingRegex(current);
|
|
45
|
+
const regexLineEnding = getLineEndingRegex(lineEnding);
|
|
46
46
|
if (current && regexLineEnding && regexCurrentLineEnding) {
|
|
47
47
|
return source.replace(new RegExp(regexCurrentLineEnding, 'g'), regexLineEnding);
|
|
48
48
|
}
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/version.json
CHANGED
package/dist/esm/cli.js
CHANGED
|
@@ -11,62 +11,60 @@ function _run() {
|
|
|
11
11
|
_run = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
12
12
|
var cli;
|
|
13
13
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
14
|
-
while (1) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
default: true
|
|
50
|
-
}
|
|
14
|
+
while (1) switch (_context.prev = _context.next) {
|
|
15
|
+
case 0:
|
|
16
|
+
cli = meow("\nUsage\n $ npx @atlaskit/codemod-cli [options] <file-paths>...\n\nOptions\n --preset, -n select transform by preset name, avoid user interaction\n --transform, -t the transform to run, will prompt for a transform if not provided and no module is passed\n --since-ref, runs transforms for all packages that have been upgraded since the specified git ref\n --packages, runs transforms for the specified comma separated list of packages, optionally include a version for each package to run all transforms since that version\n --parser, -p babel|babylon|flow|ts|tsx parser to use for parsing the source files (default: babel)\n --extensions, -e transform files with these file extensions (comma separated list) (default: js)\n --ignore-pattern, ignore files that match a provided glob expression\n --fail-on-error, return a 1 exit code when errors were found during execution of codemods\n --version, -v version number\n --no-filter-paths disables dependant package file path filtering logic \n --help Help me \uD83D\uDE31\n\nExamples\n # Run a codemod over the /project/src directory, will be prompted for which codemod to run\n $ npx @atlaskit/codemod-cli /project/src\n\n # Run the \"4.0.0-remove-appearance-prop\" transform of the \"button\" package\n $ npx @atlaskit/codemod-cli -t button@4.0.0-remove-appearance-prop /project/src\n\n # Run all transforms for \"@atlaskit/button\" greater than version 3.0.0 and @atlaskit/range greater than 4.0.0\n $ npx @atlaskit/codemod-cli --packages @atlaskit/button@3.0.0,@atlaskit/range@4.0.0 /project/src\n", {
|
|
17
|
+
flags: {
|
|
18
|
+
transform: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
alias: 't'
|
|
21
|
+
},
|
|
22
|
+
preset: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
alias: 'n'
|
|
25
|
+
},
|
|
26
|
+
packages: {
|
|
27
|
+
type: 'string'
|
|
28
|
+
},
|
|
29
|
+
parser: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
alias: 'p'
|
|
32
|
+
},
|
|
33
|
+
extensions: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
alias: 'e'
|
|
36
|
+
},
|
|
37
|
+
ignorePattern: {
|
|
38
|
+
type: 'string'
|
|
39
|
+
},
|
|
40
|
+
sinceRef: {
|
|
41
|
+
type: 'string'
|
|
42
|
+
},
|
|
43
|
+
failOnError: {
|
|
44
|
+
type: 'boolean'
|
|
45
|
+
},
|
|
46
|
+
filterPaths: {
|
|
47
|
+
type: 'boolean',
|
|
48
|
+
default: true
|
|
51
49
|
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
main(cli.input, cli.flags).catch(function (e) {
|
|
53
|
+
if (e instanceof ValidationError) {
|
|
54
|
+
console.error(cli.help);
|
|
55
|
+
console.error(chalk.red(e.message));
|
|
56
|
+
process.exit(1);
|
|
57
|
+
} else if (e instanceof NoTransformsExistError) {
|
|
58
|
+
console.warn(chalk.yellow(e.message));
|
|
59
|
+
process.exit(0);
|
|
60
|
+
} else {
|
|
61
|
+
console.error(chalk.red(e));
|
|
62
|
+
process.exit(3);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
case 2:
|
|
66
|
+
case "end":
|
|
67
|
+
return _context.stop();
|
|
70
68
|
}
|
|
71
69
|
}, _callee);
|
|
72
70
|
}));
|