@atlaskit/eslint-plugin-design-system 4.6.0 → 4.7.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/eslint-plugin-design-system
2
2
 
3
+ ## 4.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`740057653f9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/740057653f9) - Adds additional rule to restrict usage of banned imports from the design system.
8
+
3
9
  ## 4.6.0
4
10
 
5
11
  ### Minor Changes
package/dist/cjs/index.js CHANGED
@@ -11,6 +11,8 @@ var _ensureDesignTokenUsage = _interopRequireDefault(require("./rules/ensure-des
11
11
 
12
12
  var _iconLabel = _interopRequireDefault(require("./rules/icon-label"));
13
13
 
14
+ var _noBannedImports = _interopRequireDefault(require("./rules/no-banned-imports"));
15
+
14
16
  var _noDeprecatedApis = _interopRequireDefault(require("./rules/no-deprecated-apis"));
15
17
 
16
18
  var _noDeprecatedDesignTokenUsage = _interopRequireDefault(require("./rules/no-deprecated-design-token-usage"));
@@ -27,6 +29,7 @@ var rules = {
27
29
  'no-deprecated-apis': _noDeprecatedApis.default,
28
30
  'no-deprecated-design-token-usage': _noDeprecatedDesignTokenUsage.default,
29
31
  'no-deprecated-imports': _noDeprecatedImports.default,
32
+ 'no-banned-imports': _noBannedImports.default,
30
33
  'no-unsafe-design-token-usage': _noUnsafeDesignTokenUsage.default,
31
34
  'use-visually-hidden': _useVisuallyHidden.default
32
35
  };
@@ -38,7 +41,19 @@ var configs = {
38
41
  '@atlaskit/design-system/icon-label': 'warn',
39
42
  '@atlaskit/design-system/no-deprecated-apis': 'warn',
40
43
  '@atlaskit/design-system/no-deprecated-imports': 'error',
41
- '@atlaskit/design-system/use-visually-hidden': 'error'
44
+ '@atlaskit/design-system/use-visually-hidden': 'error',
45
+ '@atlaskit/design-system/no-banned-imports': 'error'
46
+ }
47
+ },
48
+ all: {
49
+ plugins: ['@atlaskit/design-system'],
50
+ rules: {
51
+ '@atlaskit/design-system/icon-label': 'error',
52
+ '@atlaskit/design-system/no-deprecated-apis': 'error',
53
+ '@atlaskit/design-system/no-deprecated-imports': 'error',
54
+ '@atlaskit/design-system/use-visually-hidden': 'error',
55
+ '@atlaskit/design-system/ensure-design-token-usage': 'error',
56
+ '@atlaskit/design-system/no-banned-imports': 'error'
42
57
  }
43
58
  }
44
59
  };
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _eslintCodemodUtils = require("eslint-codemod-utils");
9
+
10
+ var _paths = require("./paths");
11
+
12
+ var rule = {
13
+ meta: {
14
+ type: 'problem',
15
+ docs: {
16
+ description: 'Disallow specified modules when loaded by `import`',
17
+ recommended: true
18
+ },
19
+ messages: {
20
+ path: "The '{{importSource}}' import is restricted from being used. {{customMessage}}"
21
+ }
22
+ },
23
+ create: function create(context) {
24
+ function checkNode(node) {
25
+ if ((0, _eslintCodemodUtils.isNodeOfType)(node, 'ExportAllDeclaration') || (0, _eslintCodemodUtils.isNodeOfType)(node, 'ExportNamedDeclaration') || (0, _eslintCodemodUtils.isNodeOfType)(node, 'ImportDeclaration')) {
26
+ _paths.restrictedPaths.find(function (_ref) {
27
+ var _node$source, _node$source$value;
28
+
29
+ var path = _ref.path,
30
+ message = _ref.message;
31
+ var source = (_node$source = node.source) === null || _node$source === void 0 ? void 0 : (_node$source$value = _node$source.value) === null || _node$source$value === void 0 ? void 0 : _node$source$value.toString();
32
+
33
+ if (source && (source === path || source.startsWith(path))) {
34
+ context.report({
35
+ node: node,
36
+ messageId: 'path',
37
+ data: {
38
+ importSource: source,
39
+ customMessage: message
40
+ }
41
+ });
42
+ }
43
+ });
44
+ }
45
+ }
46
+
47
+ return {
48
+ ImportDeclaration: checkNode,
49
+ ExportAllDeclaration: checkNode,
50
+ ExportNamedDeclaration: checkNode,
51
+ ExportDefaultDeclaration: checkNode
52
+ };
53
+ }
54
+ };
55
+ var _default = rule;
56
+ exports.default = _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.restrictedPaths = void 0;
7
+ var restrictedPaths = [{
8
+ path: '@atlaskit/ds-lib',
9
+ message: "The '@atlaskit/ds-lib' library has been designed as a utility library for internal usage. It should not be consumed directly."
10
+ }, {
11
+ path: '@atlaskit/ds-explorations',
12
+ message: "The @atlaskit/ds-explorations package is currently in an experimental state and should not be consumed directly."
13
+ }];
14
+ exports.restrictedPaths = restrictedPaths;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-design-system",
3
- "version": "4.6.0",
3
+ "version": "4.7.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,5 +1,6 @@
1
1
  import ensureTokenUsage from './rules/ensure-design-token-usage';
