@atlaskit/eslint-plugin-design-system 11.10.0 → 12.0.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.
Files changed (181) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/ast-nodes/object-entry.js +1 -1
  3. package/dist/cjs/ast-nodes/root.js +1 -1
  4. package/dist/cjs/presets/all.codegen.js +1 -1
  5. package/dist/cjs/presets/recommended.codegen.js +1 -1
  6. package/dist/cjs/rules/consistent-css-prop-usage/index.js +1 -1
  7. package/dist/cjs/rules/ensure-design-token-usage/color.js +10 -10
  8. package/dist/cjs/rules/ensure-design-token-usage/index.js +12 -5
  9. package/dist/cjs/rules/ensure-design-token-usage/utils.js +3 -3
  10. package/dist/cjs/rules/no-deprecated-apis/index.js +1 -1
  11. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind-all.js +1 -1
  12. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind.js +1 -1
  13. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-jsx-attribute.js +1 -1
  14. package/dist/cjs/rules/no-empty-styled-expression/index.js +1 -1
  15. package/dist/cjs/rules/no-html-anchor/node-types/jsx-element/index.js +1 -1
  16. package/dist/cjs/rules/no-html-anchor/node-types/styled-component/index.js +1 -1
  17. package/dist/cjs/rules/no-html-button/node-types/styled-component/index.js +1 -1
  18. package/dist/cjs/rules/no-invalid-css-map/index.js +1 -1
  19. package/dist/cjs/rules/no-invalid-css-map/utils.js +1 -1
  20. package/dist/cjs/rules/no-legacy-icons/helpers.js +40 -3
  21. package/dist/cjs/rules/no-margin/index.js +4 -4
  22. package/dist/cjs/rules/no-nested-styles/index.js +2 -2
  23. package/dist/cjs/rules/no-physical-properties/index.js +1 -1
  24. package/dist/cjs/rules/no-unsafe-design-token-usage/index.js +2 -2
  25. package/dist/cjs/rules/no-unsafe-style-overrides/index.js +1 -1
  26. package/dist/cjs/rules/use-heading/config/index.js +1 -1
  27. package/dist/cjs/rules/use-heading/index.js +13 -1
  28. package/dist/cjs/rules/use-heading-level-in-spotlight-card/index.js +1 -1
  29. package/dist/cjs/rules/use-href-in-link-item/index.js +1 -1
  30. package/dist/cjs/rules/use-latest-xcss-syntax/index.js +1 -1
  31. package/dist/cjs/rules/use-latest-xcss-syntax/transformers/style-property/index.js +1 -1
  32. package/dist/cjs/rules/use-latest-xcss-syntax-typography/config/index.js +3 -2
  33. package/dist/cjs/rules/use-latest-xcss-syntax-typography/index.js +24 -6
  34. package/dist/cjs/rules/use-primitives/config/index.js +41 -1
  35. package/dist/cjs/rules/use-primitives/index.js +14 -0
  36. package/dist/cjs/rules/use-primitives/transformers/compiled-styled/index.js +1 -1
  37. package/dist/cjs/rules/use-primitives/transformers/css-to-xcss.js +1 -1
  38. package/dist/cjs/rules/use-primitives/transformers/emotion-css/index.js +1 -1
  39. package/dist/cjs/rules/use-primitives/utils/get-variable-usage-count.js +1 -1
  40. package/dist/cjs/rules/use-primitives-text/config/index.js +11 -2
  41. package/dist/cjs/rules/use-primitives-text/index.js +27 -0
  42. package/dist/cjs/rules/use-primitives-text/transformers/emphasis-elements.js +1 -1
  43. package/dist/cjs/rules/use-primitives-text/transformers/paragraph-elements.js +1 -1
  44. package/dist/cjs/rules/use-primitives-text/transformers/span-elements.js +1 -1
  45. package/dist/cjs/rules/use-primitives-text/transformers/strong-elements.js +1 -1
  46. package/dist/cjs/rules/use-tokens-space/index.js +5 -5
  47. package/dist/cjs/rules/use-tokens-typography/config/index.js +1 -1
  48. package/dist/cjs/rules/use-tokens-typography/index.js +7 -6
  49. package/dist/cjs/rules/use-tokens-typography/transformers/font-family.js +3 -2
  50. package/dist/cjs/rules/use-tokens-typography/transformers/font-weight.js +3 -2
  51. package/dist/cjs/rules/use-tokens-typography/transformers/style-object.js +3 -9
  52. package/dist/cjs/rules/use-tokens-typography/transformers/untokenized-properties.js +2 -1
  53. package/dist/cjs/rules/use-visually-hidden/index.js +2 -2
  54. package/dist/cjs/rules/utils/create-no-exported-rule/check-if-supported-export.js +3 -3
  55. package/dist/cjs/rules/utils/create-no-exported-rule/main.js +1 -1
  56. package/dist/cjs/rules/utils/create-no-tagged-template-expression-rule/index.js +1 -1
  57. package/dist/cjs/rules/utils/get-first-supported-import.js +1 -1
  58. package/dist/cjs/rules/utils/get-is-exception.js +3 -3
  59. package/dist/cjs/rules/utils/is-node.js +16 -16
  60. package/dist/es2019/ast-nodes/object-entry.js +1 -1
  61. package/dist/es2019/ast-nodes/root.js +1 -1
  62. package/dist/es2019/presets/all.codegen.js +1 -1
  63. package/dist/es2019/presets/recommended.codegen.js +1 -1
  64. package/dist/es2019/rules/consistent-css-prop-usage/index.js +1 -1
  65. package/dist/es2019/rules/ensure-design-token-usage/color.js +10 -10
  66. package/dist/es2019/rules/ensure-design-token-usage/index.js +8 -1
  67. package/dist/es2019/rules/ensure-design-token-usage/utils.js +1 -1
  68. package/dist/es2019/rules/no-deprecated-apis/index.js +1 -1
  69. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind-all.js +1 -1
  70. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind.js +1 -1
  71. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-jsx-attribute.js +1 -1
  72. package/dist/es2019/rules/no-empty-styled-expression/index.js +1 -1
  73. package/dist/es2019/rules/no-html-anchor/node-types/jsx-element/index.js +1 -1
  74. package/dist/es2019/rules/no-html-anchor/node-types/styled-component/index.js +1 -1
  75. package/dist/es2019/rules/no-html-button/node-types/styled-component/index.js +1 -1
  76. package/dist/es2019/rules/no-invalid-css-map/index.js +1 -1
  77. package/dist/es2019/rules/no-invalid-css-map/utils.js +1 -1
  78. package/dist/es2019/rules/no-legacy-icons/helpers.js +38 -3
  79. package/dist/es2019/rules/no-nested-styles/index.js +1 -1
  80. package/dist/es2019/rules/no-unsafe-style-overrides/index.js +1 -1
  81. package/dist/es2019/rules/use-heading/config/index.js +1 -1
  82. package/dist/es2019/rules/use-heading/index.js +12 -0
  83. package/dist/es2019/rules/use-heading-level-in-spotlight-card/index.js +1 -1
  84. package/dist/es2019/rules/use-href-in-link-item/index.js +1 -1
  85. package/dist/es2019/rules/use-latest-xcss-syntax/transformers/style-property/index.js +1 -1
  86. package/dist/es2019/rules/use-latest-xcss-syntax-typography/config/index.js +2 -1
  87. package/dist/es2019/rules/use-latest-xcss-syntax-typography/index.js +19 -1
  88. package/dist/es2019/rules/use-primitives/config/index.js +40 -0
  89. package/dist/es2019/rules/use-primitives/index.js +15 -1
  90. package/dist/es2019/rules/use-primitives/transformers/compiled-styled/index.js +1 -1
  91. package/dist/es2019/rules/use-primitives/transformers/css-to-xcss.js +1 -1
  92. package/dist/es2019/rules/use-primitives/transformers/emotion-css/index.js +1 -1
  93. package/dist/es2019/rules/use-primitives/utils/get-variable-usage-count.js +1 -1
  94. package/dist/es2019/rules/use-primitives-text/config/index.js +10 -1
  95. package/dist/es2019/rules/use-primitives-text/index.js +28 -1
  96. package/dist/es2019/rules/use-primitives-text/transformers/emphasis-elements.js +1 -1
  97. package/dist/es2019/rules/use-primitives-text/transformers/paragraph-elements.js +1 -1
  98. package/dist/es2019/rules/use-primitives-text/transformers/span-elements.js +1 -1
  99. package/dist/es2019/rules/use-primitives-text/transformers/strong-elements.js +1 -1
  100. package/dist/es2019/rules/use-tokens-typography/config/index.js +1 -1
  101. package/dist/es2019/rules/use-tokens-typography/index.js +2 -1
  102. package/dist/es2019/rules/use-tokens-typography/transformers/font-family.js +3 -2
  103. package/dist/es2019/rules/use-tokens-typography/transformers/font-weight.js +3 -2
  104. package/dist/es2019/rules/use-tokens-typography/transformers/style-object.js +3 -9
  105. package/dist/es2019/rules/use-tokens-typography/transformers/untokenized-properties.js +2 -1
  106. package/dist/es2019/rules/use-visually-hidden/index.js +2 -2
  107. package/dist/es2019/rules/utils/create-no-exported-rule/check-if-supported-export.js +1 -1
  108. package/dist/es2019/rules/utils/create-no-exported-rule/main.js +1 -1
  109. package/dist/es2019/rules/utils/create-no-tagged-template-expression-rule/index.js +1 -1
  110. package/dist/es2019/rules/utils/get-first-supported-import.js +1 -1
  111. package/dist/es2019/rules/utils/is-node.js +1 -1
  112. package/dist/esm/ast-nodes/object-entry.js +1 -1
  113. package/dist/esm/ast-nodes/root.js +1 -1
  114. package/dist/esm/presets/all.codegen.js +1 -1
  115. package/dist/esm/presets/recommended.codegen.js +1 -1
  116. package/dist/esm/rules/consistent-css-prop-usage/index.js +1 -1
  117. package/dist/esm/rules/ensure-design-token-usage/color.js +10 -10
  118. package/dist/esm/rules/ensure-design-token-usage/index.js +12 -5
  119. package/dist/esm/rules/ensure-design-token-usage/utils.js +4 -3
  120. package/dist/esm/rules/no-deprecated-apis/index.js +1 -1
  121. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind-all.js +1 -1
  122. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind.js +1 -1
  123. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-jsx-attribute.js +1 -1
  124. package/dist/esm/rules/no-empty-styled-expression/index.js +1 -1
  125. package/dist/esm/rules/no-html-anchor/node-types/jsx-element/index.js +1 -1
  126. package/dist/esm/rules/no-html-anchor/node-types/styled-component/index.js +1 -1
  127. package/dist/esm/rules/no-html-button/node-types/styled-component/index.js +1 -1
  128. package/dist/esm/rules/no-invalid-css-map/index.js +1 -1
  129. package/dist/esm/rules/no-invalid-css-map/utils.js +1 -1
  130. package/dist/esm/rules/no-legacy-icons/helpers.js +40 -3
  131. package/dist/esm/rules/no-margin/index.js +4 -4
  132. package/dist/esm/rules/no-nested-styles/index.js +2 -2
  133. package/dist/esm/rules/no-physical-properties/index.js +1 -1
  134. package/dist/esm/rules/no-unsafe-design-token-usage/index.js +2 -2
  135. package/dist/esm/rules/no-unsafe-style-overrides/index.js +1 -1
  136. package/dist/esm/rules/use-heading/config/index.js +1 -1
  137. package/dist/esm/rules/use-heading/index.js +13 -1
  138. package/dist/esm/rules/use-heading-level-in-spotlight-card/index.js +1 -1
  139. package/dist/esm/rules/use-href-in-link-item/index.js +1 -1
  140. package/dist/esm/rules/use-latest-xcss-syntax/index.js +1 -1
  141. package/dist/esm/rules/use-latest-xcss-syntax/transformers/style-property/index.js +1 -1
  142. package/dist/esm/rules/use-latest-xcss-syntax-typography/config/index.js +2 -1
  143. package/dist/esm/rules/use-latest-xcss-syntax-typography/index.js +25 -7
  144. package/dist/esm/rules/use-primitives/config/index.js +40 -0
  145. package/dist/esm/rules/use-primitives/index.js +15 -1
  146. package/dist/esm/rules/use-primitives/transformers/compiled-styled/index.js +1 -1
  147. package/dist/esm/rules/use-primitives/transformers/css-to-xcss.js +1 -1
  148. package/dist/esm/rules/use-primitives/transformers/emotion-css/index.js +1 -1
  149. package/dist/esm/rules/use-primitives/utils/get-variable-usage-count.js +1 -1
  150. package/dist/esm/rules/use-primitives-text/config/index.js +10 -1
  151. package/dist/esm/rules/use-primitives-text/index.js +28 -1
  152. package/dist/esm/rules/use-primitives-text/transformers/emphasis-elements.js +1 -1
  153. package/dist/esm/rules/use-primitives-text/transformers/paragraph-elements.js +1 -1
  154. package/dist/esm/rules/use-primitives-text/transformers/span-elements.js +1 -1
  155. package/dist/esm/rules/use-primitives-text/transformers/strong-elements.js +1 -1
  156. package/dist/esm/rules/use-tokens-space/index.js +5 -5
  157. package/dist/esm/rules/use-tokens-typography/config/index.js +1 -1
  158. package/dist/esm/rules/use-tokens-typography/index.js +7 -6
  159. package/dist/esm/rules/use-tokens-typography/transformers/font-family.js +3 -2
  160. package/dist/esm/rules/use-tokens-typography/transformers/font-weight.js +3 -2
  161. package/dist/esm/rules/use-tokens-typography/transformers/style-object.js +3 -9
  162. package/dist/esm/rules/use-tokens-typography/transformers/untokenized-properties.js +2 -1
  163. package/dist/esm/rules/use-visually-hidden/index.js +2 -2
  164. package/dist/esm/rules/utils/create-no-exported-rule/check-if-supported-export.js +5 -4
  165. package/dist/esm/rules/utils/create-no-exported-rule/main.js +1 -1
  166. package/dist/esm/rules/utils/create-no-tagged-template-expression-rule/index.js +1 -1
  167. package/dist/esm/rules/utils/get-first-supported-import.js +1 -1
  168. package/dist/esm/rules/utils/get-is-exception.js +3 -3
  169. package/dist/esm/rules/utils/is-node.js +23 -16
  170. package/dist/types/rules/use-latest-xcss-syntax-typography/config/index.d.ts +2 -1
  171. package/dist/types/rules/use-primitives/config/index.d.ts +2 -1
  172. package/dist/types/rules/use-primitives-text/config/index.d.ts +2 -1
  173. package/dist/types-ts4.5/rules/use-latest-xcss-syntax-typography/config/index.d.ts +6 -1
  174. package/dist/types-ts4.5/rules/use-primitives/config/index.d.ts +2 -1
  175. package/dist/types-ts4.5/rules/use-primitives-text/config/index.d.ts +2 -1
  176. package/package.json +3 -3
  177. package/dist/cjs/rules/utils/context-compat.js +0 -35
  178. package/dist/es2019/rules/utils/context-compat.js +0 -29
  179. package/dist/esm/rules/utils/context-compat.js +0 -29
  180. package/dist/types/rules/utils/context-compat.d.ts +0 -19
  181. package/dist/types-ts4.5/rules/utils/context-compat.d.ts +0 -19
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @repo/internal/react/require-jsdoc */
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
4
5
  import { Root } from '../../../ast-nodes';
