@atlaskit/eslint-plugin-design-system 8.14.1 → 8.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/constellation/index/usage.mdx +1 -0
- package/dist/cjs/rules/consistent-css-prop-usage/index.js +2 -0
- package/dist/cjs/rules/ensure-design-token-usage/color.js +2 -0
- package/dist/cjs/rules/ensure-design-token-usage/index.js +2 -0
- package/dist/cjs/rules/ensure-design-token-usage/spacing.js +1 -1
- package/dist/cjs/rules/ensure-design-token-usage/utils.js +2 -0
- package/dist/cjs/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/get-tagged-template-expression-offset.js +1 -0
- package/dist/cjs/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/index.js +1 -0
- package/dist/cjs/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/to-arguments.js +1 -0
- package/dist/cjs/rules/no-css-tagged-template-expression/is-supported-import.js +2 -0
- package/dist/cjs/rules/no-deprecated-design-token-usage/index.js +20 -1
- package/dist/cjs/rules/no-margin/index.js +2 -0
- package/dist/cjs/rules/no-nested-styles/index.js +2 -0
- package/dist/cjs/rules/no-physical-properties/index.js +2 -0
- package/dist/cjs/rules/no-unsafe-design-token-usage/index.js +13 -10
- package/dist/cjs/rules/prefer-primitives/index.js +2 -0
- package/dist/cjs/rules/use-drawer-label/index.js +2 -0
- package/dist/cjs/rules/use-href-in-link-item/index.js +2 -0
- package/dist/cjs/rules/use-href-in-link-item/utils.js +2 -0
- package/dist/cjs/rules/use-primitives/index.js +2 -0
- package/dist/cjs/rules/use-primitives/utils.js +1 -1
- package/dist/cjs/rules/use-visually-hidden/fix-jsx.js +1 -0
- package/dist/cjs/rules/use-visually-hidden/fix-vanilla.js +1 -0
- package/dist/cjs/rules/use-visually-hidden/index.js +2 -0
- package/dist/cjs/rules/use-visually-hidden/utils.js +2 -0
- package/dist/cjs/rules/utils/create-rule.js +2 -0
- package/dist/cjs/rules/utils/find-in-parent.js +2 -0
- package/dist/cjs/rules/utils/get-import-node-by-source.js +2 -0
- package/dist/cjs/rules/utils/get-is-exception.js +2 -0
- package/dist/cjs/rules/utils/is-node.js +2 -0
- package/dist/es2019/rules/consistent-css-prop-usage/index.js +2 -0
- package/dist/es2019/rules/ensure-design-token-usage/color.js +2 -0
- package/dist/es2019/rules/ensure-design-token-usage/index.js +2 -0
- package/dist/es2019/rules/ensure-design-token-usage/spacing.js +2 -0
- package/dist/es2019/rules/ensure-design-token-usage/utils.js +2 -0
- package/dist/es2019/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/get-tagged-template-expression-offset.js +1 -0
- package/dist/es2019/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/index.js +1 -0
- package/dist/es2019/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/to-arguments.js +1 -0
- package/dist/es2019/rules/no-css-tagged-template-expression/is-supported-import.js +2 -0
- package/dist/es2019/rules/no-deprecated-design-token-usage/index.js +20 -1
- package/dist/es2019/rules/no-margin/index.js +2 -0
- package/dist/es2019/rules/no-nested-styles/index.js +2 -0
- package/dist/es2019/rules/no-physical-properties/index.js +2 -0
- package/dist/es2019/rules/no-unsafe-design-token-usage/index.js +14 -10
- package/dist/es2019/rules/prefer-primitives/index.js +2 -0
- package/dist/es2019/rules/use-drawer-label/index.js +2 -0
- package/dist/es2019/rules/use-href-in-link-item/index.js +2 -0
- package/dist/es2019/rules/use-href-in-link-item/utils.js +2 -0
- package/dist/es2019/rules/use-primitives/index.js +2 -0
- package/dist/es2019/rules/use-primitives/utils.js +2 -0
- package/dist/es2019/rules/use-visually-hidden/fix-jsx.js +2 -0
- package/dist/es2019/rules/use-visually-hidden/fix-vanilla.js +2 -0
- package/dist/es2019/rules/use-visually-hidden/index.js +2 -0
- package/dist/es2019/rules/use-visually-hidden/utils.js +2 -0
- package/dist/es2019/rules/utils/create-rule.js +2 -0
- package/dist/es2019/rules/utils/find-in-parent.js +2 -0
- package/dist/es2019/rules/utils/get-import-node-by-source.js +2 -0
- package/dist/es2019/rules/utils/get-is-exception.js +2 -0
- package/dist/es2019/rules/utils/is-node.js +2 -0
- package/dist/esm/rules/consistent-css-prop-usage/index.js +2 -0
- package/dist/esm/rules/ensure-design-token-usage/color.js +2 -0
- package/dist/esm/rules/ensure-design-token-usage/index.js +2 -0
- package/dist/esm/rules/ensure-design-token-usage/spacing.js +2 -0
- package/dist/esm/rules/ensure-design-token-usage/utils.js +2 -0
- package/dist/esm/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/get-tagged-template-expression-offset.js +1 -0
- package/dist/esm/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/index.js +1 -0
- package/dist/esm/rules/no-css-tagged-template-expression/create-no-tagged-template-expression-rule/to-arguments.js +1 -0
- package/dist/esm/rules/no-css-tagged-template-expression/is-supported-import.js +2 -0
- package/dist/esm/rules/no-deprecated-design-token-usage/index.js +20 -1
- package/dist/esm/rules/no-margin/index.js +2 -0
- package/dist/esm/rules/no-nested-styles/index.js +2 -0
- package/dist/esm/rules/no-physical-properties/index.js +2 -0
- package/dist/esm/rules/no-unsafe-design-token-usage/index.js +15 -10
- package/dist/esm/rules/prefer-primitives/index.js +2 -0
- package/dist/esm/rules/use-drawer-label/index.js +2 -0
- package/dist/esm/rules/use-href-in-link-item/index.js +2 -0
- package/dist/esm/rules/use-href-in-link-item/utils.js +2 -0
- package/dist/esm/rules/use-primitives/index.js +2 -0
- package/dist/esm/rules/use-primitives/utils.js +2 -0
- package/dist/esm/rules/use-visually-hidden/fix-jsx.js +2 -0
- package/dist/esm/rules/use-visually-hidden/fix-vanilla.js +2 -0
- package/dist/esm/rules/use-visually-hidden/index.js +2 -0
- package/dist/esm/rules/use-visually-hidden/utils.js +2 -0
- package/dist/esm/rules/utils/create-rule.js +2 -0
- package/dist/esm/rules/utils/find-in-parent.js +2 -0
- package/dist/esm/rules/utils/get-import-node-by-source.js +2 -0
- package/dist/esm/rules/utils/get-is-exception.js +2 -0
- package/dist/esm/rules/utils/is-node.js +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-design-system
|
|
2
2
|
|
|
3
|
+
## 8.15.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#43718](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43718) [`8aebcad547a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8aebcad547a) - Deprecated tokens are now warned against even when a replacement token has not been specified
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
|
|
10
|
+
## 8.15.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [#43258](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43258) [`0004d49c240`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0004d49c240) - Adds a new argument `fallbackUsage` which replaces `shouldEnforceFallbacks`. This new argument is an enum which represents the three possible states this rule can be configured with.
|
|
15
|
+
|
|
16
|
+
- `forced`: Fallbacks must always been in use
|
|
17
|
+
- `none`: Fallbacks must never been in use. (Fixer will remove any value provided )
|
|
18
|
+
- `optional`: (new) Fallbacks are optional
|
|
19
|
+
|
|
3
20
|
## 8.14.1
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -658,6 +658,7 @@ This rule comes with options to aid in migrating to design tokens.
|
|
|
658
658
|
|
|
659
659
|
When `true` the rule will mark token function usage as violations when fallbacks aren't defined.
|
|
660
660
|
When `false` the rule will mark token function usage as violations when fallbacks are defined.
|
|
661
|
+
When `'optional'` the rule will not mark token function usage as violations when fallbacks are not defined.
|
|
661
662
|
|
|
662
663
|
## no-unsupported-drag-and-drop-libraries
|
|
663
664
|
|
|
@@ -10,6 +10,8 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
10
10
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
11
11
|
var _assign = _interopRequireDefault(require("lodash/assign"));
|
|
12
12
|
var _createRule = require("../utils/create-rule");
|
|
13
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
14
|
+
|
|
13
15
|
var declarationSuffix = 'Styles';
|
|
14
16
|
function isCssCallExpression(node, cssFunctions) {
|
|
15
17
|
return !!((0, _eslintCodemodUtils.isNodeOfType)(node, 'CallExpression') && node.callee && node.callee.type === 'Identifier' && cssFunctions.includes(node.callee.name) && node.arguments.length && node.arguments[0].type === 'ObjectExpression');
|
|
@@ -9,6 +9,8 @@ var _getIsException = require("../utils/get-is-exception");
|
|
|
9
9
|
var _isColor = require("../utils/is-color");
|
|
10
10
|
var _isElevation = require("../utils/is-elevation");
|
|
11
11
|
var _isNode = require("../utils/is-node");
|
|
12
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
13
|
+
|
|
12
14
|
// TemplateLiteral > Identifier
|
|
13
15
|
var lintTemplateIdentifierForColor = exports.lintTemplateIdentifierForColor = function lintTemplateIdentifierForColor(node, context, config) {
|
|
14
16
|
if (node.type !== 'Identifier') {
|
|
@@ -14,6 +14,8 @@ var _color = require("./color");
|
|
|
14
14
|
var _ruleMeta = _interopRequireDefault(require("./rule-meta"));
|
|
15
15
|
var _spacing = require("./spacing");
|
|
16
16
|
var _utils = require("./utils");
|
|
17
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
18
|
+
|
|
17
19
|
var defaultConfig = {
|
|
18
20
|
domains: ['color', 'spacing'],
|
|
19
21
|
applyImport: true,
|
|
@@ -10,7 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
10
10
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
11
11
|
var _utils = require("./utils");
|
|
12
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // eslint-disable-next-line import/no-extraneous-dependencies
|
|
14
14
|
var lintObjectForSpacing = exports.lintObjectForSpacing = function lintObjectForSpacing(node, context, ruleConfig, fontSize, tokenNode) {
|
|
15
15
|
if ((0, _eslintCodemodUtils.isNodeOfType)(node.value, 'Literal') && !(0, _utils.isValidSpacingValue)(node.value.value, fontSize)) {
|
|
16
16
|
context.report({
|
|
@@ -31,6 +31,8 @@ var _findInParent = require("../utils/find-in-parent");
|
|
|
31
31
|
var _isColor = require("../utils/is-color");
|
|
32
32
|
var _shape = require("./shape");
|
|
33
33
|
var _typography = require("./typography");
|
|
34
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
35
|
+
|
|
34
36
|
var properties = ['padding', 'paddingBlock', 'paddingInline', 'paddingLeft', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd', 'marginLeft', 'marginTop', 'marginRight', 'marginBottom', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd', 'margin', 'gap', 'rowGap', 'gridRowGap', 'columnGap', 'gridColumnGap', 'top', 'left', 'right', 'bottom', 'inlineStart', 'inlineEnd', 'blockStart', 'blockEnd', 'outline-offset'];
|
|
35
37
|
var spacingValueToToken = Object.fromEntries(_tokensRaw.spacing.map(function (token) {
|
|
36
38
|
return [token.value, token.cleanName];
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getTaggedTemplateExpressionOffset = void 0;
|
|
7
7
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/get-tagged-template-expression-offset.ts
|
|
8
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
8
9
|
|
|
9
10
|
var getTaggedTemplateExpressionOffset = exports.getTaggedTemplateExpressionOffset = function getTaggedTemplateExpressionOffset(node) {
|
|
10
11
|
var parent = node.parent;
|
|
@@ -10,6 +10,7 @@ var _generate = require("./generate");
|
|
|
10
10
|
var _getTaggedTemplateExpressionOffset = require("./get-tagged-template-expression-offset");
|
|
11
11
|
var _toArguments = require("./to-arguments");
|
|
12
12
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/index.ts
|
|
13
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
13
14
|
|
|
14
15
|
var createNoTaggedTemplateExpressionRule = exports.createNoTaggedTemplateExpressionRule = function createNoTaggedTemplateExpressionRule(isUsage, messageId) {
|
|
15
16
|
return function (context) {
|
|
@@ -11,6 +11,7 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
|
|
|
11
11
|
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); }
|
|
12
12
|
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; }
|
|
13
13
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/to-arguments.ts
|
|
14
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
14
15
|
|
|
15
16
|
var getArguments = function getArguments(chars) {
|
|
16
17
|
var expressions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.isSupportedImport = exports.SUPPORTED_IMPORTS = void 0;
|
|
7
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
8
|
+
|
|
7
9
|
var SUPPORTED_IMPORTS = exports.SUPPORTED_IMPORTS = {
|
|
8
10
|
compiled: '@compiled/react',
|
|
9
11
|
emotionReact: '@emotion/react',
|
|
@@ -8,6 +8,8 @@ exports.default = void 0;
|
|
|
8
8
|
var _renameMapping = _interopRequireDefault(require("@atlaskit/tokens/rename-mapping"));
|
|
9
9
|
var _tokenIds = require("@atlaskit/tokens/token-ids");
|
|
10
10
|
var _createRule = require("../utils/create-rule");
|
|
11
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
12
|
+
|
|
11
13
|
var rule = (0, _createRule.createLintRule)({
|
|
12
14
|
meta: {
|
|
13
15
|
name: 'no-deprecated-design-token-usage',
|
|
@@ -19,6 +21,7 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
19
21
|
fixable: 'code',
|
|
20
22
|
type: 'problem',
|
|
21
23
|
messages: {
|
|
24
|
+
tokenDeprecated: 'The token "{{name}}" is deprecated, Please refer to the changelog for guidance on how to migrate. https://atlassian.design/components/tokens/changelog',
|
|
22
25
|
tokenRenamed: 'The token "{{name}}" is deprecated in favour of "{{replacement}}".'
|
|
23
26
|
}
|
|
24
27
|
},
|
|
@@ -43,7 +46,11 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
43
46
|
}).find(function (t) {
|
|
44
47
|
return (0, _tokenIds.getTokenId)(t.path) === tokenKey;
|
|
45
48
|
});
|
|
46
|
-
if (migrationMeta) {
|
|
49
|
+
if (!migrationMeta) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (migrationMeta.replacement) {
|
|
53
|
+
// Replacement specified, apply fixer
|
|
47
54
|
var replacement = (0, _tokenIds.getTokenId)(migrationMeta.replacement);
|
|
48
55
|
context.report({
|
|
49
56
|
messageId: 'tokenRenamed',
|
|
@@ -58,6 +65,18 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
58
65
|
});
|
|
59
66
|
return;
|
|
60
67
|
}
|
|
68
|
+
|
|
69
|
+
// No replacement specified
|
|
70
|
+
if (migrationMeta.state === 'deprecated' && !migrationMeta.replacement) {
|
|
71
|
+
context.report({
|
|
72
|
+
messageId: 'tokenDeprecated',
|
|
73
|
+
node: node,
|
|
74
|
+
data: {
|
|
75
|
+
name: tokenKey
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
61
80
|
}
|
|
62
81
|
};
|
|
63
82
|
}
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _createRule = require("../utils/create-rule");
|
|
9
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
|
+
|
|
9
11
|
var rule = (0, _createRule.createLintRule)({
|
|
10
12
|
meta: {
|
|
11
13
|
name: 'no-margin',
|
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _createRule = require("../utils/create-rule");
|
|
9
9
|
var _findInParent = require("../utils/find-in-parent");
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
|
+
|
|
10
12
|
var allowedPrefix = [':', '&:'];
|
|
11
13
|
var allowedResponsiveImports = ['@atlaskit/primitives/responsive', '@atlaskit/primitives'];
|
|
12
14
|
|
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _createRule = require("../utils/create-rule");
|
|
9
9
|
var _logicalPhysicalMap = require("./logical-physical-map");
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
|
+
|
|
10
12
|
var rule = (0, _createRule.createLintRule)({
|
|
11
13
|
meta: {
|
|
12
14
|
name: 'no-physical-properties',
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
9
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
9
10
|
var _renameMapping = _interopRequireDefault(require("@atlaskit/tokens/rename-mapping"));
|
|
10
11
|
var _tokenIds = require("@atlaskit/tokens/token-ids");
|
|
@@ -12,9 +13,8 @@ var _tokenNames = _interopRequireDefault(require("@atlaskit/tokens/token-names")
|
|
|
12
13
|
var _createRule = require("../utils/create-rule");
|
|
13
14
|
var _isNode = require("../utils/is-node");
|
|
14
15
|
var _isToken = require("../utils/is-token");
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
};
|
|
16
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // eslint-disable-next-line import/no-extraneous-dependencies
|
|
18
18
|
var rule = (0, _createRule.createLintRule)({
|
|
19
19
|
meta: {
|
|
20
20
|
name: 'no-unsafe-design-token-usage',
|
|
@@ -36,7 +36,10 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
create: function create(context) {
|
|
39
|
-
var config = context.options[0]
|
|
39
|
+
var config = _objectSpread({}, context.options[0]);
|
|
40
|
+
if (!config.fallbackUsage) {
|
|
41
|
+
config.fallbackUsage = config.shouldEnforceFallbacks ? 'forced' : 'none';
|
|
42
|
+
}
|
|
40
43
|
var UNSAFE_ignoreTokens = new Set(config.UNSAFE_ignoreTokens);
|
|
41
44
|
return {
|
|
42
45
|
'TaggedTemplateExpression[tag.name="css"],TaggedTemplateExpression[tag.object.name="styled"]': function TaggedTemplateExpressionTagNameCssTaggedTemplateExpressionTagObjectNameStyled(node) {
|
|
@@ -88,12 +91,12 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
88
91
|
if (!(0, _eslintCodemodUtils.isNodeOfType)(node, 'CallExpression')) {
|
|
89
92
|
return;
|
|
90
93
|
}
|
|
91
|
-
if (node.arguments.length < 2 && config.
|
|
94
|
+
if (node.arguments.length < 2 && config.fallbackUsage === 'forced') {
|
|
92
95
|
context.report({
|
|
93
96
|
messageId: 'tokenFallbackEnforced',
|
|
94
97
|
node: node
|
|
95
98
|
});
|
|
96
|
-
} else if (node.arguments.length > 1 && config.
|
|
99
|
+
} else if (node.arguments.length > 1 && config.fallbackUsage === 'none') {
|
|
97
100
|
if (node.arguments[0].type === 'Literal') {
|
|
98
101
|
var value = node.arguments[0].value;
|
|
99
102
|
context.report({
|
|
@@ -126,7 +129,7 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
126
129
|
}).find(function (t) {
|
|
127
130
|
return (0, _tokenIds.getTokenId)(t.path) === tokenKey;
|
|
128
131
|
});
|
|
129
|
-
if (typeof tokenKey === 'string' && deletedMigrationMeta) {
|
|
132
|
+
if (typeof tokenKey === 'string' && deletedMigrationMeta && deletedMigrationMeta.replacement) {
|
|
130
133
|
var cleanTokenKey = (0, _tokenIds.getTokenId)(deletedMigrationMeta.replacement);
|
|
131
134
|
context.report({
|
|
132
135
|
messageId: 'tokenRemoved',
|
|
@@ -141,14 +144,14 @@ var rule = (0, _createRule.createLintRule)({
|
|
|
141
144
|
});
|
|
142
145
|
return;
|
|
143
146
|
}
|
|
144
|
-
var
|
|
147
|
+
var tokenMeta = _renameMapping.default.filter(function (t) {
|
|
145
148
|
return t.state === 'experimental';
|
|
146
149
|
}).find(function (t) {
|
|
147
150
|
return (0, _tokenIds.getTokenId)(t.path) === tokenKey;
|
|
148
151
|
});
|
|
149
152
|
var tokenNames = Object.keys(_tokenNames.default);
|
|
150
|
-
if (typeof tokenKey === 'string' &&
|
|
151
|
-
var replacementValue =
|
|
153
|
+
if (typeof tokenKey === 'string' && tokenMeta && tokenMeta.replacement) {
|
|
154
|
+
var replacementValue = tokenMeta.replacement;
|
|
152
155
|
var isReplacementAToken = tokenNames.includes(replacementValue);
|
|
153
156
|
context.report({
|
|
154
157
|
messageId: 'tokenIsExperimental',
|
|
@@ -8,6 +8,8 @@ var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
|
8
8
|
var _utils = require("../use-primitives/utils");
|
|
9
9
|
var _createRule = require("../utils/create-rule");
|
|
10
10
|
var _utils2 = require("./utils");
|
|
11
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
12
|
+
|
|
11
13
|
var primitiveDocsUrl = 'https://go.atlassian.com/dst-prefer-primitives';
|
|
12
14
|
var rule = (0, _createRule.createLintRule)({
|
|
13
15
|
meta: {
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _createRule = require("../utils/create-rule");
|
|
9
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
|
+
|
|
9
11
|
var elementsAccessibleNameProps = ['label', 'titleId'];
|
|
10
12
|
var rule = (0, _createRule.createLintRule)({
|
|
11
13
|
meta: {
|
|
@@ -7,6 +7,8 @@ exports.hrefRequiredSuggestionText = exports.default = void 0;
|
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _createRule = require("../utils/create-rule");
|
|
9
9
|
var _utils = require("./utils");
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
|
+
|
|
10
12
|
var hrefRequiredSuggestionText = exports.hrefRequiredSuggestionText = 'Convert LinkItem to ButtonItem';
|
|
11
13
|
var rule = (0, _createRule.createLintRule)({
|
|
12
14
|
meta: {
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.insertButtonItemImport = exports.insertButtonItemDefaultImport = exports.hrefHasInvalidValue = exports.hasImportOfName = exports.getUniqueButtonItemName = exports.getLinkItemImportName = void 0;
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _findInParent = require("../utils/find-in-parent");
|
|
9
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
|
+
|
|
9
11
|
var getLinkItemImportName = exports.getLinkItemImportName = function getLinkItemImportName(scope) {
|
|
10
12
|
var traversingScope = scope;
|
|
11
13
|
var matchedVariable;
|
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
8
|
var _createRule = require("../utils/create-rule");
|
|
9
9
|
var _utils = require("./utils");
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
|
+
|
|
10
12
|
var boxDocsUrl = 'https://staging.atlassian.design/components/primitives/box';
|
|
11
13
|
var inlineDocsUrl = 'https://staging.atlassian.design/components/primitives/inline';
|
|
12
14
|
var stackDocsUrl = 'https://staging.atlassian.design/components/primitives/stack';
|
|
@@ -8,7 +8,7 @@ exports.validPrimitiveElements = exports.shouldSuggestText = exports.shouldSugge
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
10
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // eslint-disable-next-line import/no-extraneous-dependencies
|
|
12
12
|
var shouldSuggestBox = exports.shouldSuggestBox = function shouldSuggestBox(node
|
|
13
13
|
// scope: Scope.Scope,
|
|
14
14
|
) {
|
|
@@ -8,6 +8,7 @@ var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
|
8
8
|
var _getImportNodeBySource = require("../utils/get-import-node-by-source");
|
|
9
9
|
var _constants = require("./constants");
|
|
10
10
|
var _utils = require("./utils");
|
|
11
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
12
|
var _default = exports.default = function _default(source, node) {
|
|
12
13
|
return function (fixer) {
|
|
13
14
|
var fixes = [];
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _getImportNodeBySource = require("../utils/get-import-node-by-source");
|
|
8
8
|
var _constants = require("./constants");
|
|
9
9
|
var _utils = require("./utils");
|
|
10
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
10
11
|
var _default = exports.default = function _default(source, node) {
|
|
11
12
|
return function (fixer) {
|
|
12
13
|
var fixes = [];
|
|
@@ -12,6 +12,8 @@ var _isNode = require("../utils/is-node");
|
|
|
12
12
|
var _fixJsx = _interopRequireDefault(require("./fix-jsx"));
|
|
13
13
|
var _fixVanilla = _interopRequireDefault(require("./fix-vanilla"));
|
|
14
14
|
var _utils = require("./utils");
|
|
15
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
16
|
+
|
|
15
17
|
var THEME_IMPORT_NAMES = ['visuallyHidden', 'assistive'];
|
|
16
18
|
var rule = (0, _createRule.createLintRule)({
|
|
17
19
|
meta: {
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.makeTemplateLiteralIntoEntries = exports.getObjectLikeness = exports.getFirstImport = exports.countMatchingKeyValues = void 0;
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
9
|
+
|
|
8
10
|
// eslint-disable-next-line @atlaskit/design-system/use-visually-hidden
|
|
9
11
|
var referenceObject = {
|
|
10
12
|
width: '1px',
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createRule = exports.createLintRule = void 0;
|
|
7
7
|
var _utils = require("@typescript-eslint/utils");
|
|
8
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* We are moving to our own small abstraction to create a lint rule that we have the power
|
|
10
12
|
* to change and mold to our own needs.
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.findIdentifierInParentScope = findIdentifierInParentScope;
|
|
7
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* This will search first matched identifier in same and parent scopes.
|
|
9
11
|
* Returns first matched identifer otherwise null.
|
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getImportedNodeBySource = void 0;
|
|
7
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* @param {SourceCode} source The eslint source
|
|
9
11
|
* @param {string} path The path specified to find
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.isPropertyKey = exports.isDecendantOfType = exports.isDecendantOfStyleJsxAttribute = exports.isDecendantOfStyleBlock = exports.isDecendantOfGlobalToken = exports.isCssInJsTemplateNode = exports.isCssInJsObjectNode = exports.isCssInJsCallNode = exports.isChildOfType = void 0;
|
|
7
7
|
var _eslintCodemodUtils = require("eslint-codemod-utils");
|
|
8
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
9
|
+
|
|
8
10
|
var isDecendantOfGlobalToken = exports.isDecendantOfGlobalToken = function isDecendantOfGlobalToken(node) {
|
|
9
11
|
if ((0, _eslintCodemodUtils.isNodeOfType)(node, 'CallExpression') && (0, _eslintCodemodUtils.isNodeOfType)(node.callee, 'Identifier') && (node.callee.name === 'token' || node.callee.name === 'getTokenValue')) {
|
|
10
12
|
return true;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { node as generate, isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { getIsException } from '../utils/get-is-exception';
|
|
3
5
|
import { includesHardCodedColor, isHardCodedColor, isLegacyColor, isLegacyNamedColor } from '../utils/is-color';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType, property } from 'eslint-codemod-utils';
|
|
2
4
|
import { emToPixels, findTokenNameByPropertyValue, getRawExpression, getTokenNodeForValue, getTokenReplacement, getValue, insertTokensImport, isAuto, isCalc, isValidSpacingValue, isZero, splitShorthandValues } from './utils';
|
|
3
5
|
export const lintObjectForSpacing = (node, context, ruleConfig, fontSize, tokenNode) => {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { callExpression, identifier, insertAtStartOfFile, insertImportDeclaration, isNodeOfType, literal } from 'eslint-codemod-utils';
|
|
2
4
|
import { spacing as spacingScale } from '@atlaskit/tokens/tokens-raw';
|
|
3
5
|
import { findIdentifierInParentScope } from '../utils/find-in-parent';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/get-tagged-template-expression-offset.ts
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
3
|
|
|
3
4
|
export const getTaggedTemplateExpressionOffset = node => {
|
|
4
5
|
const {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/index.ts
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
3
|
|
|
3
4
|
import { generate } from './generate';
|
|
4
5
|
import { getTaggedTemplateExpressionOffset } from './get-tagged-template-expression-offset';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/to-arguments.ts
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
3
|
|
|
3
4
|
const getArguments = (chars, expressions = []) => {
|
|
4
5
|
if (!chars.trim().length && expressions) {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import renameMapping from '@atlaskit/tokens/rename-mapping';
|
|
2
4
|
import { getTokenId } from '@atlaskit/tokens/token-ids';
|
|
3
5
|
import { createLintRule } from '../utils/create-rule';
|
|
@@ -12,6 +14,7 @@ const rule = createLintRule({
|
|
|
12
14
|
fixable: 'code',
|
|
13
15
|
type: 'problem',
|
|
14
16
|
messages: {
|
|
17
|
+
tokenDeprecated: 'The token "{{name}}" is deprecated, Please refer to the changelog for guidance on how to migrate. https://atlassian.design/components/tokens/changelog',
|
|
15
18
|
tokenRenamed: 'The token "{{name}}" is deprecated in favour of "{{replacement}}".'
|
|
16
19
|
}
|
|
17
20
|
},
|
|
@@ -32,7 +35,11 @@ const rule = createLintRule({
|
|
|
32
35
|
return;
|
|
33
36
|
}
|
|
34
37
|
const migrationMeta = renameMapping.filter(t => t.state === 'deprecated').find(t => getTokenId(t.path) === tokenKey);
|
|
35
|
-
if (migrationMeta) {
|
|
38
|
+
if (!migrationMeta) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (migrationMeta.replacement) {
|
|
42
|
+
// Replacement specified, apply fixer
|
|
36
43
|
const replacement = getTokenId(migrationMeta.replacement);
|
|
37
44
|
context.report({
|
|
38
45
|
messageId: 'tokenRenamed',
|
|
@@ -45,6 +52,18 @@ const rule = createLintRule({
|
|
|
45
52
|
});
|
|
46
53
|
return;
|
|
47
54
|
}
|
|
55
|
+
|
|
56
|
+
// No replacement specified
|
|
57
|
+
if (migrationMeta.state === 'deprecated' && !migrationMeta.replacement) {
|
|
58
|
+
context.report({
|
|
59
|
+
messageId: 'tokenDeprecated',
|
|
60
|
+
node,
|
|
61
|
+
data: {
|
|
62
|
+
name: tokenKey
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
48
67
|
}
|
|
49
68
|
};
|
|
50
69
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import renameMapping from '@atlaskit/tokens/rename-mapping';
|
|
3
5
|
import { getTokenId } from '@atlaskit/tokens/token-ids';
|
|
@@ -5,9 +7,6 @@ import tokens from '@atlaskit/tokens/token-names';
|
|
|
5
7
|
import { createLintRule } from '../utils/create-rule';
|
|
6
8
|
import { isDecendantOfStyleBlock, isDecendantOfStyleJsxAttribute } from '../utils/is-node';
|
|
7
9
|
import { isToken } from '../utils/is-token';
|
|
8
|
-
const defaultConfig = {
|
|
9
|
-
shouldEnforceFallbacks: false
|
|
10
|
-
};
|
|
11
10
|
const rule = createLintRule({
|
|
12
11
|
meta: {
|
|
13
12
|
name: 'no-unsafe-design-token-usage',
|
|
@@ -51,7 +50,12 @@ token('color.background.blanket');
|
|
|
51
50
|
}
|
|
52
51
|
},
|
|
53
52
|
create(context) {
|
|
54
|
-
const config =
|
|
53
|
+
const config = {
|
|
54
|
+
...context.options[0]
|
|
55
|
+
};
|
|
56
|
+
if (!config.fallbackUsage) {
|
|
57
|
+
config.fallbackUsage = config.shouldEnforceFallbacks ? 'forced' : 'none';
|
|
58
|
+
}
|
|
55
59
|
const UNSAFE_ignoreTokens = new Set(config.UNSAFE_ignoreTokens);
|
|
56
60
|
return {
|
|
57
61
|
'TaggedTemplateExpression[tag.name="css"],TaggedTemplateExpression[tag.object.name="styled"]': node => {
|
|
@@ -99,12 +103,12 @@ token('color.background.blanket');
|
|
|
99
103
|
if (!isNodeOfType(node, 'CallExpression')) {
|
|
100
104
|
return;
|
|
101
105
|
}
|
|
102
|
-
if (node.arguments.length < 2 && config.
|
|
106
|
+
if (node.arguments.length < 2 && config.fallbackUsage === 'forced') {
|
|
103
107
|
context.report({
|
|
104
108
|
messageId: 'tokenFallbackEnforced',
|
|
105
109
|
node
|
|
106
110
|
});
|
|
107
|
-
} else if (node.arguments.length > 1 && config.
|
|
111
|
+
} else if (node.arguments.length > 1 && config.fallbackUsage === 'none') {
|
|
108
112
|
if (node.arguments[0].type === 'Literal') {
|
|
109
113
|
const {
|
|
110
114
|
value
|
|
@@ -133,7 +137,7 @@ token('color.background.blanket');
|
|
|
133
137
|
return;
|
|
134
138
|
}
|
|
135
139
|
const deletedMigrationMeta = renameMapping.filter(t => t.state === 'deleted').find(t => getTokenId(t.path) === tokenKey);
|
|
136
|
-
if (typeof tokenKey === 'string' && deletedMigrationMeta) {
|
|
140
|
+
if (typeof tokenKey === 'string' && deletedMigrationMeta && deletedMigrationMeta.replacement) {
|
|
137
141
|
const cleanTokenKey = getTokenId(deletedMigrationMeta.replacement);
|
|
138
142
|
context.report({
|
|
139
143
|
messageId: 'tokenRemoved',
|
|
@@ -146,10 +150,10 @@ token('color.background.blanket');
|
|
|
146
150
|
});
|
|
147
151
|
return;
|
|
148
152
|
}
|
|
149
|
-
const
|
|
153
|
+
const tokenMeta = renameMapping.filter(t => t.state === 'experimental').find(t => getTokenId(t.path) === tokenKey);
|
|
150
154
|
const tokenNames = Object.keys(tokens);
|
|
151
|
-
if (typeof tokenKey === 'string' &&
|
|
152
|
-
const replacementValue =
|
|
155
|
+
if (typeof tokenKey === 'string' && tokenMeta && tokenMeta.replacement) {
|
|
156
|
+
const replacementValue = tokenMeta.replacement;
|
|
153
157
|
const isReplacementAToken = tokenNames.includes(replacementValue);
|
|
154
158
|
context.report({
|
|
155
159
|
messageId: 'tokenIsExperimental',
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { createLintRule } from '../utils/create-rule';
|
|
3
5
|
import { getLinkItemImportName, getUniqueButtonItemName, hasImportOfName, hrefHasInvalidValue, insertButtonItemDefaultImport, insertButtonItemImport } from './utils';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { createLintRule } from '../utils/create-rule';
|
|
3
5
|
import { primitiveFixer, shouldSuggestBox, shouldSuggestInline, shouldSuggestStack } from './utils';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { getIdentifierInParentScope, hasImportDeclaration, insertImportDeclaration, insertImportSpecifier, isNodeOfType, jsxAttribute, jsxIdentifier, jsxOpeningElement, literal } from 'eslint-codemod-utils';
|
|
2
4
|
export const shouldSuggestBox = (node
|
|
3
5
|
// scope: Scope.Scope,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { closestOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { getImportedNodeBySource } from '../utils/get-import-node-by-source';
|
|
3
5
|
import { IMPORT_NAME, VISUALLY_HIDDEN_IMPORT, VISUALLY_HIDDEN_SOURCE } from './constants';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { getImportedNodeBySource } from '../utils/get-import-node-by-source';
|
|
2
4
|
import { IMPORT_NAME, VISUALLY_HIDDEN_IMPORT, VISUALLY_HIDDEN_SOURCE } from './constants';
|
|
3
5
|
import { getFirstImport } from './utils';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { closestOfType, hasImportDeclaration, isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { createLintRule } from '../utils/create-rule';
|
|
3
5
|
import { isCssInJsObjectNode, isCssInJsTemplateNode } from '../utils/is-node';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
export const isDecendantOfGlobalToken = node => {
|
|
3
5
|
if (isNodeOfType(node, 'CallExpression') && isNodeOfType(node.callee, 'Identifier') && (node.callee.name === 'token' || node.callee.name === 'getTokenValue')) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
4
|
+
|
|
3
5
|
import { getIdentifierInParentScope, isNodeOfType } from 'eslint-codemod-utils';
|
|
4
6
|
import assign from 'lodash/assign';
|
|
5
7
|
import { createLintRule } from '../utils/create-rule';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { node as generate, isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { getIsException } from '../utils/get-is-exception';
|
|
3
5
|
import { includesHardCodedColor, isHardCodedColor, isLegacyColor, isLegacyNamedColor } from '../utils/is-color';
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
|
+
|
|
2
4
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
3
5
|
import { createLintRule } from '../utils/create-rule';
|
|
4
6
|
import { includesHardCodedColor } from '../utils/is-color';
|
|
@@ -2,6 +2,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
6
|
+
|
|
5
7
|
import { isNodeOfType, property } from 'eslint-codemod-utils';
|
|
6
8
|
import { emToPixels, findTokenNameByPropertyValue, getRawExpression, getTokenNodeForValue, getTokenReplacement, getValue, insertTokensImport, isAuto, isCalc, isValidSpacingValue, isZero, splitShorthandValues } from './utils';
|
|
7
9
|
export var lintObjectForSpacing = function lintObjectForSpacing(node, context, ruleConfig, fontSize, tokenNode) {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
|
+
|
|
2
4
|
import { callExpression, identifier, insertAtStartOfFile, insertImportDeclaration, isNodeOfType, literal } from 'eslint-codemod-utils';
|
|
3
5
|
import { spacing as spacingScale } from '@atlaskit/tokens/tokens-raw';
|
|
4
6
|
import { findIdentifierInParentScope } from '../utils/find-in-parent';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/get-tagged-template-expression-offset.ts
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
3
|
|
|
3
4
|
export var getTaggedTemplateExpressionOffset = function getTaggedTemplateExpressionOffset(node) {
|
|
4
5
|
var parent = node.parent;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
2
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/index.ts
|
|
3
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
4
|
|
|
4
5
|
import { generate } from './generate';
|
|
5
6
|
import { getTaggedTemplateExpressionOffset } from './get-tagged-template-expression-offset';
|
|
@@ -4,6 +4,7 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
|
|
|
4
4
|
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); }
|
|
5
5
|
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; }
|
|
6
6
|
// Original source from Compiled https://github.com/atlassian-labs/compiled/blob/master/packages/eslint-plugin/src/utils/create-no-tagged-template-expression-rule/to-arguments.ts
|
|
7
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
7
8
|
|
|
8
9
|
var getArguments = function getArguments(chars) {
|
|
9
10
|
var expressions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import renameMapping from '@atlaskit/tokens/rename-mapping';
|
|
2
4
|
import { getTokenId } from '@atlaskit/tokens/token-ids';
|
|
3
5
|
import { createLintRule } from '../utils/create-rule';
|
|
@@ -12,6 +14,7 @@ var rule = createLintRule({
|
|
|
12
14
|
fixable: 'code',
|
|
13
15
|
type: 'problem',
|
|
14
16
|
messages: {
|
|
17
|
+
tokenDeprecated: 'The token "{{name}}" is deprecated, Please refer to the changelog for guidance on how to migrate. https://atlassian.design/components/tokens/changelog',
|
|
15
18
|
tokenRenamed: 'The token "{{name}}" is deprecated in favour of "{{replacement}}".'
|
|
16
19
|
}
|
|
17
20
|
},
|
|
@@ -36,7 +39,11 @@ var rule = createLintRule({
|
|
|
36
39
|
}).find(function (t) {
|
|
37
40
|
return getTokenId(t.path) === tokenKey;
|
|
38
41
|
});
|
|
39
|
-
if (migrationMeta) {
|
|
42
|
+
if (!migrationMeta) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (migrationMeta.replacement) {
|
|
46
|
+
// Replacement specified, apply fixer
|
|
40
47
|
var replacement = getTokenId(migrationMeta.replacement);
|
|
41
48
|
context.report({
|
|
42
49
|
messageId: 'tokenRenamed',
|
|
@@ -51,6 +58,18 @@ var rule = createLintRule({
|
|
|
51
58
|
});
|
|
52
59
|
return;
|
|
53
60
|
}
|
|
61
|
+
|
|
62
|
+
// No replacement specified
|
|
63
|
+
if (migrationMeta.state === 'deprecated' && !migrationMeta.replacement) {
|
|
64
|
+
context.report({
|
|
65
|
+
messageId: 'tokenDeprecated',
|
|
66
|
+
node: node,
|
|
67
|
+
data: {
|
|
68
|
+
name: tokenKey
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
54
73
|
}
|
|
55
74
|
};
|
|
56
75
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
+
|
|
1
6
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
7
|
import renameMapping from '@atlaskit/tokens/rename-mapping';
|
|
3
8
|
import { getTokenId } from '@atlaskit/tokens/token-ids';
|
|
@@ -5,9 +10,6 @@ import tokens from '@atlaskit/tokens/token-names';
|
|
|
5
10
|
import { createLintRule } from '../utils/create-rule';
|
|
6
11
|
import { isDecendantOfStyleBlock, isDecendantOfStyleJsxAttribute } from '../utils/is-node';
|
|
7
12
|
import { isToken } from '../utils/is-token';
|
|
8
|
-
var defaultConfig = {
|
|
9
|
-
shouldEnforceFallbacks: false
|
|
10
|
-
};
|
|
11
13
|
var rule = createLintRule({
|
|
12
14
|
meta: {
|
|
13
15
|
name: 'no-unsafe-design-token-usage',
|
|
@@ -29,7 +31,10 @@ var rule = createLintRule({
|
|
|
29
31
|
}
|
|
30
32
|
},
|
|
31
33
|
create: function create(context) {
|
|
32
|
-
var config = context.options[0]
|
|
34
|
+
var config = _objectSpread({}, context.options[0]);
|
|
35
|
+
if (!config.fallbackUsage) {
|
|
36
|
+
config.fallbackUsage = config.shouldEnforceFallbacks ? 'forced' : 'none';
|
|
37
|
+
}
|
|
33
38
|
var UNSAFE_ignoreTokens = new Set(config.UNSAFE_ignoreTokens);
|
|
34
39
|
return {
|
|
35
40
|
'TaggedTemplateExpression[tag.name="css"],TaggedTemplateExpression[tag.object.name="styled"]': function TaggedTemplateExpressionTagNameCssTaggedTemplateExpressionTagObjectNameStyled(node) {
|
|
@@ -81,12 +86,12 @@ var rule = createLintRule({
|
|
|
81
86
|
if (!isNodeOfType(node, 'CallExpression')) {
|
|
82
87
|
return;
|
|
83
88
|
}
|
|
84
|
-
if (node.arguments.length < 2 && config.
|
|
89
|
+
if (node.arguments.length < 2 && config.fallbackUsage === 'forced') {
|
|
85
90
|
context.report({
|
|
86
91
|
messageId: 'tokenFallbackEnforced',
|
|
87
92
|
node: node
|
|
88
93
|
});
|
|
89
|
-
} else if (node.arguments.length > 1 && config.
|
|
94
|
+
} else if (node.arguments.length > 1 && config.fallbackUsage === 'none') {
|
|
90
95
|
if (node.arguments[0].type === 'Literal') {
|
|
91
96
|
var value = node.arguments[0].value;
|
|
92
97
|
context.report({
|
|
@@ -119,7 +124,7 @@ var rule = createLintRule({
|
|
|
119
124
|
}).find(function (t) {
|
|
120
125
|
return getTokenId(t.path) === tokenKey;
|
|
121
126
|
});
|
|
122
|
-
if (typeof tokenKey === 'string' && deletedMigrationMeta) {
|
|
127
|
+
if (typeof tokenKey === 'string' && deletedMigrationMeta && deletedMigrationMeta.replacement) {
|
|
123
128
|
var cleanTokenKey = getTokenId(deletedMigrationMeta.replacement);
|
|
124
129
|
context.report({
|
|
125
130
|
messageId: 'tokenRemoved',
|
|
@@ -134,14 +139,14 @@ var rule = createLintRule({
|
|
|
134
139
|
});
|
|
135
140
|
return;
|
|
136
141
|
}
|
|
137
|
-
var
|
|
142
|
+
var tokenMeta = renameMapping.filter(function (t) {
|
|
138
143
|
return t.state === 'experimental';
|
|
139
144
|
}).find(function (t) {
|
|
140
145
|
return getTokenId(t.path) === tokenKey;
|
|
141
146
|
});
|
|
142
147
|
var tokenNames = Object.keys(tokens);
|
|
143
|
-
if (typeof tokenKey === 'string' &&
|
|
144
|
-
var replacementValue =
|
|
148
|
+
if (typeof tokenKey === 'string' && tokenMeta && tokenMeta.replacement) {
|
|
149
|
+
var replacementValue = tokenMeta.replacement;
|
|
145
150
|
var isReplacementAToken = tokenNames.includes(replacementValue);
|
|
146
151
|
context.report({
|
|
147
152
|
messageId: 'tokenIsExperimental',
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { createLintRule } from '../utils/create-rule';
|
|
3
5
|
import { getLinkItemImportName, getUniqueButtonItemName, hasImportOfName, hrefHasInvalidValue, insertButtonItemDefaultImport, insertButtonItemImport } from './utils';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { createLintRule } from '../utils/create-rule';
|
|
3
5
|
import { primitiveFixer, shouldSuggestBox, shouldSuggestInline, shouldSuggestStack } from './utils';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
+
|
|
4
6
|
import { getIdentifierInParentScope, hasImportDeclaration, insertImportDeclaration, insertImportSpecifier, isNodeOfType, jsxAttribute, jsxIdentifier, jsxOpeningElement, literal } from 'eslint-codemod-utils';
|
|
5
7
|
export var shouldSuggestBox = function shouldSuggestBox(node
|
|
6
8
|
// scope: Scope.Scope,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { closestOfType } from 'eslint-codemod-utils';
|
|
2
4
|
import { getImportedNodeBySource } from '../utils/get-import-node-by-source';
|
|
3
5
|
import { IMPORT_NAME, VISUALLY_HIDDEN_IMPORT, VISUALLY_HIDDEN_SOURCE } from './constants';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { getImportedNodeBySource } from '../utils/get-import-node-by-source';
|
|
2
4
|
import { IMPORT_NAME, VISUALLY_HIDDEN_IMPORT, VISUALLY_HIDDEN_SOURCE } from './constants';
|
|
3
5
|
import { getFirstImport } from './utils';
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
|
+
|
|
2
4
|
import { closestOfType, hasImportDeclaration, isNodeOfType } from 'eslint-codemod-utils';
|
|
3
5
|
import { createLintRule } from '../utils/create-rule';
|
|
4
6
|
import { isCssInJsObjectNode, isCssInJsTemplateNode } from '../utils/is-node';
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
1
3
|
import { isNodeOfType } from 'eslint-codemod-utils';
|
|
2
4
|
export var isDecendantOfGlobalToken = function isDecendantOfGlobalToken(node) {
|
|
3
5
|
if (isNodeOfType(node, 'CallExpression') && isNodeOfType(node.callee, 'Identifier') && (node.callee.name === 'token' || node.callee.name === 'getTokenValue')) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/eslint-plugin-design-system",
|
|
3
3
|
"description": "The essential plugin for use with the Atlassian Design System.",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.15.1",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"registry": "https://registry.npmjs.org/"
|