2
2
  import iconLabel from './rules/icon-label';
3
+ import noBannedImports from './rules/no-banned-imports';
3
4
  import noDeprecatedAPIs from './rules/no-deprecated-apis';
4
5
  import noDeprecatedUsage from './rules/no-deprecated-design-token-usage';
5
6
  import noDeprecatedImports from './rules/no-deprecated-imports';
@@ -11,6 +12,7 @@ export const rules = {
11
12
  'no-deprecated-apis': noDeprecatedAPIs,
12
13
  'no-deprecated-design-token-usage': noDeprecatedUsage,
13
14
  'no-deprecated-imports': noDeprecatedImports,
15
+ 'no-banned-imports': noBannedImports,
14
16
  'no-unsafe-design-token-usage': noUnsafeUsage,
15
17
  'use-visually-hidden': useVisuallyHidden
16
18
  };
@@ -21,7 +23,19 @@ export const configs = {
21
23
  '@atlaskit/design-system/icon-label': 'warn',
22
24
  '@atlaskit/design-system/no-deprecated-apis': 'warn',
23
25
  '@atlaskit/design-system/no-deprecated-imports': 'error',
24
- '@atlaskit/design-system/use-visually-hidden': 'error'
26
+ '@atlaskit/design-system/use-visually-hidden': 'error',
27
+ '@atlaskit/design-system/no-banned-imports': 'error'
28
+ }
29
+ },
30
+ all: {
31
+ plugins: ['@atlaskit/design-system'],
32
+ rules: {
33
+ '@atlaskit/design-system/icon-label': 'error',
34
+ '@atlaskit/design-system/no-deprecated-apis': 'error',
35
+ '@atlaskit/design-system/no-deprecated-imports': 'error',
36
+ '@atlaskit/design-system/use-visually-hidden': 'error',
37
+ '@atlaskit/design-system/ensure-design-token-usage': 'error',
38
+ '@atlaskit/design-system/no-banned-imports': 'error'
25
39
  }
26
40
  }
27
41
  };
@@ -0,0 +1,49 @@
1
+ import { isNodeOfType } from 'eslint-codemod-utils';
2
+ import { restrictedPaths } from './paths';
3
+ const rule = {
4
+ meta: {
5
+ type: 'problem',
6
+ docs: {
7
+ description: 'Disallow specified modules when loaded by `import`',
8
+ recommended: true
9
+ },
10
+ messages: {
11
+ path: "The '{{importSource}}' import is restricted from being used. {{customMessage}}"
12
+ }
13
+ },
14
+
15
+ create(context) {
16
+ function checkNode(node) {
17
+ if (isNodeOfType(node, 'ExportAllDeclaration') || isNodeOfType(node, 'ExportNamedDeclaration') || isNodeOfType(node, 'ImportDeclaration')) {
18
+ restrictedPaths.find(({
19
+ path,
20
+ message
21
+ }) => {
22
+ var _node$source, _node$source$value;
23
+
24
+ const source = (_node$source = node.source) === null || _node$source === void 0 ? void 0 : (_node$source$value = _node$source.value) === null || _node$source$value === void 0 ? void 0 : _node$source$value.toString();
25
+
26
+ if (source && (source === path || source.startsWith(path))) {
27
+ context.report({
28
+ node,
29
+ messageId: 'path',
30
+ data: {
31
+ importSource: source,
32
+ customMessage: message
33
+ }
34
+ });
35
+ }
36
+ });
37
+ }
38
+ }
39
+
40
+ return {
41
+ ImportDeclaration: checkNode,
42
+ ExportAllDeclaration: checkNode,
43
+ ExportNamedDeclaration: checkNode,
44
+ ExportDefaultDeclaration: checkNode
45
+ };
46
+ }
47
+
48
+ };
49
+ export default rule;
@@ -0,0 +1,7 @@
1
+ export const restrictedPaths = [{
2
+ path: '@atlaskit/ds-lib',
3
+ message: `The '@atlaskit/ds-lib' library has been designed as a utility library for internal usage. It should not be consumed directly.`
4
+ }, {
5
+ path: '@atlaskit/ds-explorations',
6
+ message: `The @atlaskit/ds-explorations package is currently in an experimental state and should not be consumed directly.`
7
+ }];
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-design-system",
3
- "version": "4.6.0",
3
+ "version": "4.7.0",
4
4
  "sideEffects": false