5
6
  import { getNodeSource } from '../../utils/get-node-source';
6
7
  import { isDecendantOfStyleBlock, isDecendantOfType } from '../../utils/is-node';
@@ -35,7 +36,7 @@ export var FontFamily = {
35
36
  return false;
36
37
  }
37
38
  var isFontFamilyProperty = isNodeOfType(node.key, 'Identifier') && node.key.name === 'fontFamily';
38
- var valueNodeSource = getNodeSource(context.sourceCode, node.value);
39
+ var valueNodeSource = getNodeSource(getSourceCode(context), node.value);
39
40
  if (isFontFamilyProperty && valueNodeSource.match(/(font\.family.|inherit)/)) {
40
41
  return false;
41
42
  }
@@ -62,7 +63,7 @@ export var FontFamily = {
62
63
  fixes.push(fontWeightValueFix);
63
64
 
64
65
  // Add import if it doesn't exist
65
- var body = context.sourceCode.ast.body;
66
+ var body = getSourceCode(context).ast.body;
66
67
  var tokensImportDeclarations = Root.findImportsByModule(body, '@atlaskit/tokens');
67
68
 
68
69
  // If there is more than one `@atlaskit/tokens` import, then it becomes difficult to determine which import to transform
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @repo/internal/react/require-jsdoc */
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
4
5
  import { Root } from '../../../ast-nodes';
5
6
  import { getNodeSource } from '../../utils/get-node-source';
6
7
  import { isDecendantOfStyleBlock, isDecendantOfType } from '../../utils/is-node';
@@ -35,7 +36,7 @@ export var FontWeight = {
35
36
  return false;
36
37
  }
37
38
  var isFontWeightProperty = isNodeOfType(node.key, 'Identifier') && node.key.name === 'fontWeight';
38
- var valueNodeSource = getNodeSource(context.sourceCode, node.value);
39
+ var valueNodeSource = getNodeSource(getSourceCode(context), node.value);
39
40
  if (isFontWeightProperty && valueNodeSource.match(/(font\.weight.|inherit)/)) {
40
41
  return false;
41
42
  }
@@ -63,7 +64,7 @@ export var FontWeight = {
63
64
  fixes.push(fontWeightValueFix);
64
65
 
65
66
  // Add import if it doesn't exist
66
- var body = context.sourceCode.ast.body;
67
+ var body = getSourceCode(context).ast.body;
67
68
  var tokensImportDeclarations = Root.findImportsByModule(body, '@atlaskit/tokens');
68
69
 
69
70
  // If there is more than one `@atlaskit/tokens` import, then it becomes difficult to determine which import to transform
@@ -4,9 +4,9 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  /* eslint-disable @repo/internal/react/require-jsdoc */
5
5
 
6
6
  import { isNodeOfType } from 'eslint-codemod-utils';
7
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
7
8
  import { Object as ASTObject, ObjectEntry, Root } from '../../../ast-nodes';
8
9
  import { getValueForPropertyNode, normaliseValue } from '../../ensure-design-token-usage/utils';
9
- import { getSourceCode } from '../../utils/context-compat';
10
10
  import { isDecendantOfGlobalToken, isDecendantOfStyleBlock, isDecendantOfType } from '../../utils/is-node';
11
11
  import { convertPropertyNodeToStringableNode, defaultFontWeight, findFontFamilyValueForToken, findFontWeightTokenForValue, findTypographyTokenForValues, fontWeightMap, getLiteralProperty, getTokenProperty, insertFallbackImportFull, insertFallbackImportSpecifier, insertTokensImport, isValidPropertyNode, isValidTypographyToken, notUndefined } from '../utils';
12
12
  export var StyleObject = {
@@ -174,10 +174,7 @@ export var StyleObject = {
174
174
  var fix = StyleObject._fix(fixerRefs, context);
175
175
  context.report(_objectSpread({
176
176
  node: fontSizeNode,
177
- messageId: 'noRawTypographyValues',
178
- data: {
179
- payload: "fontSize:".concat(fontSizeRaw)
180
- }
177
+ messageId: isFontSizeAToken ? 'noFontSizeTypographyToken' : 'noRawTypographyValues'
181
178
  }, config.enableUnsafeAutofix ? {
182
179
  fix: fix
183
180
  } : {
@@ -189,10 +186,7 @@ export var StyleObject = {
189
186
  } else if (!matchingTokens.length) {
190
187
  context.report({
191
188
  node: fontSizeNode,
192
- messageId: 'noRawTypographyValues',
193
- data: {
194
- payload: "fontSize:".concat(fontSizeRaw)
195
- }
189
+ messageId: 'noRawTypographyValues'
196
190
  });
197
191
  }
198
192
  return;
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @repo/internal/react/require-jsdoc */
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
4
5
  import { getNodeSource } from '../../utils/get-node-source';
5
6
  import { isDecendantOfStyleBlock, isDecendantOfType } from '../../utils/is-node';
6
7
  export var UntokenizedProperties = {
@@ -35,7 +36,7 @@ export var UntokenizedProperties = {
35
36
  return false;
36
37
  }
37
38
  var isFontProperty = isNodeOfType(node.key, 'Identifier') && node.key.name === 'font';
38
- var valueNodeSource = getNodeSource(context.sourceCode, node.value);
39
+ var valueNodeSource = getNodeSource(getSourceCode(context), node.value);
39
40
  if (isFontProperty && valueNodeSource.match(/(font\.(body|heading|code)|inherit)/)) {
40
41
  return false;
41
42
  }
@@ -2,7 +2,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  // eslint-disable-next-line import/no-extraneous-dependencies
3
3
 
4
4
  import { closestOfType, hasImportDeclaration, isNodeOfType } from 'eslint-codemod-utils';
5
- import { getSourceCode } from '../utils/context-compat';
5
+ import { getDeclaredVariables, getSourceCode } from '@atlaskit/eslint-utils/context-compat';
6
6
  import { createLintRule } from '../utils/create-rule';
7
7
  import { isCssInJsObjectNode, isCssInJsTemplateNode } from '../utils/is-node';
8
8
  import fixJsx from './fix-jsx';
@@ -41,7 +41,7 @@ var rule = createLintRule({
41
41
  if (!visuallyHiddenOrAssistive) {
42
42
  return;
43
43
  }
44
- context.getDeclaredVariables(visuallyHiddenOrAssistive).forEach(function (someNode) {
44
+ getDeclaredVariables(context, visuallyHiddenOrAssistive).forEach(function (someNode) {
45
45
  someNode.references.map(function (innerNode) {
46
46
  return innerNode.identifier;
47
47
  }).forEach(function (idNode) {
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
4
4
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
5
  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; }
6
6
  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; }
7
- import { getScope, getSourceCode } from '../context-compat';
7
+ import { getScope, getSourceCode } from '@atlaskit/eslint-utils/context-compat';
8
8
  import { isStyledComponent } from './is-styled-component';
9
9
  var getStack = function getStack(context, node) {
10
10
  var _scope;
@@ -76,7 +76,7 @@ var matches = function matches(defs, refs) {
76
76
  return false;
77
77
  });
78
78
  };
79
- export var checkIfSupportedExport = function checkIfSupportedExport(context, node, importSources) {
79
+ var _checkIfSupportedExport = function checkIfSupportedExport(context, node, importSources) {
80
80
  var _resolved$references;
81
81
  var scope = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : getScope(context, node);
82
82
  // Ignore any expression defined outside of the global or module scope as we have no way of statically analysing them
@@ -135,7 +135,7 @@ export var checkIfSupportedExport = function checkIfSupportedExport(context, nod
135
135
  // Only validate the resolved reference if it accesses the definition node
136
136
  if (matches(nodes, refs.reverse())) {
137
137
  // Now validate the identifier reference as a definition
138
- var validity = checkIfSupportedExport(context, identifier, importSources, nextScope);
138
+ var validity = _checkIfSupportedExport(context, identifier, importSources, nextScope);
139
139
  if (validity.isExport) {
140
140
  return validity;
141
141
  }
@@ -149,4 +149,5 @@ export var checkIfSupportedExport = function checkIfSupportedExport(context, nod
149
149
  return {
150
150
  isExport: false
151
151
  };
152
- };
152
+ };
153
+ export { _checkIfSupportedExport as checkIfSupportedExport };
@@ -1,5 +1,5 @@
1
+ import { getScope, getSourceCode } from '@atlaskit/eslint-utils/context-compat';
1
2
  import { getImportSources } from '@atlaskit/eslint-utils/is-supported-import';
2
- import { getScope, getSourceCode } from '../context-compat';
3
3
  import { checkIfSupportedExport } from './check-if-supported-export';
4
4
  /**
5
5
  * Creates a new ESLint rule for banning exporting certain function calls, e.g.
@@ -6,8 +6,8 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  // eslint-disable-next-line import/no-extraneous-dependencies
7
7
 
8
8
  import esquery from 'esquery';
9
+ import { getScope, getSourceCode } from '@atlaskit/eslint-utils/context-compat';
9
10
  import { getImportSources, isEmotion } from '@atlaskit/eslint-utils/is-supported-import';
10
- import { getScope, getSourceCode } from '../context-compat';
11
11
  import { generate } from './generate';
12
12
  import { getTaggedTemplateExpressionOffset } from './get-tagged-template-expression-offset';
13
13
  import { toArguments } from './to-arguments';
@@ -1,5 +1,5 @@
1
1
  import { isNodeOfType } from 'eslint-codemod-utils';
2
- import { getSourceCode } from './context-compat';
2
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
3
3
  /**
4
4
  * Get the first import declaration in the file that matches any of the packages
5
5
  * in `importSources`.
@@ -24,7 +24,7 @@ export var getIsException = function getIsException(exceptions) {
24
24
  var exceptionsSet = new Set(exceptions.map(function (x) {
25
25
  return x.toLowerCase();
26
26
  }));
27
- var isException = function isException(node) {
27
+ var _isException = function isException(node) {
28
28
  var value = getNodeValue(node);
29
29
  if (value) {
30
30
  var splitValues = value.split(/[-_\s]+/);
@@ -35,9 +35,9 @@ export var getIsException = function getIsException(exceptions) {
35
35
  }
36
36
  }
37
37
  if (node.parent) {
38
- return isException(node.parent);
38
+ return _isException(node.parent);
39
39
  }
40
40
  return false;
41
41
  };
42
- return isException;
42
+ return _isException;
43
43
  };
@@ -1,45 +1,48 @@
1
1
  // eslint-disable-next-line import/no-extraneous-dependencies
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
4
5
  import { isXcss } from '@atlaskit/eslint-utils/is-supported-import';
5
6
  import { Root } from '../../ast-nodes';
6
- import { getSourceCode } from './context-compat';
7
- export var isDecendantOfGlobalToken = function isDecendantOfGlobalToken(node) {
7
+ var _isDecendantOfGlobalToken = function isDecendantOfGlobalToken(node) {
8
8
  if (isNodeOfType(node, 'CallExpression') && isNodeOfType(node.callee, 'Identifier') && (node.callee.name === 'token' || node.callee.name === 'getTokenValue')) {
9
9
  return true;
10
10
  }
11
11
  if (node.parent) {
12
- return isDecendantOfGlobalToken(node.parent);
12
+ return _isDecendantOfGlobalToken(node.parent);
13
13
  }
14
14
  return false;
15
15
  };
16
- export var isDecendantOfType = function isDecendantOfType(node, type) {
16
+ export { _isDecendantOfGlobalToken as isDecendantOfGlobalToken };
17
+ var _isDecendantOfType = function isDecendantOfType(node, type) {
17
18
  var skipNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
18
19
  if (!skipNode && node.type === type) {
19
20
  return true;
20
21
  }
21
22
  if (node.parent) {
22
- return isDecendantOfType(node.parent, type, false);
23
+ return _isDecendantOfType(node.parent, type, false);
23
24
  }
24
25
  return false;
25
26
  };
27
+ export { _isDecendantOfType as isDecendantOfType };
26
28
  export var isPropertyKey = function isPropertyKey(node) {
27
- if (isNodeOfType(node, 'Identifier') && isDecendantOfType(node, 'Property')) {
29
+ if (isNodeOfType(node, 'Identifier') && _isDecendantOfType(node, 'Property')) {
28
30
  var parent = node.parent;
29
31
  return node === parent.key || parent.shorthand;
30
32
  }
31
33
  return false;
32
34
  };
33
- export var isDecendantOfStyleJsxAttribute = function isDecendantOfStyleJsxAttribute(node) {
35
+ var _isDecendantOfStyleJsxAttribute = function isDecendantOfStyleJsxAttribute(node) {
34
36
  if (isNodeOfType(node, 'JSXAttribute')) {
35
37
  return true;
36
38
  }
37
39
  if (node.parent) {
38
- return isDecendantOfStyleJsxAttribute(node.parent);
40
+ return _isDecendantOfStyleJsxAttribute(node.parent);
39
41
  }
40
42
  return false;
41
43
  };
42
- export var isDecendantOfSvgElement = function isDecendantOfSvgElement(node) {
44
+ export { _isDecendantOfStyleJsxAttribute as isDecendantOfStyleJsxAttribute };
45
+ var _isDecendantOfSvgElement = function isDecendantOfSvgElement(node) {
43
46
  if (isNodeOfType(node, 'JSXElement')) {
44
47
  // @ts-ignore
45
48
  if (node.openingElement.name.name === 'svg') {
@@ -47,11 +50,12 @@ export var isDecendantOfSvgElement = function isDecendantOfSvgElement(node) {
47
50
  }
48
51
  }
49
52
  if (node.parent) {
50
- return isDecendantOfSvgElement(node.parent);
53
+ return _isDecendantOfSvgElement(node.parent);
51
54
  }
52
55
  return false;
53
56
  };
54
- export var isDecendantOfPrimitive = function isDecendantOfPrimitive(node, context) {
57
+ export { _isDecendantOfSvgElement as isDecendantOfSvgElement };
58
+ var _isDecendantOfPrimitive = function isDecendantOfPrimitive(node, context) {
55
59
  var primitivesToCheck = ['Box', 'Text'];
56
60
  if (isNodeOfType(node, 'JSXElement')) {
57
61
  // @ts-ignore
@@ -63,10 +67,11 @@ export var isDecendantOfPrimitive = function isDecendantOfPrimitive(node, contex
63
67
  }
64
68
  }
65
69
  if (node.parent) {
66
- return isDecendantOfPrimitive(node.parent, context);
70
+ return _isDecendantOfPrimitive(node.parent, context);
67
71
  }
68
72
  return false;
69
73
  };
74
+ export { _isDecendantOfPrimitive as isDecendantOfPrimitive };
70
75
  var cssInJsCallees = ['css', 'styled', 'styled2'];
71
76
  export var isCssInJsTemplateNode = function isCssInJsTemplateNode(node) {
72
77
  return (node === null || node === void 0 ? void 0 : node.type) === 'TaggedTemplateExpression' && node.tag.type === 'MemberExpression' && node.tag.object.type === 'Identifier' && node.tag.object.name === 'styled';
@@ -77,17 +82,18 @@ export var isCssInJsCallNode = function isCssInJsCallNode(node) {
77
82
  export var isCssInJsObjectNode = function isCssInJsObjectNode(node) {
78
83
  return (node === null || node === void 0 ? void 0 : node.type) === 'CallExpression' && node.callee.type === 'MemberExpression' && node.callee.object.type === 'Identifier' && cssInJsCallees.includes(node.callee.object.name);
79
84
  };
80
- export var isDecendantOfXcssBlock = function isDecendantOfXcssBlock(node, referencesInScope, importSources) {
85
+ var _isDecendantOfXcssBlock = function isDecendantOfXcssBlock(node, referencesInScope, importSources) {
81
86
  // xcss contains types for all properties that accept tokens, so ignore xcss for linting as it will report false positives
82
87
  if (node.type === 'CallExpression' && isXcss(node.callee, referencesInScope, importSources)) {
83
88
  return true;
84
89
  }
85
90
  if (node.parent) {
86
- return isDecendantOfXcssBlock(node.parent, referencesInScope, importSources);
91
+ return _isDecendantOfXcssBlock(node.parent, referencesInScope, importSources);
87
92
  }
88
93
  return false;
89
94
  };
90
- export var isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
95
+ export { _isDecendantOfXcssBlock as isDecendantOfXcssBlock };
96
+ var _isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
91
97
  if (node.type === 'VariableDeclarator') {
92
98
  if (node.id.type !== 'Identifier') {
93
99
  return false;
@@ -122,10 +128,11 @@ export var isDecendantOfStyleBlock = function isDecendantOfStyleBlock(node) {
122
128
  return true;
123
129
  }
124
130
  if (node.parent) {
125
- return isDecendantOfStyleBlock(node.parent);
131
+ return _isDecendantOfStyleBlock(node.parent);
126
132
  }
127
133
  return false;
128
134
  };
135
+ export { _isDecendantOfStyleBlock as isDecendantOfStyleBlock };
129
136
  export var isChildOfType = function isChildOfType(node, type) {
130
137
  return isNodeOfType(node.parent, type);
131
138
  };
@@ -1,4 +1,5 @@
1
- type Pattern = 'restricted-property' | 'wrapped-token-value' | 'restricted-capitalisation';
1
+ export declare const PATTERNS: readonly ["restricted-property", "wrapped-token-value", "restricted-capitalisation"];
2
+ type Pattern = (typeof PATTERNS)[number];
2
3
  export interface RuleConfig {
3
4
  failSilently: boolean;
4
5
  patterns: Pattern[];
@@ -1,4 +1,5 @@
1
- type Pattern = 'compiled-css-function' | 'compiled-styled-object' | 'css-template-literal' | 'css-property-with-tokens' | 'css-property-multiple-values' | 'multiple-properties' | 'dimension-properties' | 'jsx-order-fix' | 'string-style-property-fix';
1
+ export declare const VALID_PATTERNS: string[];
2
+ type Pattern = (typeof VALID_PATTERNS)[number];
2
3
  export interface RuleConfig {
3
4
  patterns: Pattern[];
4
5
  }
@@ -1,4 +1,5 @@
1
- type Pattern = 'paragraph-elements' | 'span-elements' | 'strong-elements' | 'emphasis-elements';
1
+ export declare const PATTERNS: string[];
2
+ type Pattern = (typeof PATTERNS)[number];
2
3
  export interface RuleConfig {
3
4
  failSilently: boolean;
4
5
  patterns: Pattern[];
@@ -1,4 +1,9 @@
1
- type Pattern = 'restricted-property' | 'wrapped-token-value' | 'restricted-capitalisation';
1
+ export declare const PATTERNS: readonly [
2
+ "restricted-property",
3
+ "wrapped-token-value",
4
+ "restricted-capitalisation"
5
+ ];
6
+ type Pattern = (typeof PATTERNS)[number];
2
7
  export interface RuleConfig {
3
8
  failSilently: boolean;
4
9
  patterns: Pattern[];
@@ -1,4 +1,5 @@
1
- type Pattern = 'compiled-css-function' | 'compiled-styled-object' | 'css-template-literal' | 'css-property-with-tokens' | 'css-property-multiple-values' | 'multiple-properties' | 'dimension-properties' | 'jsx-order-fix' | 'string-style-property-fix';
1
+ export declare const VALID_PATTERNS: string[];
2
+ type Pattern = (typeof VALID_PATTERNS)[number];
2
3
  export interface RuleConfig {
3
4
  patterns: Pattern[];
4
5
  }
@@ -1,4 +1,5 @@
1
- type Pattern = 'paragraph-elements' | 'span-elements' | 'strong-elements' | 'emphasis-elements';
1
+ export declare const PATTERNS: string[];
2
+ type Pattern = (typeof PATTERNS)[number];
2
3
  export interface RuleConfig {
3
4
  failSilently: boolean;
4
5
  patterns: Pattern[];
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": "11.10.0",
4
+ "version": "12.0.0",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
7
7
  "publishConfig": {
@@ -44,8 +44,8 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@atlaskit/eslint-utils": "^1.9.0",
47
- "@atlaskit/icon": "^23.5.0",
48
- "@atlaskit/icon-lab": "^2.3.0",
47
+ "@atlaskit/icon": "^23.7.0",
48
+ "@atlaskit/icon-lab": "^2.4.0",
49
49
  "@atlaskit/tokens": "*",
50
50
  "@babel/runtime": "^7.0.0",
51
51
  "@typescript-eslint/utils": "^7.1.0",
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getSourceCode = exports.getScope = void 0;
7
- /**
8
- * TODO: Consider whether this should be replaced by ESLint's compat library.
9
- * Either way, this should be removed once we no longer need to support ESLint versions less than 8.40.
10
- */
11
-
12
- /**
13
- * Returns the SourceCode object from the ESLint rule context.
14
- * Compatibility layer to support older versions of ESLint.
15
- * @param context - The ESLint rule context
16
- */
17
- var getSourceCode = exports.getSourceCode = function getSourceCode(context) {
18
- var _context$sourceCode;
19
- // `context.sourceCode` is the preferred way to access SourceCode, as
20
- // `context.getSourceCode()` is deprecated in v8 and removed in v9.
21
- return (_context$sourceCode = context.sourceCode) !== null && _context$sourceCode !== void 0 ? _context$sourceCode : context.getSourceCode();
22
- };
23
-
24
- /**
25
- * Returns the Scope object from the ESLint rule context.
26
- * Compatibility layer to support older versions of ESLint.
27
- * @param context - The ESLint rule context
28
- * @param node - The node to get the scope for
29
- */
30
- var getScope = exports.getScope = function getScope(context, node) {
31
- var _getSourceCode$getSco, _getSourceCode, _getSourceCode$getSco2;
32
- // `context.sourceCode.getScope()` is the preferred way to access Scope, as
33
- // `context.getScope()` was removed in v9.
34
- return (_getSourceCode$getSco = (_getSourceCode = getSourceCode(context)) === null || _getSourceCode === void 0 || (_getSourceCode$getSco2 = _getSourceCode.getScope) === null || _getSourceCode$getSco2 === void 0 ? void 0 : _getSourceCode$getSco2.call(_getSourceCode, node)) !== null && _getSourceCode$getSco !== void 0 ? _getSourceCode$getSco : context.getScope();
35
- };
@@ -1,29 +0,0 @@
1
- /**
2
- * TODO: Consider whether this should be replaced by ESLint's compat library.
3
- * Either way, this should be removed once we no longer need to support ESLint versions less than 8.40.
4
- */
5
-
6
- /**
7
- * Returns the SourceCode object from the ESLint rule context.
8
- * Compatibility layer to support older versions of ESLint.
9
- * @param context - The ESLint rule context
10
- */
11
- export const getSourceCode = context => {
12
- var _context$sourceCode;
13
- // `context.sourceCode` is the preferred way to access SourceCode, as
14
- // `context.getSourceCode()` is deprecated in v8 and removed in v9.
15
- return (_context$sourceCode = context.sourceCode) !== null && _context$sourceCode !== void 0 ? _context$sourceCode : context.getSourceCode();
16
- };
17
-
18
- /**
19
- * Returns the Scope object from the ESLint rule context.
20
- * Compatibility layer to support older versions of ESLint.
21
- * @param context - The ESLint rule context
22
- * @param node - The node to get the scope for
23
- */
24
- export const getScope = (context, node) => {
25
- var _getSourceCode$getSco, _getSourceCode, _getSourceCode$getSco2;
26
- // `context.sourceCode.getScope()` is the preferred way to access Scope, as
27
- // `context.getScope()` was removed in v9.
28
- return (_getSourceCode$getSco = (_getSourceCode = getSourceCode(context)) === null || _getSourceCode === void 0 ? void 0 : (_getSourceCode$getSco2 = _getSourceCode.getScope) === null || _getSourceCode$getSco2 === void 0 ? void 0 : _getSourceCode$getSco2.call(_getSourceCode, node)) !== null && _getSourceCode$getSco !== void 0 ? _getSourceCode$getSco : context.getScope();
29
- };
@@ -1,29 +0,0 @@
1
- /**
2
- * TODO: Consider whether this should be replaced by ESLint's compat library.
3
- * Either way, this should be removed once we no longer need to support ESLint versions less than 8.40.
4
- */
5
-
6
- /**
7
- * Returns the SourceCode object from the ESLint rule context.
8
- * Compatibility layer to support older versions of ESLint.
9
- * @param context - The ESLint rule context
10
- */
11
- export var getSourceCode = function getSourceCode(context) {
12
- var _context$sourceCode;
13
- // `context.sourceCode` is the preferred way to access SourceCode, as
14
- // `context.getSourceCode()` is deprecated in v8 and removed in v9.
15
- return (_context$sourceCode = context.sourceCode) !== null && _context$sourceCode !== void 0 ? _context$sourceCode : context.getSourceCode();
16
- };
17
-
18
- /**
19
- * Returns the Scope object from the ESLint rule context.
20
- * Compatibility layer to support older versions of ESLint.
21
- * @param context - The ESLint rule context
22
- * @param node - The node to get the scope for
23
- */
24
- export var getScope = function getScope(context, node) {
25
- var _getSourceCode$getSco, _getSourceCode, _getSourceCode$getSco2;
26
- // `context.sourceCode.getScope()` is the preferred way to access Scope, as
27
- // `context.getScope()` was removed in v9.
28
- return (_getSourceCode$getSco = (_getSourceCode = getSourceCode(context)) === null || _getSourceCode === void 0 || (_getSourceCode$getSco2 = _getSourceCode.getScope) === null || _getSourceCode$getSco2 === void 0 ? void 0 : _getSourceCode$getSco2.call(_getSourceCode, node)) !== null && _getSourceCode$getSco !== void 0 ? _getSourceCode$getSco : context.getScope();
29
- };
@@ -1,19 +0,0 @@
1
- import type { Rule, Scope, SourceCode } from 'eslint';
2
- import type { Node } from 'estree';
3
- /**
4
- * TODO: Consider whether this should be replaced by ESLint's compat library.
5
- * Either way, this should be removed once we no longer need to support ESLint versions less than 8.40.
6
- */
7
- /**
8
- * Returns the SourceCode object from the ESLint rule context.
9
- * Compatibility layer to support older versions of ESLint.
10
- * @param context - The ESLint rule context
11
- */
12
- export declare const getSourceCode: (context: Rule.RuleContext) => SourceCode;
13
- /**
14
- * Returns the Scope object from the ESLint rule context.
15
- * Compatibility layer to support older versions of ESLint.
16
- * @param context - The ESLint rule context
17
- * @param node - The node to get the scope for
18
- */
19
- export declare const getScope: (context: Rule.RuleContext, node: Node) => Scope.Scope;
@@ -1,19 +0,0 @@
1
- import type { Rule, Scope, SourceCode } from 'eslint';
2
- import type { Node } from 'estree';
3
- /**
4
- * TODO: Consider whether this should be replaced by ESLint's compat library.
5
- * Either way, this should be removed once we no longer need to support ESLint versions less than 8.40.
6
- */
7
- /**
8
- * Returns the SourceCode object from the ESLint rule context.
9
- * Compatibility layer to support older versions of ESLint.
10
- * @param context - The ESLint rule context
11
- */
12
- export declare const getSourceCode: (context: Rule.RuleContext) => SourceCode;
13
- /**
14
- * Returns the Scope object from the ESLint rule context.
15
- * Compatibility layer to support older versions of ESLint.
16
- * @param context - The ESLint rule context
17
- * @param node - The node to get the scope for
18
- */
19
- export declare const getScope: (context: Rule.RuleContext, node: Node) => Scope.Scope;