@atlaskit/eslint-plugin-platform 0.2.6 → 0.4.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 (62) hide show
  1. package/CHANGELOG.md +34 -22
  2. package/dist/cjs/index.js +26 -11
  3. package/dist/cjs/rules/ensure-atlassian-team/index.js +3 -2
  4. package/dist/cjs/rules/ensure-critical-dependency-resolutions/index.js +23 -13
  5. package/dist/cjs/rules/ensure-feature-flag-prefix/index.js +3 -2
  6. package/dist/cjs/rules/ensure-feature-flag-registration/index.js +2 -3
  7. package/dist/cjs/rules/ensure-publish-valid/index.js +3 -2
  8. package/dist/cjs/rules/ensure-test-runner-arguments/index.js +3 -2
  9. package/dist/cjs/rules/ensure-test-runner-nested-count/index.js +3 -2
  10. package/dist/cjs/rules/no-duplicate-dependencies/index.js +92 -0
  11. package/dist/cjs/rules/no-invalid-feature-flag-usage/index.js +3 -2
  12. package/dist/cjs/rules/no-invalid-storybook-decorator-usage/index.js +3 -2
  13. package/dist/cjs/rules/no-pre-post-installs/index.js +3 -2
  14. package/dist/cjs/rules/util/handle-ast-object.js +3 -5
  15. package/dist/cjs/rules/util/registration-utils.js +3 -5
  16. package/dist/es2019/index.js +25 -2
  17. package/dist/es2019/rules/ensure-atlassian-team/index.js +2 -0
  18. package/dist/es2019/rules/ensure-critical-dependency-resolutions/index.js +8 -4
  19. package/dist/es2019/rules/ensure-feature-flag-prefix/index.js +2 -0
  20. package/dist/es2019/rules/ensure-feature-flag-registration/index.js +2 -0
  21. package/dist/es2019/rules/ensure-publish-valid/index.js +2 -0
  22. package/dist/es2019/rules/ensure-test-runner-arguments/index.js +2 -0
  23. package/dist/es2019/rules/ensure-test-runner-nested-count/index.js +2 -0
  24. package/dist/es2019/rules/no-duplicate-dependencies/index.js +67 -0
  25. package/dist/es2019/rules/no-invalid-feature-flag-usage/index.js +2 -0
  26. package/dist/es2019/rules/no-invalid-storybook-decorator-usage/index.js +2 -0
  27. package/dist/es2019/rules/no-pre-post-installs/index.js +2 -0
  28. package/dist/esm/index.js +24 -4
  29. package/dist/esm/rules/ensure-atlassian-team/index.js +2 -0
  30. package/dist/esm/rules/ensure-critical-dependency-resolutions/index.js +22 -11
  31. package/dist/esm/rules/ensure-feature-flag-prefix/index.js +2 -0
  32. package/dist/esm/rules/ensure-feature-flag-registration/index.js +2 -0
  33. package/dist/esm/rules/ensure-publish-valid/index.js +2 -0
  34. package/dist/esm/rules/ensure-test-runner-arguments/index.js +2 -0
  35. package/dist/esm/rules/ensure-test-runner-nested-count/index.js +2 -0
  36. package/dist/esm/rules/no-duplicate-dependencies/index.js +85 -0
  37. package/dist/esm/rules/no-invalid-feature-flag-usage/index.js +2 -0
  38. package/dist/esm/rules/no-invalid-storybook-decorator-usage/index.js +2 -0
  39. package/dist/esm/rules/no-pre-post-installs/index.js +2 -0
  40. package/dist/types/index.d.ts +1 -0
  41. package/dist/types/rules/no-duplicate-dependencies/index.d.ts +3 -0
  42. package/dist/types-ts4.5/index.d.ts +1 -0
  43. package/dist/types-ts4.5/rules/no-duplicate-dependencies/index.d.ts +3 -0
  44. package/package.json +3 -2
  45. package/report.api.md +1 -0
  46. package/src/index.tsx +25 -4
  47. package/src/rules/ensure-atlassian-team/index.ts +1 -0
  48. package/src/rules/ensure-critical-dependency-resolutions/__test__/unit/rule.test.tsx +10 -0
  49. package/src/rules/ensure-critical-dependency-resolutions/index.tsx +13 -10
  50. package/src/rules/ensure-feature-flag-prefix/index.tsx +1 -0
  51. package/src/rules/ensure-feature-flag-registration/index.tsx +1 -0
  52. package/src/rules/ensure-publish-valid/index.ts +1 -0
  53. package/src/rules/ensure-test-runner-arguments/index.tsx +1 -0
  54. package/src/rules/ensure-test-runner-nested-count/index.tsx +1 -0
  55. package/src/rules/no-duplicate-dependencies/__tests__/unit/rule.test.ts +116 -0
  56. package/src/rules/no-duplicate-dependencies/index.ts +84 -0
  57. package/src/rules/no-invalid-feature-flag-usage/index.tsx +1 -0
  58. package/src/rules/no-invalid-storybook-decorator-usage/index.tsx +1 -0
  59. package/src/rules/no-pre-post-installs/index.ts +1 -0
  60. package/tmp/api-report-tmp.d.ts +1 -0
  61. package/tsconfig.app.json +2 -1
  62. package/tsconfig.dev.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,133 +1,145 @@
