@atlaskit/eslint-plugin-design-system 13.25.0 → 13.27.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 (43) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +73 -71
  3. package/dist/cjs/presets/all-flat.codegen.js +4 -2
  4. package/dist/cjs/presets/all.codegen.js +4 -2
  5. package/dist/cjs/presets/recommended-flat.codegen.js +2 -2
  6. package/dist/cjs/presets/recommended.codegen.js +2 -2
  7. package/dist/cjs/rules/index.codegen.js +7 -3
  8. package/dist/cjs/rules/{lozenge-appearance-and-isbold-migration → lozenge-isBold-and-lozenge-badge-appearance-migration}/index.js +115 -19
  9. package/dist/cjs/rules/no-to-match-snapshot/index.js +49 -0
  10. package/dist/cjs/rules/no-unsafe-inline-snapshot/index.js +139 -0
  11. package/dist/es2019/presets/all-flat.codegen.js +4 -2
  12. package/dist/es2019/presets/all.codegen.js +4 -2
  13. package/dist/es2019/presets/recommended-flat.codegen.js +2 -2
  14. package/dist/es2019/presets/recommended.codegen.js +2 -2
  15. package/dist/es2019/rules/index.codegen.js +7 -3
  16. package/dist/es2019/rules/{lozenge-appearance-and-isbold-migration → lozenge-isBold-and-lozenge-badge-appearance-migration}/index.js +109 -15
  17. package/dist/es2019/rules/no-to-match-snapshot/index.js +43 -0
  18. package/dist/es2019/rules/no-unsafe-inline-snapshot/index.js +134 -0
  19. package/dist/esm/presets/all-flat.codegen.js +4 -2
  20. package/dist/esm/presets/all.codegen.js +4 -2
  21. package/dist/esm/presets/recommended-flat.codegen.js +2 -2
  22. package/dist/esm/presets/recommended.codegen.js +2 -2
  23. package/dist/esm/rules/index.codegen.js +7 -3
  24. package/dist/esm/rules/{lozenge-appearance-and-isbold-migration → lozenge-isBold-and-lozenge-badge-appearance-migration}/index.js +115 -19
  25. package/dist/esm/rules/no-to-match-snapshot/index.js +43 -0
  26. package/dist/esm/rules/no-unsafe-inline-snapshot/index.js +133 -0
  27. package/dist/types/presets/all-flat.codegen.d.ts +1 -1
  28. package/dist/types/presets/all.codegen.d.ts +1 -1
  29. package/dist/types/presets/recommended-flat.codegen.d.ts +1 -1
  30. package/dist/types/presets/recommended.codegen.d.ts +1 -1
  31. package/dist/types/rules/index.codegen.d.ts +1 -1
  32. package/dist/types/rules/no-to-match-snapshot/index.d.ts +4 -0
  33. package/dist/types/rules/no-unsafe-inline-snapshot/index.d.ts +4 -0
  34. package/dist/types-ts4.5/presets/all-flat.codegen.d.ts +1 -1
  35. package/dist/types-ts4.5/presets/all.codegen.d.ts +1 -1
  36. package/dist/types-ts4.5/presets/recommended-flat.codegen.d.ts +1 -1
  37. package/dist/types-ts4.5/presets/recommended.codegen.d.ts +1 -1
  38. package/dist/types-ts4.5/rules/index.codegen.d.ts +1 -1
  39. package/dist/types-ts4.5/rules/no-to-match-snapshot/index.d.ts +4 -0
  40. package/dist/types-ts4.5/rules/no-unsafe-inline-snapshot/index.d.ts +4 -0
  41. package/package.json +3 -3
  42. /package/dist/types/rules/{lozenge-appearance-and-isbold-migration → lozenge-isBold-and-lozenge-badge-appearance-migration}/index.d.ts +0 -0
  43. /package/dist/types-ts4.5/rules/{lozenge-appearance-and-isbold-migration → lozenge-isBold-and-lozenge-badge-appearance-migration}/index.d.ts +0 -0
@@ -2,18 +2,20 @@ import { isNodeOfType } from 'eslint-codemod-utils';
2
2
  import { createLintRule } from '../utils/create-rule';
