@monorepolint/rules 0.5.0-alpha.98 → 0.5.0-beta.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.
Files changed (156) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.json +47 -26
  3. package/src/__tests__/alphabeticalScripts.spec.ts +6 -5
  4. package/src/__tests__/bannedDependencies.spec.ts +5 -7
  5. package/src/__tests__/consistentDependencies.spec.ts +6 -5
  6. package/src/__tests__/consistentVersions.spec.ts +5 -4
  7. package/src/__tests__/fileContents.spec.ts +44 -17
  8. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +39 -38
  9. package/src/__tests__/nestedWorkspaces.spec.ts +5 -4
  10. package/src/__tests__/packageEntry.spec.ts +43 -32
  11. package/src/__tests__/packageOrder.spec.ts +23 -14
  12. package/src/__tests__/packageScript.spec.ts +61 -43
  13. package/src/__tests__/requireDependency.spec.ts +8 -7
  14. package/src/__tests__/utils.ts +8 -4
  15. package/src/alphabeticalDependencies.ts +7 -12
  16. package/src/alphabeticalScripts.ts +7 -12
  17. package/src/bannedDependencies.ts +9 -12
  18. package/src/consistentDependencies.ts +9 -10
  19. package/src/consistentVersions.ts +6 -8
  20. package/src/fileContents.ts +17 -16
  21. package/src/index.ts +13 -13
  22. package/src/mustSatisfyPeerDependencies.ts +16 -17
  23. package/src/nestedWorkspaces.ts +10 -12
  24. package/src/packageEntry.ts +7 -9
  25. package/src/packageOrder.ts +12 -10
  26. package/src/packageScript.ts +12 -19
  27. package/src/public/util.ts +1 -0
  28. package/src/requireDependency.ts +9 -10
  29. package/src/standardTsconfig.ts +10 -11
  30. package/src/util/checkAlpha.ts +1 -1
  31. package/src/util/makeRule.ts +29 -0
  32. package/src/util/packageDependencyGraphService.ts +2 -2
  33. package/tsconfig.json +7 -2
  34. package/lib/__tests__/alphabeticalScripts.spec.d.ts +0 -8
  35. package/lib/__tests__/alphabeticalScripts.spec.d.ts.map +0 -1
  36. package/lib/__tests__/alphabeticalScripts.spec.js +0 -61
  37. package/lib/__tests__/alphabeticalScripts.spec.js.map +0 -1
  38. package/lib/__tests__/bannedDependencies.spec.d.ts +0 -2
  39. package/lib/__tests__/bannedDependencies.spec.d.ts.map +0 -1
  40. package/lib/__tests__/bannedDependencies.spec.js +0 -161
  41. package/lib/__tests__/bannedDependencies.spec.js.map +0 -1
  42. package/lib/__tests__/consistentDependencies.spec.d.ts +0 -2
  43. package/lib/__tests__/consistentDependencies.spec.d.ts.map +0 -1
  44. package/lib/__tests__/consistentDependencies.spec.js +0 -115
  45. package/lib/__tests__/consistentDependencies.spec.js.map +0 -1
  46. package/lib/__tests__/consistentVersions.spec.d.ts +0 -8
  47. package/lib/__tests__/consistentVersions.spec.d.ts.map +0 -1
  48. package/lib/__tests__/consistentVersions.spec.js +0 -183
  49. package/lib/__tests__/consistentVersions.spec.js.map +0 -1
  50. package/lib/__tests__/fileContents.spec.d.ts +0 -8
  51. package/lib/__tests__/fileContents.spec.d.ts.map +0 -1
  52. package/lib/__tests__/fileContents.spec.js +0 -59
  53. package/lib/__tests__/fileContents.spec.js.map +0 -1
  54. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts +0 -8
  55. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +0 -1
  56. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +0 -1063
  57. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +0 -1
  58. package/lib/__tests__/nestedWorkspaces.spec.d.ts +0 -2
  59. package/lib/__tests__/nestedWorkspaces.spec.d.ts.map +0 -1
  60. package/lib/__tests__/nestedWorkspaces.spec.js +0 -124
  61. package/lib/__tests__/nestedWorkspaces.spec.js.map +0 -1
  62. package/lib/__tests__/packageEntry.spec.d.ts +0 -8
  63. package/lib/__tests__/packageEntry.spec.d.ts.map +0 -1
  64. package/lib/__tests__/packageEntry.spec.js +0 -144
  65. package/lib/__tests__/packageEntry.spec.js.map +0 -1
  66. package/lib/__tests__/packageOrder.spec.d.ts +0 -8
  67. package/lib/__tests__/packageOrder.spec.d.ts.map +0 -1
  68. package/lib/__tests__/packageOrder.spec.js +0 -116
  69. package/lib/__tests__/packageOrder.spec.js.map +0 -1
  70. package/lib/__tests__/packageScript.spec.d.ts +0 -8
  71. package/lib/__tests__/packageScript.spec.d.ts.map +0 -1
  72. package/lib/__tests__/packageScript.spec.js +0 -171
  73. package/lib/__tests__/packageScript.spec.js.map +0 -1
  74. package/lib/__tests__/requireDependency.spec.d.ts +0 -2
  75. package/lib/__tests__/requireDependency.spec.d.ts.map +0 -1
  76. package/lib/__tests__/requireDependency.spec.js +0 -123
  77. package/lib/__tests__/requireDependency.spec.js.map +0 -1
  78. package/lib/__tests__/utils.d.ts +0 -76
  79. package/lib/__tests__/utils.d.ts.map +0 -1
  80. package/lib/__tests__/utils.js +0 -83
  81. package/lib/__tests__/utils.js.map +0 -1
  82. package/lib/alphabeticalDependencies.d.ts +0 -23
  83. package/lib/alphabeticalDependencies.d.ts.map +0 -1
  84. package/lib/alphabeticalDependencies.js +0 -24
  85. package/lib/alphabeticalDependencies.js.map +0 -1
  86. package/lib/alphabeticalScripts.d.ts +0 -23
  87. package/lib/alphabeticalScripts.d.ts.map +0 -1
  88. package/lib/alphabeticalScripts.js +0 -22
  89. package/lib/alphabeticalScripts.js.map +0 -1
  90. package/lib/bannedDependencies.d.ts +0 -134
  91. package/lib/bannedDependencies.d.ts.map +0 -1
  92. package/lib/bannedDependencies.js +0 -133
  93. package/lib/bannedDependencies.js.map +0 -1
  94. package/lib/consistentDependencies.d.ts +0 -38
  95. package/lib/consistentDependencies.d.ts.map +0 -1
  96. package/lib/consistentDependencies.js +0 -77
  97. package/lib/consistentDependencies.js.map +0 -1
  98. package/lib/consistentVersions.d.ts +0 -47
  99. package/lib/consistentVersions.d.ts.map +0 -1
  100. package/lib/consistentVersions.js +0 -96
  101. package/lib/consistentVersions.js.map +0 -1
  102. package/lib/fileContents.d.ts +0 -111
  103. package/lib/fileContents.d.ts.map +0 -1
  104. package/lib/fileContents.js +0 -84
  105. package/lib/fileContents.js.map +0 -1
  106. package/lib/index.d.ts +0 -20
  107. package/lib/index.d.ts.map +0 -1
  108. package/lib/index.js +0 -49
  109. package/lib/index.js.map +0 -1
  110. package/lib/mustSatisfyPeerDependencies.d.ts +0 -721
  111. package/lib/mustSatisfyPeerDependencies.d.ts.map +0 -1
  112. package/lib/mustSatisfyPeerDependencies.js +0 -638
  113. package/lib/mustSatisfyPeerDependencies.js.map +0 -1
  114. package/lib/nestedWorkspaces.d.ts +0 -24
  115. package/lib/nestedWorkspaces.d.ts.map +0 -1
  116. package/lib/nestedWorkspaces.js +0 -52
  117. package/lib/nestedWorkspaces.js.map +0 -1
  118. package/lib/packageEntry.d.ts +0 -115
  119. package/lib/packageEntry.d.ts.map +0 -1
  120. package/lib/packageEntry.js +0 -77
  121. package/lib/packageEntry.js.map +0 -1
  122. package/lib/packageOrder.d.ts +0 -33
  123. package/lib/packageOrder.d.ts.map +0 -1
  124. package/lib/packageOrder.js +0 -105
  125. package/lib/packageOrder.js.map +0 -1
  126. package/lib/packageScript.d.ts +0 -102
  127. package/lib/packageScript.d.ts.map +0 -1
  128. package/lib/packageScript.js +0 -92
  129. package/lib/packageScript.js.map +0 -1
  130. package/lib/requireDependency.d.ts +0 -99
  131. package/lib/requireDependency.d.ts.map +0 -1
  132. package/lib/requireDependency.js +0 -67
  133. package/lib/requireDependency.js.map +0 -1
  134. package/lib/standardTsconfig.d.ts +0 -113
  135. package/lib/standardTsconfig.d.ts.map +0 -1
  136. package/lib/standardTsconfig.js +0 -118
  137. package/lib/standardTsconfig.js.map +0 -1
  138. package/lib/util/checkAlpha.d.ts +0 -10
  139. package/lib/util/checkAlpha.d.ts.map +0 -1
  140. package/lib/util/checkAlpha.js +0 -51
  141. package/lib/util/checkAlpha.js.map +0 -1
  142. package/lib/util/createNewRuleConversion.d.ts +0 -30
  143. package/lib/util/createNewRuleConversion.d.ts.map +0 -1
  144. package/lib/util/createNewRuleConversion.js +0 -33
  145. package/lib/util/createNewRuleConversion.js.map +0 -1
  146. package/lib/util/makeDirectory.d.ts +0 -8
  147. package/lib/util/makeDirectory.d.ts.map +0 -1
  148. package/lib/util/makeDirectory.js +0 -28
  149. package/lib/util/makeDirectory.js.map +0 -1
  150. package/lib/util/packageDependencyGraphService.d.ts +0 -37
  151. package/lib/util/packageDependencyGraphService.d.ts.map +0 -1
  152. package/lib/util/packageDependencyGraphService.js +0 -70
  153. package/lib/util/packageDependencyGraphService.js.map +0 -1
  154. package/src/util/createNewRuleConversion.ts +0 -38
  155. package/tsconfig.tsbuildinfo +0 -1
  156. /package/{jest.config.js → jest.config.cjs} +0 -0
