@atlaskit/eslint-plugin-design-system 8.14.0 → 8.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -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 +2 -0
- 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 +9 -6
- 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 +10 -4
- 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 +2 -0
- 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 +10 -6
- 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 +10 -4
- 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 +2 -0
- 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 +11 -6
- 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 +10 -4
- 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,21 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-design-system
|
|
2
2
|
|
|
3
|
+
## 8.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#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.
|
|
8
|
+
|
|
9
|
+
- `forced`: Fallbacks must always been in use
|
|
10
|
+
- `none`: Fallbacks must never been in use. (Fixer will remove any value provided )
|
|
11
|
+
- `optional`: (new) Fallbacks are optional
|
|
12
|
+
|
|
13
|
+
## 8.14.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#42240](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42240) [`ec474733d38`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ec474733d38) - Handle destructured variables in link item rule.
|
|
18
|
+
|
|
3
19
|
## 8.14.0
|
|
4
20
|
|
|
5
21
|
### Minor 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',
|
|
@@ -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({
|
|
@@ -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;
|
|
@@ -30,7 +32,7 @@ var getLinkItemImportName = exports.getLinkItemImportName = function getLinkItem
|
|
|
30
32
|
return (_matchedVariable$defs = matchedVariable.defs) === null || _matchedVariable$defs === void 0 ? void 0 : _matchedVariable$defs[0].node.local.name;
|
|
31
33
|
}
|
|
32
34
|
};
|
|
33
|
-
var invalidHrefValues = ['', '#'];
|
|
35
|
+
var invalidHrefValues = ['', '#', null, undefined];
|
|
34
36
|
var hrefHasInvalidValue = exports.hrefHasInvalidValue = function hrefHasInvalidValue(scope, href) {
|
|
35
37
|
// If doesn't exist,
|
|
36
38
|
if (!href) {
|
|
@@ -55,9 +57,13 @@ var hrefHasInvalidValue = exports.hrefHasInvalidValue = function hrefHasInvalidV
|
|
|
55
57
|
if (variable) {
|
|
56
58
|
var _defNode$init, _defNode$init2;
|
|
57
59
|
var defNode = variable.defs[0].node;
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
|
|
60
|
+
// Should be accepted as a valid `href` for
|
|
61
|
+
// * imported variables
|
|
62
|
+
// * local variables with an valid value
|
|
63
|
+
// * local variables defined via destructuring
|
|
64
|
+
// * arguments in a function declaration
|
|
65
|
+
// * arguments in an anonymous function
|
|
66
|
+
if (defNode !== null && defNode !== void 0 && defNode.imported || defNode !== null && defNode !== void 0 && (_defNode$init = defNode.init) !== null && _defNode$init !== void 0 && _defNode$init.value && !invalidHrefValues.includes(defNode === null || defNode === void 0 || (_defNode$init2 = defNode.init) === null || _defNode$init2 === void 0 ? void 0 : _defNode$init2.value) || (0, _eslintCodemodUtils.isNodeOfType)(defNode, 'VariableDeclarator') && defNode !== null && defNode !== void 0 && defNode.init && (0, _eslintCodemodUtils.isNodeOfType)(defNode.init, 'Identifier') && (0, _eslintCodemodUtils.isNodeOfType)(defNode.id, 'ObjectPattern') || (0, _eslintCodemodUtils.isNodeOfType)(defNode, 'FunctionDeclaration') || (0, _eslintCodemodUtils.isNodeOfType)(defNode, 'ArrowFunctionExpression')) {
|
|
61
67
|
return false;
|
|
62
68
|
} else {
|
|
63
69
|
return true;
|
|
@@ -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 { 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
|
|
@@ -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 { findIdentifierInParentScope } from '../utils/find-in-parent';
|
|
3
5
|
export const getLinkItemImportName = scope => {
|
|
@@ -24,7 +26,7 @@ export const getLinkItemImportName = scope => {
|
|
|
24
26
|
return (_matchedVariable$defs = matchedVariable.defs) === null || _matchedVariable$defs === void 0 ? void 0 : _matchedVariable$defs[0].node.local.name;
|
|
25
27
|
}
|
|
26
28
|
};
|
|
27
|
-
const invalidHrefValues = ['', '#'];
|
|
29
|
+
const invalidHrefValues = ['', '#', null, undefined];
|
|
28
30
|
export const hrefHasInvalidValue = (scope, href) => {
|
|
29
31
|
// If doesn't exist,
|
|
30
32
|
if (!href) {
|
|
@@ -49,9 +51,13 @@ export const hrefHasInvalidValue = (scope, href) => {
|
|
|
49
51
|
if (variable) {
|
|
50
52
|
var _defNode$init, _defNode$init2;
|
|
51
53
|
const defNode = variable.defs[0].node;
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
|
|
54
|
+
// Should be accepted as a valid `href` for
|
|
55
|
+
// * imported variables
|
|
56
|
+
// * local variables with an valid value
|
|
57
|
+
// * local variables defined via destructuring
|
|
58
|
+
// * arguments in a function declaration
|
|
59
|
+
// * arguments in an anonymous function
|
|
60
|
+
if (defNode !== null && defNode !== void 0 && defNode.imported || defNode !== null && defNode !== void 0 && (_defNode$init = defNode.init) !== null && _defNode$init !== void 0 && _defNode$init.value && !invalidHrefValues.includes(defNode === null || defNode === void 0 ? void 0 : (_defNode$init2 = defNode.init) === null || _defNode$init2 === void 0 ? void 0 : _defNode$init2.value) || isNodeOfType(defNode, 'VariableDeclarator') && defNode !== null && defNode !== void 0 && defNode.init && isNodeOfType(defNode.init, 'Identifier') && isNodeOfType(defNode.id, 'ObjectPattern') || isNodeOfType(defNode, 'FunctionDeclaration') || isNodeOfType(defNode, 'ArrowFunctionExpression')) {
|
|
55
61
|
return false;
|
|
56
62
|
} else {
|
|
57
63
|
return true;
|
|
@@ -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,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({
|
|
@@ -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 { findIdentifierInParentScope } from '../utils/find-in-parent';
|
|
3
5
|
export var getLinkItemImportName = function getLinkItemImportName(scope) {
|
|
@@ -24,7 +26,7 @@ export var getLinkItemImportName = function getLinkItemImportName(scope) {
|
|
|
24
26
|
return (_matchedVariable$defs = matchedVariable.defs) === null || _matchedVariable$defs === void 0 ? void 0 : _matchedVariable$defs[0].node.local.name;
|
|
25
27
|
}
|
|
26
28
|
};
|
|
27
|
-
var invalidHrefValues = ['', '#'];
|
|
29
|
+
var invalidHrefValues = ['', '#', null, undefined];
|
|
28
30
|
export var hrefHasInvalidValue = function hrefHasInvalidValue(scope, href) {
|
|
29
31
|
// If doesn't exist,
|
|
30
32
|
if (!href) {
|
|
@@ -49,9 +51,13 @@ export var hrefHasInvalidValue = function hrefHasInvalidValue(scope, href) {
|
|
|
49
51
|
if (variable) {
|
|
50
52
|
var _defNode$init, _defNode$init2;
|
|
51
53
|
var defNode = variable.defs[0].node;
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
|
|
54
|
+
// Should be accepted as a valid `href` for
|
|
55
|
+
// * imported variables
|
|
56
|
+
// * local variables with an valid value
|
|
57
|
+
// * local variables defined via destructuring
|
|
58
|
+
// * arguments in a function declaration
|
|
59
|
+
// * arguments in an anonymous function
|
|
60
|
+
if (defNode !== null && defNode !== void 0 && defNode.imported || defNode !== null && defNode !== void 0 && (_defNode$init = defNode.init) !== null && _defNode$init !== void 0 && _defNode$init.value && !invalidHrefValues.includes(defNode === null || defNode === void 0 || (_defNode$init2 = defNode.init) === null || _defNode$init2 === void 0 ? void 0 : _defNode$init2.value) || isNodeOfType(defNode, 'VariableDeclarator') && defNode !== null && defNode !== void 0 && defNode.init && isNodeOfType(defNode.init, 'Identifier') && isNodeOfType(defNode.id, 'ObjectPattern') || isNodeOfType(defNode, 'FunctionDeclaration') || isNodeOfType(defNode, 'ArrowFunctionExpression')) {
|
|
55
61
|
return false;
|
|
56
62
|
} else {
|
|
57
63
|
return true;
|
|
@@ -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.0",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"registry": "https://registry.npmjs.org/"
|