eslint-plugin-node-dependencies 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -66
- package/dist/chunk-C7Uep-_p.mjs +20 -0
- package/dist/index.d.mts +28 -0
- package/dist/index.mjs +1633 -0
- package/dist/worker.d.mts +7 -0
- package/dist/worker.mjs +30 -0
- package/package.json +17 -11
- package/dist/configs/flat/recommended.d.ts +0 -17
- package/dist/configs/flat/recommended.js +0 -57
- package/dist/configs/recommended.d.ts +0 -9
- package/dist/configs/recommended.js +0 -15
- package/dist/configs/rules/recommended.d.ts +0 -5
- package/dist/configs/rules/recommended.js +0 -9
- package/dist/index.d.ts +0 -34
- package/dist/index.js +0 -54
- package/dist/meta.d.ts +0 -1
- package/dist/meta.js +0 -5
- package/dist/rules/absolute-version.d.ts +0 -2
- package/dist/rules/absolute-version.js +0 -161
- package/dist/rules/compat-engines.d.ts +0 -2
- package/dist/rules/compat-engines.js +0 -263
- package/dist/rules/no-deprecated.d.ts +0 -2
- package/dist/rules/no-deprecated.js +0 -63
- package/dist/rules/no-dupe-deps.d.ts +0 -2
- package/dist/rules/no-dupe-deps.js +0 -90
- package/dist/rules/no-restricted-deps.d.ts +0 -2
- package/dist/rules/no-restricted-deps.js +0 -259
- package/dist/rules/prefer-caret-range-version.d.ts +0 -2
- package/dist/rules/prefer-caret-range-version.js +0 -99
- package/dist/rules/prefer-tilde-range-version.d.ts +0 -2
- package/dist/rules/prefer-tilde-range-version.js +0 -100
- package/dist/rules/require-provenance-deps.d.ts +0 -2
- package/dist/rules/require-provenance-deps.js +0 -98
- package/dist/rules/valid-engines.d.ts +0 -2
- package/dist/rules/valid-engines.js +0 -11
- package/dist/rules/valid-semver.d.ts +0 -2
- package/dist/rules/valid-semver.js +0 -78
- package/dist/types.d.ts +0 -51
- package/dist/types.js +0 -2
- package/dist/utils/ast-utils.d.ts +0 -3
- package/dist/utils/ast-utils.js +0 -24
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/index.js +0 -72
- package/dist/utils/meta.d.ts +0 -30
- package/dist/utils/meta.js +0 -269
- package/dist/utils/package-json/index.d.ts +0 -1
- package/dist/utils/package-json/index.js +0 -17
- package/dist/utils/package-json/worker.d.mts +0 -1
- package/dist/utils/package-json/worker.mjs +0 -26
- package/dist/utils/regexp.d.ts +0 -3
- package/dist/utils/regexp.js +0 -20
- package/dist/utils/rules.d.ts +0 -2
- package/dist/utils/rules.js +0 -28
- package/dist/utils/semver-range.d.ts +0 -7
- package/dist/utils/semver-range.js +0 -37
- package/dist/utils/semver.d.ts +0 -7
- package/dist/utils/semver.js +0 -204
package/dist/worker.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { runAsWorker } from "synckit";
|
|
2
|
+
import packageJson from "package-json";
|
|
3
|
+
import { ProxyAgent, setGlobalDispatcher } from "undici";
|
|
4
|
+
|
|
5
|
+
//#region lib/utils/package-json/worker.ts
|
|
6
|
+
let proxySet = false;
|
|
7
|
+
const PROXY_ENV = [
|
|
8
|
+
"https_proxy",
|
|
9
|
+
"HTTPS_PROXY",
|
|
10
|
+
"http_proxy",
|
|
11
|
+
"HTTP_PROXY",
|
|
12
|
+
"npm_config_https_proxy",
|
|
13
|
+
"npm_config_http_proxy"
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* If users are using a proxy for their npm preferences, set the option to use that proxy.
|
|
17
|
+
*/
|
|
18
|
+
function setupProxy() {
|
|
19
|
+
if (proxySet) return;
|
|
20
|
+
proxySet = true;
|
|
21
|
+
const proxy = PROXY_ENV.map((k) => process.env[k]).find((v) => v);
|
|
22
|
+
if (proxy) setGlobalDispatcher(new ProxyAgent(proxy));
|
|
23
|
+
}
|
|
24
|
+
runAsWorker((packageName) => {
|
|
25
|
+
setupProxy();
|
|
26
|
+
return packageJson(packageName, { allVersions: true });
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { setupProxy };
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-node-dependencies",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "ESLint plugin to check Node.js dependencies.",
|
|
5
6
|
"repository": "git+https://github.com/ota-meshi/eslint-plugin-node-dependencies.git",
|
|
6
7
|
"homepage": "https://github.com/ota-meshi/eslint-plugin-node-dependencies#readme",
|
|
@@ -14,10 +15,16 @@
|
|
|
14
15
|
],
|
|
15
16
|
"license": "MIT",
|
|
16
17
|
"engines": {
|
|
17
|
-
"node": "^
|
|
18
|
+
"node": "^20.19.0 || ^22.13.0 || >=24"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./dist/index.d.mts",
|
|
23
|
+
"import": "./dist/index.mjs",
|
|
24
|
+
"default": "./dist/index.mjs"
|
|
25
|
+
},
|
|
26
|
+
"./package.json": "./package.json"
|
|
18
27
|
},
|
|
19
|
-
"main": "dist/index.js",
|
|
20
|
-
"types": "dist/index.d.ts",
|
|
21
28
|
"files": [
|
|
22
29
|
"dist"
|
|
23
30
|
],
|
|
@@ -30,16 +37,15 @@
|
|
|
30
37
|
"json"
|
|
31
38
|
],
|
|
32
39
|
"peerDependencies": {
|
|
33
|
-
"eslint": ">=
|
|
40
|
+
"eslint": ">=9.38.0"
|
|
34
41
|
},
|
|
35
42
|
"dependencies": {
|
|
36
|
-
"eslint-
|
|
37
|
-
"
|
|
38
|
-
"npm-package-arg": "^12.0.2",
|
|
43
|
+
"jsonc-eslint-parser": "^3.1.0",
|
|
44
|
+
"npm-package-arg": "^13.0.2",
|
|
39
45
|
"package-json": "^10.0.1",
|
|
40
|
-
"semver": "^7.
|
|
41
|
-
"synckit": "^0.11.
|
|
42
|
-
"undici": "^
|
|
46
|
+
"semver": "^7.7.4",
|
|
47
|
+
"synckit": "^0.11.12",
|
|
48
|
+
"undici": "^7.22.0"
|
|
43
49
|
},
|
|
44
50
|
"publishConfig": {
|
|
45
51
|
"access": "public"
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ESLint } from "eslint";
|
|
2
|
-
import * as jsonParser from "jsonc-eslint-parser";
|
|
3
|
-
export declare const recommendedConfig: ({
|
|
4
|
-
plugins: {
|
|
5
|
-
readonly "node-dependencies": ESLint.Plugin;
|
|
6
|
-
};
|
|
7
|
-
files?: undefined;
|
|
8
|
-
languageOptions?: undefined;
|
|
9
|
-
rules?: undefined;
|
|
10
|
-
} | {
|
|
11
|
-
files: string[];
|
|
12
|
-
languageOptions: {
|
|
13
|
-
parser: typeof jsonParser;
|
|
14
|
-
};
|
|
15
|
-
rules: import("@eslint/core").RulesConfig;
|
|
16
|
-
plugins?: undefined;
|
|
17
|
-
})[];
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.recommendedConfig = void 0;
|
|
40
|
-
const recommended_1 = __importDefault(require("../rules/recommended"));
|
|
41
|
-
const jsonParser = __importStar(require("jsonc-eslint-parser"));
|
|
42
|
-
exports.recommendedConfig = [
|
|
43
|
-
{
|
|
44
|
-
plugins: {
|
|
45
|
-
get "node-dependencies"() {
|
|
46
|
-
return require("../../index");
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
files: ["**/package.json", "package.json"],
|
|
52
|
-
languageOptions: {
|
|
53
|
-
parser: jsonParser,
|
|
54
|
-
},
|
|
55
|
-
rules: recommended_1.default.rules,
|
|
56
|
-
},
|
|
57
|
-
];
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
const recommended_1 = __importDefault(require("./rules/recommended"));
|
|
6
|
-
module.exports = {
|
|
7
|
-
plugins: ["node-dependencies"],
|
|
8
|
-
overrides: [
|
|
9
|
-
{
|
|
10
|
-
files: ["package.json"],
|
|
11
|
-
parser: require.resolve("jsonc-eslint-parser"),
|
|
12
|
-
rules: recommended_1.default.rules,
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
};
|
package/dist/index.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { RuleModule } from "./types";
|
|
2
|
-
import * as meta from "./meta";
|
|
3
|
-
declare const _default: {
|
|
4
|
-
meta: typeof meta;
|
|
5
|
-
configs: {
|
|
6
|
-
recommended: {
|
|
7
|
-
plugins: string[];
|
|
8
|
-
overrides: {
|
|
9
|
-
files: string[];
|
|
10
|
-
parser: string;
|
|
11
|
-
rules: import("@eslint/core").RulesConfig;
|
|
12
|
-
}[];
|
|
13
|
-
};
|
|
14
|
-
"flat/recommended": ({
|
|
15
|
-
plugins: {
|
|
16
|
-
readonly "node-dependencies": import("eslint").ESLint.Plugin;
|
|
17
|
-
};
|
|
18
|
-
files?: undefined;
|
|
19
|
-
languageOptions?: undefined;
|
|
20
|
-
rules?: undefined;
|
|
21
|
-
} | {
|
|
22
|
-
files: string[];
|
|
23
|
-
languageOptions: {
|
|
24
|
-
parser: typeof import("jsonc-eslint-parser");
|
|
25
|
-
};
|
|
26
|
-
rules: import("@eslint/core").RulesConfig;
|
|
27
|
-
plugins?: undefined;
|
|
28
|
-
})[];
|
|
29
|
-
};
|
|
30
|
-
rules: {
|
|
31
|
-
[key: string]: RuleModule;
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
export = _default;
|
package/dist/index.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
const rules_1 = require("./utils/rules");
|
|
39
|
-
const recommended_1 = __importDefault(require("./configs/recommended"));
|
|
40
|
-
const recommended_2 = require("./configs/flat/recommended");
|
|
41
|
-
const meta = __importStar(require("./meta"));
|
|
42
|
-
const configs = {
|
|
43
|
-
recommended: recommended_1.default,
|
|
44
|
-
"flat/recommended": recommended_2.recommendedConfig,
|
|
45
|
-
};
|
|
46
|
-
const rules = rules_1.rules.reduce((obj, r) => {
|
|
47
|
-
obj[r.meta.docs.ruleName] = r;
|
|
48
|
-
return obj;
|
|
49
|
-
}, {});
|
|
50
|
-
module.exports = {
|
|
51
|
-
meta,
|
|
52
|
-
configs,
|
|
53
|
-
rules,
|
|
54
|
-
};
|
package/dist/meta.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const name: any, version: any;
|
package/dist/meta.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const jsonc_eslint_parser_1 = require("jsonc-eslint-parser");
|
|
4
|
-
const utils_1 = require("../utils");
|
|
5
|
-
const ast_utils_1 = require("../utils/ast-utils");
|
|
6
|
-
const regexp_1 = require("../utils/regexp");
|
|
7
|
-
const semver_1 = require("../utils/semver");
|
|
8
|
-
const eslint_compat_utils_1 = require("eslint-compat-utils");
|
|
9
|
-
const PREFERS = ["always", "never", "ignore"];
|
|
10
|
-
const SCHEMA_FOR_DEPS_PROPERTIES = {
|
|
11
|
-
dependencies: { enum: PREFERS },
|
|
12
|
-
peerDependencies: { enum: PREFERS },
|
|
13
|
-
optionalDependencies: { enum: PREFERS },
|
|
14
|
-
devDependencies: { enum: PREFERS },
|
|
15
|
-
};
|
|
16
|
-
const DEFAULT = {
|
|
17
|
-
dependencies: "ignore",
|
|
18
|
-
peerDependencies: "ignore",
|
|
19
|
-
optionalDependencies: "ignore",
|
|
20
|
-
devDependencies: "always",
|
|
21
|
-
};
|
|
22
|
-
function stringToOption(option) {
|
|
23
|
-
return {
|
|
24
|
-
dependencies: option,
|
|
25
|
-
peerDependencies: option,
|
|
26
|
-
optionalDependencies: option,
|
|
27
|
-
devDependencies: option,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function objectToOption(option, defaults) {
|
|
31
|
-
return {
|
|
32
|
-
dependencies: option.dependencies || defaults.dependencies,
|
|
33
|
-
peerDependencies: option.peerDependencies || defaults.peerDependencies,
|
|
34
|
-
optionalDependencies: option.optionalDependencies || defaults.optionalDependencies,
|
|
35
|
-
devDependencies: option.devDependencies || defaults.devDependencies,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function parseOption(option) {
|
|
39
|
-
if (!option) {
|
|
40
|
-
return () => DEFAULT;
|
|
41
|
-
}
|
|
42
|
-
if (typeof option === "string") {
|
|
43
|
-
const objectOption = stringToOption(option);
|
|
44
|
-
return () => objectOption;
|
|
45
|
-
}
|
|
46
|
-
const baseOption = objectToOption(option, DEFAULT);
|
|
47
|
-
if (!option.overridePackages) {
|
|
48
|
-
return () => baseOption;
|
|
49
|
-
}
|
|
50
|
-
const overridePackages = Object.entries(option.overridePackages).map(([packageName, opt]) => {
|
|
51
|
-
const regexp = (0, regexp_1.toRegExp)(packageName);
|
|
52
|
-
return Object.assign({ test: (s) => regexp.test(s) }, (typeof opt === "string"
|
|
53
|
-
? stringToOption(opt)
|
|
54
|
-
: objectToOption(opt, baseOption)));
|
|
55
|
-
});
|
|
56
|
-
return (name) => {
|
|
57
|
-
for (const overridePackage of overridePackages) {
|
|
58
|
-
if (overridePackage.test(name)) {
|
|
59
|
-
return overridePackage;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return baseOption;
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
exports.default = (0, utils_1.createRule)("absolute-version", {
|
|
66
|
-
meta: {
|
|
67
|
-
docs: {
|
|
68
|
-
description: "require or disallow absolute version of dependency.",
|
|
69
|
-
category: "Best Practices",
|
|
70
|
-
recommended: false,
|
|
71
|
-
},
|
|
72
|
-
schema: [
|
|
73
|
-
{
|
|
74
|
-
oneOf: [
|
|
75
|
-
{ enum: PREFERS.filter((p) => p !== "ignore") },
|
|
76
|
-
{
|
|
77
|
-
type: "object",
|
|
78
|
-
properties: Object.assign(Object.assign({}, SCHEMA_FOR_DEPS_PROPERTIES), { overridePackages: {
|
|
79
|
-
type: "object",
|
|
80
|
-
patternProperties: {
|
|
81
|
-
"^(?:\\S+)$": {
|
|
82
|
-
oneOf: [
|
|
83
|
-
{ enum: PREFERS },
|
|
84
|
-
{
|
|
85
|
-
type: "object",
|
|
86
|
-
properties: SCHEMA_FOR_DEPS_PROPERTIES,
|
|
87
|
-
additionalProperties: false,
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
minProperties: 1,
|
|
93
|
-
additionalProperties: false,
|
|
94
|
-
} }),
|
|
95
|
-
additionalProperties: false,
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
messages: {},
|
|
101
|
-
type: "suggestion",
|
|
102
|
-
},
|
|
103
|
-
create(context) {
|
|
104
|
-
const sourceCode = (0, eslint_compat_utils_1.getSourceCode)(context);
|
|
105
|
-
if (!sourceCode.parserServices.isJSON) {
|
|
106
|
-
return {};
|
|
107
|
-
}
|
|
108
|
-
const getOption = parseOption(context.options[0]);
|
|
109
|
-
function defineVisitor(visitName) {
|
|
110
|
-
return (node) => {
|
|
111
|
-
const ver = (0, jsonc_eslint_parser_1.getStaticJSONValue)(node.value);
|
|
112
|
-
if (typeof ver !== "string" || ver == null) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
const name = String((0, ast_utils_1.getKeyFromJSONProperty)(node));
|
|
116
|
-
const option = getOption(name)[visitName];
|
|
117
|
-
const semver = (0, semver_1.getSemverRange)(ver);
|
|
118
|
-
if (semver == null) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (option === "always") {
|
|
122
|
-
if (isAbsoluteVersion(semver)) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
context.report({
|
|
126
|
-
loc: node.value.loc,
|
|
127
|
-
message: "Use the absolute version instead.",
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
else if (option === "never") {
|
|
131
|
-
if (!isAbsoluteVersion(semver)) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
context.report({
|
|
135
|
-
loc: node.value.loc,
|
|
136
|
-
message: "Do not use the absolute version.",
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
return (0, utils_1.defineJsonVisitor)({
|
|
142
|
-
dependencies: defineVisitor("dependencies"),
|
|
143
|
-
peerDependencies: defineVisitor("peerDependencies"),
|
|
144
|
-
optionalDependencies: defineVisitor("optionalDependencies"),
|
|
145
|
-
devDependencies: defineVisitor("devDependencies"),
|
|
146
|
-
});
|
|
147
|
-
},
|
|
148
|
-
});
|
|
149
|
-
function isAbsoluteVersion(semver) {
|
|
150
|
-
for (const comparators of semver.set) {
|
|
151
|
-
for (const comparator of comparators) {
|
|
152
|
-
if ((0, semver_1.isAnyComparator)(comparator)) {
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
if (comparator.operator !== "=" && comparator.operator !== "") {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return true;
|
|
161
|
-
}
|