1
1
  # @atlaskit/eslint-plugin-platform
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#43563](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43563) [`51f9f6e2f10`](https://bitbucket.org/atlassian/atlassian-frontend/commits/51f9f6e2f10) - Add @types/react v18.2 to critical deps whitelist
8
+
9
+ ## 0.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#41190](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41190) [`a5047d254d4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a5047d254d4) - Add no-duplicate-dependencies rule and enable package-json-processor autofix
14
+
3
15
  ## 0.2.6
4
16
 
5
17
  ### Patch Changes
6
18
 
7
- - [`7efeb93141c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7efeb93141c) - Add a rule to ensure critical packages are resolved to the correct versions
19
+ - [#39249](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/39249) [`7efeb93141c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7efeb93141c) - Add a rule to ensure critical packages are resolved to the correct versions
8
20
 
9
21
  ## 0.2.5
10
22
 
11
23
  ### Patch Changes
12
24
 
13
- - [`e5f52093b2a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e5f52093b2a) - Add a rule to ensure that publish config is correct for packages
25
+ - [#39049](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/39049) [`e5f52093b2a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e5f52093b2a) - Add a rule to ensure that publish config is correct for packages
14
26
 
15
27
  ## 0.2.4
16
28
 
17
29
  ### Patch Changes
18
30
 
