@atlaskit/codemod-cli 0.8.4 → 0.8.7
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 +18 -0
- package/dist/cjs/main.js +1 -1
- package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +20 -56
- package/dist/cjs/presets/theme-to-design-tokens/utils/ast-meta.js +6 -22
- package/dist/cjs/presets/theme-to-design-tokens/utils/legacy-colors.js +7 -5
- package/dist/cjs/presets/theme-to-design-tokens/utils/tokens.js +38 -0
- package/dist/cjs/sinceRef.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/presets/theme-to-design-tokens/theme-to-design-tokens.js +16 -53
- package/dist/es2019/presets/theme-to-design-tokens/utils/ast-meta.js +5 -12
- package/dist/es2019/presets/theme-to-design-tokens/utils/legacy-colors.js +7 -5
- package/dist/es2019/presets/theme-to-design-tokens/utils/tokens.js +12 -0
- package/dist/es2019/sinceRef.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/main.js +1 -1
- package/dist/esm/presets/theme-to-design-tokens/theme-to-design-tokens.js +19 -54
- package/dist/esm/presets/theme-to-design-tokens/utils/ast-meta.js +5 -18
- package/dist/esm/presets/theme-to-design-tokens/utils/legacy-colors.js +7 -5
- package/dist/esm/presets/theme-to-design-tokens/utils/tokens.js +24 -0
- package/dist/esm/sinceRef.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/presets/theme-to-design-tokens/utils/ast-meta.d.ts +0 -1
- package/dist/types/presets/theme-to-design-tokens/utils/tokens.d.ts +2 -0
- package/package.json +4 -5
- package/dist/cjs/presets/theme-to-design-tokens/utils/color-difference.js +0 -174
- package/dist/cjs/presets/theme-to-design-tokens/utils/color-palette-tokens-map.js +0 -129
- package/dist/cjs/presets/theme-to-design-tokens/utils/color-to-token.js +0 -88
- package/dist/es2019/presets/theme-to-design-tokens/utils/color-difference.js +0 -150
- package/dist/es2019/presets/theme-to-design-tokens/utils/color-palette-tokens-map.js +0 -122
- package/dist/es2019/presets/theme-to-design-tokens/utils/color-to-token.js +0 -75
- package/dist/esm/presets/theme-to-design-tokens/utils/color-difference.js +0 -160
- package/dist/esm/presets/theme-to-design-tokens/utils/color-palette-tokens-map.js +0 -122
- package/dist/esm/presets/theme-to-design-tokens/utils/color-to-token.js +0 -78
- package/dist/types/presets/theme-to-design-tokens/types.d.ts +0 -2
- package/dist/types/presets/theme-to-design-tokens/utils/color-difference.d.ts +0 -66
- package/dist/types/presets/theme-to-design-tokens/utils/color-palette-tokens-map.d.ts +0 -21
- package/dist/types/presets/theme-to-design-tokens/utils/color-to-token.d.ts +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/codemod-cli
|
|
2
2
|
|
|
3
|
+
## 0.8.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`54a44d46e29`](https://bitbucket.org/atlassian/atlassian-frontend/commits/54a44d46e29) - Renovate Bot upgraded simple-git from ^1.130.0 to 2.48.0
|
|
8
|
+
|
|
9
|
+
## 0.8.6
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 0.8.5
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [`e4dd80187f5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e4dd80187f5) - Refactors theme-to-tokens codemod with new token names + simplifies logic
|
|
20
|
+
|
|
3
21
|
## 0.8.4
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/cjs/main.js
CHANGED
|
@@ -363,7 +363,7 @@ function _main() {
|
|
|
363
363
|
case 4:
|
|
364
364
|
_yield$parseArgs = _context5.sent;
|
|
365
365
|
packages = _yield$parseArgs.packages;
|
|
366
|
-
_process$env$_PACKAGE = "0.8.
|
|
366
|
+
_process$env$_PACKAGE = "0.8.7", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
|
|
367
367
|
logger.log(_chalk.default.bgBlue(_chalk.default.black("\uD83D\uDCDA Atlassian-Frontend codemod library @ ".concat(_PACKAGE_VERSION_, " \uD83D\uDCDA"))));
|
|
368
368
|
|
|
369
369
|
if (packages && packages.length > 0) {
|
|
@@ -9,8 +9,6 @@ exports.default = transformer;
|
|
|
9
9
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
|
|
12
|
-
var _colorToToken = _interopRequireDefault(require("./utils/color-to-token"));
|
|
13
|
-
|
|
14
12
|
var _ast = require("./utils/ast");
|
|
15
13
|
|
|
16
14
|
var _astMeta = require("./utils/ast-meta");
|
|
@@ -21,11 +19,10 @@ var _fuzzySearch = _interopRequireDefault(require("./utils/fuzzy-search"));
|
|
|
21
19
|
|
|
22
20
|
var _legacyColors = require("./utils/legacy-colors");
|
|
23
21
|
|
|
24
|
-
var
|
|
22
|
+
var _tokens = require("./utils/tokens");
|
|
25
23
|
|
|
26
24
|
/* eslint-disable no-console */
|
|
27
|
-
var
|
|
28
|
-
var search = (0, _fuzzySearch.default)(tokens, false);
|
|
25
|
+
var search = (0, _fuzzySearch.default)(_tokens.tokens, false);
|
|
29
26
|
|
|
30
27
|
function hasImportDeclaration(j, source, sourcePath) {
|
|
31
28
|
return !!source.find(j.ImportDeclaration).filter(function (path) {
|
|
@@ -52,58 +49,25 @@ function insertTokenImport(j, source) {
|
|
|
52
49
|
source.get().node.program.body.unshift(newImport);
|
|
53
50
|
}
|
|
54
51
|
|
|
55
|
-
function buildToken(j,
|
|
56
|
-
var callExpr = j.callExpression(j.identifier('token'), [j.stringLiteral(
|
|
57
|
-
callExpr.comments = [j.commentBlock(" [token-confidence: ".concat(tokenResult.confidence, "] "))];
|
|
52
|
+
function buildToken(j, tokenId, node) {
|
|
53
|
+
var callExpr = j.callExpression(j.identifier('token'), [j.stringLiteral(tokenId), node].filter(Boolean));
|
|
58
54
|
return callExpr;
|
|
59
55
|
}
|
|
60
56
|
|
|
61
|
-
function getTokenFromNode(j, path
|
|
62
|
-
var baseMeta = arguments.length >
|
|
57
|
+
function getTokenFromNode(j, path) {
|
|
58
|
+
var baseMeta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
63
59
|
var foundMeta = (0, _astMeta.getMetaFromAncestors)(j, path);
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (!name) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
var result = /(hover|active|disabled)/.exec(name.toLowerCase());
|
|
78
|
-
|
|
79
|
-
if (result) {
|
|
80
|
-
if (result[0] === 'active') {
|
|
81
|
-
state = 'pressed';
|
|
82
|
-
} else {
|
|
83
|
-
state = result[0];
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return false;
|
|
90
|
-
});
|
|
91
|
-
var tokenResult = (0, _colorToToken.default)(paletteColor || '', {
|
|
92
|
-
state: state,
|
|
93
|
-
propertyName: propertyName
|
|
94
|
-
}, function () {
|
|
95
|
-
var searchTerm = (0, _astMeta.cleanMeta)([].concat((0, _toConsumableArray2.default)(foundMeta), (0, _toConsumableArray2.default)(baseMeta))).join(' ');
|
|
96
|
-
var results = search.get(searchTerm);
|
|
97
|
-
|
|
98
|
-
if (results) {
|
|
99
|
-
return results.map(function (result) {
|
|
100
|
-
return result[1];
|
|
101
|
-
});
|
|
102
|
-
}
|
|
60
|
+
var meta = (0, _astMeta.cleanMeta)([].concat((0, _toConsumableArray2.default)(foundMeta), (0, _toConsumableArray2.default)(baseMeta)));
|
|
61
|
+
var results = search.get(meta.join(' '));
|
|
62
|
+
var tokenId = ['utility.UNSAFE_util.MISSING_TOKEN'];
|
|
63
|
+
|
|
64
|
+
if (results) {
|
|
65
|
+
tokenId = results.map(function (result) {
|
|
66
|
+
return result[1];
|
|
67
|
+
});
|
|
68
|
+
}
|
|
103
69
|
|
|
104
|
-
|
|
105
|
-
});
|
|
106
|
-
return tokenResult;
|
|
70
|
+
return tokenId[0];
|
|
107
71
|
}
|
|
108
72
|
|
|
109
73
|
function transformer(file, api) {
|
|
@@ -121,7 +85,7 @@ function transformer(file, api) {
|
|
|
121
85
|
insertTokenImport(j, source);
|
|
122
86
|
var key = path.value.property.type === 'Identifier' ? path.value.property.name : undefined;
|
|
123
87
|
var colorMeta = _legacyColors.legacyColorMetaMap[key] || [];
|
|
124
|
-
var tokenId = getTokenFromNode(j, path,
|
|
88
|
+
var tokenId = getTokenFromNode(j, path, colorMeta);
|
|
125
89
|
j(path).replaceWith(buildToken(j, tokenId, path.value));
|
|
126
90
|
transformed = true;
|
|
127
91
|
});
|
|
@@ -136,7 +100,7 @@ function transformer(file, api) {
|
|
|
136
100
|
debug && console.log('file:', file.path);
|
|
137
101
|
insertTokenImport(j, source);
|
|
138
102
|
var colorMeta = _legacyColors.legacyColorMetaMap[valuePath.name] || [];
|
|
139
|
-
var tokenId = getTokenFromNode(j, valuePath,
|
|
103
|
+
var tokenId = getTokenFromNode(j, valuePath, colorMeta);
|
|
140
104
|
j(path).replaceWith(j.objectProperty(path.value.key, buildToken(j, tokenId, valuePath.value)));
|
|
141
105
|
transformed = true;
|
|
142
106
|
});
|
|
@@ -152,7 +116,7 @@ function transformer(file, api) {
|
|
|
152
116
|
debug && console.log('file:', file.path);
|
|
153
117
|
insertTokenImport(j, source);
|
|
154
118
|
var colorMeta = _legacyColors.legacyColorMetaMap[path.value.name] || [];
|
|
155
|
-
var tokenId = getTokenFromNode(j, path,
|
|
119
|
+
var tokenId = getTokenFromNode(j, path, colorMeta);
|
|
156
120
|
j(path).replaceWith(buildToken(j, tokenId, path.value));
|
|
157
121
|
transformed = true;
|
|
158
122
|
});
|
|
@@ -167,7 +131,7 @@ function transformer(file, api) {
|
|
|
167
131
|
insertTokenImport(j, source);
|
|
168
132
|
var value = path === null || path === void 0 ? void 0 : (_path$value = path.value) === null || _path$value === void 0 ? void 0 : (_path$value$value = _path$value.value) === null || _path$value$value === void 0 ? void 0 : _path$value$value.toString();
|
|
169
133
|
var colorMeta = _legacyColors.legacyColorMetaMap[value] || [];
|
|
170
|
-
var tokenId = getTokenFromNode(j, path,
|
|
134
|
+
var tokenId = getTokenFromNode(j, path, colorMeta);
|
|
171
135
|
var tokenNode = buildToken(j, tokenId, path.value);
|
|
172
136
|
j(path).replaceWith((0, _ast.isDecendantOfType)(j, path, j.JSXAttribute) ? j.jsxExpressionContainer(tokenNode) : tokenNode);
|
|
173
137
|
transformed = true;
|
|
@@ -7,27 +7,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.cleanMeta = cleanMeta;
|
|
9
9
|
exports.getMetaFromAncestors = getMetaFromAncestors;
|
|
10
|
-
exports.getUniqueWordsFromTokens = void 0;
|
|
11
10
|
|
|
12
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
12
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var tokens = Object.keys(_tokenNames.default);
|
|
17
|
-
var getUniqueWordsFromTokens = tokens.reduce(function (accum, val) {
|
|
18
|
-
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split('.')));
|
|
19
|
-
}, []).reduce(function (accum, val) {
|
|
20
|
-
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split(/(?=[A-Z])/g).map(function (e) {
|
|
21
|
-
return e.toLowerCase();
|
|
22
|
-
})));
|
|
23
|
-
}, []).reduce(function (accum, val) {
|
|
24
|
-
if (!accum.includes(val)) {
|
|
25
|
-
accum.push(val);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return accum;
|
|
29
|
-
}, []);
|
|
30
|
-
exports.getUniqueWordsFromTokens = getUniqueWordsFromTokens;
|
|
13
|
+
var _tokens = require("./tokens");
|
|
31
14
|
|
|
32
15
|
function getMetaFromAncestors(j, path) {
|
|
33
16
|
var meta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
@@ -53,15 +36,16 @@ function getMetaFromAncestors(j, path) {
|
|
|
53
36
|
var quasi = grandParent.value.quasis[expressionIndex];
|
|
54
37
|
var propertyName = (quasi.value.cooked || quasi.value.raw || '').replace(/\n/g, '').split(/;|{|}/).filter(function (el) {
|
|
55
38
|
return !el.match(/\.|\@|\(|\)/);
|
|
56
|
-
}).pop().
|
|
39
|
+
}).pop().split(/:/g)[0].trim();
|
|
57
40
|
grandParent.value.quasis.slice(0, expressionIndex + 1).map(function (q) {
|
|
58
41
|
return q.value.cooked;
|
|
59
42
|
}) // We reverse so the most nested one is first which we're more likely than not interested in
|
|
60
|
-
.reverse().
|
|
43
|
+
.reverse().some(function (str) {
|
|
61
44
|
var result = /(hover|active|disabled|focus)/.exec(str.toLowerCase());
|
|
62
45
|
|
|
63
46
|
if (result) {
|
|
64
47
|
meta.push(result[0]);
|
|
48
|
+
return true;
|
|
65
49
|
}
|
|
66
50
|
});
|
|
67
51
|
meta.push(propertyName);
|
|
@@ -90,10 +74,10 @@ function cleanMeta(meta) {
|
|
|
90
74
|
return e.toLowerCase();
|
|
91
75
|
}) : []));
|
|
92
76
|
}, []).reduce(function (accum, val) {
|
|
93
|
-
accum.push(val.replace(/:/g, '').replace(/,/g, '').replace('grey', 'neutral').replace('texts', 'text').replace('error', 'danger').replace('invalid', 'danger').replace('removed', 'danger').replace('removal', 'danger').replace('remove', 'danger').replace('valid', 'success').replace('successful', 'success').replace('risk', 'warning').replace('primary', 'bold').replace('info', 'bold').replace('secondary', 'subtle').replace('hyperlink', 'link').replace('
|
|
77
|
+
accum.push(val.replace(/:/g, '').replace(/,/g, '').replace('grey', 'neutral').replace('skeleton', 'neutral').replace('texts', 'text').replace('red', 'danger').replace('error', 'danger').replace('invalid', 'danger').replace('removed', 'danger').replace('removal', 'danger').replace('remove', 'danger').replace('focus', 'focused').replace('valid', 'success').replace('successful', 'success').replace('risk', 'warning').replace('caution', 'warning').replace('warn', 'warning').replace('primary', 'bold').replace('info', 'bold').replace('secondary', 'subtle').replace('hyperlink', 'link').replace('anchor', 'link').replace('active', 'pressed').replace('hover', 'hovered').replace('dragged', 'overlay').replace('dragging', 'overlay').replace('drag', 'overlay').replace('background-color', 'background').replace('color', 'text').replace('icons', 'icon').replace('glyph', 'icon').replace('stroke', 'border').replace('border-left', 'border').replace('border-right', 'border').replace('border-top', 'border').replace('border-bottom', 'border').replace('box-shadow', 'shadow'));
|
|
94
78
|
return accum;
|
|
95
79
|
}, []).filter(function (val) {
|
|
96
|
-
return getUniqueWordsFromTokens.includes(val);
|
|
80
|
+
return _tokens.getUniqueWordsFromTokens.includes(val);
|
|
97
81
|
}).reduce(function (accum, val) {
|
|
98
82
|
if (!accum.includes(val)) {
|
|
99
83
|
accum.push(val);
|
|
@@ -51,10 +51,12 @@ var legacyColorMetaMap = {
|
|
|
51
51
|
T300: ['accent', 'teal'],
|
|
52
52
|
T400: ['accent', 'teal'],
|
|
53
53
|
T500: ['accent', 'teal'],
|
|
54
|
-
N0: ['
|
|
54
|
+
N0: ['inverse'],
|
|
55
|
+
N700: ['text'],
|
|
55
56
|
N800: ['text'],
|
|
57
|
+
N900: ['text'],
|
|
56
58
|
background: ['background', 'default'],
|
|
57
|
-
backgroundActive: ['background', '
|
|
59
|
+
backgroundActive: ['background', 'pressed'],
|
|
58
60
|
backgroundHover: ['background', 'hovered'],
|
|
59
61
|
backgroundOnLayer: ['background', 'blanket'],
|
|
60
62
|
text: ['text'],
|
|
@@ -64,9 +66,9 @@ var legacyColorMetaMap = {
|
|
|
64
66
|
placeholderText: ['text', 'subtlest'],
|
|
65
67
|
heading: ['text'],
|
|
66
68
|
subtleHeading: ['text', 'subtle'],
|
|
67
|
-
link: ['
|
|
68
|
-
linkHover: ['
|
|
69
|
-
linkActive: ['
|
|
69
|
+
link: ['link'],
|
|
70
|
+
linkHover: ['link', 'hovered'],
|
|
71
|
+
linkActive: ['link', 'pressed'],
|
|
70
72
|
linkOutline: ['border', 'selected'],
|
|
71
73
|
primary: ['brand'],
|
|
72
74
|
blue: ['accent', 'blue'],
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.tokens = exports.getUniqueWordsFromTokens = void 0;
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
|
|
12
|
+
var _tokenNames = _interopRequireDefault(require("@atlaskit/tokens/token-names"));
|
|
13
|
+
|
|
14
|
+
var _renameMapping = _interopRequireDefault(require("@atlaskit/tokens/rename-mapping"));
|
|
15
|
+
|
|
16
|
+
var tokens = Object.keys(_tokenNames.default).filter(function (t) {
|
|
17
|
+
return !t.includes('UNSAFE') && !t.includes('interaction');
|
|
18
|
+
}).filter(function (t) {
|
|
19
|
+
return !_renameMapping.default.find(function (_ref) {
|
|
20
|
+
var path = _ref.path;
|
|
21
|
+
return t === path.replace(/\.[default]\g/, '');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
exports.tokens = tokens;
|
|
25
|
+
var getUniqueWordsFromTokens = Object.keys(_tokenNames.default).reduce(function (accum, val) {
|
|
26
|
+
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split('.')));
|
|
27
|
+
}, []).reduce(function (accum, val) {
|
|
28
|
+
return [].concat((0, _toConsumableArray2.default)(accum), (0, _toConsumableArray2.default)(val.split(/(?=[A-Z])/g).map(function (e) {
|
|
29
|
+
return e.toLowerCase();
|
|
30
|
+
})));
|
|
31
|
+
}, []).reduce(function (accum, val) {
|
|
32
|
+
if (!accum.includes(val)) {
|
|
33
|
+
accum.push(val);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return accum;
|
|
37
|
+
}, []);
|
|
38
|
+
exports.getUniqueWordsFromTokens = getUniqueWordsFromTokens;
|
package/dist/cjs/sinceRef.js
CHANGED
|
@@ -11,7 +11,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
11
11
|
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _simpleGit = _interopRequireDefault(require("simple-git"));
|
|
15
15
|
|
|
16
16
|
var _types = require("./types");
|
|
17
17
|
|
|
@@ -43,7 +43,7 @@ var getPackagesSinceRef = /*#__PURE__*/function () {
|
|
|
43
43
|
while (1) {
|
|
44
44
|
switch (_context.prev = _context.next) {
|
|
45
45
|
case 0:
|
|
46
|
-
git = (0,
|
|
46
|
+
git = (0, _simpleGit.default)();
|
|
47
47
|
_context.prev = 1;
|
|
48
48
|
_context.next = 4;
|
|
49
49
|
return git.revparse(['--verify', ref]);
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import colorToToken from './utils/color-to-token';
|
|
3
2
|
import { isDecendantOfToken, isDecendantOfType } from './utils/ast';
|
|
4
3
|
import { cleanMeta, getMetaFromAncestors } from './utils/ast-meta';
|
|
5
4
|
import { includesHardCodedColor, isHardCodedColor, isLegacyColor, isLegacyNamedColor } from './utils/color';
|
|
6
5
|
import Search from './utils/fuzzy-search';
|
|
7
6
|
import { legacyColorMetaMap } from './utils/legacy-colors';
|
|
8
|
-
import
|
|
9
|
-
const tokens = Object.keys(designTokens);
|
|
7
|
+
import { tokens } from './utils/tokens';
|
|
10
8
|
const search = Search(tokens, false);
|
|
11
9
|
|
|
12
10
|
function hasImportDeclaration(j, source, sourcePath) {
|
|
@@ -30,55 +28,22 @@ function insertTokenImport(j, source) {
|
|
|
30
28
|
source.get().node.program.body.unshift(newImport);
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
function buildToken(j,
|
|
34
|
-
const callExpr = j.callExpression(j.identifier('token'), [j.stringLiteral(
|
|
35
|
-
callExpr.comments = [j.commentBlock(` [token-confidence: ${tokenResult.confidence}] `)];
|
|
31
|
+
function buildToken(j, tokenId, node) {
|
|
32
|
+
const callExpr = j.callExpression(j.identifier('token'), [j.stringLiteral(tokenId), node].filter(Boolean));
|
|
36
33
|
return callExpr;
|
|
37
34
|
}
|
|
38
35
|
|
|
39
|
-
function getTokenFromNode(j, path,
|
|
36
|
+
function getTokenFromNode(j, path, baseMeta = []) {
|
|
40
37
|
const foundMeta = getMetaFromAncestors(j, path);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return name.toLowerCase().match(/(.*color|image|fill|stroke|shadow|border(?!-)|background(?!-)|outline(?!-)|column-rule-color)/);
|
|
47
|
-
});
|
|
48
|
-
let state = 'resting';
|
|
49
|
-
foundMeta.find(name => {
|
|
50
|
-
if (!name) {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
38
|
+
const meta = cleanMeta([...foundMeta, ...baseMeta]);
|
|
39
|
+
const results = search.get(meta.join(' '));
|
|
40
|
+
let tokenId = ['utility.UNSAFE_util.MISSING_TOKEN'];
|
|
53
41
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (result[0] === 'active') {
|
|
58
|
-
state = 'pressed';
|
|
59
|
-
} else {
|
|
60
|
-
state = result[0];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return false;
|
|
67
|
-
});
|
|
68
|
-
const tokenResult = colorToToken(paletteColor || '', {
|
|
69
|
-
state,
|
|
70
|
-
propertyName
|
|
71
|
-
}, () => {
|
|
72
|
-
const searchTerm = cleanMeta([...foundMeta, ...baseMeta]).join(' ');
|
|
73
|
-
const results = search.get(searchTerm);
|
|
74
|
-
|
|
75
|
-
if (results) {
|
|
76
|
-
return results.map(result => result[1]);
|
|
77
|
-
}
|
|
42
|
+
if (results) {
|
|
43
|
+
tokenId = results.map(result => result[1]);
|
|
44
|
+
}
|
|
78
45
|
|
|
79
|
-
|
|
80
|
-
});
|
|
81
|
-
return tokenResult;
|
|
46
|
+
return tokenId[0];
|
|
82
47
|
}
|
|
83
48
|
|
|
84
49
|
export default function transformer(file, api, debug = false) {
|
|
@@ -93,18 +58,16 @@ export default function transformer(file, api, debug = false) {
|
|
|
93
58
|
insertTokenImport(j, source);
|
|
94
59
|
const key = path.value.property.type === 'Identifier' ? path.value.property.name : undefined;
|
|
95
60
|
const colorMeta = legacyColorMetaMap[key] || [];
|
|
96
|
-
const tokenId = getTokenFromNode(j, path,
|
|
61
|
+
const tokenId = getTokenFromNode(j, path, colorMeta);
|
|
97
62
|
j(path).replaceWith(buildToken(j, tokenId, path.value));
|
|
98
63
|
transformed = true;
|
|
99
64
|
});
|
|
100
|
-
source.find(j.ObjectProperty).filter(path => {
|
|
101
|
-
return path.value.value.type === 'Identifier' && (isLegacyColor(path.value.value.name) || isLegacyNamedColor(path.value.value.name));
|
|
102
|
-
}).filter(path => hasImportSpecifier(j, source, path.value.value.type === 'Identifier' ? path.value.value.name : '', '@atlaskit/theme') || hasImportSpecifier(j, source, path.value.value.type === 'Identifier' ? path.value.value.name : '', '@atlaskit/theme/colors')).filter(path => !isDecendantOfToken(j, path.value.value)).forEach(path => {
|
|
65
|
+
source.find(j.ObjectProperty).filter(path => path.value.value.type === 'Identifier' && (isLegacyColor(path.value.value.name) || isLegacyNamedColor(path.value.value.name))).filter(path => hasImportSpecifier(j, source, path.value.value.type === 'Identifier' ? path.value.value.name : '', '@atlaskit/theme') || hasImportSpecifier(j, source, path.value.value.type === 'Identifier' ? path.value.value.name : '', '@atlaskit/theme/colors')).filter(path => !isDecendantOfToken(j, path.value.value)).forEach(path => {
|
|
103
66
|
const valuePath = path.get('value');
|
|
104
67
|
debug && console.log('file:', file.path);
|
|
105
68
|
insertTokenImport(j, source);
|
|
106
69
|
const colorMeta = legacyColorMetaMap[valuePath.name] || [];
|
|
107
|
-
const tokenId = getTokenFromNode(j, valuePath,
|
|
70
|
+
const tokenId = getTokenFromNode(j, valuePath, colorMeta);
|
|
108
71
|
j(path).replaceWith(j.objectProperty(path.value.key, buildToken(j, tokenId, valuePath.value)));
|
|
109
72
|
transformed = true;
|
|
110
73
|
});
|
|
@@ -112,7 +75,7 @@ export default function transformer(file, api, debug = false) {
|
|
|
112
75
|
debug && console.log('file:', file.path);
|
|
113
76
|
insertTokenImport(j, source);
|
|
114
77
|
const colorMeta = legacyColorMetaMap[path.value.name] || [];
|
|
115
|
-
const tokenId = getTokenFromNode(j, path,
|
|
78
|
+
const tokenId = getTokenFromNode(j, path, colorMeta);
|
|
116
79
|
j(path).replaceWith(buildToken(j, tokenId, path.value));
|
|
117
80
|
transformed = true;
|
|
118
81
|
});
|
|
@@ -123,7 +86,7 @@ export default function transformer(file, api, debug = false) {
|
|
|
123
86
|
insertTokenImport(j, source);
|
|
124
87
|
const value = path === null || path === void 0 ? void 0 : (_path$value = path.value) === null || _path$value === void 0 ? void 0 : (_path$value$value = _path$value.value) === null || _path$value$value === void 0 ? void 0 : _path$value$value.toString();
|
|
125
88
|
const colorMeta = legacyColorMetaMap[value] || [];
|
|
126
|
-
const tokenId = getTokenFromNode(j, path,
|
|
89
|
+
const tokenId = getTokenFromNode(j, path, colorMeta);
|
|
127
90
|
const tokenNode = buildToken(j, tokenId, path.value);
|
|
128
91
|
j(path).replaceWith(isDecendantOfType(j, path, j.JSXAttribute) ? j.jsxExpressionContainer(tokenNode) : tokenNode);
|
|
129
92
|
transformed = true;
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
const tokens = Object.keys(designTokens);
|
|
3
|
-
export 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) => {
|
|
4
|
-
if (!accum.includes(val)) {
|
|
5
|
-
accum.push(val);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
return accum;
|
|
9
|
-
}, []);
|
|
1
|
+
import { getUniqueWordsFromTokens } from './tokens';
|
|
10
2
|
export function getMetaFromAncestors(j, path, meta = []) {
|
|
11
3
|
const parent = path.parentPath;
|
|
12
4
|
const grandParent = parent && parent.parentPath;
|
|
@@ -26,13 +18,14 @@ export function getMetaFromAncestors(j, path, meta = []) {
|
|
|
26
18
|
if (parent && grandParent && grandParent.value.type === 'TemplateLiteral') {
|
|
27
19
|
const expressionIndex = grandParent.value.expressions.findIndex(exp => exp.name === path.value.name);
|
|
28
20
|
const quasi = grandParent.value.quasis[expressionIndex];
|
|
29
|
-
const propertyName = (quasi.value.cooked || quasi.value.raw || '').replace(/\n/g, '').split(/;|{|}/).filter(el => !el.match(/\.|\@|\(|\)/)).pop().
|
|
21
|
+
const propertyName = (quasi.value.cooked || quasi.value.raw || '').replace(/\n/g, '').split(/;|{|}/).filter(el => !el.match(/\.|\@|\(|\)/)).pop().split(/:/g)[0].trim();
|
|
30
22
|
grandParent.value.quasis.slice(0, expressionIndex + 1).map(q => q.value.cooked) // We reverse so the most nested one is first which we're more likely than not interested in
|
|
31
|
-
.reverse().
|
|
23
|
+
.reverse().some(str => {
|
|
32
24
|
const result = /(hover|active|disabled|focus)/.exec(str.toLowerCase());
|
|
33
25
|
|
|
34
26
|
if (result) {
|
|
35
27
|
meta.push(result[0]);
|
|
28
|
+
return true;
|
|
36
29
|
}
|
|
37
30
|
});
|
|
38
31
|
meta.push(propertyName);
|
|
@@ -56,7 +49,7 @@ export function getMetaFromAncestors(j, path, meta = []) {
|
|
|
56
49
|
}
|
|
57
50
|
export function cleanMeta(meta) {
|
|
58
51
|
return meta.reduce((accum, val) => [...accum, ...(typeof val === 'string' ? val.split(/(?=[A-Z])/g).map(e => e.toLowerCase()) : [])], []).reduce((accum, val) => {
|
|
59
|
-
accum.push(val.replace(/:/g, '').replace(/,/g, '').replace('grey', 'neutral').replace('texts', 'text').replace('error', 'danger').replace('invalid', 'danger').replace('removed', 'danger').replace('removal', 'danger').replace('remove', 'danger').replace('valid', 'success').replace('successful', 'success').replace('risk', 'warning').replace('primary', 'bold').replace('info', 'bold').replace('secondary', 'subtle').replace('hyperlink', 'link').replace('
|
|
52
|
+
accum.push(val.replace(/:/g, '').replace(/,/g, '').replace('grey', 'neutral').replace('skeleton', 'neutral').replace('texts', 'text').replace('red', 'danger').replace('error', 'danger').replace('invalid', 'danger').replace('removed', 'danger').replace('removal', 'danger').replace('remove', 'danger').replace('focus', 'focused').replace('valid', 'success').replace('successful', 'success').replace('risk', 'warning').replace('caution', 'warning').replace('warn', 'warning').replace('primary', 'bold').replace('info', 'bold').replace('secondary', 'subtle').replace('hyperlink', 'link').replace('anchor', 'link').replace('active', 'pressed').replace('hover', 'hovered').replace('dragged', 'overlay').replace('dragging', 'overlay').replace('drag', 'overlay').replace('background-color', 'background').replace('color', 'text').replace('icons', 'icon').replace('glyph', 'icon').replace('stroke', 'border').replace('border-left', 'border').replace('border-right', 'border').replace('border-top', 'border').replace('border-bottom', 'border').replace('box-shadow', 'shadow'));
|
|
60
53
|
return accum;
|
|
61
54
|
}, []).filter(val => {
|
|
62
55
|
return getUniqueWordsFromTokens.includes(val);
|
|
@@ -43,10 +43,12 @@ export const legacyColorMetaMap = {
|
|
|
43
43
|
T300: ['accent', 'teal'],
|
|
44
44
|
T400: ['accent', 'teal'],
|
|
45
45
|
T500: ['accent', 'teal'],
|
|
46
|
-
N0: ['
|
|
46
|
+
N0: ['inverse'],
|
|
47
|
+
N700: ['text'],
|
|
47
48
|
N800: ['text'],
|
|
49
|
+
N900: ['text'],
|
|
48
50
|
background: ['background', 'default'],
|
|
49
|
-
backgroundActive: ['background', '
|
|
51
|
+
backgroundActive: ['background', 'pressed'],
|
|
50
52
|
backgroundHover: ['background', 'hovered'],
|
|
51
53
|
backgroundOnLayer: ['background', 'blanket'],
|
|
52
54
|
text: ['text'],
|
|
@@ -56,9 +58,9 @@ export const legacyColorMetaMap = {
|
|
|
56
58
|
placeholderText: ['text', 'subtlest'],
|
|
57
59
|
heading: ['text'],
|
|
58
60
|
subtleHeading: ['text', 'subtle'],
|
|
59
|
-
link: ['
|
|
60
|
-
linkHover: ['
|
|
61
|
-
linkActive: ['
|
|
61
|
+
link: ['link'],
|
|
62
|
+
linkHover: ['link', 'hovered'],
|
|
63
|
+
linkActive: ['link', 'pressed'],
|
|
62
64
|
linkOutline: ['border', 'selected'],
|
|
63
65
|
primary: ['brand'],
|
|
64
66
|
blue: ['accent', 'blue'],
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import designTokens from '@atlaskit/tokens/token-names';
|
|
2
|
+
import renameMapping from '@atlaskit/tokens/rename-mapping';
|
|
3
|
+
export const tokens = Object.keys(designTokens).filter(t => !t.includes('UNSAFE') && !t.includes('interaction')).filter(t => !renameMapping.find(({
|
|
4
|
+
path
|
|
5
|
+
}) => t === path.replace(/\.[default]\g/, '')));
|
|
6
|
+
export const getUniqueWordsFromTokens = Object.keys(designTokens).reduce((accum, val) => [...accum, ...val.split('.')], []).reduce((accum, val) => [...accum, ...val.split(/(?=[A-Z])/g).map(e => e.toLowerCase())], []).reduce((accum, val) => {
|
|
7
|
+
if (!accum.includes(val)) {
|
|
8
|
+
accum.push(val);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return accum;
|
|
12
|
+
}, []);
|
package/dist/es2019/sinceRef.js
CHANGED
package/dist/es2019/version.json
CHANGED
package/dist/esm/main.js
CHANGED
|
@@ -340,7 +340,7 @@ function _main() {
|
|
|
340
340
|
case 4:
|
|
341
341
|
_yield$parseArgs = _context5.sent;
|
|
342
342
|
packages = _yield$parseArgs.packages;
|
|
343
|
-
_process$env$_PACKAGE = "0.8.
|
|
343
|
+
_process$env$_PACKAGE = "0.8.7", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
|
|
344
344
|
logger.log(chalk.bgBlue(chalk.black("\uD83D\uDCDA Atlassian-Frontend codemod library @ ".concat(_PACKAGE_VERSION_, " \uD83D\uDCDA"))));
|
|
345
345
|
|
|
346
346
|
if (packages && packages.length > 0) {
|