@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.
Files changed (37) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/main.js +1 -1
  3. package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +20 -56
  4. package/dist/cjs/presets/theme-to-design-tokens/utils/ast-meta.js +6 -22
  5. package/dist/cjs/presets/theme-to-design-tokens/utils/legacy-colors.js +7 -5
  6. package/dist/cjs/presets/theme-to-design-tokens/utils/tokens.js +38 -0
  7. package/dist/cjs/sinceRef.js +2 -2
  8. package/dist/cjs/version.json +1 -1
  9. package/dist/es2019/presets/theme-to-design-tokens/theme-to-design-tokens.js +16 -53
  10. package/dist/es2019/presets/theme-to-design-tokens/utils/ast-meta.js +5 -12
  11. package/dist/es2019/presets/theme-to-design-tokens/utils/legacy-colors.js +7 -5
  12. package/dist/es2019/presets/theme-to-design-tokens/utils/tokens.js +12 -0
  13. package/dist/es2019/sinceRef.js +1 -1
  14. package/dist/es2019/version.json +1 -1
  15. package/dist/esm/main.js +1 -1
  16. package/dist/esm/presets/theme-to-design-tokens/theme-to-design-tokens.js +19 -54
  17. package/dist/esm/presets/theme-to-design-tokens/utils/ast-meta.js +5 -18
  18. package/dist/esm/presets/theme-to-design-tokens/utils/legacy-colors.js +7 -5
  19. package/dist/esm/presets/theme-to-design-tokens/utils/tokens.js +24 -0
  20. package/dist/esm/sinceRef.js +1 -1
  21. package/dist/esm/version.json +1 -1
  22. package/dist/types/presets/theme-to-design-tokens/utils/ast-meta.d.ts +0 -1
  23. package/dist/types/presets/theme-to-design-tokens/utils/tokens.d.ts +2 -0
  24. package/package.json +4 -5
  25. package/dist/cjs/presets/theme-to-design-tokens/utils/color-difference.js +0 -174
  26. package/dist/cjs/presets/theme-to-design-tokens/utils/color-palette-tokens-map.js +0 -129
  27. package/dist/cjs/presets/theme-to-design-tokens/utils/color-to-token.js +0 -88
  28. package/dist/es2019/presets/theme-to-design-tokens/utils/color-difference.js +0 -150
  29. package/dist/es2019/presets/theme-to-design-tokens/utils/color-palette-tokens-map.js +0 -122
  30. package/dist/es2019/presets/theme-to-design-tokens/utils/color-to-token.js +0 -75
  31. package/dist/esm/presets/theme-to-design-tokens/utils/color-difference.js +0 -160
  32. package/dist/esm/presets/theme-to-design-tokens/utils/color-palette-tokens-map.js +0 -122
  33. package/dist/esm/presets/theme-to-design-tokens/utils/color-to-token.js +0 -78
  34. package/dist/types/presets/theme-to-design-tokens/types.d.ts +0 -2
  35. package/dist/types/presets/theme-to-design-tokens/utils/color-difference.d.ts +0 -66
  36. package/dist/types/presets/theme-to-design-tokens/utils/color-palette-tokens-map.d.ts +0 -21
  37. 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.4", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
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 _tokenNames = _interopRequireDefault(require("@atlaskit/tokens/token-names"));
22
+ var _tokens = require("./utils/tokens");
25
23
 
26
24
  /* eslint-disable no-console */