19
- - [`eb64cbdd681`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eb64cbdd681) - Add a new rule to verify that the atlassian team is defined if the relevant section exists in the package.json
31
+ - [#38261](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38261) [`eb64cbdd681`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eb64cbdd681) - Add a new rule to verify that the atlassian team is defined if the relevant section exists in the package.json
20
32
 
21
33
  ## 0.2.3
22
34
 
23
35
  ### Patch Changes
24
36
 
25
- - [`0bf64fb3dd0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0bf64fb3dd0) - Update to support unary expressions like negation
37
+ - [#33879](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33879) [`0bf64fb3dd0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0bf64fb3dd0) - Update to support unary expressions like negation
26
38
 
27
39
  ## 0.2.2
28
40
 
29
41
  ### Patch Changes
30
42
 
31
- - [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
43
+ - [#33793](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33793) [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
32
44
 
33
45
  ## 0.2.1
34
46
 
35
47
  ### Patch Changes
36
48
 
37
- - [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade Typescript from `4.5.5` to `4.9.5`
49
+ - [#33649](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33649) [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade Typescript from `4.5.5` to `4.9.5`
38
50
 
39
51
  ## 0.2.0
40
52
 
41
53
  ### Minor Changes
42
54
 
43
- - [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
55
+ - [#33258](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33258) [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
44
56
 
45
57
  ## 0.1.8
46
58
 
47
59
  ### Patch Changes
48
60
 
49
- - [`cb0e94d2ce4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb0e94d2ce4) - Fix prefixes for all flags being checked at any callsite, only the current flag will be checked from now on
61
+ - [#32441](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32441) [`cb0e94d2ce4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb0e94d2ce4) - Fix prefixes for all flags being checked at any callsite, only the current flag will be checked from now on
50
62
 
51
63
  ## 0.1.7
52
64
 
53
65
  ### Patch Changes
54
66
 
55
- - [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY remove before merging to master; dupe adf-schema via adf-utils
67
+ - [#32424](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32424) [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY remove before merging to master; dupe adf-schema via adf-utils
56
68
 
57
69
  ## 0.1.6
58
70
 
59
71
  ### Patch Changes
60
72
 
61
- - [`e8a8808f299`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e8a8808f299) - Add a new eslint rule that enforces prefixes on platform feature flags. Ignore existing usages.
73
+ - [#31962](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31962) [`e8a8808f299`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e8a8808f299) - Add a new eslint rule that enforces prefixes on platform feature flags. Ignore existing usages.
62
74
 
63
75
  ## 0.1.5
64
76
 
65
77
  ### Patch Changes
66
78
 
67
- - [`b47e48ad163`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b47e48ad163) - Adds an eslint rule to confirm that storybooks only get passed an object - to ensure that codemods work correctly.
79
+ - [#31956](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31956) [`b47e48ad163`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b47e48ad163) - Adds an eslint rule to confirm that storybooks only get passed an object - to ensure that codemods work correctly.
68
80
 
69
81
  ## 0.1.4
70
82
 
71
83
  ### Patch Changes
72
84
 
73
- - [`971489f4ff4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/971489f4ff4) - Add test runner to identified calls that require registration of platform feature flags
85
+ - [#31631](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31631) [`971489f4ff4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/971489f4ff4) - Add test runner to identified calls that require registration of platform feature flags
74
86
 
75
87
  ## 0.1.3
76
88
 
77
89
  ### Patch Changes
78
90
 
79
- - [`7facf919a4e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7facf919a4e) - Remove product specific rules and make it so the recommended set is used everywhere instead
91
+ - [#31581](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31581) [`7facf919a4e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7facf919a4e) - Remove product specific rules and make it so the recommended set is used everywhere instead
80
92
 
81
93
  ## 0.1.2
82
94
 
83
95
  ### Patch Changes
84
96
 
85
- - [`166815fbd8f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/166815fbd8f) - Add recommended set of flags for use in products
97
+ - [#31440](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31440) [`166815fbd8f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/166815fbd8f) - Add recommended set of flags for use in products
86
98
 
87
99
  ## 0.1.1
88
100
 
89
101
  ### Patch Changes
90
102
 
91
- - [`7edd9e8b4b1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7edd9e8b4b1) - Add suggestion to change feature flag to the closest matching feature flag using fuzzy search
103
+ - [#30710](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30710) [`7edd9e8b4b1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7edd9e8b4b1) - Add suggestion to change feature flag to the closest matching feature flag using fuzzy search
92
104
 
93
105
  ## 0.1.0
94
106
 
95
107
  ### Minor Changes
96
108
 
97
- - [`6339334e3ac`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6339334e3ac) - Adds new rule to disallow pre/post install scripts in package.json.
109
+ - [#30401](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30401) [`6339334e3ac`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6339334e3ac) - Adds new rule to disallow pre/post install scripts in package.json.
98
110
 
99
111
  ## 0.0.7
100
112
 
101
113
  ### Patch Changes
102
114
 
103
- - [`0cab60b90c3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0cab60b90c3) - Add fix to eslint rule on the arguments of nested test runner
115
+ - [#30777](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30777) [`0cab60b90c3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0cab60b90c3) - Add fix to eslint rule on the arguments of nested test runner
104
116
 
105
117
  ## 0.0.6
106
118
 
107
119
  ### Patch Changes
108
120
 
109
- - [`99449cce7f5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/99449cce7f5) - Eslint rules around test runner arguments and limit on nested test runners
121
+ - [#30491](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30491) [`99449cce7f5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/99449cce7f5) - Eslint rules around test runner arguments and limit on nested test runners
110
122
 
111
123
  ## 0.0.5
112
124
 
113
125
  ### Patch Changes
114
126
 
115
- - [`aeb52cac34c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/aeb52cac34c) - Split feature flag registration rule into two to more easily use it in products
127
+ - [#30484](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30484) [`aeb52cac34c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/aeb52cac34c) - Split feature flag registration rule into two to more easily use it in products
116
128
 
117
129
  ## 0.0.4
118
130
 
119
131
  ### Patch Changes
120
132
 
121
- - [`cd5b194f403`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cd5b194f403) - Add check to ensure that there is only one feature flag call per expression
133
+ - [#30432](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30432) [`cd5b194f403`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cd5b194f403) - Add check to ensure that there is only one feature flag call per expression
122
134
 
123
135
  ## 0.0.3
124
136
 
125
137
  ### Patch Changes
126
138
 
127
- - [`11706c3e7c5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/11706c3e7c5) - Publish platform eslint rules to npm to be consumed in other products
139
+ - [#30320](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/30320) [`11706c3e7c5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/11706c3e7c5) - Publish platform eslint rules to npm to be consumed in other products
128
140
 
129
141
  ## 0.0.2
130
142
 
131
143
  ### Patch Changes
132
144
 
133
- - [`85dc0230439`](https://bitbucket.org/atlassian/atlassian-frontend/commits/85dc0230439) - Add eslint rule to allow for platform feature flag usage
145
+ - [#28303](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/28303) [`85dc0230439`](https://bitbucket.org/atlassian/atlassian-frontend/commits/85dc0230439) - Add eslint rule to allow for platform feature flag usage
package/dist/cjs/index.js CHANGED
@@ -5,30 +5,34 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.rules = exports.processors = exports.configs = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _ensureFeatureFlagRegistration = _interopRequireDefault(require("./rules/ensure-feature-flag-registration"));
9
10
  var _noPrePostInstalls = _interopRequireDefault(require("./rules/no-pre-post-installs"));
10
11
  var _ensureTestRunnerArguments = _interopRequireDefault(require("./rules/ensure-test-runner-arguments"));
11
12
  var _ensureTestRunnerNestedCount = _interopRequireDefault(require("./rules/ensure-test-runner-nested-count"));
12
13
  var _ensureAtlassianTeam = _interopRequireDefault(require("./rules/ensure-atlassian-team"));
14
+ var _noDuplicateDependencies = _interopRequireDefault(require("./rules/no-duplicate-dependencies"));
13
15
  var _noInvalidFeatureFlagUsage = _interopRequireDefault(require("./rules/no-invalid-feature-flag-usage"));
14
16
  var _ensureFeatureFlagPrefix = _interopRequireDefault(require("./rules/ensure-feature-flag-prefix"));
15
17
  var _ensureCriticalDependencyResolutions = _interopRequireDefault(require("./rules/ensure-critical-dependency-resolutions"));
16
18
  var _noInvalidStorybookDecoratorUsage = _interopRequireDefault(require("./rules/no-invalid-storybook-decorator-usage"));
17
19
  var _ensurePublishValid = _interopRequireDefault(require("./rules/ensure-publish-valid"));
18
- var rules = {
20
+ 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; }
21
+ 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
22
+ var rules = exports.rules = {
19
23
  'ensure-feature-flag-registration': _ensureFeatureFlagRegistration.default,
20
24
  'ensure-feature-flag-prefix': _ensureFeatureFlagPrefix.default,
21
25
  'ensure-test-runner-arguments': _ensureTestRunnerArguments.default,
22
26
  'ensure-test-runner-nested-count': _ensureTestRunnerNestedCount.default,
23
27
  'ensure-atlassian-team': _ensureAtlassianTeam.default,
24
28
  'ensure-critical-dependency-resolutions': _ensureCriticalDependencyResolutions.default,
29
+ 'no-duplicate-dependencies': _noDuplicateDependencies.default,
25
30
  'no-invalid-feature-flag-usage': _noInvalidFeatureFlagUsage.default,
26
31
  'no-pre-post-install-scripts': _noPrePostInstalls.default,
27
32
  'no-invalid-storybook-decorator-usage': _noInvalidStorybookDecoratorUsage.default,
28
33
  'ensure-publish-valid': _ensurePublishValid.default
29
34
  };
30
- exports.rules = rules;
31
- var configs = {
35
+ var configs = exports.configs = {
32
36
  recommended: {
33
37
  plugins: ['@atlaskit/platform'],
34
38
  rules: {
@@ -44,16 +48,27 @@ var configs = {
44
48
  }
45
49
  }
46
50
  };
47
- exports.configs = configs;
48
- var processors = {
51
+ var jsonPrefix = '/* eslint-disable quote-props, comma-dangle, quotes, semi, eol-last, @typescript-eslint/semi, no-template-curly-in-string */ module.exports = ';
52
+ var processors = exports.processors = {
49
53
  'package-json-processor': {
50
54
  preprocess: function preprocess(source) {
51
55
  // augment the json into a js file
52
- return ["/* eslint-disable quote-props, comma-dangle, quotes, semi, eol-last, @typescript-eslint/semi, no-template-curly-in-string */ module.exports = ".concat(source.trim())];
56
+ return [jsonPrefix + source.trim()];
53
57
  },
54
- postprocess: function postprocess(errors) {
55
- return errors[0];
56
- }
58
+ postprocess: function postprocess(messages) {
59
+ return messages[0].map(function (message) {
60
+ var fix = message.fix;
61
+ if (!fix) {
62
+ return message;
63
+ }
64
+ var offset = jsonPrefix.length;
65
+ return _objectSpread(_objectSpread({}, message), {}, {
66
+ fix: _objectSpread(_objectSpread({}, fix), {}, {
67
+ range: [fix.range[0] - offset, fix.range[1] - offset]
68
+ })
69
+ });
70
+ });
71
+ },
72
+ supportsAutofix: true
57
73
  }
58
- };
59
- exports.processors = processors;
74
+ };
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ // eslint-disable-next-line import/no-extraneous-dependencies
8
+
7
9
  var rule = {
8
10
  meta: {
9
11
  type: 'problem',
@@ -46,5 +48,4 @@ var rule = {
46
48
  };
47
49
  }
48
50
  };
49
- var _default = rule;
50
- exports.default = _default;
51
+ var _default = exports.default = rule;
@@ -8,11 +8,13 @@ exports.default = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _findRoot = require("@manypkg/find-root");
10
10
  var _handleAstObject = require("../util/handle-ast-object");
11
+ // eslint-disable-next-line import/no-extraneous-dependencies
12
+
11
13
  // Here we only need to specify the major and minor versions
12
14
  // In matchMinorVersion, we will check if the versions in resolutions fall in the right ranges.
13
15
  var DESIRED_PKG_VERSIONS = {
14
- typescript: '4.9',
15
- '@types/react': '16.14'
16
+ typescript: ['4.9'],
17
+ '@types/react': ['16.14', '18.2']
16
18
  };
17
19
  var matchMinorVersion = function matchMinorVersion(desiredVersion, versionInResolutions) {
18
20
  var firstChar = versionInResolutions[0];
@@ -67,21 +69,29 @@ var rule = {
67
69
  var rootDir = (0, _findRoot.findRootSync)(process.cwd());
68
70
  var isRootPackageJson = fileName.endsWith("".concat(rootDir, "/package.json"));
69
71
  if (packageResolutions !== null) {
72
+ var _loop = function _loop() {
73
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
74
+ key = _Object$entries$_i[0],
75
+ values = _Object$entries$_i[1];
76
+ if (!values.some(function (value) {
77
+ return verifyResolutionFromObject(packageResolutions, key, value, !isRootPackageJson);
78
+ })) {
79
+ return {
80
+ v: context.report({
81
+ node: node,
82
+ messageId: 'invalidPackageResolution'
83
+ })
84
+ };
85
+ }
86
+ },
87
+ _ret;
70
88
  for (var _i = 0, _Object$entries = Object.entries(DESIRED_PKG_VERSIONS); _i < _Object$entries.length; _i++) {
71
- var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
72
- key = _Object$entries$_i[0],
73
- value = _Object$entries$_i[1];
74
- if (!verifyResolutionFromObject(packageResolutions, key, value, !isRootPackageJson)) {
75
- return context.report({
76
- node: node,
77
- messageId: 'invalidPackageResolution'
78
- });
79
- }
89
+ _ret = _loop();
90
+ if (_ret) return _ret.v;
80
91
  }
81
92
  }
82
93
  })
83
94
  };
84
95
  }
85
96
  };
86
- var _default = rule;
87
- exports.default = _default;
97
+ var _default = exports.default = rule;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _registrationUtils = require("../util/registration-utils");
8
+ // eslint-disable-next-line import/no-extraneous-dependencies
9
+
8
10
  var rule = {
9
11
  meta: {
10
12
  docs: {
@@ -69,5 +71,4 @@ var rule = {
69
71
  }));
70
72
  }
71
73
  };
72
- var _default = rule;
73
- exports.default = _default;
74
+ var _default = exports.default = rule;
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _registrationUtils = require("../util/registration-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 rule = {
13
13
  meta: {
14
14
  docs: {
@@ -91,5 +91,4 @@ var rule = {
91
91
  }));
92
92
  }
93
93
  };
94
- var _default = rule;
95
- exports.default = _default;
94
+ var _default = exports.default = rule;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _handleAstObject = require("../util/handle-ast-object");
8
+ // eslint-disable-next-line import/no-extraneous-dependencies
9
+
8
10
  var rule = {
9
11
  meta: {
10
12
  type: 'problem',
@@ -72,5 +74,4 @@ var rule = {
72
74
  };
73
75
  }
74
76
  };
75
- var _default = rule;
76
- exports.default = _default;
77
+ var _default = exports.default = rule;
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ // eslint-disable-next-line import/no-extraneous-dependencies
10
+
9
11
  var TEST_RUNNER_IDENTIFIER = 'ffTest';
10
12
  var rule = {
11
13
  meta: {
@@ -102,5 +104,4 @@ var rule = {
102
104
  });
103
105
  }
104
106
  };
105
- var _default = rule;
106
- exports.default = _default;
107
+ var _default = exports.default = rule;
@@ -8,6 +8,8 @@ exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  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; }
10
10
  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
+ // eslint-disable-next-line import/no-extraneous-dependencies
12
+
11
13
  var NESTED_LIMIT = 4;
12
14
  var TEST_RUNNER_IDENTIFIER = 'ffTest';
13
15
  var getDepthOfNestedRunner = function getDepthOfNestedRunner(node) {
@@ -65,5 +67,4 @@ var rule = {
65
67
  });
66
68
  }
67
69
  };
68
- var _default = rule;
69
- exports.default = _default;
70
+ var _default = exports.default = rule;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
10
+ 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); }
11
+ 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; }
12
+ // eslint-disable-next-line import/no-extraneous-dependencies
13
+
14
+ var rule = {
15
+ meta: {
16
+ type: 'problem',
17
+ docs: {
18
+ description: 'This rule disallows a dependency to be defined in both dependencies and devDependencies',
19
+ recommended: false
20
+ },
21
+ fixable: 'code',
22
+ messages: {
23
+ unexpectedDuplicateDependency: 'Unexpected duplicate dependency {{name}}'
24
+ }
25
+ },
26
+ create: function create(context) {
27
+ var dependencies = new Map();
28
+ var devDependencies = new Map();
29
+ return {
30
+ 'ObjectExpression Property[key.value=dependencies] Property': function ObjectExpressionPropertyKeyValueDependenciesProperty(node) {
31
+ // @ts-expect-error
32
+ dependencies.set(node.key.value, node.key);
33
+ },
34
+ 'ObjectExpression Property[key.value=devDependencies] Property': function ObjectExpressionPropertyKeyValueDevDependenciesProperty(node) {
35
+ // @ts-expect-error
36
+ devDependencies.set(node.key.value, node.key);
37
+ },
38
+ 'Program:exit': function ProgramExit() {
39
+ var _iterator = _createForOfIteratorHelper(devDependencies),
40
+ _step;
41
+ try {
42
+ var _loop = function _loop() {
43
+ var _step$value = (0, _slicedToArray2.default)(_step.value, 2),
44
+ dependency = _step$value[0],
45
+ node = _step$value[1];
46
+ if (dependencies.has(dependency)) {
47
+ context.report({
48
+ data: {
49
+ name: dependency
50
+ },
51
+ fix: function fix(fixer) {
52
+ var _sourceCode$getTokenA;
53
+ var sourceCode = context.getSourceCode();
54
+ var property = node.parent;
55
+ var isLastLine = ((_sourceCode$getTokenA = sourceCode.getTokenAfter(property)) === null || _sourceCode$getTokenA === void 0 ? void 0 : _sourceCode$getTokenA.value) === '}';
56
+ var end = property.loc.end;
57
+ if (!isLastLine) {
58
+ return fixer.removeRange([sourceCode.getIndexFromLoc({
59
+ line: property.loc.start.line,
60
+ column: 0
61
+ }), sourceCode.getIndexFromLoc({
62
+ line: end.line + 1,
63
+ column: 0
64
+ })]);
65
+ }
66
+ var previousToken = sourceCode.getTokenBefore(property);
67
+ return fixer.removeRange([sourceCode.getIndexFromLoc({
68
+ line: previousToken.loc.end.line,
69
+ column: previousToken.loc.end.column - 1
70
+ }), sourceCode.getIndexFromLoc({
71
+ line: end.line,
72
+ column: end.column
73
+ })]);
74
+ },
75
+ messageId: 'unexpectedDuplicateDependency',
76
+ node: node
77
+ });
78
+ }
79
+ };
80
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
81
+ _loop();
82
+ }
83
+ } catch (err) {
84
+ _iterator.e(err);
85
+ } finally {
86
+ _iterator.f();
87
+ }
88
+ }
89
+ };
90
+ }
91
+ };
92
+ var _default = exports.default = rule;
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ // eslint-disable-next-line import/no-extraneous-dependencies
10
+
9
11
  var FF_GETTER_BOOLEAN_IDENTIFIER = 'getBooleanFF';
10
12
  var __isOnlyOneFlagCheckInExpression = function __isOnlyOneFlagCheckInExpression(root, ignoredNode) {
11
13
  switch (root.type) {
@@ -87,5 +89,4 @@ var rule = {
87
89
  });
88
90
  }
89
91
  };
90
- var _default = rule;
91
- exports.default = _default;
92
+ var _default = exports.default = rule;
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ // eslint-disable-next-line import/no-extraneous-dependencies
10
+
9
11
  var STORYBOOK_DECORATOR_IDENTIFIER = 'withPlatformFeatureFlags';
10
12
  var rule = {
11
13
  meta: {
@@ -34,5 +36,4 @@ var rule = {
34
36
  });
35
37
  }
36
38
  };
37
- var _default = rule;
38
- exports.default = _default;
39
+ var _default = exports.default = rule;
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ // eslint-disable-next-line import/no-extraneous-dependencies
8
+
7
9
  var rule = {
8
10
  meta: {
9
11
  type: 'problem',
@@ -30,5 +32,4 @@ var rule = {
30
32
  };
31
33
  }
32
34
  };
33
- var _default = rule;
34
- exports.default = _default;
35
+ var _default = exports.default = rule;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getObjectPropertyAsObject = exports.getObjectPropertyAsLiteral = void 0;
7
- var getObjectPropertyAsLiteral = function getObjectPropertyAsLiteral(node, property) {
7
+ var getObjectPropertyAsLiteral = exports.getObjectPropertyAsLiteral = function getObjectPropertyAsLiteral(node, property) {
8
8
  var prop = node.properties.find(function (p) {
9
9
  return p.type === 'Property' && p.key.type === 'Literal' && p.key.value === property;
10
10
  });
@@ -16,8 +16,7 @@ var getObjectPropertyAsLiteral = function getObjectPropertyAsLiteral(node, prope
16
16
  }
17
17
  return null;
18
18
  };
19
- exports.getObjectPropertyAsLiteral = getObjectPropertyAsLiteral;
20
- var getObjectPropertyAsObject = function getObjectPropertyAsObject(node, property) {
19
+ var getObjectPropertyAsObject = exports.getObjectPropertyAsObject = function getObjectPropertyAsObject(node, property) {
21
20
  var prop = node.properties.find(function (p) {
22
21
  return p.type === 'Property' && p.key.type === 'Literal' && p.key.value === property;
23
22
  });
@@ -28,5 +27,4 @@ var getObjectPropertyAsObject = function getObjectPropertyAsObject(node, propert
28
27
  return (_prop$value = prop.value) !== null && _prop$value !== void 0 ? _prop$value : null;
29
28
  }
30
29
  return null;
31
- };
32
- exports.getObjectPropertyAsObject = getObjectPropertyAsObject;
30
+ };
@@ -11,15 +11,14 @@ var _path = _interopRequireDefault(require("path"));
11
11
  var _fuse = _interopRequireDefault(require("fuse.js"));
12
12
  // defines a "getter" to "type" map, if more types are required for feature flags (like string) add it here!
13
13
  // if you don't want to verify the type use `null` as the value
14
- var getterIdentifierToFlagTypeMap = {
14
+ var getterIdentifierToFlagTypeMap = exports.getterIdentifierToFlagTypeMap = {
15
15
  getBooleanFF: 'boolean',
16
16
  ffTest: 'boolean'
17
17
  };
18
- exports.getterIdentifierToFlagTypeMap = getterIdentifierToFlagTypeMap;
19
18
  // make sure we cache reading the package.json so we don't end up reading it for every instance of this rule.
20
19
  var pkgJsonCache = new Map();
21
20
  // get the ancestor package.json for a given file
22
- var getMetadataForFilename = function getMetadataForFilename(filename) {
21
+ var getMetadataForFilename = exports.getMetadataForFilename = function getMetadataForFilename(filename) {
23
22
  var splitFilename = filename.split(_path.default.sep);
24
23
  for (var i = 0; i < splitFilename.length; i++) {
25
24
  // attempt to search using the filename in the cache to see if we've read the package.json for a sibling file before
@@ -43,5 +42,4 @@ var getMetadataForFilename = function getMetadataForFilename(filename) {
43
42
  };
44
43
  pkgJsonCache.set(pkgJsonPath, metaData);
45
44
  return metaData;
46
- };
47
- exports.getMetadataForFilename = getMetadataForFilename;
45
+ };