@atlaskit/eslint-plugin-platform 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/rules/ensure-critical-dependency-resolutions/index.js +2 -2
- package/dist/cjs/rules/ensure-native-and-af-exports-synced/index.js +3 -0
- package/dist/cjs/rules/feature-gating/no-alias/index.js +1 -1
- package/dist/cjs/rules/util/context-compat.js +4 -2
- package/dist/es2019/index.js +0 -2
- package/dist/es2019/rules/ensure-critical-dependency-resolutions/index.js +2 -2
- package/dist/es2019/rules/ensure-native-and-af-exports-synced/index.js +3 -0
- package/dist/es2019/rules/feature-gating/no-alias/index.js +1 -1
- package/dist/es2019/rules/util/context-compat.js +4 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/rules/ensure-critical-dependency-resolutions/index.js +2 -2
- package/dist/esm/rules/ensure-native-and-af-exports-synced/index.js +3 -0
- package/dist/esm/rules/feature-gating/no-alias/index.js +1 -1
- package/dist/esm/rules/util/context-compat.js +4 -2
- package/dist/types/index.d.ts +4 -6
- package/dist/types/rules/util/handle-ast-object.d.ts +1 -1
- package/dist/types-ts4.5/index.d.ts +4 -6
- package/dist/types-ts4.5/rules/util/handle-ast-object.d.ts +1 -1
- package/package.json +2 -2
- package/afm-cc/tsconfig.json +0 -24
- package/afm-jira/tsconfig.json +0 -24
- package/build/tsconfig.json +0 -17
- package/dist/cjs/rules/ensure-valid-platform-yarn-protocol-usage/index.js +0 -79
- package/dist/es2019/rules/ensure-valid-platform-yarn-protocol-usage/index.js +0 -62
- package/dist/esm/rules/ensure-valid-platform-yarn-protocol-usage/index.js +0 -75
- package/dist/types/rules/ensure-valid-platform-yarn-protocol-usage/index.d.ts +0 -3
- package/dist/types-ts4.5/rules/ensure-valid-platform-yarn-protocol-usage/index.d.ts +0 -3
- package/src/__tests__/utils/_tester.tsx +0 -26
- package/src/index.tsx +0 -254
- package/src/rules/compiled/README.md +0 -3
- package/src/rules/compiled/expand-background-shorthand/README.md +0 -23
- package/src/rules/compiled/expand-background-shorthand/__tests__/rule.test.ts +0 -160
- package/src/rules/compiled/expand-background-shorthand/index.tsx +0 -43
- package/src/rules/compiled/expand-border-shorthand/README.md +0 -51
- package/src/rules/compiled/expand-border-shorthand/__tests__/rule.test.ts +0 -211
- package/src/rules/compiled/expand-border-shorthand/index.ts +0 -103
- package/src/rules/compiled/expand-spacing-shorthand/README.md +0 -38
- package/src/rules/compiled/expand-spacing-shorthand/__tests__/rule.test.ts +0 -448
- package/src/rules/compiled/expand-spacing-shorthand/index.ts +0 -240
- package/src/rules/constants.tsx +0 -20
- package/src/rules/ensure-atlassian-team/__tests__/unit/rule.test.ts +0 -24
- package/src/rules/ensure-atlassian-team/index.ts +0 -51
- package/src/rules/ensure-critical-dependency-resolutions/__test__/unit/rule.test.tsx +0 -200
- package/src/rules/ensure-critical-dependency-resolutions/index.tsx +0 -172
- package/src/rules/ensure-feature-flag-prefix/__tests__/unit/rule.test.tsx +0 -65
- package/src/rules/ensure-feature-flag-prefix/index.tsx +0 -81
- package/src/rules/ensure-feature-flag-registration/__tests__/unit/rule.test.tsx +0 -115
- package/src/rules/ensure-feature-flag-registration/index.tsx +0 -106
- package/src/rules/ensure-native-and-af-exports-synced/__tests__/unit/rule.test.tsx +0 -199
- package/src/rules/ensure-native-and-af-exports-synced/index.tsx +0 -188
- package/src/rules/ensure-no-private-dependencies/__tests__/unit/rule.test.ts +0 -212
- package/src/rules/ensure-no-private-dependencies/index.ts +0 -64
- package/src/rules/ensure-publish-valid/__tests__/unit/rule.test.ts +0 -39
- package/src/rules/ensure-publish-valid/index.ts +0 -81
- package/src/rules/ensure-test-runner-arguments/__tests__/unit/rule.test.tsx +0 -298
- package/src/rules/ensure-test-runner-arguments/index.tsx +0 -121
- package/src/rules/ensure-test-runner-nested-count/__tests__/unit/rule.test.tsx +0 -308
- package/src/rules/ensure-test-runner-nested-count/index.tsx +0 -82
- package/src/rules/ensure-valid-bin-values/__tests__/unit/rule.test.ts +0 -159
- package/src/rules/ensure-valid-bin-values/index.ts +0 -70
- package/src/rules/ensure-valid-platform-yarn-protocol-usage/__tests__/unit/rule.test.ts +0 -147
- package/src/rules/ensure-valid-platform-yarn-protocol-usage/index.ts +0 -67
- package/src/rules/feature-gating/README.md +0 -8
- package/src/rules/feature-gating/inline-usage/README.md +0 -53
- package/src/rules/feature-gating/inline-usage/__tests__/rule.test.tsx +0 -106
- package/src/rules/feature-gating/inline-usage/index.tsx +0 -135
- package/src/rules/feature-gating/no-alias/README.md +0 -29
- package/src/rules/feature-gating/no-alias/__tests__/rule.test.tsx +0 -76
- package/src/rules/feature-gating/no-alias/index.tsx +0 -80
- package/src/rules/feature-gating/no-module-level-eval/README.md +0 -53
- package/src/rules/feature-gating/no-module-level-eval/__tests__/test.tsx +0 -133
- package/src/rules/feature-gating/no-module-level-eval/index.tsx +0 -54
- package/src/rules/feature-gating/no-module-level-eval-nav4/README.md +0 -8
- package/src/rules/feature-gating/no-module-level-eval-nav4/__tests__/test.tsx +0 -130
- package/src/rules/feature-gating/no-module-level-eval-nav4/index.tsx +0 -73
- package/src/rules/feature-gating/no-preconditioning/README.md +0 -69
- package/src/rules/feature-gating/no-preconditioning/__tests__/rule.test.tsx +0 -164
- package/src/rules/feature-gating/no-preconditioning/index.tsx +0 -138
- package/src/rules/feature-gating/prefer-fg/README.md +0 -3
- package/src/rules/feature-gating/prefer-fg/__tests__/rule.test.tsx +0 -83
- package/src/rules/feature-gating/prefer-fg/index.tsx +0 -110
- package/src/rules/feature-gating/static-feature-flags/README.md +0 -3
- package/src/rules/feature-gating/static-feature-flags/__tests__/test.tsx +0 -135
- package/src/rules/feature-gating/static-feature-flags/index.tsx +0 -103
- package/src/rules/feature-gating/use-recommended-utils/README.md +0 -67
- package/src/rules/feature-gating/use-recommended-utils/__tests__/rule.test.tsx +0 -78
- package/src/rules/feature-gating/use-recommended-utils/index.tsx +0 -57
- package/src/rules/feature-gating/utils.tsx +0 -48
- package/src/rules/no-direct-document-usage/index.tsx +0 -111
- package/src/rules/no-duplicate-dependencies/__tests__/unit/rule.test.ts +0 -116
- package/src/rules/no-duplicate-dependencies/index.ts +0 -79
- package/src/rules/no-invalid-feature-flag-usage/__tests__/unit/rule.test.tsx +0 -69
- package/src/rules/no-invalid-feature-flag-usage/index.tsx +0 -128
- package/src/rules/no-invalid-storybook-decorator-usage/__tests__/unit/rule.test.tsx +0 -18
- package/src/rules/no-invalid-storybook-decorator-usage/index.tsx +0 -39
- package/src/rules/no-pre-post-installs/__tests__/unit/rule.test.ts +0 -41
- package/src/rules/no-pre-post-installs/index.ts +0 -35
- package/src/rules/no-set-immediate/index.tsx +0 -43
- package/src/rules/no-sparse-checkout/__tests__/unit/rule.test.tsx +0 -48
- package/src/rules/no-sparse-checkout/index.tsx +0 -54
- package/src/rules/use-entrypoints-in-examples/README.md +0 -27
- package/src/rules/use-entrypoints-in-examples/__tests__/rule.test.tsx +0 -34
- package/src/rules/use-entrypoints-in-examples/index.tsx +0 -43
- package/src/rules/util/__tests__/context-compat.test.ts +0 -122
- package/src/rules/util/compiled-utils.ts +0 -27
- package/src/rules/util/context-compat.ts +0 -41
- package/src/rules/util/file-exclusions.ts +0 -39
- package/src/rules/util/handle-ast-object.ts +0 -33
- package/src/rules/util/registration-utils.ts +0 -59
- package/tsconfig.app.json +0 -43
- package/tsconfig.dev.json +0 -40
- package/tsconfig.json +0 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-platform
|
|
2
2
|
|
|
3
|
+
## 2.7.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`098cfbb01dc36`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/098cfbb01dc36) -
|
|
8
|
+
Add missing npmignore files to remove unnecessary files from published package
|
|
9
|
+
|
|
3
10
|
## 2.7.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -16,7 +16,6 @@ var _noDuplicateDependencies = _interopRequireDefault(require("./rules/no-duplic
|
|
|
16
16
|
var _noInvalidFeatureFlagUsage = _interopRequireDefault(require("./rules/no-invalid-feature-flag-usage"));
|
|
17
17
|
var _ensureFeatureFlagPrefix = _interopRequireDefault(require("./rules/ensure-feature-flag-prefix"));
|
|
18
18
|
var _ensureCriticalDependencyResolutions = _interopRequireDefault(require("./rules/ensure-critical-dependency-resolutions"));
|
|
19
|
-
var _ensureValidPlatformYarnProtocolUsage = _interopRequireDefault(require("./rules/ensure-valid-platform-yarn-protocol-usage"));
|
|
20
19
|
var _ensureValidBinValues = _interopRequireDefault(require("./rules/ensure-valid-bin-values"));
|
|
21
20
|
var _ensureNoPrivateDependencies = _interopRequireDefault(require("./rules/ensure-no-private-dependencies"));
|
|
22
21
|
var _expandBorderShorthand = _interopRequireDefault(require("./rules/compiled/expand-border-shorthand"));
|
|
@@ -65,7 +64,6 @@ var rules = exports.rules = {
|
|
|
65
64
|
'ensure-test-runner-nested-count': _ensureTestRunnerNestedCount.default,
|
|
66
65
|
'ensure-atlassian-team': _ensureAtlassianTeam.default,
|
|
67
66
|
'ensure-critical-dependency-resolutions': _ensureCriticalDependencyResolutions.default,
|
|
68
|
-
'ensure-valid-platform-yarn-protocol-usage': _ensureValidPlatformYarnProtocolUsage.default,
|
|
69
67
|
'ensure-valid-bin-values': _ensureValidBinValues.default,
|
|
70
68
|
'ensure-no-private-dependencies': _ensureNoPrivateDependencies.default,
|
|
71
69
|
'expand-border-shorthand': _expandBorderShorthand.default,
|
|
@@ -14,8 +14,8 @@ var _handleAstObject = require("../util/handle-ast-object");
|
|
|
14
14
|
// In matchMinorVersion, we will check if the versions in resolutions fall in the right ranges.
|
|
15
15
|
//
|
|
16
16
|
var DESIRED_PKG_VERSIONS = {
|
|
17
|
-
typescript: ['5.4'],
|
|
18
|
-
tslib: ['2.6'],
|
|
17
|
+
typescript: ['5.4', '5.9'],
|
|
18
|
+
tslib: ['2.6', '2.8'],
|
|
19
19
|
'@types/react': ['16.14', '18.2'],
|
|
20
20
|
'react-relay': ['npm:atl-react-relay@0.0.0-main-5980a913'],
|
|
21
21
|
'relay-compiler': ['npm:atl-relay-compiler@0.0.0-main-5980a913'],
|
|
@@ -29,7 +29,7 @@ var rule = {
|
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
(_node$specifiers = node.specifiers) === null || _node$specifiers === void 0 || _node$specifiers.forEach(function (specifier) {
|
|
32
|
-
if (specifier.type === 'ImportSpecifier') {
|
|
32
|
+
if (specifier.type === 'ImportSpecifier' && 'name' in specifier.imported) {
|
|
33
33
|
var imported = specifier.imported,
|
|
34
34
|
local = specifier.local;
|
|
35
35
|
if (imported.name !== local.name) {
|
|
@@ -30,7 +30,7 @@ var getSourceCode = exports.getSourceCode = function getSourceCode(context) {
|
|
|
30
30
|
*/
|
|
31
31
|
var getScope = exports.getScope = function getScope(context, node) {
|
|
32
32
|
var _getSourceCode$getSco, _getSourceCode, _getSourceCode$getSco2;
|
|
33
|
-
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();
|
|
33
|
+
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(node);
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -43,5 +43,7 @@ var getScope = exports.getScope = function getScope(context, node) {
|
|
|
43
43
|
*/
|
|
44
44
|
var getAncestors = exports.getAncestors = function getAncestors(context, node) {
|
|
45
45
|
var _getSourceCode$getAnc, _getSourceCode2, _getSourceCode2$getAn;
|
|
46
|
-
return (_getSourceCode$getAnc = (_getSourceCode2 = getSourceCode(context)) === null || _getSourceCode2 === void 0 || (_getSourceCode2$getAn = _getSourceCode2.getAncestors) === null || _getSourceCode2$getAn === void 0 ? void 0 : _getSourceCode2$getAn.call(_getSourceCode2, node)) !== null && _getSourceCode$getAnc !== void 0 ? _getSourceCode$getAnc :
|
|
46
|
+
return (_getSourceCode$getAnc = (_getSourceCode2 = getSourceCode(context)) === null || _getSourceCode2 === void 0 || (_getSourceCode2$getAn = _getSourceCode2.getAncestors) === null || _getSourceCode2$getAn === void 0 ? void 0 : _getSourceCode2$getAn.call(_getSourceCode2, node)) !== null && _getSourceCode$getAnc !== void 0 ? _getSourceCode$getAnc :
|
|
47
|
+
// this is needed for jira's eslint update, as otherwise there is type errors only in jira typechecking
|
|
48
|
+
context.getAncestors(node);
|
|
47
49
|
};
|
package/dist/es2019/index.js
CHANGED
|
@@ -9,7 +9,6 @@ import noDuplicateDependencies from './rules/no-duplicate-dependencies';
|
|
|
9
9
|
import noInvalidFeatureFlagUsage from './rules/no-invalid-feature-flag-usage';
|
|
10
10
|
import ensureFeatureFlagPrefix from './rules/ensure-feature-flag-prefix';
|
|
11
11
|
import ensureCriticalDependencyResolutions from './rules/ensure-critical-dependency-resolutions';
|
|
12
|
-
import ensureValidPlatformYarnProtocolUsage from './rules/ensure-valid-platform-yarn-protocol-usage';
|
|
13
12
|
import ensureValidBinValues from './rules/ensure-valid-bin-values';
|
|
14
13
|
import ensureNoPrivateDependencies from './rules/ensure-no-private-dependencies';
|
|
15
14
|
import expandBorderShorthand from './rules/compiled/expand-border-shorthand';
|
|
@@ -56,7 +55,6 @@ const rules = {
|
|
|
56
55
|
'ensure-test-runner-nested-count': ensureTestRunnerNestedCount,
|
|
57
56
|
'ensure-atlassian-team': ensureAtlassianTeam,
|
|
58
57
|
'ensure-critical-dependency-resolutions': ensureCriticalDependencyResolutions,
|
|
59
|
-
'ensure-valid-platform-yarn-protocol-usage': ensureValidPlatformYarnProtocolUsage,
|
|
60
58
|
'ensure-valid-bin-values': ensureValidBinValues,
|
|
61
59
|
'ensure-no-private-dependencies': ensureNoPrivateDependencies,
|
|
62
60
|
'expand-border-shorthand': expandBorderShorthand,
|
|
@@ -7,8 +7,8 @@ import { getObjectPropertyAsObject } from '../util/handle-ast-object';
|
|
|
7
7
|
// In matchMinorVersion, we will check if the versions in resolutions fall in the right ranges.
|
|
8
8
|
//
|
|
9
9
|
const DESIRED_PKG_VERSIONS = {
|
|
10
|
-
typescript: ['5.4'],
|
|
11
|
-
tslib: ['2.6'],
|
|
10
|
+
typescript: ['5.4', '5.9'],
|
|
11
|
+
tslib: ['2.6', '2.8'],
|
|
12
12
|
'@types/react': ['16.14', '18.2'],
|
|
13
13
|
'react-relay': ['npm:atl-react-relay@0.0.0-main-5980a913'],
|
|
14
14
|
'relay-compiler': ['npm:atl-relay-compiler@0.0.0-main-5980a913'],
|
|
@@ -21,7 +21,7 @@ const rule = {
|
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
(_node$specifiers = node.specifiers) === null || _node$specifiers === void 0 ? void 0 : _node$specifiers.forEach(specifier => {
|
|
24
|
-
if (specifier.type === 'ImportSpecifier') {
|
|
24
|
+
if (specifier.type === 'ImportSpecifier' && 'name' in specifier.imported) {
|
|
25
25
|
const {
|
|
26
26
|
imported,
|
|
27
27
|
local
|
|
@@ -24,7 +24,7 @@ export const getSourceCode = context => {
|
|
|
24
24
|
*/
|
|
25
25
|
export const getScope = (context, node) => {
|
|
26
26
|
var _getSourceCode$getSco, _getSourceCode, _getSourceCode$getSco2;
|
|
27
|
-
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();
|
|
27
|
+
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(node);
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -37,5 +37,7 @@ export const getScope = (context, node) => {
|
|
|
37
37
|
*/
|
|
38
38
|
export const getAncestors = (context, node) => {
|
|
39
39
|
var _getSourceCode$getAnc, _getSourceCode2, _getSourceCode2$getAn;
|
|
40
|
-
return (_getSourceCode$getAnc = (_getSourceCode2 = getSourceCode(context)) === null || _getSourceCode2 === void 0 ? void 0 : (_getSourceCode2$getAn = _getSourceCode2.getAncestors) === null || _getSourceCode2$getAn === void 0 ? void 0 : _getSourceCode2$getAn.call(_getSourceCode2, node)) !== null && _getSourceCode$getAnc !== void 0 ? _getSourceCode$getAnc :
|
|
40
|
+
return (_getSourceCode$getAnc = (_getSourceCode2 = getSourceCode(context)) === null || _getSourceCode2 === void 0 ? void 0 : (_getSourceCode2$getAn = _getSourceCode2.getAncestors) === null || _getSourceCode2$getAn === void 0 ? void 0 : _getSourceCode2$getAn.call(_getSourceCode2, node)) !== null && _getSourceCode$getAnc !== void 0 ? _getSourceCode$getAnc :
|
|
41
|
+
// this is needed for jira's eslint update, as otherwise there is type errors only in jira typechecking
|
|
42
|
+
context.getAncestors(node);
|
|
41
43
|
};
|
package/dist/esm/index.js
CHANGED
|
@@ -12,7 +12,6 @@ import noDuplicateDependencies from './rules/no-duplicate-dependencies';
|
|
|
12
12
|
import noInvalidFeatureFlagUsage from './rules/no-invalid-feature-flag-usage';
|
|
13
13
|
import ensureFeatureFlagPrefix from './rules/ensure-feature-flag-prefix';
|
|
14
14
|
import ensureCriticalDependencyResolutions from './rules/ensure-critical-dependency-resolutions';
|
|
15
|
-
import ensureValidPlatformYarnProtocolUsage from './rules/ensure-valid-platform-yarn-protocol-usage';
|
|
16
15
|
import ensureValidBinValues from './rules/ensure-valid-bin-values';
|
|
17
16
|
import ensureNoPrivateDependencies from './rules/ensure-no-private-dependencies';
|
|
18
17
|
import expandBorderShorthand from './rules/compiled/expand-border-shorthand';
|
|
@@ -59,7 +58,6 @@ var rules = {
|
|
|
59
58
|
'ensure-test-runner-nested-count': ensureTestRunnerNestedCount,
|
|
60
59
|
'ensure-atlassian-team': ensureAtlassianTeam,
|
|
61
60
|
'ensure-critical-dependency-resolutions': ensureCriticalDependencyResolutions,
|
|
62
|
-
'ensure-valid-platform-yarn-protocol-usage': ensureValidPlatformYarnProtocolUsage,
|
|
63
61
|
'ensure-valid-bin-values': ensureValidBinValues,
|
|
64
62
|
'ensure-no-private-dependencies': ensureNoPrivateDependencies,
|
|
65
63
|
'expand-border-shorthand': expandBorderShorthand,
|
|
@@ -8,8 +8,8 @@ import { getObjectPropertyAsObject } from '../util/handle-ast-object';
|
|
|
8
8
|
// In matchMinorVersion, we will check if the versions in resolutions fall in the right ranges.
|
|
9
9
|
//
|
|
10
10
|
var DESIRED_PKG_VERSIONS = {
|
|
11
|
-
typescript: ['5.4'],
|
|
12
|
-
tslib: ['2.6'],
|
|
11
|
+
typescript: ['5.4', '5.9'],
|
|
12
|
+
tslib: ['2.6', '2.8'],
|
|
13
13
|
'@types/react': ['16.14', '18.2'],
|
|
14
14
|
'react-relay': ['npm:atl-react-relay@0.0.0-main-5980a913'],
|
|
15
15
|
'relay-compiler': ['npm:atl-relay-compiler@0.0.0-main-5980a913'],
|
|
@@ -22,7 +22,7 @@ var rule = {
|
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
(_node$specifiers = node.specifiers) === null || _node$specifiers === void 0 || _node$specifiers.forEach(function (specifier) {
|
|
25
|
-
if (specifier.type === 'ImportSpecifier') {
|
|
25
|
+
if (specifier.type === 'ImportSpecifier' && 'name' in specifier.imported) {
|
|
26
26
|
var imported = specifier.imported,
|
|
27
27
|
local = specifier.local;
|
|
28
28
|
if (imported.name !== local.name) {
|
|
@@ -24,7 +24,7 @@ export var getSourceCode = function getSourceCode(context) {
|
|
|
24
24
|
*/
|
|
25
25
|
export var getScope = function getScope(context, node) {
|
|
26
26
|
var _getSourceCode$getSco, _getSourceCode, _getSourceCode$getSco2;
|
|
27
|
-
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();
|
|
27
|
+
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(node);
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -37,5 +37,7 @@ export var getScope = function getScope(context, node) {
|
|
|
37
37
|
*/
|
|
38
38
|
export var getAncestors = function getAncestors(context, node) {
|
|
39
39
|
var _getSourceCode$getAnc, _getSourceCode2, _getSourceCode2$getAn;
|
|
40
|
-
return (_getSourceCode$getAnc = (_getSourceCode2 = getSourceCode(context)) === null || _getSourceCode2 === void 0 || (_getSourceCode2$getAn = _getSourceCode2.getAncestors) === null || _getSourceCode2$getAn === void 0 ? void 0 : _getSourceCode2$getAn.call(_getSourceCode2, node)) !== null && _getSourceCode$getAnc !== void 0 ? _getSourceCode$getAnc :
|
|
40
|
+
return (_getSourceCode$getAnc = (_getSourceCode2 = getSourceCode(context)) === null || _getSourceCode2 === void 0 || (_getSourceCode2$getAn = _getSourceCode2.getAncestors) === null || _getSourceCode2$getAn === void 0 ? void 0 : _getSourceCode2$getAn.call(_getSourceCode2, node)) !== null && _getSourceCode$getAnc !== void 0 ? _getSourceCode$getAnc :
|
|
41
|
+
// this is needed for jira's eslint update, as otherwise there is type errors only in jira typechecking
|
|
42
|
+
context.getAncestors(node);
|
|
41
43
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ declare const rules: {
|
|
|
6
6
|
'ensure-test-runner-nested-count': import("eslint").Rule.RuleModule;
|
|
7
7
|
'ensure-atlassian-team': import("eslint").Rule.RuleModule;
|
|
8
8
|
'ensure-critical-dependency-resolutions': import("eslint").Rule.RuleModule;
|
|
9
|
-
'ensure-valid-platform-yarn-protocol-usage': import("eslint").Rule.RuleModule;
|
|
10
9
|
'ensure-valid-bin-values': import("eslint").Rule.RuleModule;
|
|
11
10
|
'ensure-no-private-dependencies': import("eslint").Rule.RuleModule;
|
|
12
11
|
'expand-border-shorthand': import("eslint").Rule.RuleModule;
|
|
@@ -43,7 +42,6 @@ declare const plugin: {
|
|
|
43
42
|
'ensure-test-runner-nested-count': import("eslint").Rule.RuleModule;
|
|
44
43
|
'ensure-atlassian-team': import("eslint").Rule.RuleModule;
|
|
45
44
|
'ensure-critical-dependency-resolutions': import("eslint").Rule.RuleModule;
|
|
46
|
-
'ensure-valid-platform-yarn-protocol-usage': import("eslint").Rule.RuleModule;
|
|
47
45
|
'ensure-valid-bin-values': import("eslint").Rule.RuleModule;
|
|
48
46
|
'ensure-no-private-dependencies': import("eslint").Rule.RuleModule;
|
|
49
47
|
'expand-border-shorthand': import("eslint").Rule.RuleModule;
|
|
@@ -181,8 +179,8 @@ declare const plugin: {
|
|
|
181
179
|
};
|
|
182
180
|
};
|
|
183
181
|
processors: {
|
|
184
|
-
'package-json-processor': Linter.Processor
|
|
185
|
-
'package-json-processor-for-flat-config': Linter.Processor
|
|
182
|
+
'package-json-processor': Linter.Processor;
|
|
183
|
+
'package-json-processor-for-flat-config': Linter.Processor;
|
|
186
184
|
};
|
|
187
185
|
};
|
|
188
186
|
declare const configs: {
|
|
@@ -298,8 +296,8 @@ declare const configs: {
|
|
|
298
296
|
};
|
|
299
297
|
};
|
|
300
298
|
declare const processors: {
|
|
301
|
-
'package-json-processor': Linter.Processor
|
|
302
|
-
'package-json-processor-for-flat-config': Linter.Processor
|
|
299
|
+
'package-json-processor': Linter.Processor;
|
|
300
|
+
'package-json-processor-for-flat-config': Linter.Processor;
|
|
303
301
|
};
|
|
304
302
|
export { configs, plugin, processors, rules };
|
|
305
303
|
export default plugin;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ObjectExpression, SimpleLiteral, RegExpLiteral, BigIntLiteral } from 'estree';
|
|
2
|
-
export declare const getObjectPropertyAsLiteral: (node: ObjectExpression, property: string) => SimpleLiteral[
|
|
2
|
+
export declare const getObjectPropertyAsLiteral: (node: ObjectExpression, property: string) => SimpleLiteral["value"] | RegExpLiteral["value"] | BigIntLiteral["value"];
|
|
3
3
|
export declare const getObjectPropertyAsObject: (node: ObjectExpression, property: string) => ObjectExpression | null;
|
|
@@ -6,7 +6,6 @@ declare const rules: {
|
|
|
6
6
|
'ensure-test-runner-nested-count': import("eslint").Rule.RuleModule;
|
|
7
7
|
'ensure-atlassian-team': import("eslint").Rule.RuleModule;
|
|
8
8
|
'ensure-critical-dependency-resolutions': import("eslint").Rule.RuleModule;
|
|
9
|
-
'ensure-valid-platform-yarn-protocol-usage': import("eslint").Rule.RuleModule;
|
|
10
9
|
'ensure-valid-bin-values': import("eslint").Rule.RuleModule;
|
|
11
10
|
'ensure-no-private-dependencies': import("eslint").Rule.RuleModule;
|
|
12
11
|
'expand-border-shorthand': import("eslint").Rule.RuleModule;
|
|
@@ -43,7 +42,6 @@ declare const plugin: {
|
|
|
43
42
|
'ensure-test-runner-nested-count': import("eslint").Rule.RuleModule;
|
|
44
43
|
'ensure-atlassian-team': import("eslint").Rule.RuleModule;
|
|
45
44
|
'ensure-critical-dependency-resolutions': import("eslint").Rule.RuleModule;
|
|
46
|
-
'ensure-valid-platform-yarn-protocol-usage': import("eslint").Rule.RuleModule;
|
|
47
45
|
'ensure-valid-bin-values': import("eslint").Rule.RuleModule;
|
|
48
46
|
'ensure-no-private-dependencies': import("eslint").Rule.RuleModule;
|
|
49
47
|
'expand-border-shorthand': import("eslint").Rule.RuleModule;
|
|
@@ -199,8 +197,8 @@ declare const plugin: {
|
|
|
199
197
|
};
|
|
200
198
|
};
|
|
201
199
|
processors: {
|
|
202
|
-
'package-json-processor': Linter.Processor
|
|
203
|
-
'package-json-processor-for-flat-config': Linter.Processor
|
|
200
|
+
'package-json-processor': Linter.Processor;
|
|
201
|
+
'package-json-processor-for-flat-config': Linter.Processor;
|
|
204
202
|
};
|
|
205
203
|
};
|
|
206
204
|
declare const configs: {
|
|
@@ -334,8 +332,8 @@ declare const configs: {
|
|
|
334
332
|
};
|
|
335
333
|
};
|
|
336
334
|
declare const processors: {
|
|
337
|
-
'package-json-processor': Linter.Processor
|
|
338
|
-
'package-json-processor-for-flat-config': Linter.Processor
|
|
335
|
+
'package-json-processor': Linter.Processor;
|
|
336
|
+
'package-json-processor-for-flat-config': Linter.Processor;
|
|
339
337
|
};
|
|
340
338
|
export { configs, plugin, processors, rules };
|
|
341
339
|
export default plugin;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ObjectExpression, SimpleLiteral, RegExpLiteral, BigIntLiteral } from 'estree';
|
|
2
|
-
export declare const getObjectPropertyAsLiteral: (node: ObjectExpression, property: string) => SimpleLiteral[
|
|
2
|
+
export declare const getObjectPropertyAsLiteral: (node: ObjectExpression, property: string) => SimpleLiteral["value"] | RegExpLiteral["value"] | BigIntLiteral["value"];
|
|
3
3
|
export declare const getObjectPropertyAsObject: (node: ObjectExpression, property: string) => ObjectExpression | null;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/eslint-plugin-platform",
|
|
3
3
|
"description": "The essential plugin for use with Atlassian frontend platform tools",
|
|
4
|
-
"version": "2.7.
|
|
4
|
+
"version": "2.7.1",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"atlassian": {
|
|
7
7
|
"team": "Build Infra",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/eslint": "^8.56.6",
|
|
47
47
|
"eslint": "^8.57.0",
|
|
48
48
|
"find-up": "^4 || ^5",
|
|
49
|
-
"outdent": "^0.
|
|
49
|
+
"outdent": "^0.7.1"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"find-up": "^4 || ^5"
|
package/afm-cc/tsconfig.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../../../tsconfig.entry-points.confluence.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"target": "es5",
|
|
5
|
-
"composite": true,
|
|
6
|
-
"outDir": "../../../../../confluence/tsDist/@atlaskit__eslint-plugin-platform",
|
|
7
|
-
"rootDir": "../"
|
|
8
|
-
},
|
|
9
|
-
"include": [
|
|
10
|
-
"../src/**/*.ts",
|
|
11
|
-
"../src/**/*.tsx"
|
|
12
|
-
],
|
|
13
|
-
"exclude": [
|
|
14
|
-
"../src/**/__tests__/*",
|
|
15
|
-
"../__tests__/*",
|
|
16
|
-
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
18
|
-
],
|
|
19
|
-
"references": [
|
|
20
|
-
{
|
|
21
|
-
"path": "../../../design-system/eslint-utils/afm-cc/tsconfig.json"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
}
|
package/afm-jira/tsconfig.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../../../tsconfig.entry-points.jira.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"target": "es5",
|
|
5
|
-
"outDir": "../../../../../tsDist/@atlaskit__eslint-plugin-platform/app",
|
|
6
|
-
"rootDir": "../",
|
|
7
|
-
"composite": true
|
|
8
|
-
},
|
|
9
|
-
"include": [
|
|
10
|
-
"../src/**/*.ts",
|
|
11
|
-
"../src/**/*.tsx"
|
|
12
|
-
],
|
|
13
|
-
"exclude": [
|
|
14
|
-
"../src/**/__tests__/*",
|
|
15
|
-
"../__tests__/*",
|
|
16
|
-
"../src/**/*.test.*",
|
|
17
|
-
"../src/**/test.*"
|
|
18
|
-
],
|
|
19
|
-
"references": [
|
|
20
|
-
{
|
|
21
|
-
"path": "../../../design-system/eslint-utils/afm-jira/tsconfig.json"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
}
|
package/build/tsconfig.json
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../tsconfig",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"target": "es5",
|
|
5
|
-
"paths": {}
|
|
6
|
-
},
|
|
7
|
-
"include": [
|
|
8
|
-
"../src/**/*.ts",
|
|
9
|
-
"../src/**/*.tsx"
|
|
10
|
-
],
|
|
11
|
-
"exclude": [
|
|
12
|
-
"../src/**/__tests__/*",
|
|
13
|
-
"../__tests__/*",
|
|
14
|
-
"../src/**/*.test.*",
|
|
15
|
-
"../src/**/test.*"
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _handleAstObject = require("../util/handle-ast-object");
|
|
8
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, 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 o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
9
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
10
|
-
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; } // eslint-disable-next-line import/no-extraneous-dependencies
|
|
11
|
-
var rootProtocolRegex = /^root:[\^~\*]$/;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Checks if the 'workspace:' and 'root:' protocol are used as either dependencies or devDependencies
|
|
15
|
-
*/
|
|
16
|
-
function getYarnProtocolsUsed(node) {
|
|
17
|
-
var protocolsUsed = {
|
|
18
|
-
workspace: false,
|
|
19
|
-
root: false
|
|
20
|
-
};
|
|
21
|
-
var dependencies = (0, _handleAstObject.getObjectPropertyAsObject)(node, 'dependencies');
|
|
22
|
-
var devDependencies = (0, _handleAstObject.getObjectPropertyAsObject)(node, 'devDependencies');
|
|
23
|
-
var peerDependencies = (0, _handleAstObject.getObjectPropertyAsObject)(node, 'peerDependencies');
|
|
24
|
-
for (var _i = 0, _arr = [dependencies, devDependencies, peerDependencies]; _i < _arr.length; _i++) {
|
|
25
|
-
var obj = _arr[_i];
|
|
26
|
-
var _iterator = _createForOfIteratorHelper((obj === null || obj === void 0 ? void 0 : obj.properties) || []),
|
|
27
|
-
_step;
|
|
28
|
-
try {
|
|
29
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
30
|
-
var p = _step.value;
|
|
31
|
-
if (p.type === 'Property' && p.value.type === 'Literal') {
|
|
32
|
-
if (typeof p.value.value === 'string') {
|
|
33
|
-
if (rootProtocolRegex.test(p.value.value)) {
|
|
34
|
-
protocolsUsed.root = true;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
} catch (err) {
|
|
40
|
-
_iterator.e(err);
|
|
41
|
-
} finally {
|
|
42
|
-
_iterator.f();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return protocolsUsed;
|
|
46
|
-
}
|
|
47
|
-
var rule = {
|
|
48
|
-
meta: {
|
|
49
|
-
type: 'problem',
|
|
50
|
-
docs: {
|
|
51
|
-
description: "Ensures that yarn protocols 'workspace:' and 'root:' are used correctly.",
|
|
52
|
-
recommended: true
|
|
53
|
-
},
|
|
54
|
-
hasSuggestions: false,
|
|
55
|
-
messages: {
|
|
56
|
-
invalidWorkspaceProtocolUsage: "The 'workspace:^'protocol is Used. To resolve this error, please use the 'workspace:*' protocol instead.",
|
|
57
|
-
invalidRootProtocolUsage: "The 'root:' protocol is not allowed in platform packages. To resolve this error, replace the 'root:' protocol with specific package versions (e.g. '^1.0.0')."
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
create: function create(context) {
|
|
61
|
-
return {
|
|
62
|
-
ObjectExpression: function ObjectExpression(node) {
|
|
63
|
-
if (!context.filename.endsWith('package.json') || node.type !== 'ObjectExpression') {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
var yarnProtocolsUsed = getYarnProtocolsUsed(node);
|
|
67
|
-
|
|
68
|
-
// The 'root:' protocol can not be used in any platform packages
|
|
69
|
-
if (yarnProtocolsUsed.root) {
|
|
70
|
-
context.report({
|
|
71
|
-
node: node,
|
|
72
|
-
messageId: 'invalidRootProtocolUsage'
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
var _default = exports.default = rule;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
-
|
|
3
|
-
import { getObjectPropertyAsObject } from '../util/handle-ast-object';
|
|
4
|
-
const rootProtocolRegex = /^root:[\^~\*]$/;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Checks if the 'workspace:' and 'root:' protocol are used as either dependencies or devDependencies
|
|
8
|
-
*/
|
|
9
|
-
function getYarnProtocolsUsed(node) {
|
|
10
|
-
const protocolsUsed = {
|
|
11
|
-
workspace: false,
|
|
12
|
-
root: false
|
|
13
|
-
};
|
|
14
|
-
const dependencies = getObjectPropertyAsObject(node, 'dependencies');
|
|
15
|
-
const devDependencies = getObjectPropertyAsObject(node, 'devDependencies');
|
|
16
|
-
const peerDependencies = getObjectPropertyAsObject(node, 'peerDependencies');
|
|
17
|
-
for (const obj of [dependencies, devDependencies, peerDependencies]) {
|
|
18
|
-
for (const p of (obj === null || obj === void 0 ? void 0 : obj.properties) || []) {
|
|
19
|
-
if (p.type === 'Property' && p.value.type === 'Literal') {
|
|
20
|
-
if (typeof p.value.value === 'string') {
|
|
21
|
-
if (rootProtocolRegex.test(p.value.value)) {
|
|
22
|
-
protocolsUsed.root = true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return protocolsUsed;
|
|
29
|
-
}
|
|
30
|
-
const rule = {
|
|
31
|
-
meta: {
|
|
32
|
-
type: 'problem',
|
|
33
|
-
docs: {
|
|
34
|
-
description: `Ensures that yarn protocols 'workspace:' and 'root:' are used correctly.`,
|
|
35
|
-
recommended: true
|
|
36
|
-
},
|
|
37
|
-
hasSuggestions: false,
|
|
38
|
-
messages: {
|
|
39
|
-
invalidWorkspaceProtocolUsage: `The 'workspace:^'protocol is Used. To resolve this error, please use the 'workspace:*' protocol instead.`,
|
|
40
|
-
invalidRootProtocolUsage: `The 'root:' protocol is not allowed in platform packages. To resolve this error, replace the 'root:' protocol with specific package versions (e.g. '^1.0.0').`
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
create(context) {
|
|
44
|
-
return {
|
|
45
|
-
ObjectExpression: node => {
|
|
46
|
-
if (!context.filename.endsWith('package.json') || node.type !== 'ObjectExpression') {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const yarnProtocolsUsed = getYarnProtocolsUsed(node);
|
|
50
|
-
|
|
51
|
-
// The 'root:' protocol can not be used in any platform packages
|
|
52
|
-
if (yarnProtocolsUsed.root) {
|
|
53
|
-
context.report({
|
|
54
|
-
node,
|
|
55
|
-
messageId: 'invalidRootProtocolUsage'
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
export default rule;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, 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 o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
2
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
3
|
-
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; }
|
|
4
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
-
|
|
6
|
-
import { getObjectPropertyAsObject } from '../util/handle-ast-object';
|
|
7
|
-
var rootProtocolRegex = /^root:[\^~\*]$/;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Checks if the 'workspace:' and 'root:' protocol are used as either dependencies or devDependencies
|
|
11
|
-
*/
|
|
12
|
-
function getYarnProtocolsUsed(node) {
|
|
13
|
-
var protocolsUsed = {
|
|
14
|
-
workspace: false,
|
|
15
|
-
root: false
|
|
16
|
-
};
|
|
17
|
-
var dependencies = getObjectPropertyAsObject(node, 'dependencies');
|
|
18
|
-
var devDependencies = getObjectPropertyAsObject(node, 'devDependencies');
|
|
19
|
-
var peerDependencies = getObjectPropertyAsObject(node, 'peerDependencies');
|
|
20
|
-
for (var _i = 0, _arr = [dependencies, devDependencies, peerDependencies]; _i < _arr.length; _i++) {
|
|
21
|
-
var obj = _arr[_i];
|
|
22
|
-
var _iterator = _createForOfIteratorHelper((obj === null || obj === void 0 ? void 0 : obj.properties) || []),
|
|
23
|
-
_step;
|
|
24
|
-
try {
|
|
25
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
26
|
-
var p = _step.value;
|
|
27
|
-
if (p.type === 'Property' && p.value.type === 'Literal') {
|
|
28
|
-
if (typeof p.value.value === 'string') {
|
|
29
|
-
if (rootProtocolRegex.test(p.value.value)) {
|
|
30
|
-
protocolsUsed.root = true;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
} catch (err) {
|
|
36
|
-
_iterator.e(err);
|
|
37
|
-
} finally {
|
|
38
|
-
_iterator.f();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return protocolsUsed;
|
|
42
|
-
}
|
|
43
|
-
var rule = {
|
|
44
|
-
meta: {
|
|
45
|
-
type: 'problem',
|
|
46
|
-
docs: {
|
|
47
|
-
description: "Ensures that yarn protocols 'workspace:' and 'root:' are used correctly.",
|
|
48
|
-
recommended: true
|
|
49
|
-
},
|
|
50
|
-
hasSuggestions: false,
|
|
51
|
-
messages: {
|
|
52
|
-
invalidWorkspaceProtocolUsage: "The 'workspace:^'protocol is Used. To resolve this error, please use the 'workspace:*' protocol instead.",
|
|
53
|
-
invalidRootProtocolUsage: "The 'root:' protocol is not allowed in platform packages. To resolve this error, replace the 'root:' protocol with specific package versions (e.g. '^1.0.0')."
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
create: function create(context) {
|
|
57
|
-
return {
|
|
58
|
-
ObjectExpression: function ObjectExpression(node) {
|
|
59
|
-
if (!context.filename.endsWith('package.json') || node.type !== 'ObjectExpression') {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
var yarnProtocolsUsed = getYarnProtocolsUsed(node);
|
|
63
|
-
|
|
64
|
-
// The 'root:' protocol can not be used in any platform packages
|
|
65
|
-
if (yarnProtocolsUsed.root) {
|
|
66
|
-
context.report({
|
|
67
|
-
node: node,
|
|
68
|
-
messageId: 'invalidRootProtocolUsage'
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
export default rule;
|