27
- var tokens = Object.keys(_tokenNames.default);
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, tokenResult, node) {
56
- var callExpr = j.callExpression(j.identifier('token'), [j.stringLiteral(tokenResult.suggestion[0] || 'util.UNSAFE_MISSING_TOKEN'), tokenResult.fallbackNeeded && node].filter(Boolean));
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, debug, paletteColor) {
62
- var baseMeta = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
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 propertyName = foundMeta.find(function (name) {
65
- if (!name) {
66
- return false;
67
- }
68
-
69
- return name.toLowerCase().match(/(.*color|image|fill|stroke|shadow|border(?!-)|background(?!-)|outline(?!-)|column-rule-color)/);
70
- });
71
- var state = 'resting';
72
- foundMeta.find(function (name) {
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
- return [];
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, debug, key, colorMeta);
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, debug, valuePath.name, colorMeta);
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, debug, path.value.name, colorMeta);
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, debug, value, colorMeta);
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 _tokenNames = _interopRequireDefault(require("@atlaskit/tokens/token-names"));
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().replace(/:/g, '').trim();
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().forEach(function (str) {
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('focused', 'focus').replace('active', 'pressed').replace('hovered', 'hover').replace('background-color', 'background').replace('color', 'text').replace('stroke', 'border').replace('border-left', 'border').replace('border-right', 'border').replace('box-shadow', 'shadow'));
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: ['onBold'],
54
+ N0: ['inverse'],
55
+ N700: ['text'],
55
56
  N800: ['text'],
57
+ N900: ['text'],
56
58
  background: ['background', 'default'],
57
- backgroundActive: ['background', 'selected'],
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: ['text', 'link'],
68
- linkHover: ['text', 'link', 'hovered'],
69
- linkActive: ['text', 'link', 'pressed'],
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;
@@ -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 _promise = _interopRequireDefault(require("simple-git/promise"));
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, _promise.default)();
46
+ git = (0, _simpleGit.default)();
47
47
  _context.prev = 1;
48
48
  _context.next = 4;
49
49
  return git.revparse(['--verify', ref]);
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/codemod-cli",
3
- "version": "0.8.4"
3
+ "version": "0.8.7"
4
4
  }
@@ -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 designTokens from '@atlaskit/tokens/token-names';
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, tokenResult, node) {
34
- const callExpr = j.callExpression(j.identifier('token'), [j.stringLiteral(tokenResult.suggestion[0] || 'util.UNSAFE_MISSING_TOKEN'), tokenResult.fallbackNeeded && node].filter(Boolean));
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, debug, paletteColor, baseMeta = []) {
36
+ function getTokenFromNode(j, path, baseMeta = []) {
40
37
  const foundMeta = getMetaFromAncestors(j, path);
41
- const propertyName = foundMeta.find(name => {
42
- if (!name) {
43
- return false;
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
- const result = /(hover|active|disabled)/.exec(name.toLowerCase());
55
-
56
- if (result) {
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
- return [];
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, debug, key, colorMeta);
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, debug, valuePath.name, colorMeta);
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, debug, path.value.name, colorMeta);
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, debug, value, colorMeta);
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 designTokens from '@atlaskit/tokens/token-names';
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().replace(/:/g, '').trim();
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().forEach(str => {
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('focused', 'focus').replace('active', 'pressed').replace('hovered', 'hover').replace('background-color', 'background').replace('color', 'text').replace('stroke', 'border').replace('border-left', 'border').replace('border-right', 'border').replace('box-shadow', 'shadow'));
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: ['onBold'],
46
+ N0: ['inverse'],
47
+ N700: ['text'],
47
48
  N800: ['text'],
49
+ N900: ['text'],
48
50
  background: ['background', 'default'],
49
- backgroundActive: ['background', 'selected'],
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: ['text', 'link'],
60
- linkHover: ['text', 'link', 'hovered'],
61
- linkActive: ['text', 'link', 'pressed'],
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
+ }, []);
@@ -1,4 +1,4 @@
1
- import simpleGit from 'simple-git/promise';
1
+ import simpleGit from 'simple-git';
2
2
  import { ValidationError } from './types';
3
3
  const packageRegex = /"(@(?:atlaskit|atlassian|atlassiansox)\/.*)": "(.*)"/;
4
4
 
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/codemod-cli",
3
- "version": "0.8.4"
3
+ "version": "0.8.7"
4
4
  }
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.4", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
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) {