5
5
  }
package/dist/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import ensureTokenUsage from './rules/ensure-design-token-usage';
2
2
  import iconLabel from './rules/icon-label';
3
+ import noBannedImports from './rules/no-banned-imports';
3
4
  import noDeprecatedAPIs from './rules/no-deprecated-apis';
4
5
  import noDeprecatedUsage from './rules/no-deprecated-design-token-usage';
5
6
  import noDeprecatedImports from './rules/no-deprecated-imports';
@@ -11,6 +12,7 @@ export var rules = {
11
12
  'no-deprecated-apis': noDeprecatedAPIs,
12
13
  'no-deprecated-design-token-usage': noDeprecatedUsage,
13
14
  'no-deprecated-imports': noDeprecatedImports,
15
+ 'no-banned-imports': noBannedImports,
14
16
  'no-unsafe-design-token-usage': noUnsafeUsage,
15
17
  'use-visually-hidden': useVisuallyHidden
16
18
  };
@@ -21,7 +23,19 @@ export var configs = {
21
23
  '@atlaskit/design-system/icon-label': 'warn',
22
24
  '@atlaskit/design-system/no-deprecated-apis': 'warn',
23
25
  '@atlaskit/design-system/no-deprecated-imports': 'error',
24
- '@atlaskit/design-system/use-visually-hidden': 'error'
26
+ '@atlaskit/design-system/use-visually-hidden': 'error',
27
+ '@atlaskit/design-system/no-banned-imports': 'error'
28
+ }
29
+ },
30
+ all: {
31
+ plugins: ['@atlaskit/design-system'],
32
+ rules: {
33
+ '@atlaskit/design-system/icon-label': 'error',
34
+ '@atlaskit/design-system/no-deprecated-apis': 'error',
35
+ '@atlaskit/design-system/no-deprecated-imports': 'error',
36
+ '@atlaskit/design-system/use-visually-hidden': 'error',
37
+ '@atlaskit/design-system/ensure-design-token-usage': 'error',
38
+ '@atlaskit/design-system/no-banned-imports': 'error'
25
39
  }
26
40
  }
27
41
  };
@@ -0,0 +1,46 @@
1
+ import { isNodeOfType } from 'eslint-codemod-utils';
2
+ import { restrictedPaths } from './paths';
3
+ var rule = {
4
+ meta: {
5
+ type: 'problem',
6
+ docs: {
7
+ description: 'Disallow specified modules when loaded by `import`',
8
+ recommended: true
9
+ },
10
+ messages: {
11
+ path: "The '{{importSource}}' import is restricted from being used. {{customMessage}}"
12
+ }
13
+ },
14
+ create: function create(context) {
15
+ function checkNode(node) {
16
+ if (isNodeOfType(node, 'ExportAllDeclaration') || isNodeOfType(node, 'ExportNamedDeclaration') || isNodeOfType(node, 'ImportDeclaration')) {
17
+ restrictedPaths.find(function (_ref) {
18
+ var _node$source, _node$source$value;
19
+
20
+ var path = _ref.path,
21
+ message = _ref.message;
22
+ var source = (_node$source = node.source) === null || _node$source === void 0 ? void 0 : (_node$source$value = _node$source.value) === null || _node$source$value === void 0 ? void 0 : _node$source$value.toString();
23
+
24
+ if (source && (source === path || source.startsWith(path))) {
25
+ context.report({
26
+ node: node,
27
+ messageId: 'path',
28
+ data: {
29
+ importSource: source,
30
+ customMessage: message
31
+ }
32
+ });
33
+ }
34
+ });
35
+ }
36
+ }
37
+
38
+ return {
39
+ ImportDeclaration: checkNode,
40
+ ExportAllDeclaration: checkNode,
41
+ ExportNamedDeclaration: checkNode,
42
+ ExportDefaultDeclaration: checkNode
43
+ };
44
+ }
45
+ };
46
+ export default rule;
@@ -0,0 +1,7 @@
1
+ export var restrictedPaths = [{
2
+ path: '@atlaskit/ds-lib',
3
+ message: "The '@atlaskit/ds-lib' library has been designed as a utility library for internal usage. It should not be consumed directly."
4
+ }, {
5
+ path: '@atlaskit/ds-explorations',
6
+ message: "The @atlaskit/ds-explorations package is currently in an experimental state and should not be consumed directly."
7
+ }];
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-design-system",
3
- "version": "4.6.0",
3
+ "version": "4.7.0",
4
4
  "sideEffects": false
