@monorepolint/rules 0.5.0-alpha.82 → 0.5.0-alpha.85
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/lib/__tests__/alphabeticalScripts.spec.js +22 -24
- package/lib/__tests__/alphabeticalScripts.spec.js.map +1 -1
- package/lib/__tests__/bannedDependencies.spec.js +67 -9
- package/lib/__tests__/bannedDependencies.spec.js.map +1 -1
- package/lib/__tests__/consistentDependencies.spec.js +11 -10
- package/lib/__tests__/consistentDependencies.spec.js.map +1 -1
- package/lib/__tests__/consistentVersions.spec.js +23 -22
- package/lib/__tests__/consistentVersions.spec.js.map +1 -1
- package/lib/__tests__/fileContents.spec.js +25 -32
- package/lib/__tests__/fileContents.spec.js.map +1 -1
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +49 -48
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +1 -1
- package/lib/__tests__/nestedWorkspaces.spec.js +10 -8
- package/lib/__tests__/nestedWorkspaces.spec.js.map +1 -1
- package/lib/__tests__/packageEntry.spec.js +47 -40
- package/lib/__tests__/packageEntry.spec.js.map +1 -1
- package/lib/__tests__/packageOrder.spec.js +34 -33
- package/lib/__tests__/packageOrder.spec.js.map +1 -1
- package/lib/__tests__/packageScript.spec.js +50 -51
- package/lib/__tests__/packageScript.spec.js.map +1 -1
- package/lib/__tests__/requireDependency.spec.js +12 -11
- package/lib/__tests__/requireDependency.spec.js.map +1 -1
- package/lib/__tests__/utils.d.ts +68 -1
- package/lib/__tests__/utils.d.ts.map +1 -1
- package/lib/__tests__/utils.js +70 -21
- package/lib/__tests__/utils.js.map +1 -1
- package/lib/alphabeticalDependencies.js +3 -3
- package/lib/alphabeticalDependencies.js.map +1 -1
- package/lib/alphabeticalScripts.js +1 -1
- package/lib/alphabeticalScripts.js.map +1 -1
- package/lib/bannedDependencies.d.ts +21 -12
- package/lib/bannedDependencies.d.ts.map +1 -1
- package/lib/bannedDependencies.js +86 -57
- package/lib/bannedDependencies.js.map +1 -1
- package/lib/consistentDependencies.d.ts +6 -6
- package/lib/consistentDependencies.d.ts.map +1 -1
- package/lib/consistentDependencies.js +2 -3
- package/lib/consistentDependencies.js.map +1 -1
- package/lib/consistentVersions.d.ts +1 -1
- package/lib/consistentVersions.js +8 -8
- package/lib/consistentVersions.js.map +1 -1
- package/lib/fileContents.d.ts +8 -8
- package/lib/fileContents.d.ts.map +1 -1
- package/lib/fileContents.js +32 -31
- package/lib/fileContents.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/mustSatisfyPeerDependencies.d.ts +31 -31
- package/lib/mustSatisfyPeerDependencies.d.ts.map +1 -1
- package/lib/mustSatisfyPeerDependencies.js +18 -16
- package/lib/mustSatisfyPeerDependencies.js.map +1 -1
- package/lib/packageEntry.d.ts +11 -20
- package/lib/packageEntry.d.ts.map +1 -1
- package/lib/packageEntry.js +15 -7
- package/lib/packageEntry.js.map +1 -1
- package/lib/packageOrder.d.ts +3 -3
- package/lib/packageOrder.d.ts.map +1 -1
- package/lib/packageOrder.js +2 -3
- package/lib/packageOrder.js.map +1 -1
- package/lib/packageScript.d.ts +10 -10
- package/lib/packageScript.js +4 -4
- package/lib/packageScript.js.map +1 -1
- package/lib/requireDependency.d.ts +6 -6
- package/lib/requireDependency.d.ts.map +1 -1
- package/lib/requireDependency.js +3 -3
- package/lib/requireDependency.js.map +1 -1
- package/lib/standardTsconfig.d.ts +10 -10
- package/lib/standardTsconfig.d.ts.map +1 -1
- package/lib/standardTsconfig.js +26 -21
- package/lib/standardTsconfig.js.map +1 -1
- package/lib/util/checkAlpha.d.ts +1 -0
- package/lib/util/checkAlpha.d.ts.map +1 -1
- package/lib/util/checkAlpha.js +8 -5
- package/lib/util/checkAlpha.js.map +1 -1
- package/lib/util/makeDirectory.js +2 -2
- package/lib/util/makeDirectory.js.map +1 -1
- package/lib/util/packageDependencyGraphService.d.ts +3 -3
- package/lib/util/packageDependencyGraphService.d.ts.map +1 -1
- package/lib/util/packageDependencyGraphService.js +3 -3
- package/lib/util/packageDependencyGraphService.js.map +1 -1
- package/package.json +8 -9
- package/src/__tests__/alphabeticalScripts.spec.ts +27 -28
- package/src/__tests__/bannedDependencies.spec.ts +80 -6
- package/src/__tests__/consistentDependencies.spec.ts +11 -6
- package/src/__tests__/consistentVersions.spec.ts +32 -27
- package/src/__tests__/fileContents.spec.ts +32 -40
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +52 -47
- package/src/__tests__/nestedWorkspaces.spec.ts +12 -6
- package/src/__tests__/packageEntry.spec.ts +64 -45
- package/src/__tests__/packageOrder.spec.ts +46 -40
- package/src/__tests__/packageScript.spec.ts +62 -54
- package/src/__tests__/requireDependency.spec.ts +11 -6
- package/src/__tests__/utils.ts +109 -19
- package/src/bannedDependencies.ts +106 -74
- package/src/consistentDependencies.ts +1 -2
- package/src/consistentVersions.ts +2 -2
- package/src/fileContents.ts +32 -30
- package/src/mustSatisfyPeerDependencies.ts +6 -2
- package/src/packageEntry.ts +13 -5
- package/src/packageOrder.ts +1 -2
- package/src/packageScript.ts +2 -2
- package/src/requireDependency.ts +2 -2
- package/src/standardTsconfig.ts +22 -19
- package/src/util/checkAlpha.ts +6 -3
- package/src/util/packageDependencyGraphService.ts +8 -5
- package/tsconfig.tsbuildinfo +1 -6233
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requireDependency.spec.js","sourceRoot":"","sources":["../../src/__tests__/requireDependency.spec.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6CAAsD;AACtD,2BAAiD;AACjD,mDAA6B;AAC7B,iDAA2B;AAC3B,4DAAyD;AACzD,yDAAiE;AACjE,mCAAuC;AAEvC,MAAM,YAAY,GAAG,oBAAY,
|
|
1
|
+
{"version":3,"file":"requireDependency.spec.js","sourceRoot":"","sources":["../../src/__tests__/requireDependency.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/__tests__/utils.d.ts
CHANGED
|
@@ -4,6 +4,73 @@
|
|
|
4
4
|
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
/// <reference types="jest" />
|
|
8
|
+
import { AddErrorOptions, WorkspaceContext } from "@monorepolint/core";
|
|
9
|
+
import { Host } from "@monorepolint/utils";
|
|
8
10
|
export declare function jsonToString(obj: {}): string;
|
|
11
|
+
interface TestingWorkspaceOpts {
|
|
12
|
+
host: Host;
|
|
13
|
+
rootProjectName?: string;
|
|
14
|
+
fixFlag: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function createTestingWorkspace(inboundOpts: TestingWorkspaceOpts): Promise<DefaultTestingWorkspace>;
|
|
17
|
+
interface RealTestingWorkspaceOpts extends Required<TestingWorkspaceOpts> {
|
|
18
|
+
rootPath: string;
|
|
19
|
+
}
|
|
20
|
+
export interface TestingWorkspace {
|
|
21
|
+
/**
|
|
22
|
+
* Adds a utf8 file to `packageName` with `relativePath` to the package directory.
|
|
23
|
+
*
|
|
24
|
+
* @param packageName The child package to add to or undefined for root package
|
|
25
|
+
* @param filePath The path of the file to be written. Will be prepended with package dir
|
|
26
|
+
* @param contents the contents to be written (as utf8)
|
|
27
|
+
*/
|
|
28
|
+
writeFile(filePath: string, contents: string): void;
|
|
29
|
+
writeJsonFile(filePath: string, json: object): void;
|
|
30
|
+
addProject(name: string, fields: object): void;
|
|
31
|
+
getFilePath(filePath: string): string;
|
|
32
|
+
readFile(filePath: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Helper method for matching failures via jest `expect().toMatchObject
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
failureMatcher(opts: {
|
|
38
|
+
file: string;
|
|
39
|
+
message: string;
|
|
40
|
+
hasFixer: boolean;
|
|
41
|
+
}): any;
|
|
42
|
+
readonly context: WorkspaceContext;
|
|
43
|
+
}
|
|
44
|
+
declare class DefaultTestingWorkspace implements TestingWorkspace {
|
|
45
|
+
private opts;
|
|
46
|
+
readonly context: WorkspaceContext;
|
|
47
|
+
constructor(opts: RealTestingWorkspaceOpts, context: WorkspaceContext);
|
|
48
|
+
addProject(name: string, fields: object): void;
|
|
49
|
+
writeJsonFile(filePath: string, json: object): void;
|
|
50
|
+
/**
|
|
51
|
+
* Adds a utf8 file to `packageName` with `relativePath` to the package directory.
|
|
52
|
+
*
|
|
53
|
+
* @param packageName The child package to add to or undefined for root package
|
|
54
|
+
* @param filePath The path of the file to be written. Will be prepended with package dir
|
|
55
|
+
* @param contents the contents to be written (as utf8)
|
|
56
|
+
*/
|
|
57
|
+
writeFile(filePath: string, contents: string): void;
|
|
58
|
+
getFilePath(filePath: string): string;
|
|
59
|
+
readFile(filePath: string): string;
|
|
60
|
+
failureMatcher(opts: {
|
|
61
|
+
file: string;
|
|
62
|
+
message: string;
|
|
63
|
+
hasFixer: boolean;
|
|
64
|
+
}): {
|
|
65
|
+
fixer?: any;
|
|
66
|
+
file: string;
|
|
67
|
+
message: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export declare type AddErrorSpy = jest.SpyInstance<void, [AddErrorOptions]>;
|
|
71
|
+
export declare const HOST_FACTORIES: Array<{
|
|
72
|
+
name: string;
|
|
73
|
+
make: () => Host;
|
|
74
|
+
}>;
|
|
75
|
+
export {};
|
|
9
76
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAe,IAAI,EAAc,MAAM,qBAAqB,CAAC;AAIpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,EAAE,UAEnC;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,oBAAoB,oCAuB7E;AAED,UAAU,wBAAyB,SAAQ,QAAQ,CAAC,oBAAoB,CAAC;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,GAAG,CAAC;IAEhF,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AAED,cAAM,uBAAwB,YAAW,gBAAgB;IAC3C,OAAO,CAAC,IAAI;aAA4C,OAAO,EAAE,gBAAgB;gBAAzE,IAAI,EAAE,wBAAwB,EAAkB,OAAO,EAAE,gBAAgB;IAE7F,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOvC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI5C;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM5C,WAAW,CAAC,QAAQ,EAAE,MAAM;IAI5B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAIzB,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;;;;;CAO1E;AAED,oBAAY,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAEpE,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAGpE,CAAC"}
|
package/lib/__tests__/utils.js
CHANGED
|
@@ -6,29 +6,78 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
// tslint:disable-next-line: variable-name
|
|
17
|
-
readFileSync: function readFileSync(filePath, _contentType) {
|
|
18
|
-
return mockFiles.get(filePath);
|
|
19
|
-
},
|
|
20
|
-
existsSync: function existsSync(filePath) {
|
|
21
|
-
return mockFiles.has(filePath);
|
|
22
|
-
},
|
|
23
|
-
mkdirSync: function mkdirSync(directoryPath) {
|
|
24
|
-
return mockFiles.set(directoryPath, "");
|
|
25
|
-
},
|
|
26
|
-
}));
|
|
27
|
-
return mockFiles;
|
|
28
|
-
}
|
|
29
|
-
exports.createMockFiles = createMockFiles;
|
|
9
|
+
exports.HOST_FACTORIES = exports.createTestingWorkspace = exports.jsonToString = void 0;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const core_1 = require("@monorepolint/core");
|
|
12
|
+
const utils_1 = require("@monorepolint/utils");
|
|
13
|
+
const path = tslib_1.__importStar(require("path"));
|
|
14
|
+
const tmp = tslib_1.__importStar(require("tmp"));
|
|
30
15
|
function jsonToString(obj) {
|
|
31
16
|
return JSON.stringify(obj, undefined, 2) + "\n";
|
|
32
17
|
}
|
|
33
18
|
exports.jsonToString = jsonToString;
|
|
19
|
+
async function createTestingWorkspace(inboundOpts) {
|
|
20
|
+
var _a;
|
|
21
|
+
tmp.setGracefulCleanup();
|
|
22
|
+
const tmpdir = tmp.dirSync();
|
|
23
|
+
const opts = {
|
|
24
|
+
...inboundOpts,
|
|
25
|
+
rootProjectName: (_a = inboundOpts.rootProjectName) !== null && _a !== void 0 ? _a : "rootProject",
|
|
26
|
+
};
|
|
27
|
+
const rootPath = tmpdir.name;
|
|
28
|
+
opts.host.mkdir(rootPath, { recursive: true });
|
|
29
|
+
opts.host.writeJson(path.join(rootPath, "package.json"), {
|
|
30
|
+
name: opts.rootProjectName,
|
|
31
|
+
workspaces: {
|
|
32
|
+
packages: ["packages/*"],
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
await opts.host.flush();
|
|
36
|
+
return new DefaultTestingWorkspace({ ...opts, rootPath }, new core_1.WorkspaceContext(rootPath, { fix: opts.fixFlag, rules: [] }, opts.host));
|
|
37
|
+
}
|
|
38
|
+
exports.createTestingWorkspace = createTestingWorkspace;
|
|
39
|
+
class DefaultTestingWorkspace {
|
|
40
|
+
constructor(opts, context) {
|
|
41
|
+
this.opts = opts;
|
|
42
|
+
this.context = context;
|
|
43
|
+
}
|
|
44
|
+
addProject(name, fields) {
|
|
45
|
+
this.writeJsonFile(path.join("packages", name, "package.json"), {
|
|
46
|
+
name,
|
|
47
|
+
...fields,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
writeJsonFile(filePath, json) {
|
|
51
|
+
this.writeFile(filePath, JSON.stringify(json, undefined, 2));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Adds a utf8 file to `packageName` with `relativePath` to the package directory.
|
|
55
|
+
*
|
|
56
|
+
* @param packageName The child package to add to or undefined for root package
|
|
57
|
+
* @param filePath The path of the file to be written. Will be prepended with package dir
|
|
58
|
+
* @param contents the contents to be written (as utf8)
|
|
59
|
+
*/
|
|
60
|
+
writeFile(filePath, contents) {
|
|
61
|
+
const fullFilePath = this.getFilePath(filePath);
|
|
62
|
+
this.opts.host.mkdir(path.dirname(fullFilePath), { recursive: true });
|
|
63
|
+
this.opts.host.writeFile(fullFilePath, contents, { encoding: "utf-8" });
|
|
64
|
+
}
|
|
65
|
+
getFilePath(filePath) {
|
|
66
|
+
return path.join(this.opts.rootPath, filePath);
|
|
67
|
+
}
|
|
68
|
+
readFile(filePath) {
|
|
69
|
+
return this.opts.host.readFile(this.getFilePath(filePath), { encoding: "utf-8" });
|
|
70
|
+
}
|
|
71
|
+
failureMatcher(opts) {
|
|
72
|
+
return {
|
|
73
|
+
file: this.getFilePath(opts.file),
|
|
74
|
+
message: opts.message,
|
|
75
|
+
...(opts.hasFixer ? { fixer: expect.any(Function) } : {}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.HOST_FACTORIES = [
|
|
80
|
+
{ name: "SimpleHost", make: () => new utils_1.SimpleHost() },
|
|
81
|
+
{ name: "CachingHost", make: () => new utils_1.CachingHost() },
|
|
82
|
+
];
|
|
34
83
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@ const checkAlpha_1 = require("./util/checkAlpha");
|
|
|
13
13
|
const Options = r.Undefined;
|
|
14
14
|
exports.alphabeticalDependencies = {
|
|
15
15
|
check: function expectAlphabeticalDependencies(context) {
|
|
16
|
-
checkAlpha_1.checkAlpha(context, "dependencies");
|
|
17
|
-
checkAlpha_1.checkAlpha(context, "devDependencies");
|
|
18
|
-
checkAlpha_1.checkAlpha(context, "peerDependencies");
|
|
16
|
+
(0, checkAlpha_1.checkAlpha)(context, "dependencies");
|
|
17
|
+
(0, checkAlpha_1.checkAlpha)(context, "devDependencies");
|
|
18
|
+
(0, checkAlpha_1.checkAlpha)(context, "peerDependencies");
|
|
19
19
|
},
|
|
20
20
|
optionsRuntype: Options,
|
|
21
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alphabeticalDependencies.js","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,oDAA8B;AAC9B,kDAA+C;AAE/C,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,wBAAwB,GAA+B;IAClE,KAAK,EAAE,SAAS,8BAA8B,CAAC,OAAgB;QAC7D,uBAAU,
|
|
1
|
+
{"version":3,"file":"alphabeticalDependencies.js","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,oDAA8B;AAC9B,kDAA+C;AAE/C,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,wBAAwB,GAA+B;IAClE,KAAK,EAAE,SAAS,8BAA8B,CAAC,OAAgB;QAC7D,IAAA,uBAAU,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACpC,IAAA,uBAAU,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvC,IAAA,uBAAU,EAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,EAAE,OAAO;CACxB,CAAC"}
|
|
@@ -13,7 +13,7 @@ const checkAlpha_1 = require("./util/checkAlpha");
|
|
|
13
13
|
const Options = r.Undefined;
|
|
14
14
|
exports.alphabeticalScripts = {
|
|
15
15
|
check: function expectAlphabeticalScripts(context) {
|
|
16
|
-
checkAlpha_1.checkAlpha(context, "scripts");
|
|
16
|
+
(0, checkAlpha_1.checkAlpha)(context, "scripts");
|
|
17
17
|
},
|
|
18
18
|
optionsRuntype: Options,
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alphabeticalScripts.js","sourceRoot":"","sources":["../src/alphabeticalScripts.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,oDAA8B;AAC9B,kDAA+C;AAE/C,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,mBAAmB,GAA+B;IAC7D,KAAK,EAAE,SAAS,yBAAyB,CAAC,OAAgB;QACxD,uBAAU,
|
|
1
|
+
{"version":3,"file":"alphabeticalScripts.js","sourceRoot":"","sources":["../src/alphabeticalScripts.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,oDAA8B;AAC9B,kDAA+C;AAE/C,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,mBAAmB,GAA+B;IAC7D,KAAK,EAAE,SAAS,yBAAyB,CAAC,OAAgB;QACxD,IAAA,uBAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,cAAc,EAAE,OAAO;CACxB,CAAC"}
|
|
@@ -6,19 +6,28 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { RuleModule } from "@monorepolint/core";
|
|
8
8
|
import * as r from "runtypes";
|
|
9
|
-
declare const Options: r.
|
|
10
|
-
bannedDependencies: r.Array<r.String, false
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
9
|
+
declare const Options: r.Union<[r.Record<{
|
|
10
|
+
bannedDependencies: r.Union<[r.Array<r.String, false>, r.Record<{
|
|
11
|
+
glob: r.Optional<r.Array<r.String, false>>;
|
|
12
|
+
exact: r.Optional<r.Array<r.String, false>>;
|
|
13
|
+
}, false>]>;
|
|
14
|
+
bannedTransitiveDependencies: r.Optional<r.Literal<undefined>>;
|
|
15
|
+
}, false>, r.Record<{
|
|
16
|
+
bannedDependencies: r.Optional<r.Union<[r.Array<r.String, false>, r.Record<{
|
|
17
|
+
glob: r.Optional<r.Array<r.String, false>>;
|
|
18
|
+
exact: r.Optional<r.Array<r.String, false>>;
|
|
19
|
+
}, false>]>>;
|
|
14
20
|
bannedTransitiveDependencies: r.Array<r.String, false>;
|
|
15
|
-
}, false>, r.
|
|
16
|
-
bannedDependencies: r.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
}, false>, r.Record<{
|
|
22
|
+
bannedDependencies: r.Optional<r.Union<[r.Array<r.String, false>, r.Record<{
|
|
23
|
+
glob: r.Optional<r.Array<r.String, false>>;
|
|
24
|
+
exact: r.Optional<r.Array<r.String, false>>;
|
|
25
|
+
}, false>]>>;
|
|
26
|
+
bannedTransitiveDependencies: r.Optional<r.Array<r.String, false>>;
|
|
27
|
+
}, false>]>;
|
|
21
28
|
export declare type Options = r.Static<typeof Options>;
|
|
22
|
-
export declare const bannedDependencies: RuleModule<typeof Options
|
|
29
|
+
export declare const bannedDependencies: RuleModule<typeof Options> & {
|
|
30
|
+
printStats: () => void;
|
|
31
|
+
};
|
|
23
32
|
export {};
|
|
24
33
|
//# sourceMappingURL=bannedDependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bannedDependencies.d.ts","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"bannedDependencies.d.ts","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAa9B,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;WAeZ,CAAC;AAEF,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAU/C,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG;IAC5D,UAAU,EAAE,MAAM,IAAI,CAAC;CA8DxB,CAAC"}
|
|
@@ -9,81 +9,110 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.bannedDependencies = void 0;
|
|
10
10
|
const tslib_1 = require("tslib");
|
|
11
11
|
const utils_1 = require("@monorepolint/utils");
|
|
12
|
-
const
|
|
13
|
-
const minimatch_1 = tslib_1.__importDefault(require("minimatch"));
|
|
12
|
+
const utils_2 = require("@monorepolint/utils");
|
|
14
13
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
15
14
|
const r = tslib_1.__importStar(require("runtypes"));
|
|
16
15
|
const packageDependencyGraphService_1 = require("./util/packageDependencyGraphService");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
.And(r.Partial({
|
|
28
|
-
bannedDependencies: r.Undefined,
|
|
29
|
-
})), r.Record({
|
|
30
|
-
bannedDependencies: r.Array(r.String),
|
|
16
|
+
// FIXME: This rule is messed. bannedTransitiveDependencies doesnt glob
|
|
17
|
+
const bannedDepGlobsField = r.Union(r.Array(r.String), r.Record({
|
|
18
|
+
glob: r.Array(r.String).optional(),
|
|
19
|
+
exact: r.Array(r.String).optional(),
|
|
20
|
+
}));
|
|
21
|
+
const Options = r.Union(r.Record({
|
|
22
|
+
bannedDependencies: bannedDepGlobsField,
|
|
23
|
+
bannedTransitiveDependencies: r.Undefined.optional(),
|
|
24
|
+
}), r.Record({
|
|
25
|
+
bannedDependencies: bannedDepGlobsField.optional(),
|
|
31
26
|
bannedTransitiveDependencies: r.Array(r.String),
|
|
27
|
+
}), r.Record({
|
|
28
|
+
bannedDependencies: bannedDepGlobsField.optional(),
|
|
29
|
+
bannedTransitiveDependencies: r.Array(r.String).optional(),
|
|
32
30
|
}));
|
|
31
|
+
/**
|
|
32
|
+
* We use this locally to avoid making a billion sets. Because check is called once per package
|
|
33
|
+
* (with the exact same config object reference) we can save quite a bit of time by reusing this cache.
|
|
34
|
+
*/
|
|
35
|
+
const setCache = new Map();
|
|
36
|
+
const aggregateTiming = new utils_2.AggregateTiming(":bannedDependencies stats");
|
|
33
37
|
exports.bannedDependencies = {
|
|
34
|
-
check: function expectAllowedDependencies(context, opts) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
check: function expectAllowedDependencies(context, opts, extra) {
|
|
39
|
+
var _a;
|
|
40
|
+
aggregateTiming.start((_a = extra === null || extra === void 0 ? void 0 : extra.id) !== null && _a !== void 0 ? _a : "unknown id");
|
|
41
|
+
const packageJson = context.getPackageJson();
|
|
42
|
+
const packagePath = context.getPackageJsonPath();
|
|
43
|
+
const curDeps = packageJson.dependencies && Object.keys(packageJson.dependencies);
|
|
44
|
+
const curDevDeps = packageJson.devDependencies && Object.keys(packageJson.devDependencies);
|
|
45
|
+
const curPeerDeps = packageJson.peerDependencies && Object.keys(packageJson.peerDependencies);
|
|
46
|
+
const { bannedDependencies: banned, bannedTransitiveDependencies: transitives } = opts;
|
|
47
|
+
const globs = banned && (Array.isArray(banned) ? banned : banned.glob);
|
|
48
|
+
const exacts = banned && (Array.isArray(banned) ? undefined : banned.exact);
|
|
49
|
+
const violations = new Set();
|
|
50
|
+
if (globs) {
|
|
51
|
+
if (curDeps)
|
|
52
|
+
populateProblemsGlobs(globs, curDeps, violations);
|
|
53
|
+
if (curDevDeps)
|
|
54
|
+
populateProblemsGlobs(globs, curDevDeps, violations);
|
|
55
|
+
if (curPeerDeps)
|
|
56
|
+
populateProblemsGlobs(globs, curPeerDeps, violations);
|
|
57
|
+
}
|
|
58
|
+
if (exacts) {
|
|
59
|
+
let set = setCache.get(exacts);
|
|
60
|
+
if (set === undefined) {
|
|
61
|
+
set = new Set(exacts);
|
|
62
|
+
setCache.set(exacts, set);
|
|
63
|
+
}
|
|
64
|
+
if (curDeps)
|
|
65
|
+
populateProblemsExact(set, curDeps, violations);
|
|
66
|
+
if (curDevDeps)
|
|
67
|
+
populateProblemsExact(set, curDevDeps, violations);
|
|
68
|
+
if (curPeerDeps)
|
|
69
|
+
populateProblemsExact(set, curPeerDeps, violations);
|
|
70
|
+
}
|
|
71
|
+
if (violations.size > 0) {
|
|
72
|
+
context.addError({
|
|
73
|
+
file: packagePath,
|
|
74
|
+
message: `Found ${violations.size} banned dependencies of package.json:\n\t` +
|
|
75
|
+
Array.from(violations)
|
|
76
|
+
.map((v) => `'${v}'`)
|
|
77
|
+
.join(", "),
|
|
78
|
+
});
|
|
41
79
|
}
|
|
42
|
-
if (
|
|
43
|
-
|
|
80
|
+
if (transitives) {
|
|
81
|
+
let set = setCache.get(transitives);
|
|
82
|
+
if (set === undefined) {
|
|
83
|
+
set = new Set(transitives);
|
|
84
|
+
setCache.set(transitives, set);
|
|
85
|
+
}
|
|
86
|
+
checkTransitives(context, set);
|
|
44
87
|
}
|
|
88
|
+
aggregateTiming.stop();
|
|
45
89
|
},
|
|
46
90
|
optionsRuntype: Options,
|
|
91
|
+
printStats: () => {
|
|
92
|
+
aggregateTiming.printResults();
|
|
93
|
+
},
|
|
47
94
|
};
|
|
48
|
-
function
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const packagePath = context.getPackageJsonPath();
|
|
53
|
-
const dependencies = packageJson[block];
|
|
54
|
-
if (dependencies === undefined) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const newPackageJson = { ...packageJson };
|
|
58
|
-
const violations = [];
|
|
59
|
-
for (const dependency of Object.keys(dependencies)) {
|
|
60
|
-
for (const bannedDependency of bannedDependencies) {
|
|
61
|
-
if (minimatch_1.default(dependency, bannedDependency)) {
|
|
62
|
-
violations.push(dependency);
|
|
63
|
-
delete newPackageJson[block][dependency];
|
|
64
|
-
}
|
|
95
|
+
function populateProblemsExact(banned, dependencies, violations) {
|
|
96
|
+
for (const dependency of dependencies) {
|
|
97
|
+
if (banned.has(dependency)) {
|
|
98
|
+
violations.add(dependency);
|
|
65
99
|
}
|
|
66
100
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
fixer: () => {
|
|
74
|
-
utils_1.writeJson(packagePath, newPackageJson);
|
|
75
|
-
},
|
|
76
|
-
});
|
|
101
|
+
}
|
|
102
|
+
function populateProblemsGlobs(bannedDependencyGlobs, dependencies, violations) {
|
|
103
|
+
for (const dependency of dependencies) {
|
|
104
|
+
if ((0, utils_1.matchesAnyGlob)(dependency, bannedDependencyGlobs)) {
|
|
105
|
+
violations.add(dependency);
|
|
106
|
+
}
|
|
77
107
|
}
|
|
78
108
|
}
|
|
79
|
-
function
|
|
80
|
-
|
|
81
|
-
bannedDependencies) {
|
|
109
|
+
// This function is slow. God help you if you use this on a big repo
|
|
110
|
+
function checkTransitives(context, banned) {
|
|
82
111
|
const graphService = new packageDependencyGraphService_1.PackageDependencyGraphService();
|
|
83
|
-
const root = graphService.buildDependencyGraph(path_1.default.resolve(context.getPackageJsonPath()));
|
|
112
|
+
const root = graphService.buildDependencyGraph(path_1.default.resolve(context.getPackageJsonPath()), context.host);
|
|
84
113
|
for (const { dependencies, importPath } of graphService.traverse(root)) {
|
|
85
114
|
for (const [dependency] of dependencies) {
|
|
86
|
-
if (
|
|
115
|
+
if (banned.has(dependency)) {
|
|
87
116
|
// Remove the starting package since it's obvious in CLI output.
|
|
88
117
|
const [, ...importPathWithoutRoot] = importPath;
|
|
89
118
|
const pathing = [...importPathWithoutRoot.map(nameOrPackageJsonPath), dependency].join(" -> ");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bannedDependencies.js","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,+
|
|
1
|
+
{"version":3,"file":"bannedDependencies.js","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { RuleModule } from "@monorepolint/core";
|
|
8
8
|
import * as r from "runtypes";
|
|
9
|
-
declare const Options: r.
|
|
10
|
-
ignoredDependencies: r.
|
|
11
|
-
}, false>, r.Literal<undefined
|
|
9
|
+
declare const Options: r.Union<[r.Record<{
|
|
10
|
+
ignoredDependencies: r.Union<[r.Array<r.String, false>, r.Literal<undefined>]>;
|
|
11
|
+
}, false>, r.Literal<undefined>]>;
|
|
12
12
|
export declare type Options = r.Static<typeof Options>;
|
|
13
|
-
export declare const consistentDependencies: RuleModule<r.
|
|
14
|
-
ignoredDependencies: r.
|
|
15
|
-
}, false>, r.Literal<undefined
|
|
13
|
+
export declare const consistentDependencies: RuleModule<r.Union<[r.Record<{
|
|
14
|
+
ignoredDependencies: r.Union<[r.Array<r.String, false>, r.Literal<undefined>]>;
|
|
15
|
+
}, false>, r.Literal<undefined>]>>;
|
|
16
16
|
export {};
|
|
17
17
|
//# sourceMappingURL=consistentDependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consistentDependencies.d.ts","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"consistentDependencies.d.ts","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,QAAA,MAAM,OAAO;;iCAIK,CAAC;AACnB,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAI/C,eAAO,MAAM,sBAAsB;;kCAOJ,CAAC"}
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.consistentDependencies = void 0;
|
|
10
10
|
const tslib_1 = require("tslib");
|
|
11
|
-
const utils_1 = require("@monorepolint/utils");
|
|
12
11
|
const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
|
|
13
12
|
const r = tslib_1.__importStar(require("runtypes"));
|
|
14
13
|
const Options = r
|
|
@@ -47,11 +46,11 @@ function checkDeps(context, args, block) {
|
|
|
47
46
|
context.addError({
|
|
48
47
|
file: packagePath,
|
|
49
48
|
message: `Inconsistent ${block} with root in package.json`,
|
|
50
|
-
longMessage: jest_diff_1.default(expectedDependencies, dependencies, { expand: true }),
|
|
49
|
+
longMessage: (0, jest_diff_1.default)(expectedDependencies, dependencies, { expand: true }),
|
|
51
50
|
fixer: () => {
|
|
52
51
|
const newPackageJson = { ...packageJson };
|
|
53
52
|
newPackageJson[block] = expectedDependencies;
|
|
54
|
-
|
|
53
|
+
context.host.writeJson(packagePath, newPackageJson);
|
|
55
54
|
},
|
|
56
55
|
});
|
|
57
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consistentDependencies.js","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH
|
|
1
|
+
{"version":3,"file":"consistentDependencies.js","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,kEAA6B;AAC7B,oDAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC;KACd,MAAM,CAAC;IACN,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CACvD,CAAC;KACD,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAGnB,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE3B,QAAA,sBAAsB,GAAG;IACpC,KAAK,EAAE,SAAS,4BAA4B,CAAC,OAAgB,EAAE,IAAa;QAC1E,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC5C,0DAA0D;IAC5D,CAAC;IACD,cAAc,EAAE,OAAO;CACM,CAAC;AAEhC,SAAS,SAAS,CAAC,OAAgB,EAAE,IAAa,EAAE,KAA8D;;IAChH,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,cAAc,EAAE,CAAC;IAC5E,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,mCAAI,EAAE,CAAC;IACpD,MAAM,WAAW,GACf,qBAAqB,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QACvD,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAE/C,IAAI,YAAY,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3D,OAAO;KACR;IAED,MAAM,oBAAoB,GAAG;QAC3B,GAAG,YAAY;QACf,GAAG,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;KACzC,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;QACzE,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,gBAAgB,KAAK,4BAA4B;YAC1D,WAAW,EAAE,IAAA,mBAAI,EAAC,oBAAoB,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvE,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,cAAc,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACtD,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAA0B,EAAE,QAAgC;IAC9E,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACvC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YAC1E,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SACtB;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAI,GAAsB,EAAE,UAA6B;IACpE,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACrB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { RuleModule } from "@monorepolint/core";
|
|
8
8
|
import * as r from "runtypes";
|
|
9
9
|
export declare const Options: r.Record<{
|
|
10
|
-
matchDependencyVersions: r.
|
|
10
|
+
matchDependencyVersions: r.Dictionary<r.Union<[r.String, r.Array<r.String, false>]>, string | number | symbol>;
|
|
11
11
|
}, false>;
|
|
12
12
|
export declare type Options = r.Static<typeof Options>;
|
|
13
13
|
export declare const consistentVersions: RuleModule<typeof Options>;
|