3
3
  var rule = createLintRule({
4
4
  meta: {
5
- name: 'lozenge-appearance-and-isbold-migration',
5
+ name: 'lozenge-isBold-and-lozenge-badge-appearance-migration',
6
6
  fixable: 'code',
7
7
  type: 'suggestion',
8
8
  docs: {
9
- description: 'Helps migrate deprecated Lozenge usages to the new API or Tag component as part of the Labelling System Phase 1 migration.',
9
+ description: 'Helps migrate Lozenge isBold prop and appearance values (for both Lozenge and Badge components) as part of the Labelling System Phase 1 migration.',
10
10
  recommended: true,
11
11
  severity: 'warn'
12
12
  },
13
13
  messages: {
14
14
  updateAppearance: 'Update appearance value to new semantic value.',
15
15
  migrateTag: 'Non-bold <Lozenge> variants should migrate to <Tag> component.',
16
- manualReview: "Dynamic 'isBold' props require manual review before migration."
16
+ manualReview: "Dynamic 'isBold' props require manual review before migration.",
17
+ updateBadgeAppearance: 'Update Badge appearance value "{{oldValue}}" to new semantic value "{{newValue}}".',
18
+ dynamicBadgeAppearance: 'Dynamic appearance prop values require manual review to ensure they use the new semantic values: neutral, information, inverse, danger, success.'
17
19
  }
18
20
  },
19
21
  create: function create(context) {
@@ -22,6 +24,11 @@ var rule = createLintRule({
22
24
  */
23
25
  var lozengeImports = {}; // local name -> import source
24
26
 
27
+ /**
28
+ * Contains a map of imported Badge components.
29
+ */
30
+ var badgeImports = {}; // local name -> import source
31
+
25
32
  /**
26
33
  * Check if a JSX attribute value is a literal false
27
34
  */
@@ -30,14 +37,25 @@ var rule = createLintRule({
30
37
  }
31
38
 
32
39
  /**
33
- * Check if a JSX attribute value is dynamic (not a literal boolean)
40
+ * Check if a JSX attribute value is dynamic (not a static literal value)
41
+ * Can be used for any prop type (boolean, string, etc.)
34
42
  */
35
43
  function isDynamicExpression(node) {
36
- if (!node || node.type !== 'JSXExpressionContainer') {
44
+ if (!node) {
45
+ return false;
46
+ }
47
+
48
+ // If it's a plain literal (e.g., appearance="value"), it's not dynamic
49
+ if (node.type === 'Literal') {
37
50
  return false;
38
51
  }
39
- var expr = node.expression;
40
- return expr && !(expr.type === 'Literal' && typeof expr.value === 'boolean');
52
+
53
+ // If it's an expression container with a non-literal expression, it's dynamic
54
+ if (node.type === 'JSXExpressionContainer') {
55
+ var expr = node.expression;
56
+ return expr && expr.type !== 'Literal';
57
+ }
58
+ return false;
41
59
  }
42
60
 
43
61
  /**
@@ -70,6 +88,21 @@ var rule = createLintRule({
70
88
  return mapping[oldValue] || oldValue;
71
89
  }
72
90
 
91
+ /**
92
+ * Map Badge old appearance values to new semantic appearance values
93
+ */
94
+ function mapBadgeToNewAppearanceValue(oldValue) {
95
+ var mapping = {
96
+ added: 'success',
97
+ removed: 'danger',
98
+ default: 'neutral',
99
+ primary: 'information',
100
+ primaryInverted: 'inverse',
101
+ important: 'danger'
102
+ };
103
+ return mapping[oldValue] || oldValue;
104
+ }
105
+
73
106
  /**
74
107
  * Extract the string value from a JSX attribute value
75
108
  */
@@ -86,6 +119,25 @@ var rule = createLintRule({
86
119
  return null;
87
120
  }
88
121
 
122
+ /**
123
+ * Create a fixer function to replace an appearance prop value
124
+ * Handles both Literal and JSXExpressionContainer with Literal
125
+ */
126
+ function createAppearanceFixer(attrValue, newValue) {
127
+ return function (fixer) {
128
+ if (!attrValue) {
129
+ return null;
130
+ }
131
+ if (attrValue.type === 'Literal') {
132
+ return fixer.replaceText(attrValue, "\"".concat(newValue, "\""));
133
+ }
134
+ if (attrValue.type === 'JSXExpressionContainer' && 'expression' in attrValue && attrValue.expression && attrValue.expression.type === 'Literal') {
135
+ return fixer.replaceText(attrValue.expression, "\"".concat(newValue, "\""));
136
+ }
137
+ return null;
138
+ };
139
+ }
140
+
89
141
  /**
90
142
  * Generate the replacement JSX element text
91
143
  */
@@ -147,6 +199,18 @@ var rule = createLintRule({
147
199
  }
148
200
  });
149
201
  }
202
+ // Track Badge imports
203
+ if (moduleSource === '@atlaskit/badge' || moduleSource.startsWith('@atlaskit/badge')) {
204
+ node.specifiers.forEach(function (spec) {
205
+ if (spec.type === 'ImportDefaultSpecifier') {
206
+ badgeImports[spec.local.name] = moduleSource;
207
+ } else if (spec.type === 'ImportSpecifier' && spec.imported.type === 'Identifier') {
208
+ if (spec.imported.name === 'Badge' || spec.imported.name === 'default') {
209
+ badgeImports[spec.local.name] = moduleSource;
210
+ }
211
+ }
212
+ });
213
+ }
150
214
  }
151
215
  },
152
216
  JSXElement: function JSXElement(node) {
@@ -158,6 +222,45 @@ var rule = createLintRule({
158
222
  }
159
223
  var elementName = node.openingElement.name.name;
160
224
 
225
+ // Handle Badge components
226
+ if (badgeImports[elementName]) {
227
+ // Find the appearance prop
228
+ var _appearanceProp = node.openingElement.attributes.find(function (attr) {
229
+ return attr.type === 'JSXAttribute' && attr.name.type === 'JSXIdentifier' && attr.name.name === 'appearance';
230
+ });
231
+ if (!_appearanceProp || _appearanceProp.type !== 'JSXAttribute') {
232
+ // No appearance prop or it's a spread attribute, nothing to migrate
233
+ return;
234
+ }
235
+
236
+ // Check if it's a dynamic expression
237
+ if (isDynamicExpression(_appearanceProp.value)) {
238
+ context.report({
239
+ node: _appearanceProp,
240
+ messageId: 'dynamicBadgeAppearance'
241
+ });
242
+ return;
243
+ }
244
+
245
+ // Extract the string value
246
+ var stringValue = extractStringValue(_appearanceProp.value);
247
+ if (stringValue && typeof stringValue === 'string') {
248
+ var mappedValue = mapBadgeToNewAppearanceValue(stringValue);
249
+ if (mappedValue !== stringValue) {
250
+ context.report({
251
+ node: _appearanceProp,
252
+ messageId: 'updateBadgeAppearance',
253
+ data: {
254
+ oldValue: stringValue,
255
+ newValue: mappedValue
256
+ },
257
+ fix: createAppearanceFixer(_appearanceProp.value, mappedValue)
258
+ });
259
+ }
260
+ }
261
+ return;
262
+ }
263
+
161
264
  // Only process if this is a Lozenge component we've imported
162
265
  if (!lozengeImports[elementName]) {
163
266
  return;
@@ -171,21 +274,14 @@ var rule = createLintRule({
171
274
  var shouldMigrateToTag = !isBoldProp || isLiteralFalse(isBoldProp.value);
172
275
  if (!shouldMigrateToTag) {
173
276
  // Only update appearance values for Lozenge components that stay as Lozenge
174
- var stringValue = extractStringValue(appearanceProp.value);
175
- if (stringValue && typeof stringValue === 'string') {
176
- var mappedValue = mapToNewAppearanceValue(stringValue);
177
- if (mappedValue !== stringValue) {
277
+ var _stringValue = extractStringValue(appearanceProp.value);
278
+ if (_stringValue && typeof _stringValue === 'string') {
279
+ var _mappedValue = mapToNewAppearanceValue(_stringValue);
280
+ if (_mappedValue !== _stringValue) {
178
281
  context.report({
179
282
  node: appearanceProp,
180
283
  messageId: 'updateAppearance',
181
- fix: function fix(fixer) {
182
- if (appearanceProp.value.type === 'Literal') {
183
- return fixer.replaceText(appearanceProp.value, "\"".concat(mappedValue, "\""));
184
- } else if (appearanceProp.value.type === 'JSXExpressionContainer' && appearanceProp.value.expression && appearanceProp.value.expression.type === 'Literal') {
185
- return fixer.replaceText(appearanceProp.value.expression, "\"".concat(mappedValue, "\""));
186
- }
187
- return null;
188
- }
284
+ fix: createAppearanceFixer(appearanceProp.value, _mappedValue)
189
285
  });
190
286
  }
191
287
  }
@@ -0,0 +1,43 @@
1
+ import { isNodeOfType } from 'eslint-codemod-utils';
2
+ import { createLintRule } from '../utils/create-rule';
3
+ export var name = 'no-to-match-snapshot';
4
+ var rule = createLintRule({
5
+ meta: {
6
+ name: name,
7
+ type: 'problem',
8
+ docs: {
9
+ description: 'Disallow using toMatchSnapshot() in favor of toMatchInlineSnapshot(). See https://hello.atlassian.net/wiki/spaces/DST/pages/6105892000/DSTRFC-038+-+Removal+of+.toMatchSnapshot for rationale.',
10
+ recommended: false,
11
+ severity: 'error'
12
+ },
13
+ messages: {
14
+ useInlineSnapshot: 'Use toMatchInlineSnapshot() instead of toMatchSnapshot(). See https://hello.atlassian.net/wiki/spaces/DST/pages/6105892000/DSTRFC-038+-+Removal+of+.toMatchSnapshot for rationale.'
15
+ }
16
+ },
17
+ create: function create(context) {
18
+ return {
19
+ MemberExpression: function MemberExpression(node) {
20
+ // Check if this is a call to toMatchSnapshot
21
+ if (!isNodeOfType(node.property, 'Identifier') || node.property.name !== 'toMatchSnapshot') {
22
+ return;
23
+ }
24
+
25
+ // Check if the object is an expect() call
26
+ if (!isNodeOfType(node.object, 'CallExpression') || !isNodeOfType(node.object.callee, 'Identifier') || node.object.callee.name !== 'expect') {
27
+ return;
28
+ }
29
+
30
+ // Only report if this is being called (i.e., it's part of a CallExpression)
31
+ // We want to catch expect(...).toMatchSnapshot() but not just the property access
32
+ if (!node.parent || !isNodeOfType(node.parent, 'CallExpression')) {
33
+ return;
34
+ }
35
+ context.report({
36
+ node: node.property,
37
+ messageId: 'useInlineSnapshot'
38
+ });
39
+ }
40
+ };
41
+ }
42
+ });
43
+ export default rule;
@@ -0,0 +1,133 @@
1
+ import { isNodeOfType } from 'eslint-codemod-utils';
2
+ import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
3
+ import { createLintRule } from '../utils/create-rule';
4
+ export var name = 'no-unsafe-inline-snapshot';
5
+ var MAX_LINES = 100;
6
+
7
+ /**
8
+ * Checks if a snapshot contains internal implementation details
9
+ */
10
+ function containsInternalDetails(snapshotContent) {
11
+ var issues = [];
12
+
13
+ // Check for className attributes (unless they equal "REDACTED")
14
+ // Handles: className="value", className='value', and whitespace variations
15
+ var classNameRegex = /className\s*=\s*(["'])((?:(?!\1)[^\\]|\\.)*)\1/gi;
16
+ var match;
17
+ while ((match = classNameRegex.exec(snapshotContent)) !== null) {
18
+ var classNameValue = match[2];
19
+ if (classNameValue && classNameValue !== 'REDACTED') {
20
+ issues.push("className=\"".concat(classNameValue, "\""));
21
+ }
22
+ }
23
+
24
+ // Check for style attributes (unless they equal "REDACTED")
25
+ // Handles: style="value", style='value', and whitespace variations
26
+ // Style values can contain colons, semicolons, etc., so we need to capture the full quoted value
27
+ var styleRegex = /style\s*=\s*(["'])((?:(?!\1)[^\\]|\\.)*)\1/gi;
28
+ while ((match = styleRegex.exec(snapshotContent)) !== null) {
29
+ var styleValue = match[2];
30
+ if (styleValue && styleValue !== 'REDACTED') {
31
+ issues.push("style=\"".concat(styleValue, "\""));
32
+ }
33
+ }
34
+
35
+ // Check for style blocks (unless they contain "REDACTED")
36
+ var styleBlockRegex = /<style[^>]*>([\s\S]*?)<\/style>/gi;
37
+ while ((match = styleBlockRegex.exec(snapshotContent)) !== null) {
38
+ var styleContent = match[1];
39
+ if (styleContent && !styleContent.trim().includes('REDACTED')) {
40
+ issues.push('style block');
41
+ }
42
+ }
43
+ return {
44
+ hasIssues: issues.length > 0,
45
+ issues: issues
46
+ };
47
+ }
48
+
49
+ /**
50
+ * Extracts the snapshot content from a template literal or string literal
51
+ */
52
+ function extractSnapshotContent(node, sourceCode) {
53
+ if (isNodeOfType(node, 'TemplateLiteral')) {
54
+ // For template literals, get the raw text including the template parts
55
+ return sourceCode.getText(node);
56
+ }
57
+ if (isNodeOfType(node, 'Literal') && typeof node.value === 'string') {
58
+ return node.value;
59
+ }
60
+ return null;
61
+ }
62
+ var rule = createLintRule({
63
+ meta: {
64
+ name: name,
65
+ type: 'problem',
66
+ docs: {
67
+ description: 'Enforce guardrails on toMatchInlineSnapshot usage: snapshots must not exceed 100 lines and must not contain internal implementation details like className or style attributes.',
68
+ recommended: false,
69
+ severity: 'error'
70
+ },
71
+ messages: {
72
+ exceedsMaxLines: "Inline snapshot exceeds ".concat(MAX_LINES, " lines. Consider breaking it into smaller snapshots or using a different testing approach."),
73
+ containsInternalDetails: 'Inline snapshot contains internal implementation details: {{details}}. Use "REDACTED" for className and style values, or remove these details from the snapshot.'
74
+ }
75
+ },
76
+ create: function create(context) {
77
+ var sourceCode = getSourceCode(context);
78
+ return {
79
+ MemberExpression: function MemberExpression(node) {
80
+ // Check if this is a call to toMatchInlineSnapshot
81
+ if (!isNodeOfType(node.property, 'Identifier') || node.property.name !== 'toMatchInlineSnapshot') {
82
+ return;
83
+ }
84
+
85
+ // Check if the object is an expect() call
86
+ if (!isNodeOfType(node.object, 'CallExpression') || !isNodeOfType(node.object.callee, 'Identifier') || node.object.callee.name !== 'expect') {
87
+ return;
88
+ }
89
+
90
+ // Only report if this is being called (i.e., it's part of a CallExpression)
91
+ if (!node.parent || !isNodeOfType(node.parent, 'CallExpression')) {
92
+ return;
93
+ }
94
+
95
+ // Get the snapshot content from the first argument
96
+ var callExpression = node.parent;
97
+ if (callExpression.arguments.length === 0) {
98
+ return;
99
+ }
100
+ var snapshotArg = callExpression.arguments[0];
101
+ var snapshotContent = extractSnapshotContent(snapshotArg, sourceCode);
102
+ if (!snapshotContent) {
103
+ return;
104
+ }
105
+
106
+ // Check line count
107
+ var lines = snapshotContent.split('\n');
108
+ if (lines.length > MAX_LINES) {
109
+ context.report({
110
+ node: snapshotArg,
111
+ messageId: 'exceedsMaxLines'
112
+ });
113
+ return;
114
+ }
115
+
116
+ // Check for internal implementation details
117
+ var _containsInternalDeta = containsInternalDetails(snapshotContent),
118
+ hasIssues = _containsInternalDeta.hasIssues,
119
+ issues = _containsInternalDeta.issues;
120
+ if (hasIssues) {
121
+ context.report({
122
+ node: snapshotArg,
123
+ messageId: 'containsInternalDetails',
124
+ data: {
125
+ details: issues.slice(0, 3).join(', ') // Show first 3 issues
126
+ }
127
+ });
128
+ }
129
+ }
130
+ };
131
+ }
132
+ });
133
+ export default rule;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::7fae089db9d7d7153fea58c673bd56af>>
3
+ * @codegen <<SignedSource::d7a0407a6c6b10bfbba790523d06f97d>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { Linter } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::655d7f24171da0dff60003d0f235e48a>>
3
+ * @codegen <<SignedSource::e632a96e9bae920c23e25114f40e3c0d>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { ESLint } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::ff76b50abd06b99746997ad4f51a9178>>
3
+ * @codegen <<SignedSource::7ed1a8eeaaea559980cb2c533ba9a2e6>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { Linter } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::07d2533eef1accad3c7ace7be7a8ea24>>
3
+ * @codegen <<SignedSource::32a0942d7edc5a3fdc70dd0833bb8aca>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { ESLint } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::75f94fc6b6fa998eed54b610e41bb9b1>>
3
+ * @codegen <<SignedSource::62347cf64e4ac99b927fce9d1a2bd894>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { Rule } from 'eslint';
@@ -0,0 +1,4 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const name = "no-to-match-snapshot";
3
+ declare const rule: Rule.RuleModule;
4
+ export default rule;
@@ -0,0 +1,4 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const name = "no-unsafe-inline-snapshot";
3
+ declare const rule: Rule.RuleModule;
4
+ export default rule;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::7fae089db9d7d7153fea58c673bd56af>>
3
+ * @codegen <<SignedSource::d7a0407a6c6b10bfbba790523d06f97d>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { Linter } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::655d7f24171da0dff60003d0f235e48a>>
3
+ * @codegen <<SignedSource::e632a96e9bae920c23e25114f40e3c0d>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { ESLint } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::ff76b50abd06b99746997ad4f51a9178>>
3
+ * @codegen <<SignedSource::7ed1a8eeaaea559980cb2c533ba9a2e6>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { Linter } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::07d2533eef1accad3c7ace7be7a8ea24>>
3
+ * @codegen <<SignedSource::32a0942d7edc5a3fdc70dd0833bb8aca>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { ESLint } from 'eslint';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
- * @codegen <<SignedSource::75f94fc6b6fa998eed54b610e41bb9b1>>
3
+ * @codegen <<SignedSource::62347cf64e4ac99b927fce9d1a2bd894>>
4
4
  * @codegenCommand yarn workspace @atlaskit/eslint-plugin-design-system codegen
5
5
  */
6
6
  import type { Rule } from 'eslint';
@@ -0,0 +1,4 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const name = "no-to-match-snapshot";
3
+ declare const rule: Rule.RuleModule;
4
+ export default rule;
@@ -0,0 +1,4 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const name = "no-unsafe-inline-snapshot";
3
+ declare const rule: Rule.RuleModule;
4
+ export default rule;
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": "13.25.0",
4
+ "version": "13.27.0",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
7
7
  "publishConfig": {
@@ -41,7 +41,7 @@
41
41
  "@atlaskit/eslint-utils": "^2.0.0",
42
42
  "@atlaskit/icon": "^29.0.0",
43
43
  "@atlaskit/icon-lab": "^5.12.0",
44
- "@atlaskit/tokens": "^8.1.0",
44
+ "@atlaskit/tokens": "^8.4.0",
45
45
  "@babel/runtime": "^7.0.0",
46
46
  "@typescript-eslint/utils": "^7.1.0",
47
47
  "ajv": "^6.12.6",
@@ -54,7 +54,7 @@
54
54
  },
55
55
  "devDependencies": {
56
56
  "@af/formatting": "workspace:^",
57
- "@atlaskit/ds-lib": "^5.2.0",
57
+ "@atlaskit/ds-lib": "^5.3.0",
58
58
  "@atlaskit/theme": "^21.0.0",
59
59
  "@atlassian/codegen": "^0.1.0",
60
60
  "@atlassian/eslint-utils": "^0.5.0",