5
5
  }
@@ -4,6 +4,7 @@ export declare const rules: {
4
4
  'no-deprecated-apis': import("eslint").Rule.RuleModule;
5
5
  'no-deprecated-design-token-usage': import("eslint").Rule.RuleModule;
6
6
  'no-deprecated-imports': import("eslint").Rule.RuleModule;
7
+ 'no-banned-imports': import("eslint").Rule.RuleModule;
7
8
  'no-unsafe-design-token-usage': import("eslint").Rule.RuleModule;
8
9
  'use-visually-hidden': import("eslint").Rule.RuleModule;
9
10
  };
@@ -15,6 +16,18 @@ export declare const configs: {
15
16
  '@atlaskit/design-system/no-deprecated-apis': string;
16
17
  '@atlaskit/design-system/no-deprecated-imports': string;
17
18
  '@atlaskit/design-system/use-visually-hidden': string;
19
+ '@atlaskit/design-system/no-banned-imports': string;
20
+ };
21
+ };
22
+ all: {
23
+ plugins: string[];
24
+ rules: {
25
+ '@atlaskit/design-system/icon-label': string;
26
+ '@atlaskit/design-system/no-deprecated-apis': string;
27
+ '@atlaskit/design-system/no-deprecated-imports': string;
28
+ '@atlaskit/design-system/use-visually-hidden': string;
29
+ '@atlaskit/design-system/ensure-design-token-usage': string;
30
+ '@atlaskit/design-system/no-banned-imports': string;
18
31
  };
19
32
  };
20
33
  };
@@ -0,0 +1,3 @@
1
+ import type { Rule } from 'eslint';
2
+ declare const rule: Rule.RuleModule;
3
+ export default rule;
@@ -0,0 +1,4 @@
1
+ export declare const restrictedPaths: {
2
+ path: string;
3
+ message: string;
4
+ }[];
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": "4.6.0",
4
+ "version": "4.7.0",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "publishConfig": {
7
7
  "registry": "https://registry.npmjs.org/"
@@ -31,7 +31,7 @@
31
31
  "eslint-codemod-utils": "^1.3.2"
32
32
  },
33
33
  "devDependencies": {
34
- "@atlaskit/ds-lib": "^1.4.1",
34
+ "@atlaskit/ds-lib": "^2.0.0",
35
35
  "@atlaskit/theme": "^12.0.2",
36
36
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
37
37
  "@emotion/core": "^10.0.9",
@@ -48,6 +48,7 @@
48
48
  "circular-dependencies": "file-and-folder-level"
49
49
  },
50
50
  "@repo/internal": {
51
+ "dom-events": "use-bind-event-listener",
51
52
  "design-system": "v1",
52
53
  "deprecation": "no-deprecated-imports",
53
54
  "styling": [
package/report.api.md ADDED
@@ -0,0 +1,31 @@
1
+ ## API Report File for "@atlaskit/eslint-plugin-design-system"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+ import { Rule } from 'eslint';
7
+
8
+ export declare const configs: {
9
+ recommended: {
10
+ plugins: string[];
11
+ rules: {
12
+ '@atlaskit/design-system/icon-label': string;
13
+ '@atlaskit/design-system/no-deprecated-apis': string;
14
+ '@atlaskit/design-system/no-deprecated-imports': string;
15
+ '@atlaskit/design-system/use-visually-hidden': string;
16
+ };
17
+ };
18
+ };
19
+
20
+ export declare const rules: {
21
+ 'ensure-design-token-usage': Rule.RuleModule;
22
+ 'icon-label': Rule.RuleModule;
23
+ 'no-deprecated-apis': Rule.RuleModule;
24
+ 'no-deprecated-design-token-usage': Rule.RuleModule;
25
+ 'no-deprecated-imports': Rule.RuleModule;
26
+ 'no-unsafe-design-token-usage': Rule.RuleModule;
27
+ 'use-visually-hidden': Rule.RuleModule;
28
+ };
29
+
30
+ export {};
31
+ ```