@@ -1,134 +0,0 @@
1
- /*!
2
- * Copyright 2019 Palantir Technologies, Inc.
3
- *
4
- * Licensed under the MIT license. See LICENSE file in the project root for details.
5
- *
6
- */
7
- import { Context, RuleModule } from "@monorepolint/config";
8
- import * as r from "runtypes";
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>]>>;
20
- bannedTransitiveDependencies: r.Array<r.String, false>;
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>]>;
28
- export declare type Options = r.Static<typeof Options>;
29
- export declare const bannedDependencies: RuleModule<typeof Options> & {
30
- printStats: () => void;
31
- };
32
- export declare const BannedDependencies: {
33
- new (ruleEntry: import("@monorepolint/config").RuleEntry<{
34
- bannedDependencies: string[] | {
35
- glob?: string[] | undefined;
36
- exact?: string[] | undefined;
37
- };
38
- bannedTransitiveDependencies?: undefined;
39
- } | {
40
- bannedTransitiveDependencies: string[];
41
- bannedDependencies?: string[] | {
42
- glob?: string[] | undefined;
43
- exact?: string[] | undefined;
44
- } | undefined;
45
- } | {
46
- bannedDependencies?: string[] | {
47
- glob?: string[] | undefined;
48
- exact?: string[] | undefined;
49
- } | undefined;
50
- bannedTransitiveDependencies?: string[] | undefined;
51
- }>): {
52
- readonly id: string;
53
- options: {
54
- bannedDependencies: string[] | {
55
- glob?: string[] | undefined;
56
- exact?: string[] | undefined;
57
- };
58
- bannedTransitiveDependencies?: undefined;
59
- } | {
60
- bannedTransitiveDependencies: string[];
61
- bannedDependencies?: string[] | {
62
- glob?: string[] | undefined;
63
- exact?: string[] | undefined;
64
- } | undefined;
65
- } | {
66
- bannedDependencies?: string[] | {
67
- glob?: string[] | undefined;
68
- exact?: string[] | undefined;
69
- } | undefined;
70
- bannedTransitiveDependencies?: string[] | undefined;
71
- } | undefined;
72
- readonly name: string;
73
- checkFunc: import("@monorepolint/config").Checker<r.Union<[r.Record<{
74
- bannedDependencies: r.Union<[r.Array<r.String, false>, r.Record<{
75
- glob: r.Optional<r.Array<r.String, false>>;
76
- exact: r.Optional<r.Array<r.String, false>>;
77
- }, false>]>;
78
- bannedTransitiveDependencies: r.Optional<r.Literal<undefined>>;
79
- }, false>, r.Record<{
80
- bannedDependencies: r.Optional<r.Union<[r.Array<r.String, false>, r.Record<{
81
- glob: r.Optional<r.Array<r.String, false>>;
82
- exact: r.Optional<r.Array<r.String, false>>;
83
- }, false>]>>;
84
- bannedTransitiveDependencies: r.Array<r.String, false>;
85
- }, false>, r.Record<{
86
- bannedDependencies: r.Optional<r.Union<[r.Array<r.String, false>, r.Record<{
87
- glob: r.Optional<r.Array<r.String, false>>;
88
- exact: r.Optional<r.Array<r.String, false>>;
89
- }, false>]>>;
90
- bannedTransitiveDependencies: r.Optional<r.Array<r.String, false>>;
91
- }, false>]>>;
92
- readonly optionsRuntype: r.Union<[r.Record<{
93
- bannedDependencies: r.Union<[r.Array<r.String, false>, r.Record<{
94
- glob: r.Optional<r.Array<r.String, false>>;
95
- exact: r.Optional<r.Array<r.String, false>>;
96
- }, false>]>;
97
- bannedTransitiveDependencies: r.Optional<r.Literal<undefined>>;
98
- }, false>, r.Record<{
99
- bannedDependencies: r.Optional<r.Union<[r.Array<r.String, false>, r.Record<{
100
- glob: r.Optional<r.Array<r.String, false>>;
101
- exact: r.Optional<r.Array<r.String, false>>;
102
- }, false>]>>;
103
- bannedTransitiveDependencies: r.Array<r.String, false>;
104
- }, false>, r.Record<{
105
- bannedDependencies: r.Optional<r.Union<[r.Array<r.String, false>, r.Record<{
106
- glob: r.Optional<r.Array<r.String, false>>;
107
- exact: r.Optional<r.Array<r.String, false>>;
108
- }, false>]>>;
109
- bannedTransitiveDependencies: r.Optional<r.Array<r.String, false>>;
110
- }, false>]>;
111
- readonly ruleEntry: import("@monorepolint/config").RuleEntry<{
112
- bannedDependencies: string[] | {
113
- glob?: string[] | undefined;
114
- exact?: string[] | undefined;
115
- };
116
- bannedTransitiveDependencies?: undefined;
117
- } | {
118
- bannedTransitiveDependencies: string[];
119
- bannedDependencies?: string[] | {
120
- glob?: string[] | undefined;
121
- exact?: string[] | undefined;
122
- } | undefined;
123
- } | {
124
- bannedDependencies?: string[] | {
125
- glob?: string[] | undefined;
126
- exact?: string[] | undefined;
127
- } | undefined;
128
- bannedTransitiveDependencies?: string[] | undefined;
129
- }>;
130
- check: (context: Context) => void | Promise<void>;
131
- };
132
- };
133
- export {};
134
- //# sourceMappingURL=bannedDependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bannedDependencies.d.ts","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAc9B,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;AACF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoE,CAAC"}
@@ -1,133 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright 2019 Palantir Technologies, Inc.
4
- *
5
- * Licensed under the MIT license. See LICENSE file in the project root for details.
6
- *
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.BannedDependencies = exports.bannedDependencies = void 0;
10
- const tslib_1 = require("tslib");
11
- const utils_1 = require("@monorepolint/utils");
12
- const utils_2 = require("@monorepolint/utils");
13
- const path_1 = tslib_1.__importDefault(require("path"));
14
- const r = tslib_1.__importStar(require("runtypes"));
15
- const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
16
- const packageDependencyGraphService_1 = require("./util/packageDependencyGraphService");
17
- // FIXME: This rule is messed. bannedTransitiveDependencies doesnt glob
18
- const bannedDepGlobsField = r.Union(r.Array(r.String), r.Record({
19
- glob: r.Array(r.String).optional(),
20
- exact: r.Array(r.String).optional(),
21
- }));
22
- const Options = r.Union(r.Record({
23
- bannedDependencies: bannedDepGlobsField,
24
- bannedTransitiveDependencies: r.Undefined.optional(),
25
- }), r.Record({
26
- bannedDependencies: bannedDepGlobsField.optional(),
27
- bannedTransitiveDependencies: r.Array(r.String),
28
- }), r.Record({
29
- bannedDependencies: bannedDepGlobsField.optional(),
30
- bannedTransitiveDependencies: r.Array(r.String).optional(),
31
- }));
32
- /**
33
- * We use this locally to avoid making a billion sets. Because check is called once per package
34
- * (with the exact same config object reference) we can save quite a bit of time by reusing this cache.
35
- */
36
- const setCache = new Map();
37
- const aggregateTiming = new utils_2.AggregateTiming(":bannedDependencies stats");
38
- exports.bannedDependencies = {
39
- check: function expectAllowedDependencies(context, opts, extra) {
40
- var _a;
41
- aggregateTiming.start((_a = extra === null || extra === void 0 ? void 0 : extra.id) !== null && _a !== void 0 ? _a : "unknown id");
42
- const packageJson = context.getPackageJson();
43
- const packagePath = context.getPackageJsonPath();
44
- const curDeps = packageJson.dependencies && Object.keys(packageJson.dependencies);
45
- const curDevDeps = packageJson.devDependencies && Object.keys(packageJson.devDependencies);
46
- const curPeerDeps = packageJson.peerDependencies && Object.keys(packageJson.peerDependencies);
47
- const { bannedDependencies: banned, bannedTransitiveDependencies: transitives } = opts;
48
- const globs = banned && (Array.isArray(banned) ? banned : banned.glob);
49
- const exacts = banned && (Array.isArray(banned) ? undefined : banned.exact);
50
- const violations = new Set();
51
- if (globs) {
52
- if (curDeps)
53
- populateProblemsGlobs(globs, curDeps, violations);
54
- if (curDevDeps)
55
- populateProblemsGlobs(globs, curDevDeps, violations);
56
- if (curPeerDeps)
57
- populateProblemsGlobs(globs, curPeerDeps, violations);
58
- }
59
- if (exacts) {
60
- let set = setCache.get(exacts);
61
- if (set === undefined) {
62
- set = new Set(exacts);
63
- setCache.set(exacts, set);
64
- }
65
- if (curDeps)
66
- populateProblemsExact(set, curDeps, violations);
67
- if (curDevDeps)
68
- populateProblemsExact(set, curDevDeps, violations);
69
- if (curPeerDeps)
70
- populateProblemsExact(set, curPeerDeps, violations);
71
- }
72
- if (violations.size > 0) {
73
- context.addError({
74
- file: packagePath,
75
- message: `Found ${violations.size} banned dependencies of package.json:\n\t` +
76
- Array.from(violations)
77
- .map((v) => `'${v}'`)
78
- .join(", "),
79
- });
80
- }
81
- if (transitives) {
82
- let set = setCache.get(transitives);
83
- if (set === undefined) {
84
- set = new Set(transitives);
85
- setCache.set(transitives, set);
86
- }
87
- checkTransitives(context, set);
88
- }
89
- aggregateTiming.stop();
90
- },
91
- optionsRuntype: Options,
92
- printStats: () => {
93
- aggregateTiming.printResults();
94
- },
95
- };
96
- exports.BannedDependencies = (0, createNewRuleConversion_1.createNewRuleConversion)("BannedDependencies", exports.bannedDependencies);
97
- function populateProblemsExact(banned, dependencies, violations) {
98
- for (const dependency of dependencies) {
99
- if (banned.has(dependency)) {
100
- violations.add(dependency);
101
- }
102
- }
103
- }
104
- function populateProblemsGlobs(bannedDependencyGlobs, dependencies, violations) {
105
- for (const dependency of dependencies) {
106
- if ((0, utils_1.matchesAnyGlob)(dependency, bannedDependencyGlobs)) {
107
- violations.add(dependency);
108
- }
109
- }
110
- }
111
- // This function is slow. God help you if you use this on a big repo
112
- function checkTransitives(context, banned) {
113
- const graphService = new packageDependencyGraphService_1.PackageDependencyGraphService();
114
- const root = graphService.buildDependencyGraph(path_1.default.resolve(context.getPackageJsonPath()), context.host);
115
- for (const { dependencies, importPath } of graphService.traverse(root)) {
116
- for (const [dependency] of dependencies) {
117
- if (banned.has(dependency)) {
118
- // Remove the starting package since it's obvious in CLI output.
119
- const [, ...importPathWithoutRoot] = importPath;
120
- const pathing = [...importPathWithoutRoot.map(nameOrPackageJsonPath), dependency].join(" -> ");
121
- context.addError({
122
- file: root.paths.packageJsonPath,
123
- message: `Banned transitive dependencies in repo: ${pathing}`,
124
- });
125
- }
126
- }
127
- }
128
- }
129
- function nameOrPackageJsonPath(node) {
130
- var _a;
131
- return (_a = node.packageJson.name) !== null && _a !== void 0 ? _a : node.paths.packageJsonPath;
132
- }
133
- //# sourceMappingURL=bannedDependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bannedDependencies.js","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- /*!
2
- * Copyright 2019 Palantir Technologies, Inc.
3
- *
4
- * Licensed under the MIT license. See LICENSE file in the project root for details.
5
- *
6
- */
7
- import { Context, RuleModule } from "@monorepolint/config";
8
- import * as r from "runtypes";
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
- export declare type Options = r.Static<typeof Options>;
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
- export declare const ConsistentDependencies: {
17
- new (ruleEntry: import("@monorepolint/config").RuleEntry<{
18
- ignoredDependencies: string[] | undefined;
19
- } | undefined>): {
20
- readonly id: string;
21
- options: {
22
- ignoredDependencies: string[] | undefined;
23
- } | undefined;
24
- readonly name: string;
25
- checkFunc: import("@monorepolint/config").Checker<r.Union<[r.Record<{
26
- ignoredDependencies: r.Union<[r.Array<r.String, false>, r.Literal<undefined>]>;
27
- }, false>, r.Literal<undefined>]>>;
28
- readonly optionsRuntype: r.Union<[r.Record<{
29
- ignoredDependencies: r.Union<[r.Array<r.String, false>, r.Literal<undefined>]>;
30
- }, false>, r.Literal<undefined>]>;
31
- readonly ruleEntry: import("@monorepolint/config").RuleEntry<{
32
- ignoredDependencies: string[] | undefined;
33
- } | undefined>;
34
- check: (context: Context) => void | Promise<void>;
35
- };
36
- };
37
- export {};
38
- //# sourceMappingURL=consistentDependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consistentDependencies.d.ts","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,OAAO;;iCAIK,CAAC;AACnB,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAI/C,eAAO,MAAM,sBAAsB;;kCAOJ,CAAC;AAEhC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;CAA4E,CAAC"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright 2019 Palantir Technologies, Inc.
4
- *
5
- * Licensed under the MIT license. See LICENSE file in the project root for details.
6
- *
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ConsistentDependencies = exports.consistentDependencies = void 0;
10
- const tslib_1 = require("tslib");
11
- const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
- const r = tslib_1.__importStar(require("runtypes"));
13
- const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
14
- const Options = r
15
- .Record({
16
- ignoredDependencies: r.Array(r.String).Or(r.Undefined),
17
- })
18
- .Or(r.Undefined);
19
- const skippedVersions = ["*", "latest"];
20
- exports.consistentDependencies = {
21
- check: function expectConsistentDependencies(context, args) {
22
- checkDeps(context, args, "dependencies");
23
- checkDeps(context, args, "devDependencies");
24
- // we don't check peer deps since they can be more lenient
25
- },
26
- optionsRuntype: Options,
27
- };
28
- exports.ConsistentDependencies = (0, createNewRuleConversion_1.createNewRuleConversion)("ConsistentDependencies", exports.consistentDependencies);
29
- function checkDeps(context, args, block) {
30
- var _a;
31
- const packageJson = context.getPackageJson();
32
- const packagePath = context.getPackageJsonPath();
33
- const dependencies = packageJson[block];
34
- const workspacePackageJson = context.getWorkspaceContext().getPackageJson();
35
- const workspaceDependencies = workspacePackageJson[block];
36
- const ignoredDeps = (_a = args === null || args === void 0 ? void 0 : args.ignoredDependencies) !== null && _a !== void 0 ? _a : [];
37
- const depsToCheck = workspaceDependencies == null || ignoredDeps.length === 0
38
- ? workspaceDependencies
39
- : omit(workspaceDependencies, ignoredDeps);
40
- if (dependencies === undefined || depsToCheck === undefined) {
41
- return;
42
- }
43
- const expectedDependencies = {
44
- ...dependencies,
45
- ...filterKeys(depsToCheck, dependencies),
46
- };
47
- if (JSON.stringify(dependencies) !== JSON.stringify(expectedDependencies)) {
48
- context.addError({
49
- file: packagePath,
50
- message: `Inconsistent ${block} with root in package.json`,
51
- longMessage: (0, jest_diff_1.default)(expectedDependencies, dependencies, { expand: true }),
52
- fixer: () => {
53
- const newPackageJson = { ...packageJson };
54
- newPackageJson[block] = expectedDependencies;
55
- context.host.writeJson(packagePath, newPackageJson);
56
- },
57
- });
58
- }
59
- }
60
- function filterKeys(ob, filterOb) {
61
- const newOb = {};
62
- for (const key of Object.keys(filterOb)) {
63
- if (ob[key] !== undefined && skippedVersions.indexOf(filterOb[key]) === -1) {
64
- newOb[key] = ob[key];
65
- }
66
- }
67
- return newOb;
68
- }
69
- function omit(obj, keysToOmit) {
70
- const newObj = {};
71
- const filtered = Object.entries(obj).filter(([key]) => !keysToOmit.includes(key));
72
- for (const [key, value] of filtered) {
73
- newObj[key] = value;
74
- }
75
- return newObj;
76
- }
77
- //# sourceMappingURL=consistentDependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consistentDependencies.js","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /*!
2
- * Copyright 2020 Palantir Technologies, Inc.
3
- *
4
- * Licensed under the MIT license. See LICENSE file in the project root for details.
5
- *
6
- */
7
- import { Context, RuleModule } from "@monorepolint/config";
8
- import * as r from "runtypes";
9
- export declare const Options: r.Record<{
10
- matchDependencyVersions: r.Dictionary<r.Union<[r.String, r.Array<r.String, false>]>, string | number | symbol>;
11
- }, false>;
12
- export declare type Options = r.Static<typeof Options>;
13
- export declare const consistentVersions: RuleModule<typeof Options>;
14
- export declare const ConsistentVersions: {
15
- new (ruleEntry: import("@monorepolint/config").RuleEntry<{
16
- matchDependencyVersions: {
17
- [x: string]: string | string[];
18
- [x: number]: string | string[];
19
- [x: symbol]: string | string[];
20
- };
21
- }>): {
22
- readonly id: string;
23
- options: {
24
- matchDependencyVersions: {
25
- [x: string]: string | string[];
26
- [x: number]: string | string[];
27
- [x: symbol]: string | string[];
28
- };
29
- } | undefined;
30
- readonly name: string;
31
- checkFunc: import("@monorepolint/config").Checker<r.Record<{
32
- matchDependencyVersions: r.Dictionary<r.Union<[r.String, r.Array<r.String, false>]>, string | number | symbol>;
33
- }, false>>;
34
- readonly optionsRuntype: r.Record<{
35
- matchDependencyVersions: r.Dictionary<r.Union<[r.String, r.Array<r.String, false>]>, string | number | symbol>;
36
- }, false>;
37
- readonly ruleEntry: import("@monorepolint/config").RuleEntry<{
38
- matchDependencyVersions: {
39
- [x: string]: string | string[];
40
- [x: number]: string | string[];
41
- [x: symbol]: string | string[];
42
- };
43
- }>;
44
- check: (context: Context) => void | Promise<void>;
45
- };
46
- };
47
- //# sourceMappingURL=consistentVersions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consistentVersions.d.ts","sourceRoot":"","sources":["../src/consistentVersions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,eAAO,MAAM,OAAO;;SAElB,CAAC;AAEH,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,OAAO,CAGzD,CAAC;AAwHF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoE,CAAC"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright 2020 Palantir Technologies, Inc.
4
- *
5
- * Licensed under the MIT license. See LICENSE file in the project root for details.
6
- *
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ConsistentVersions = exports.consistentVersions = exports.Options = void 0;
10
- const tslib_1 = require("tslib");
11
- const utils_1 = require("@monorepolint/utils");
12
- const r = tslib_1.__importStar(require("runtypes"));
13
- const semver_1 = require("semver");
14
- const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
15
- exports.Options = r.Record({
16
- matchDependencyVersions: r.Dictionary(r.Union(r.String, r.Array(r.String))),
17
- });
18
- exports.consistentVersions = {
19
- check: checkConsistentVersions,
20
- optionsRuntype: exports.Options,
21
- };
22
- function checkConsistentVersions(context, options) {
23
- for (const [dependencyPackageName, expectedPackageDependencyValue] of Object.entries(options.matchDependencyVersions)) {
24
- if (Array.isArray(expectedPackageDependencyValue)) {
25
- ensurePackageMatchesSomeVersion(context, dependencyPackageName, expectedPackageDependencyValue);
26
- }
27
- else {
28
- ensurePackageIsCorrectVersion(context, dependencyPackageName, expectedPackageDependencyValue);
29
- }
30
- }
31
- }
32
- const ensurePackageIsCorrectVersion = (context, dependencyPackageName, expectedPackageDependencyValue) => {
33
- const packageJson = context.getPackageJson();
34
- const packageJsonPath = context.getPackageJsonPath();
35
- const expectedPackageDependencyVersion = (0, semver_1.coerce)(expectedPackageDependencyValue);
36
- if (expectedPackageDependencyVersion == null) {
37
- throw new Error(`Malformed expected package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${expectedPackageDependencyValue}'`);
38
- }
39
- const actualPackageDependencyValue = packageJson.dependencies && packageJson.dependencies[dependencyPackageName];
40
- const actualPackageDependencyVersion = (0, semver_1.coerce)(actualPackageDependencyValue);
41
- if (actualPackageDependencyVersion != null &&
42
- actualPackageDependencyVersion.raw !== expectedPackageDependencyVersion.raw) {
43
- context.addError({
44
- file: packageJsonPath,
45
- message: `Expected dependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDependencyValue}' instead.`,
46
- fixer: () => (0, utils_1.mutateJson)(packageJsonPath, context.host, (input) => {
47
- input.dependencies[dependencyPackageName] = expectedPackageDependencyValue;
48
- return input;
49
- }),
50
- });
51
- }
52
- const actualPackageDevDependencyValue = packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];
53
- const actualPackageDevDependencyVersion = (0, semver_1.coerce)(actualPackageDevDependencyValue);
54
- if (actualPackageDevDependencyVersion != null &&
55
- actualPackageDevDependencyVersion.raw !== expectedPackageDependencyVersion.raw) {
56
- context.addError({
57
- file: packageJsonPath,
58
- message: `Expected devDependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDevDependencyValue}' instead`,
59
- fixer: () => (0, utils_1.mutateJson)(packageJsonPath, context.host, (input) => {
60
- input.devDependencies[dependencyPackageName] = expectedPackageDependencyValue;
61
- return input;
62
- }),
63
- });
64
- }
65
- };
66
- const ensurePackageMatchesSomeVersion = (context, dependencyPackageName, acceptedPackageDependencyValues) => {
67
- const packageJson = context.getPackageJson();
68
- const packageJsonPath = context.getPackageJsonPath();
69
- const acceptedPackageDependencyVersions = acceptedPackageDependencyValues.map((acceptedPackageDependencyValue) => {
70
- const acceptedPackageDependencyVersion = (0, semver_1.coerce)(acceptedPackageDependencyValue);
71
- if (acceptedPackageDependencyVersion == null) {
72
- throw new Error(`Malformed accepted package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${acceptedPackageDependencyValue}'`);
73
- }
74
- return acceptedPackageDependencyVersion;
75
- });
76
- const actualPackageDependencyValue = packageJson.dependencies && packageJson.dependencies[dependencyPackageName];
77
- const actualPackageDependencyVersion = (0, semver_1.coerce)(actualPackageDependencyValue);
78
- if (actualPackageDependencyVersion != null &&
79
- acceptedPackageDependencyVersions.every((acceptedPackageDependencyVersion) => actualPackageDependencyVersion.raw !== acceptedPackageDependencyVersion.raw)) {
80
- context.addError({
81
- file: packageJsonPath,
82
- message: `Expected dependency on ${dependencyPackageName} to match one of '${JSON.stringify(acceptedPackageDependencyValues)}', got '${actualPackageDependencyValue}' instead.`,
83
- });
84
- }
85
- const actualPackageDevDependencyValue = packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];
86
- const actualPackageDevDependencyVersion = (0, semver_1.coerce)(actualPackageDevDependencyValue);
87
- if (actualPackageDevDependencyVersion != null &&
88
- acceptedPackageDependencyVersions.every((acceptedPackageDependencyVersion) => actualPackageDevDependencyVersion.raw !== acceptedPackageDependencyVersion.raw)) {
89
- context.addError({
90
- file: packageJsonPath,
91
- message: `Expected devDependency on ${dependencyPackageName} to match one of '${JSON.stringify(acceptedPackageDependencyValues)}', got '${actualPackageDevDependencyValue}' instead.`,
92
- });
93
- }
94
- };
95
- exports.ConsistentVersions = (0, createNewRuleConversion_1.createNewRuleConversion)("ConsistentVersions", exports.consistentVersions);
96
- //# sourceMappingURL=consistentVersions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consistentVersions.js","sourceRoot":"","sources":["../src/consistentVersions.ts"],"names":[],"mappings":"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"}