@atlaskit/codemod-cli 0.11.4 → 0.12.0
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 +17 -0
- package/dist/cjs/cli.js +72 -75
- package/dist/cjs/filepath.js +29 -83
- package/dist/cjs/index.js +3 -6
- package/dist/cjs/main.js +165 -441
- package/dist/cjs/presets/css-to-design-tokens/css-to-design-tokens.js +44 -135
- package/dist/cjs/presets/css-to-design-tokens/utils/legacy-colors.js +3 -4
- package/dist/cjs/presets/css-to-design-tokens/utils/meta.js +6 -29
- package/dist/cjs/presets/index.js +2 -9
- package/dist/cjs/presets/styled-to-emotion/styled-to-emotion.js +13 -25
- package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +34 -82
- package/dist/cjs/presets/theme-to-design-tokens/utils/ast-meta.js +14 -41
- package/dist/cjs/presets/theme-to-design-tokens/utils/ast.js +0 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/color.js +9 -28
- package/dist/cjs/presets/theme-to-design-tokens/utils/fuzzy-search.js +44 -106
- 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 -22
- package/dist/cjs/sinceRef.js +36 -92
- package/dist/cjs/transforms.js +27 -72
- package/dist/cjs/types.js +2 -45
- package/dist/cjs/utils.js +7 -20
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/filepath.js +7 -5
- package/dist/es2019/main.js +17 -51
- package/dist/es2019/presets/css-to-design-tokens/css-to-design-tokens.js +19 -51
- package/dist/es2019/presets/css-to-design-tokens/utils/legacy-colors.js +0 -1
- package/dist/es2019/presets/css-to-design-tokens/utils/meta.js +0 -6
- package/dist/es2019/presets/index.js +1 -1
- package/dist/es2019/presets/styled-to-emotion/styled-to-emotion.js +1 -4
- package/dist/es2019/presets/theme-to-design-tokens/theme-to-design-tokens.js +4 -14
- package/dist/es2019/presets/theme-to-design-tokens/utils/ast-meta.js +2 -11
- package/dist/es2019/presets/theme-to-design-tokens/utils/color.js +2 -7
- package/dist/es2019/presets/theme-to-design-tokens/utils/fuzzy-search.js +38 -95
- package/dist/es2019/presets/theme-to-design-tokens/utils/tokens.js +0 -1
- package/dist/es2019/sinceRef.js +2 -11
- package/dist/es2019/transforms.js +3 -13
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/utils.js +1 -12
- package/dist/es2019/version.json +1 -1
- package/dist/esm/cli.js +53 -57
- package/dist/esm/filepath.js +51 -63
- package/dist/esm/main.js +221 -322
- package/dist/esm/presets/css-to-design-tokens/css-to-design-tokens.js +33 -71
- package/dist/esm/presets/css-to-design-tokens/utils/legacy-colors.js +0 -1
- package/dist/esm/presets/css-to-design-tokens/utils/meta.js +0 -6
- package/dist/esm/presets/index.js +1 -1
- package/dist/esm/presets/styled-to-emotion/styled-to-emotion.js +1 -4
- package/dist/esm/presets/theme-to-design-tokens/theme-to-design-tokens.js +4 -15
- package/dist/esm/presets/theme-to-design-tokens/utils/ast-meta.js +2 -11
- package/dist/esm/presets/theme-to-design-tokens/utils/color.js +2 -7
- package/dist/esm/presets/theme-to-design-tokens/utils/fuzzy-search.js +38 -95
- package/dist/esm/presets/theme-to-design-tokens/utils/tokens.js +0 -1
- package/dist/esm/sinceRef.js +49 -65
- package/dist/esm/transforms.js +4 -14
- package/dist/esm/types.js +1 -11
- package/dist/esm/utils.js +1 -12
- package/dist/esm/version.json +1 -1
- package/package.json +2 -2
- package/tmp/api-report-tmp.d.ts +0 -66
package/dist/esm/main.js
CHANGED
|
@@ -1,37 +1,26 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
|
|
5
4
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
6
|
-
|
|
7
5
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
-
|
|
9
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
10
|
-
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
|
-
|
|
13
8
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
-
|
|
15
9
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
-
|
|
17
10
|
import chalk from 'chalk';
|
|
18
11
|
import fs from 'fs';
|
|
19
12
|
import spawn from 'projector-spawn';
|
|
20
13
|
import { AutoComplete } from 'enquirer';
|
|
21
14
|
import semver from 'semver';
|
|
22
|
-
|
|
23
15
|
var jscodeshift = require.resolve('.bin/jscodeshift');
|
|
24
|
-
|
|
25
16
|
import { fixLineEnding } from './utils';
|
|
26
17
|
import { getTransforms, getTransformPath, hasTransform, parseTransformPath, getTransformModule } from './transforms';
|
|
27
18
|
import { ValidationError, NoTransformsExistError } from './types';
|
|
28
19
|
import { getPackagesSinceRef } from './sinceRef';
|
|
29
20
|
import { findDependentPackagePaths } from './filepath';
|
|
30
|
-
|
|
31
21
|
var applyTransformMeta = function applyTransformMeta(transforms) {
|
|
32
22
|
return transforms.map(function (transform) {
|
|
33
23
|
var moduleMatch = transform.dir.match(/\/@atlaskit\/[^\/]+\//);
|
|
34
|
-
|
|
35
24
|
if (moduleMatch) {
|
|
36
25
|
var moduleName = moduleMatch[0].substring(1, moduleMatch[0].length - 1);
|
|
37
26
|
var transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
|
|
@@ -39,225 +28,181 @@ var applyTransformMeta = function applyTransformMeta(transforms) {
|
|
|
39
28
|
id: "".concat(moduleName, ": ").concat(transformName)
|
|
40
29
|
});
|
|
41
30
|
}
|
|
42
|
-
|
|
43
31
|
var presetMatch = transform.dir.match(/\/codemod-cli\/.+\/presets/);
|
|
44
|
-
|
|
45
32
|
if (presetMatch) {
|
|
46
33
|
var _transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
|
|
47
|
-
|
|
48
34
|
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
49
35
|
id: "@atlaskit/codemod-cli: ".concat(_transformName)
|
|
50
36
|
});
|
|
51
37
|
}
|
|
52
|
-
|
|
53
38
|
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
54
39
|
id: "".concat(transform.dir, "/").concat(transform.name)
|
|
55
40
|
});
|
|
56
41
|
});
|
|
57
42
|
};
|
|
58
|
-
|
|
59
43
|
var getTransformPrompt = /*#__PURE__*/function () {
|
|
60
44
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(transforms) {
|
|
61
45
|
var transformMeta;
|
|
62
46
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
63
|
-
while (1) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
case 4:
|
|
90
|
-
case "end":
|
|
91
|
-
return _context.stop();
|
|
92
|
-
}
|
|
47
|
+
while (1) switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
transformMeta = applyTransformMeta(transforms);
|
|
50
|
+
_context.next = 3;
|
|
51
|
+
return new AutoComplete({
|
|
52
|
+
message: 'Select which transform would you like to run? 🤔',
|
|
53
|
+
limit: 18,
|
|
54
|
+
choices: transformMeta.map(function (_ref2) {
|
|
55
|
+
var id = _ref2.id,
|
|
56
|
+
name = _ref2.name,
|
|
57
|
+
dir = _ref2.dir;
|
|
58
|
+
return id ? id : "".concat(dir, "/").concat(name);
|
|
59
|
+
}),
|
|
60
|
+
result: function result(choice) {
|
|
61
|
+
return transformMeta.find(function (_ref3) {
|
|
62
|
+
var id = _ref3.id,
|
|
63
|
+
dir = _ref3.dir;
|
|
64
|
+
return id === choice || dir === choice;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}).run();
|
|
68
|
+
case 3:
|
|
69
|
+
return _context.abrupt("return", _context.sent);
|
|
70
|
+
case 4:
|
|
71
|
+
case "end":
|
|
72
|
+
return _context.stop();
|
|
93
73
|
}
|
|
94
74
|
}, _callee);
|
|
95
75
|
}));
|
|
96
|
-
|
|
97
76
|
return function getTransformPrompt(_x) {
|
|
98
77
|
return _ref.apply(this, arguments);
|
|
99
78
|
};
|
|
100
79
|
}();
|
|
101
|
-
|
|
102
80
|
var resolveTransform = /*#__PURE__*/function () {
|
|
103
81
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(flags, transforms) {
|
|
104
82
|
var transform;
|
|
105
83
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
106
|
-
while (1) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (!flags.preset) {
|
|
110
|
-
_context2.next = 7;
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
transform = transforms.find(function (_ref5) {
|
|
115
|
-
var name = _ref5.name;
|
|
116
|
-
return name === flags.preset;
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
if (transform) {
|
|
120
|
-
_context2.next = 6;
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
console.warn("No preset found for: ".concat(chalk.bgRed(flags.preset)));
|
|
84
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
85
|
+
case 0:
|
|
86
|
+
if (!flags.preset) {
|
|
125
87
|
_context2.next = 7;
|
|
126
88
|
break;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
89
|
+
}
|
|
90
|
+
transform = transforms.find(function (_ref5) {
|
|
91
|
+
var name = _ref5.name;
|
|
92
|
+
return name === flags.preset;
|
|
93
|
+
});
|
|
94
|
+
if (transform) {
|
|
95
|
+
_context2.next = 6;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
console.warn("No preset found for: ".concat(chalk.bgRed(flags.preset)));
|
|
99
|
+
_context2.next = 7;
|
|
100
|
+
break;
|
|
101
|
+
case 6:
|
|
102
|
+
return _context2.abrupt("return", transform);
|
|
103
|
+
case 7:
|
|
104
|
+
if (!(flags.transform && hasTransform(flags.transform))) {
|
|
105
|
+
_context2.next = 9;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
return _context2.abrupt("return", parseTransformPath(flags.transform));
|
|
109
|
+
case 9:
|
|
110
|
+
if (flags.transform && !hasTransform(flags.transform)) {
|
|
111
|
+
console.warn("No available transform found for: ".concat(chalk.bgRed(flags.transform)));
|
|
112
|
+
}
|
|
113
|
+
_context2.next = 12;
|
|
114
|
+
return getTransformPrompt(transforms);
|
|
115
|
+
case 12:
|
|
116
|
+
return _context2.abrupt("return", _context2.sent);
|
|
117
|
+
case 13:
|
|
118
|
+
case "end":
|
|
119
|
+
return _context2.stop();
|
|
154
120
|
}
|
|
155
121
|
}, _callee2);
|
|
156
122
|
}));
|
|
157
|
-
|
|
158
123
|
return function resolveTransform(_x2, _x3) {
|
|
159
124
|
return _ref4.apply(this, arguments);
|
|
160
125
|
};
|
|
161
126
|
}();
|
|
162
|
-
|
|
163
127
|
var runTransform = /*#__PURE__*/function () {
|
|
164
128
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(filePaths, transform, flags) {
|
|
165
129
|
var logger, codemodDirs, transformPath, args, jscodeshiftContent, jscodeshiftContentNew;
|
|
166
130
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
167
|
-
while (1) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
131
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
132
|
+
case 0:
|
|
133
|
+
logger = flags.logger;
|
|
134
|
+
logger.log(chalk.green("Running transform '".concat(chalk.bold(transform.name), "' over ").concat(chalk.bold(filePaths.join(', ')), "...")));
|
|
135
|
+
codemodDirs = filePaths;
|
|
136
|
+
if (!flags.filterPaths) {
|
|
137
|
+
_context3.next = 9;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
logger.log(chalk.green("Running filtering logic for module ".concat(transform.module, "...")));
|
|
141
|
+
_context3.next = 7;
|
|
142
|
+
return findDependentPackagePaths(filePaths, transform.module);
|
|
143
|
+
case 7:
|
|
144
|
+
codemodDirs = _context3.sent;
|
|
145
|
+
if (codemodDirs.length === 0) {
|
|
146
|
+
// Fallback to non-filter logic if filtering returns no directories
|
|
147
|
+
logger.log(chalk.yellow("Could not filter source paths for ".concat(transform.module, ", falling back to running over all specified paths. (See --no-filter-paths flag)")));
|
|
172
148
|
codemodDirs = filePaths;
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
args = ["--transform=".concat(transformPath), "--ignore-pattern=".concat(flags.ignorePattern), "--parser=".concat(flags.parser), "--extensions=".concat(flags.extensions), '--cpus=8'].concat(_toConsumableArray(codemodDirs));
|
|
199
|
-
|
|
200
|
-
if (flags.failOnError) {
|
|
201
|
-
args.unshift('--fail-on-error');
|
|
202
|
-
} // To avoid https://github.com/facebook/jscodeshift/issues/424 where the jscodeshift.js file is `CRLF` ending.
|
|
203
|
-
// The workaround to use only the `node_modules` indicated in this ticket will not work as we run this code as CLI in products repository
|
|
204
|
-
// that may not have jscodeshift installed.
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
jscodeshiftContent = fs.readFileSync(jscodeshift, 'utf8');
|
|
208
|
-
jscodeshiftContentNew = fixLineEnding(jscodeshiftContent, 'LF');
|
|
209
|
-
fs.writeFileSync(jscodeshift, jscodeshiftContentNew);
|
|
210
|
-
_context3.next = 18;
|
|
211
|
-
return spawn(jscodeshift, args, {
|
|
212
|
-
stdio: 'inherit'
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
case 18:
|
|
216
|
-
case "end":
|
|
217
|
-
return _context3.stop();
|
|
218
|
-
}
|
|
149
|
+
} else {
|
|
150
|
+
logger.log(chalk.green("Running transform '".concat(chalk.bold(transform.name), "' over filtered dirs ").concat(chalk.bold(codemodDirs.join(', ')), "...")));
|
|
151
|
+
}
|
|
152
|
+
case 9:
|
|
153
|
+
logger.log(chalk.green("Transforming files matching these extensions '".concat(chalk.bold(flags.extensions), "'...")));
|
|
154
|
+
transformPath = getTransformPath(transform); // Limit CPUs to 8 to prevent issues when running on CI with a large amount of cpus
|
|
155
|
+
args = ["--transform=".concat(transformPath), "--ignore-pattern=".concat(flags.ignorePattern), "--parser=".concat(flags.parser), "--extensions=".concat(flags.extensions), '--cpus=8'].concat(_toConsumableArray(codemodDirs));
|
|
156
|
+
if (flags.failOnError) {
|
|
157
|
+
args.unshift('--fail-on-error');
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// To avoid https://github.com/facebook/jscodeshift/issues/424 where the jscodeshift.js file is `CRLF` ending.
|
|
161
|
+
// The workaround to use only the `node_modules` indicated in this ticket will not work as we run this code as CLI in products repository
|
|
162
|
+
// that may not have jscodeshift installed.
|
|
163
|
+
jscodeshiftContent = fs.readFileSync(jscodeshift, 'utf8');
|
|
164
|
+
jscodeshiftContentNew = fixLineEnding(jscodeshiftContent, 'LF');
|
|
165
|
+
fs.writeFileSync(jscodeshift, jscodeshiftContentNew);
|
|
166
|
+
_context3.next = 18;
|
|
167
|
+
return spawn(jscodeshift, args, {
|
|
168
|
+
stdio: 'inherit'
|
|
169
|
+
});
|
|
170
|
+
case 18:
|
|
171
|
+
case "end":
|
|
172
|
+
return _context3.stop();
|
|
219
173
|
}
|
|
220
174
|
}, _callee3);
|
|
221
175
|
}));
|
|
222
|
-
|
|
223
176
|
return function runTransform(_x4, _x5, _x6) {
|
|
224
177
|
return _ref6.apply(this, arguments);
|
|
225
178
|
};
|
|
226
179
|
}();
|
|
227
|
-
|
|
228
180
|
var parsePkg = function parsePkg(pkg) {
|
|
229
181
|
if (!pkg.startsWith('@')) {
|
|
230
182
|
throw new ValidationError('Package names must be fully qualified and begin with "@"');
|
|
231
183
|
}
|
|
232
|
-
|
|
233
184
|
var name = pkg;
|
|
234
185
|
var version = null;
|
|
235
186
|
var parts = pkg.split('@');
|
|
236
|
-
|
|
237
187
|
if (parts.length > 2) {
|
|
238
188
|
name = "@".concat(parts[1]);
|
|
239
189
|
version = parts[parts.length - 1];
|
|
240
190
|
}
|
|
241
|
-
|
|
242
191
|
return {
|
|
243
192
|
name: name,
|
|
244
193
|
version: version
|
|
245
194
|
};
|
|
246
195
|
};
|
|
247
|
-
|
|
248
196
|
var parsePackagesFlag = function parsePackagesFlag(packages) {
|
|
249
197
|
return packages.split(',').map(parsePkg);
|
|
250
198
|
};
|
|
251
|
-
|
|
252
199
|
var validatePackages = function validatePackages(packages, errorCallback) {
|
|
253
200
|
if (!packages) {
|
|
254
201
|
return;
|
|
255
202
|
}
|
|
256
|
-
|
|
257
203
|
var errors = [];
|
|
258
204
|
var transformedPackages = packages.map(function (pkg) {
|
|
259
205
|
var version = null;
|
|
260
|
-
|
|
261
206
|
if (pkg.version != null) {
|
|
262
207
|
if (semver.validRange(pkg.version)) {
|
|
263
208
|
version = semver.valid(semver.minVersion(pkg.version));
|
|
@@ -265,80 +210,63 @@ var validatePackages = function validatePackages(packages, errorCallback) {
|
|
|
265
210
|
errors.push("Invalid version \"".concat(pkg.version, "\" for package \"").concat(pkg.name, "\""));
|
|
266
211
|
}
|
|
267
212
|
}
|
|
268
|
-
|
|
269
213
|
return _objectSpread(_objectSpread({}, pkg), {}, {
|
|
270
214
|
version: version
|
|
271
215
|
});
|
|
272
216
|
});
|
|
273
|
-
|
|
274
217
|
if (errors.length > 0) {
|
|
275
218
|
errorCallback && errorCallback(errors);
|
|
276
219
|
}
|
|
277
|
-
|
|
278
220
|
return transformedPackages;
|
|
279
221
|
};
|
|
280
|
-
|
|
281
222
|
var parseArgs = /*#__PURE__*/function () {
|
|
282
223
|
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(input, flags) {
|
|
283
224
|
var packages, unvalidatedPackages, _unvalidatedPackages;
|
|
284
|
-
|
|
285
225
|
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
286
|
-
while (1) {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
226
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
227
|
+
case 0:
|
|
228
|
+
if (input[0]) {
|
|
229
|
+
_context4.next = 2;
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
throw new ValidationError('Please supply a path to the source files you wish to modify');
|
|
233
|
+
case 2:
|
|
234
|
+
if (!flags.packages) {
|
|
235
|
+
_context4.next = 7;
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
unvalidatedPackages = parsePackagesFlag(flags.packages);
|
|
239
|
+
packages = validatePackages(unvalidatedPackages, function (errors) {
|
|
240
|
+
throw new ValidationError(errors.join('\n'));
|
|
241
|
+
});
|
|
242
|
+
_context4.next = 12;
|
|
243
|
+
break;
|
|
244
|
+
case 7:
|
|
245
|
+
if (!flags.sinceRef) {
|
|
306
246
|
_context4.next = 12;
|
|
307
247
|
break;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
case 12:
|
|
325
|
-
return _context4.abrupt("return", {
|
|
326
|
-
packages: packages
|
|
327
|
-
});
|
|
328
|
-
|
|
329
|
-
case 13:
|
|
330
|
-
case "end":
|
|
331
|
-
return _context4.stop();
|
|
332
|
-
}
|
|
248
|
+
}
|
|
249
|
+
_context4.next = 10;
|
|
250
|
+
return getPackagesSinceRef(flags.sinceRef);
|
|
251
|
+
case 10:
|
|
252
|
+
_unvalidatedPackages = _context4.sent;
|
|
253
|
+
packages = validatePackages(_unvalidatedPackages, function (errors) {
|
|
254
|
+
throw new Error("Detected invalid previous versions of packages upgraded since \"".concat(flags.sinceRef, "\". Previous versions must be valid semver.\n").concat(errors.join('\n')));
|
|
255
|
+
});
|
|
256
|
+
case 12:
|
|
257
|
+
return _context4.abrupt("return", {
|
|
258
|
+
packages: packages
|
|
259
|
+
});
|
|
260
|
+
case 13:
|
|
261
|
+
case "end":
|
|
262
|
+
return _context4.stop();
|
|
333
263
|
}
|
|
334
264
|
}, _callee4);
|
|
335
265
|
}));
|
|
336
|
-
|
|
337
266
|
return function parseArgs(_x7, _x8) {
|
|
338
267
|
return _ref7.apply(this, arguments);
|
|
339
268
|
};
|
|
340
269
|
}();
|
|
341
|
-
|
|
342
270
|
var defaultFlags = {
|
|
343
271
|
parser: 'babel',
|
|
344
272
|
extensions: 'js',
|
|
@@ -348,127 +276,98 @@ var defaultFlags = {
|
|
|
348
276
|
export default function main(_x9, _x10) {
|
|
349
277
|
return _main.apply(this, arguments);
|
|
350
278
|
}
|
|
351
|
-
|
|
352
279
|
function _main() {
|
|
353
280
|
_main = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(input, userFlags) {
|
|
354
281
|
var flags, logger, _yield$parseArgs, packages, _process$env$_PACKAGE, _PACKAGE_VERSION_, shouldHavePackages, availableTransforms, transforms, transformsWithModule, _iterator, _step, transform;
|
|
355
|
-
|
|
356
282
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
357
|
-
while (1) {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
logger.log(chalk.
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
shouldHavePackages = flags.sinceRef || flags.packages && flags.packages.length > 0;
|
|
378
|
-
|
|
379
|
-
if (!(shouldHavePackages && (packages === null || packages === void 0 ? void 0 : packages.length) === 0)) {
|
|
380
|
-
_context5.next = 13;
|
|
381
|
-
break;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
logger.log(chalk.gray("Did not find updated packages, exiting"));
|
|
385
|
-
return _context5.abrupt("return", {
|
|
386
|
-
transforms: []
|
|
387
|
-
});
|
|
388
|
-
|
|
389
|
-
case 13:
|
|
390
|
-
availableTransforms = getTransforms(packages);
|
|
391
|
-
|
|
392
|
-
if (!(availableTransforms.length === 0)) {
|
|
393
|
-
_context5.next = 16;
|
|
394
|
-
break;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
throw new NoTransformsExistError('No codemods available. Please make sure you have the latest version of the packages you are trying to upgrade before running the codemod');
|
|
398
|
-
|
|
399
|
-
case 16:
|
|
400
|
-
if (!packages) {
|
|
401
|
-
_context5.next = 20;
|
|
402
|
-
break;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
_context5.t0 = availableTransforms;
|
|
406
|
-
_context5.next = 24;
|
|
283
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
284
|
+
case 0:
|
|
285
|
+
flags = _objectSpread(_objectSpread({}, defaultFlags), userFlags);
|
|
286
|
+
logger = flags.logger;
|
|
287
|
+
_context5.next = 4;
|
|
288
|
+
return parseArgs(input, flags);
|
|
289
|
+
case 4:
|
|
290
|
+
_yield$parseArgs = _context5.sent;
|
|
291
|
+
packages = _yield$parseArgs.packages;
|
|
292
|
+
_process$env$_PACKAGE = "0.12.0", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
|
|
293
|
+
logger.log(chalk.bgBlue(chalk.black("\uD83D\uDCDA Atlassian-Frontend codemod library @ ".concat(_PACKAGE_VERSION_, " \uD83D\uDCDA"))));
|
|
294
|
+
if (packages && packages.length > 0) {
|
|
295
|
+
logger.log(chalk.gray("Searching for codemods for newer versions of the following packages: ".concat(packages.map(function (pkg) {
|
|
296
|
+
return "".concat(pkg.name).concat(pkg.version ? '@' + pkg.version : '');
|
|
297
|
+
}))));
|
|
298
|
+
}
|
|
299
|
+
shouldHavePackages = flags.sinceRef || flags.packages && flags.packages.length > 0;
|
|
300
|
+
if (!(shouldHavePackages && (packages === null || packages === void 0 ? void 0 : packages.length) === 0)) {
|
|
301
|
+
_context5.next = 13;
|
|
407
302
|
break;
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
case 24:
|
|
418
|
-
transforms = _context5.t0;
|
|
419
|
-
transformsWithModule = transforms.map(function (transform) {
|
|
420
|
-
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
421
|
-
module: getTransformModule(transform)
|
|
422
|
-
});
|
|
423
|
-
});
|
|
424
|
-
logger.log(chalk.cyan("Running the following transforms \n".concat(chalk.bold(transformsWithModule.map(function (transform) {
|
|
425
|
-
return "".concat(transform.module, ": ").concat(transform.name);
|
|
426
|
-
}).join('\n')))));
|
|
427
|
-
_iterator = _createForOfIteratorHelper(transformsWithModule);
|
|
428
|
-
_context5.prev = 28;
|
|
429
|
-
|
|
430
|
-
_iterator.s();
|
|
431
|
-
|
|
432
|
-
case 30:
|
|
433
|
-
if ((_step = _iterator.n()).done) {
|
|
434
|
-
_context5.next = 36;
|
|
435
|
-
break;
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
transform = _step.value;
|
|
439
|
-
_context5.next = 34;
|
|
440
|
-
return runTransform(input, transform, flags);
|
|
441
|
-
|
|
442
|
-
case 34:
|
|
443
|
-
_context5.next = 30;
|
|
303
|
+
}
|
|
304
|
+
logger.log(chalk.gray("Did not find updated packages, exiting"));
|
|
305
|
+
return _context5.abrupt("return", {
|
|
306
|
+
transforms: []
|
|
307
|
+
});
|
|
308
|
+
case 13:
|
|
309
|
+
availableTransforms = getTransforms(packages);
|
|
310
|
+
if (!(availableTransforms.length === 0)) {
|
|
311
|
+
_context5.next = 16;
|
|
444
312
|
break;
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
313
|
+
}
|
|
314
|
+
throw new NoTransformsExistError('No codemods available. Please make sure you have the latest version of the packages you are trying to upgrade before running the codemod');
|
|
315
|
+
case 16:
|
|
316
|
+
if (!packages) {
|
|
317
|
+
_context5.next = 20;
|
|
448
318
|
break;
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
return _context5.abrupt("return", {
|
|
465
|
-
transforms: transformsWithModule
|
|
319
|
+
}
|
|
320
|
+
_context5.t0 = availableTransforms;
|
|
321
|
+
_context5.next = 24;
|
|
322
|
+
break;
|
|
323
|
+
case 20:
|
|
324
|
+
_context5.next = 22;
|
|
325
|
+
return resolveTransform(flags, availableTransforms);
|
|
326
|
+
case 22:
|
|
327
|
+
_context5.t1 = _context5.sent;
|
|
328
|
+
_context5.t0 = [_context5.t1];
|
|
329
|
+
case 24:
|
|
330
|
+
transforms = _context5.t0;
|
|
331
|
+
transformsWithModule = transforms.map(function (transform) {
|
|
332
|
+
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
333
|
+
module: getTransformModule(transform)
|
|
466
334
|
});
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
335
|
+
});
|
|
336
|
+
logger.log(chalk.cyan("Running the following transforms \n".concat(chalk.bold(transformsWithModule.map(function (transform) {
|
|
337
|
+
return "".concat(transform.module, ": ").concat(transform.name);
|
|
338
|
+
}).join('\n')))));
|
|
339
|
+
_iterator = _createForOfIteratorHelper(transformsWithModule);
|
|
340
|
+
_context5.prev = 28;
|
|
341
|
+
_iterator.s();
|
|
342
|
+
case 30:
|
|
343
|
+
if ((_step = _iterator.n()).done) {
|
|
344
|
+
_context5.next = 36;
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
transform = _step.value;
|
|
348
|
+
_context5.next = 34;
|
|
349
|
+
return runTransform(input, transform, flags);
|
|
350
|
+
case 34:
|
|
351
|
+
_context5.next = 30;
|
|
352
|
+
break;
|
|
353
|
+
case 36:
|
|
354
|
+
_context5.next = 41;
|
|
355
|
+
break;
|
|
356
|
+
case 38:
|
|
357
|
+
_context5.prev = 38;
|
|
358
|
+
_context5.t2 = _context5["catch"](28);
|
|
359
|
+
_iterator.e(_context5.t2);
|
|
360
|
+
case 41:
|
|
361
|
+
_context5.prev = 41;
|
|
362
|
+
_iterator.f();
|
|
363
|
+
return _context5.finish(41);
|
|
364
|
+
case 44:
|
|
365
|
+
return _context5.abrupt("return", {
|
|
366
|
+
transforms: transformsWithModule
|
|
367
|
+
});
|
|
368
|
+
case 45:
|
|
369
|
+
case "end":
|
|
370
|
+
return _context5.stop();
|
|
472
371
|
}
|
|
473
372
|
}, _callee5, null, [[28, 38, 41, 44]]);
|
|
474
373
|
}));
|