@monorepolint/rules 0.5.0-alpha.7 → 0.5.0-alpha.70

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 (131) hide show
  1. package/lib/__tests__/alphabeticalScripts.spec.d.ts +8 -0
  2. package/lib/__tests__/alphabeticalScripts.spec.d.ts.map +1 -0
  3. package/lib/__tests__/alphabeticalScripts.spec.js +63 -0
  4. package/lib/__tests__/alphabeticalScripts.spec.js.map +1 -0
  5. package/lib/__tests__/bannedDependencies.spec.d.ts +2 -0
  6. package/lib/__tests__/bannedDependencies.spec.d.ts.map +1 -0
  7. package/lib/__tests__/bannedDependencies.spec.js +103 -0
  8. package/lib/__tests__/bannedDependencies.spec.js.map +1 -0
  9. package/lib/__tests__/consistentDependencies.spec.js +26 -11
  10. package/lib/__tests__/consistentDependencies.spec.js.map +1 -1
  11. package/lib/__tests__/consistentVersions.spec.d.ts +8 -0
  12. package/lib/__tests__/consistentVersions.spec.d.ts.map +1 -0
  13. package/lib/__tests__/consistentVersions.spec.js +182 -0
  14. package/lib/__tests__/consistentVersions.spec.js.map +1 -0
  15. package/lib/__tests__/fileContents.spec.d.ts +8 -0
  16. package/lib/__tests__/fileContents.spec.d.ts.map +1 -0
  17. package/lib/__tests__/fileContents.spec.js +66 -0
  18. package/lib/__tests__/fileContents.spec.js.map +1 -0
  19. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts +8 -0
  20. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +1 -0
  21. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +1062 -0
  22. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +1 -0
  23. package/lib/__tests__/nestedWorkspaces.spec.d.ts +2 -0
  24. package/lib/__tests__/nestedWorkspaces.spec.d.ts.map +1 -0
  25. package/lib/__tests__/nestedWorkspaces.spec.js +122 -0
  26. package/lib/__tests__/nestedWorkspaces.spec.js.map +1 -0
  27. package/lib/__tests__/packageEntry.spec.d.ts +8 -0
  28. package/lib/__tests__/packageEntry.spec.d.ts.map +1 -0
  29. package/lib/__tests__/packageEntry.spec.js +137 -0
  30. package/lib/__tests__/packageEntry.spec.js.map +1 -0
  31. package/lib/__tests__/requireDependency.spec.d.ts +2 -0
  32. package/lib/__tests__/requireDependency.spec.d.ts.map +1 -0
  33. package/lib/__tests__/requireDependency.spec.js +122 -0
  34. package/lib/__tests__/requireDependency.spec.js.map +1 -0
  35. package/lib/__tests__/utils.d.ts +1 -0
  36. package/lib/__tests__/utils.d.ts.map +1 -1
  37. package/lib/__tests__/utils.js +11 -0
  38. package/lib/__tests__/utils.js.map +1 -1
  39. package/lib/alphabeticalDependencies.d.ts +3 -1
  40. package/lib/alphabeticalDependencies.d.ts.map +1 -1
  41. package/lib/alphabeticalDependencies.js +5 -39
  42. package/lib/alphabeticalDependencies.js.map +1 -1
  43. package/lib/alphabeticalScripts.d.ts +12 -0
  44. package/lib/alphabeticalScripts.d.ts.map +1 -0
  45. package/lib/alphabeticalScripts.js +20 -0
  46. package/lib/alphabeticalScripts.js.map +1 -0
  47. package/lib/bannedDependencies.d.ts +12 -3
  48. package/lib/bannedDependencies.d.ts.map +1 -1
  49. package/lib/bannedDependencies.js +59 -14
  50. package/lib/bannedDependencies.js.map +1 -1
  51. package/lib/consistentDependencies.d.ts +8 -1
  52. package/lib/consistentDependencies.d.ts.map +1 -1
  53. package/lib/consistentDependencies.js +28 -9
  54. package/lib/consistentDependencies.js.map +1 -1
  55. package/lib/consistentVersions.d.ts +14 -0
  56. package/lib/consistentVersions.d.ts.map +1 -0
  57. package/lib/consistentVersions.js +94 -0
  58. package/lib/consistentVersions.js.map +1 -0
  59. package/lib/fileContents.d.ts.map +1 -1
  60. package/lib/fileContents.js +6 -2
  61. package/lib/fileContents.js.map +1 -1
  62. package/lib/index.d.ts +5 -0
  63. package/lib/index.d.ts.map +1 -1
  64. package/lib/index.js +18 -8
  65. package/lib/index.js.map +1 -1
  66. package/lib/mustSatisfyPeerDependencies.d.ts +240 -0
  67. package/lib/mustSatisfyPeerDependencies.d.ts.map +1 -0
  68. package/lib/mustSatisfyPeerDependencies.js +634 -0
  69. package/lib/mustSatisfyPeerDependencies.js.map +1 -0
  70. package/lib/nestedWorkspaces.d.ts +13 -0
  71. package/lib/nestedWorkspaces.d.ts.map +1 -0
  72. package/lib/nestedWorkspaces.js +50 -0
  73. package/lib/nestedWorkspaces.js.map +1 -0
  74. package/lib/packageEntry.d.ts +22 -4
  75. package/lib/packageEntry.d.ts.map +1 -1
  76. package/lib/packageEntry.js +45 -16
  77. package/lib/packageEntry.js.map +1 -1
  78. package/lib/packageOrder.d.ts.map +1 -1
  79. package/lib/packageOrder.js +6 -4
  80. package/lib/packageOrder.js.map +1 -1
  81. package/lib/packageScript.js +4 -3
  82. package/lib/packageScript.js.map +1 -1
  83. package/lib/requireDependency.d.ts +15 -0
  84. package/lib/requireDependency.d.ts.map +1 -0
  85. package/lib/requireDependency.js +65 -0
  86. package/lib/requireDependency.js.map +1 -0
  87. package/lib/standardTsconfig.d.ts +12 -0
  88. package/lib/standardTsconfig.d.ts.map +1 -1
  89. package/lib/standardTsconfig.js +17 -7
  90. package/lib/standardTsconfig.js.map +1 -1
  91. package/lib/util/checkAlpha.d.ts +9 -0
  92. package/lib/util/checkAlpha.d.ts.map +1 -0
  93. package/lib/util/checkAlpha.js +48 -0
  94. package/lib/util/checkAlpha.js.map +1 -0
  95. package/lib/util/makeDirectory.d.ts +8 -0
  96. package/lib/util/makeDirectory.d.ts.map +1 -0
  97. package/lib/util/makeDirectory.js +28 -0
  98. package/lib/util/makeDirectory.js.map +1 -0
  99. package/lib/util/packageDependencyGraphService.d.ts +37 -0
  100. package/lib/util/packageDependencyGraphService.d.ts.map +1 -0
  101. package/lib/util/packageDependencyGraphService.js +70 -0
  102. package/lib/util/packageDependencyGraphService.js.map +1 -0
  103. package/package.json +17 -13
  104. package/src/__tests__/alphabeticalScripts.spec.ts +76 -0
  105. package/src/__tests__/bannedDependencies.spec.ts +117 -0
  106. package/src/__tests__/consistentDependencies.spec.ts +29 -10
  107. package/src/__tests__/consistentVersions.spec.ts +218 -0
  108. package/src/__tests__/fileContents.spec.ts +82 -0
  109. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +1183 -0
  110. package/src/__tests__/nestedWorkspaces.spec.ts +146 -0
  111. package/src/__tests__/packageEntry.spec.ts +181 -0
  112. package/src/__tests__/requireDependency.spec.ts +146 -0
  113. package/src/__tests__/utils.ts +12 -0
  114. package/src/alphabeticalDependencies.ts +3 -47
  115. package/src/alphabeticalScripts.ts +19 -0
  116. package/src/bannedDependencies.ts +74 -16
  117. package/src/consistentDependencies.ts +33 -10
  118. package/src/consistentVersions.ts +140 -0
  119. package/src/fileContents.ts +5 -3
  120. package/src/index.ts +5 -0
  121. package/src/mustSatisfyPeerDependencies.ts +735 -0
  122. package/src/nestedWorkspaces.ts +59 -0
  123. package/src/packageEntry.ts +56 -17
  124. package/src/packageOrder.ts +5 -4
  125. package/src/packageScript.ts +3 -3
  126. package/src/requireDependency.ts +69 -0
  127. package/src/standardTsconfig.ts +19 -7
  128. package/src/util/checkAlpha.ts +56 -0
  129. package/src/util/makeDirectory.ts +24 -0
  130. package/src/util/packageDependencyGraphService.ts +111 -0
  131. package/tsconfig.tsbuildinfo +5399 -1591
@@ -6,51 +6,17 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.alphabeticalDependencies = void 0;
9
10
  const tslib_1 = require("tslib");
10
- const utils_1 = require("@monorepolint/utils");
11
- const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
11
  const r = tslib_1.__importStar(require("runtypes"));
12
+ const checkAlpha_1 = require("./util/checkAlpha");
13
13
  const Options = r.Undefined;
14
14
  exports.alphabeticalDependencies = {
15
15
  check: function expectAlphabeticalDependencies(context) {
16
- checkAlpha(context, "dependencies");
17
- checkAlpha(context, "devDependencies");
18
- checkAlpha(context, "peerDependencies");
16
+ checkAlpha_1.checkAlpha(context, "dependencies");
17
+ checkAlpha_1.checkAlpha(context, "devDependencies");
18
+ checkAlpha_1.checkAlpha(context, "peerDependencies");
19
19
  },
20
20
  optionsRuntype: Options,
21
21
  };
22
- function checkAlpha(context, block) {
23
- const packageJson = context.getPackageJson();
24
- const packagePath = context.getPackageJsonPath();
25
- const dependencies = packageJson[block];
26
- if (dependencies === undefined) {
27
- return;
28
- }
29
- const actualOrder = Object.keys(dependencies);
30
- const expectedOrder = actualOrder.slice().sort(); // sort mutates, so we need to copy the previous result
31
- if (!arrayOrderCompare(actualOrder, expectedOrder)) {
32
- context.addError({
33
- file: packagePath,
34
- message: `Incorrect order of ${block} in package.json`,
35
- longMessage: jest_diff_1.default(expectedOrder, actualOrder, { expand: true }),
36
- fixer: () => {
37
- const expectedDependencies = {};
38
- expectedOrder.forEach(dep => {
39
- expectedDependencies[dep] = dependencies[dep];
40
- });
41
- const newPackageJson = { ...packageJson };
42
- newPackageJson[block] = expectedDependencies;
43
- utils_1.writeJson(packagePath, newPackageJson);
44
- },
45
- });
46
- }
47
- }
48
- function arrayOrderCompare(a, b) {
49
- for (let index = 0; index < a.length; index++) {
50
- if (a[index] !== b[index]) {
51
- return false;
52
- }
53
- }
54
- return true;
55
- }
56
22
  //# sourceMappingURL=alphabeticalDependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alphabeticalDependencies.js","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,+CAAgD;AAChD,kEAA6B;AAC7B,oDAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,wBAAwB,GAAG;IACtC,KAAK,EAAE,SAAS,8BAA8B,CAAC,OAAgB;QAC7D,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACpC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,EAAE,OAAO;CACM,CAAC;AAEhC,SAAS,UAAU,CAAC,OAAgB,EAAE,KAA8D;IAClG,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAEjD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO;KACR;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,uDAAuD;IAEzG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;QAClD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,sBAAsB,KAAK,kBAAkB;YACtD,WAAW,EAAE,mBAAI,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/D,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,oBAAoB,GAA2B,EAAE,CAAC;gBAExD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC1B,oBAAoB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;gBAEH,MAAM,cAAc,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC;gBAC7C,iBAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAwB,EAAE,CAAwB;IAC3E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7C,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
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,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACpC,uBAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvC,uBAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,EAAE,OAAO;CACxB,CAAC"}
@@ -0,0 +1,12 @@
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 { RuleModule } from "@monorepolint/core";
8
+ import * as r from "runtypes";
9
+ declare const Options: r.Literal<undefined>;
10
+ export declare const alphabeticalScripts: RuleModule<typeof Options>;
11
+ export {};
12
+ //# sourceMappingURL=alphabeticalScripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alphabeticalScripts.d.ts","sourceRoot":"","sources":["../src/alphabeticalScripts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,OAAO,sBAAc,CAAC;AAE5B,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,OAAO,CAK1D,CAAC"}
@@ -0,0 +1,20 @@
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.alphabeticalScripts = void 0;
10
+ const tslib_1 = require("tslib");
11
+ const r = tslib_1.__importStar(require("runtypes"));
12
+ const checkAlpha_1 = require("./util/checkAlpha");
13
+ const Options = r.Undefined;
14
+ exports.alphabeticalScripts = {
15
+ check: function expectAlphabeticalScripts(context) {
16
+ checkAlpha_1.checkAlpha(context, "scripts");
17
+ },
18
+ optionsRuntype: Options,
19
+ };
20
+ //# sourceMappingURL=alphabeticalScripts.js.map
@@ -0,0 +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,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,cAAc,EAAE,OAAO;CACxB,CAAC"}
@@ -6,10 +6,19 @@
6
6
  */
7
7
  import { RuleModule } from "@monorepolint/core";
8
8
  import * as r from "runtypes";
9
- declare const Options: r.Record<{
9
+ declare const Options: r.Union3<r.Intersect2<r.Record<{
10
10
  bannedDependencies: r.Array<r.String, false>;
11
- }, false>;
12
- declare type Options = r.Static<typeof Options>;
11
+ }, false>, r.Part<{
12
+ bannedTransitiveDependencies: r.Literal<undefined>;
13
+ }>>, r.Intersect2<r.Record<{
14
+ bannedTransitiveDependencies: r.Array<r.String, false>;
15
+ }, false>, r.Part<{
16
+ bannedDependencies: r.Literal<undefined>;
17
+ }>>, r.Record<{
18
+ bannedDependencies: r.Array<r.String, false>;
19
+ bannedTransitiveDependencies: r.Array<r.String, false>;
20
+ }, false>>;
21
+ export declare type Options = r.Static<typeof Options>;
13
22
  export declare const bannedDependencies: RuleModule<typeof Options>;
14
23
  export {};
15
24
  //# 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;AAIzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,QAAA,MAAM,OAAO;;SAEX,CAAC;AAEH,aAAK,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAExC,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,OAAO,CAUzD,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;AAKzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,OAAO;;;;;;;;;;;UAuBZ,CAAC;AAEF,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,OAAO,CAgBzD,CAAC"}
@@ -6,21 +6,42 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.bannedDependencies = void 0;
9
10
  const tslib_1 = require("tslib");
10
11
  const utils_1 = require("@monorepolint/utils");
11
12
  const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
13
  const minimatch_1 = tslib_1.__importDefault(require("minimatch"));
14
+ const path_1 = tslib_1.__importDefault(require("path"));
13
15
  const r = tslib_1.__importStar(require("runtypes"));
14
- const Options = r.Record({
16
+ const packageDependencyGraphService_1 = require("./util/packageDependencyGraphService");
17
+ const Options = r.Union(r
18
+ .Record({
15
19
  bannedDependencies: r.Array(r.String),
16
- });
20
+ })
21
+ .And(r.Partial({
22
+ bannedTransitiveDependencies: r.Undefined,
23
+ })), r
24
+ .Record({
25
+ bannedTransitiveDependencies: r.Array(r.String),
26
+ })
27
+ .And(r.Partial({
28
+ bannedDependencies: r.Undefined,
29
+ })), r.Record({
30
+ bannedDependencies: r.Array(r.String),
31
+ bannedTransitiveDependencies: r.Array(r.String),
32
+ }));
17
33
  exports.bannedDependencies = {
18
34
  check: function expectAllowedDependencies(context, opts) {
19
35
  // tslint:disable-next-line:no-shadowed-variable
20
- const { bannedDependencies } = opts;
21
- checkBanned(context, bannedDependencies, "dependencies");
22
- checkBanned(context, bannedDependencies, "devDependencies");
23
- checkBanned(context, bannedDependencies, "peerDependencies");
36
+ const { bannedDependencies, bannedTransitiveDependencies } = opts;
37
+ if (bannedDependencies) {
38
+ checkBanned(context, bannedDependencies, "dependencies");
39
+ checkBanned(context, bannedDependencies, "devDependencies");
40
+ checkBanned(context, bannedDependencies, "peerDependencies");
41
+ }
42
+ if (bannedTransitiveDependencies) {
43
+ checkTransitives(context, bannedTransitiveDependencies);
44
+ }
24
45
  },
25
46
  optionsRuntype: Options,
26
47
  };
@@ -33,25 +54,49 @@ bannedDependencies, block) {
33
54
  if (dependencies === undefined) {
34
55
  return;
35
56
  }
36
- const expectedDependencies = {};
57
+ const newPackageJson = { ...packageJson };
58
+ const violations = [];
37
59
  for (const dependency of Object.keys(dependencies)) {
38
60
  for (const bannedDependency of bannedDependencies) {
39
- if (!minimatch_1.default(dependency, bannedDependency)) {
40
- expectedDependencies[dependency] = dependencies[dependency];
61
+ if (minimatch_1.default(dependency, bannedDependency)) {
62
+ violations.push(dependency);
63
+ delete newPackageJson[block][dependency];
41
64
  }
42
65
  }
43
66
  }
44
- if (Object.keys(expectedDependencies).length !== Object.keys(dependencies).length) {
67
+ if (violations.length > 0) {
45
68
  context.addError({
46
69
  file: packagePath,
47
- message: `Banned depdendencies in ${block} in package.json`,
48
- longMessage: jest_diff_1.default(expectedDependencies, dependencies, { expand: true }),
70
+ message: `Found ${violations.length} banned dependencies in '${block}' block of package.json:\n\t` +
71
+ violations.map((v) => `'${v}'`).join(", "),
72
+ longMessage: jest_diff_1.default(newPackageJson[block], dependencies, { expand: true }),
49
73
  fixer: () => {
50
- const newPackageJson = { ...packageJson };
51
- newPackageJson[block] = expectedDependencies;
52
74
  utils_1.writeJson(packagePath, newPackageJson);
53
75
  },
54
76
  });
55
77
  }
56
78
  }
79
+ function checkTransitives(context,
80
+ // tslint:disable-next-line: no-shadowed-variable
81
+ bannedDependencies) {
82
+ const graphService = new packageDependencyGraphService_1.PackageDependencyGraphService();
83
+ const root = graphService.buildDependencyGraph(path_1.default.resolve(context.getPackageJsonPath()));
84
+ for (const { dependencies, importPath } of graphService.traverse(root)) {
85
+ for (const [dependency] of dependencies) {
86
+ if (bannedDependencies.includes(dependency)) {
87
+ // Remove the starting package since it's obvious in CLI output.
88
+ const [, ...importPathWithoutRoot] = importPath;
89
+ const pathing = [...importPathWithoutRoot.map(nameOrPackageJsonPath), dependency].join(" -> ");
90
+ context.addError({
91
+ file: root.paths.packageJsonPath,
92
+ message: `Banned transitive dependencies in repo: ${pathing}`,
93
+ });
94
+ }
95
+ }
96
+ }
97
+ }
98
+ function nameOrPackageJsonPath(node) {
99
+ var _a;
100
+ return (_a = node.packageJson.name) !== null && _a !== void 0 ? _a : node.paths.packageJsonPath;
101
+ }
57
102
  //# sourceMappingURL=bannedDependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bannedDependencies.js","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,+CAAgD;AAChD,kEAA6B;AAC7B,kEAAkC;AAClC,oDAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;CACtC,CAAC,CAAC;AAIU,QAAA,kBAAkB,GAA+B;IAC5D,KAAK,EAAE,SAAS,yBAAyB,CAAC,OAAgB,EAAE,IAAa;QACvE,gDAAgD;QAChD,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;QAEpC,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;QACzD,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;QAC5D,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IACD,cAAc,EAAE,OAAO;CACxB,CAAC;AAEF,SAAS,WAAW,CAClB,OAAgB;AAChB,gDAAgD;AAChD,kBAAyC,EACzC,KAA8D;IAE9D,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAEjD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO;KACR;IAED,MAAM,oBAAoB,GAA2B,EAAE,CAAC;IAExD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QAClD,KAAK,MAAM,gBAAgB,IAAI,kBAAkB,EAAE;YACjD,IAAI,CAAC,mBAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE;gBAC5C,oBAAoB,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;aAC7D;SACF;KACF;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;QACjF,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,2BAA2B,KAAK,kBAAkB;YAC3D,WAAW,EAAE,mBAAI,CAAC,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,iBAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC"}
1
+ {"version":3,"file":"bannedDependencies.js","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,12 @@
6
6
  */
7
7
  import { RuleModule } from "@monorepolint/core";
8
8
  import * as r from "runtypes";
9
- export declare const consistentDependencies: RuleModule<r.Literal<undefined>>;
9
+ declare const Options: r.Union2<r.Record<{
10
+ ignoredDependencies: r.Union2<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.Union2<r.Record<{
14
+ ignoredDependencies: r.Union2<r.Array<r.String, false>, r.Literal<undefined>>;
15
+ }, false>, r.Literal<undefined>>>;
16
+ export {};
10
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;AAGzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAK9B,eAAO,MAAM,sBAAsB,kCAOJ,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;AAGzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,QAAA,MAAM,OAAO;;gCAIK,CAAC;AACnB,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAI/C,eAAO,MAAM,sBAAsB;;iCAOJ,CAAC"}
@@ -6,36 +6,47 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.consistentDependencies = void 0;
9
10
  const tslib_1 = require("tslib");
10
11
  const utils_1 = require("@monorepolint/utils");
11
12
  const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
13
  const r = tslib_1.__importStar(require("runtypes"));
13
- const Options = r.Undefined;
14
+ const Options = r
15
+ .Record({
16
+ ignoredDependencies: r.Array(r.String).Or(r.Undefined),
17
+ })
18
+ .Or(r.Undefined);
19
+ const skippedVersions = ["*", "latest"];
14
20
  exports.consistentDependencies = {
15
- check: function expectConsistentDependencies(context) {
16
- checkDeps(context, "dependencies");
17
- checkDeps(context, "devDependencies");
21
+ check: function expectConsistentDependencies(context, args) {
22
+ checkDeps(context, args, "dependencies");
23
+ checkDeps(context, args, "devDependencies");
18
24
  // we don't check peer deps since they can be more lenient
19
25
  },
20
26
  optionsRuntype: Options,
21
27
  };
22
- function checkDeps(context, block) {
28
+ function checkDeps(context, args, block) {
29
+ var _a;
23
30
  const packageJson = context.getPackageJson();
24
31
  const packagePath = context.getPackageJsonPath();
25
32
  const dependencies = packageJson[block];
26
33
  const workspacePackageJson = context.getWorkspaceContext().getPackageJson();
27
34
  const workspaceDependencies = workspacePackageJson[block];
28
- if (dependencies === undefined || workspaceDependencies === undefined) {
35
+ const ignoredDeps = (_a = args === null || args === void 0 ? void 0 : args.ignoredDependencies) !== null && _a !== void 0 ? _a : [];
36
+ const depsToCheck = workspaceDependencies == null || ignoredDeps.length === 0
37
+ ? workspaceDependencies
38
+ : omit(workspaceDependencies, ignoredDeps);
39
+ if (dependencies === undefined || depsToCheck === undefined) {
29
40
  return;
30
41
  }
31
42
  const expectedDependencies = {
32
43
  ...dependencies,
33
- ...filterKeys(workspaceDependencies, dependencies),
44
+ ...filterKeys(depsToCheck, dependencies),
34
45
  };
35
46
  if (JSON.stringify(dependencies) !== JSON.stringify(expectedDependencies)) {
36
47
  context.addError({
37
48
  file: packagePath,
38
- message: `Inconsitent ${block} with root in package.json`,
49
+ message: `Inconsistent ${block} with root in package.json`,
39
50
  longMessage: jest_diff_1.default(expectedDependencies, dependencies, { expand: true }),
40
51
  fixer: () => {
41
52
  const newPackageJson = { ...packageJson };
@@ -48,10 +59,18 @@ function checkDeps(context, block) {
48
59
  function filterKeys(ob, filterOb) {
49
60
  const newOb = {};
50
61
  for (const key of Object.keys(filterOb)) {
51
- if (ob[key] !== undefined && filterOb[key] !== "*") {
62
+ if (ob[key] !== undefined && skippedVersions.indexOf(filterOb[key]) === -1) {
52
63
  newOb[key] = ob[key];
53
64
  }
54
65
  }
55
66
  return newOb;
56
67
  }
68
+ function omit(obj, keysToOmit) {
69
+ const newObj = {};
70
+ const filtered = Object.entries(obj).filter(([key]) => !keysToOmit.includes(key));
71
+ for (const [key, value] of filtered) {
72
+ newObj[key] = value;
73
+ }
74
+ return newObj;
75
+ }
57
76
  //# sourceMappingURL=consistentDependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consistentDependencies.js","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,+CAAgD;AAChD,kEAA6B;AAC7B,oDAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAGf,QAAA,sBAAsB,GAAG;IACpC,KAAK,EAAE,SAAS,4BAA4B,CAAC,OAAgB;QAC3D,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACnC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACtC,0DAA0D;IAC5D,CAAC;IACD,cAAc,EAAE,OAAO;CACM,CAAC;AAEhC,SAAS,SAAS,CAAC,OAAgB,EAAE,KAA8D;IACjG,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,IAAI,YAAY,KAAK,SAAS,IAAI,qBAAqB,KAAK,SAAS,EAAE;QACrE,OAAO;KACR;IAED,MAAM,oBAAoB,GAAG;QAC3B,GAAG,YAAY;QACf,GAAG,UAAU,CAAC,qBAAqB,EAAE,YAAY,CAAC;KACnD,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,eAAe,KAAK,4BAA4B;YACzD,WAAW,EAAE,mBAAI,CAAC,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,iBAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACzC,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,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;YAClD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SACtB;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"consistentDependencies.js","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
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 { RuleModule } from "@monorepolint/core";
8
+ import * as r from "runtypes";
9
+ export declare const Options: r.Record<{
10
+ matchDependencyVersions: r.StringDictionary<r.Union2<r.String, r.Array<r.String, false>>>;
11
+ }, false>;
12
+ export declare type Options = r.Static<typeof Options>;
13
+ export declare const consistentVersions: RuleModule<typeof Options>;
14
+ //# sourceMappingURL=consistentVersions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consistentVersions.d.ts","sourceRoot":"","sources":["../src/consistentVersions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,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"}
@@ -0,0 +1,94 @@
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.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
+ exports.Options = r.Record({
15
+ matchDependencyVersions: r.Dictionary(r.Union(r.String, r.Array(r.String))),
16
+ });
17
+ exports.consistentVersions = {
18
+ check: checkConsistentVersions,
19
+ optionsRuntype: exports.Options,
20
+ };
21
+ function checkConsistentVersions(context, options) {
22
+ for (const [dependencyPackageName, expectedPackageDependencyValue] of Object.entries(options.matchDependencyVersions)) {
23
+ if (Array.isArray(expectedPackageDependencyValue)) {
24
+ ensurePackageMatchesSomeVersion(context, dependencyPackageName, expectedPackageDependencyValue);
25
+ }
26
+ else {
27
+ ensurePackageIsCorrectVersion(context, dependencyPackageName, expectedPackageDependencyValue);
28
+ }
29
+ }
30
+ }
31
+ const ensurePackageIsCorrectVersion = (context, dependencyPackageName, expectedPackageDependencyValue) => {
32
+ const packageJson = context.getPackageJson();
33
+ const packageJsonPath = context.getPackageJsonPath();
34
+ const expectedPackageDependencyVersion = semver_1.coerce(expectedPackageDependencyValue);
35
+ if (expectedPackageDependencyVersion == null) {
36
+ throw new Error(`Malformed expected package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${expectedPackageDependencyValue}'`);
37
+ }
38
+ const actualPackageDependencyValue = packageJson.dependencies && packageJson.dependencies[dependencyPackageName];
39
+ const actualPackageDependencyVersion = semver_1.coerce(actualPackageDependencyValue);
40
+ if (actualPackageDependencyVersion != null &&
41
+ actualPackageDependencyVersion.raw !== expectedPackageDependencyVersion.raw) {
42
+ context.addError({
43
+ file: packageJsonPath,
44
+ message: `Expected dependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDependencyValue}' instead.`,
45
+ fixer: () => utils_1.mutateJson(packageJsonPath, (input) => {
46
+ input.dependencies[dependencyPackageName] = expectedPackageDependencyValue;
47
+ return input;
48
+ }),
49
+ });
50
+ }
51
+ const actualPackageDevDependencyValue = packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];
52
+ const actualPackageDevDependencyVersion = semver_1.coerce(actualPackageDevDependencyValue);
53
+ if (actualPackageDevDependencyVersion != null &&
54
+ actualPackageDevDependencyVersion.raw !== expectedPackageDependencyVersion.raw) {
55
+ context.addError({
56
+ file: packageJsonPath,
57
+ message: `Expected devDependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDevDependencyValue}' instead`,
58
+ fixer: () => utils_1.mutateJson(packageJsonPath, (input) => {
59
+ input.devDependencies[dependencyPackageName] = expectedPackageDependencyValue;
60
+ return input;
61
+ }),
62
+ });
63
+ }
64
+ };
65
+ const ensurePackageMatchesSomeVersion = (context, dependencyPackageName, acceptedPackageDependencyValues) => {
66
+ const packageJson = context.getPackageJson();
67
+ const packageJsonPath = context.getPackageJsonPath();
68
+ const acceptedPackageDependencyVersions = acceptedPackageDependencyValues.map((acceptedPackageDependencyValue) => {
69
+ const acceptedPackageDependencyVersion = semver_1.coerce(acceptedPackageDependencyValue);
70
+ if (acceptedPackageDependencyVersion == null) {
71
+ throw new Error(`Malformed accepted package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${acceptedPackageDependencyValue}'`);
72
+ }
73
+ return acceptedPackageDependencyVersion;
74
+ });
75
+ const actualPackageDependencyValue = packageJson.dependencies && packageJson.dependencies[dependencyPackageName];
76
+ const actualPackageDependencyVersion = semver_1.coerce(actualPackageDependencyValue);
77
+ if (actualPackageDependencyVersion != null &&
78
+ acceptedPackageDependencyVersions.every((acceptedPackageDependencyVersion) => actualPackageDependencyVersion.raw !== acceptedPackageDependencyVersion.raw)) {
79
+ context.addError({
80
+ file: packageJsonPath,
81
+ message: `Expected dependency on ${dependencyPackageName} to match one of '${JSON.stringify(acceptedPackageDependencyValues)}', got '${actualPackageDependencyValue}' instead.`,
82
+ });
83
+ }
84
+ const actualPackageDevDependencyValue = packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];
85
+ const actualPackageDevDependencyVersion = semver_1.coerce(actualPackageDevDependencyValue);
86
+ if (actualPackageDevDependencyVersion != null &&
87
+ acceptedPackageDependencyVersions.every((acceptedPackageDependencyVersion) => actualPackageDevDependencyVersion.raw !== acceptedPackageDependencyVersion.raw)) {
88
+ context.addError({
89
+ file: packageJsonPath,
90
+ message: `Expected devDependency on ${dependencyPackageName} to match one of '${JSON.stringify(acceptedPackageDependencyValues)}', got '${actualPackageDevDependencyValue}' instead.`,
91
+ });
92
+ }
93
+ };
94
+ //# sourceMappingURL=consistentVersions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consistentVersions.js","sourceRoot":"","sources":["../src/consistentVersions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileContents.d.ts","sourceRoot":"","sources":["../src/fileContents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AA2B9B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;WAwBM,CAAC"}
1
+ {"version":3,"file":"fileContents.d.ts","sourceRoot":"","sources":["../src/fileContents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AA4B9B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;WAyBM,CAAC"}
@@ -6,11 +6,13 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.fileContents = void 0;
9
10
  const tslib_1 = require("tslib");
10
11
  const fs_1 = require("fs");
11
12
  const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
13
  const path = tslib_1.__importStar(require("path"));
13
14
  const r = tslib_1.__importStar(require("runtypes"));
15
+ const makeDirectory_1 = require("./util/makeDirectory");
14
16
  const Options = r.Union(r.Record({
15
17
  file: r.String,
16
18
  generator: r.Function,
@@ -32,17 +34,19 @@ exports.fileContents = {
32
34
  const fullPath = path.join(context.packageDir, opts.file);
33
35
  const generator = getGenerator(context, opts);
34
36
  const expectedContent = generator(context);
35
- const actualContent = fs_1.existsSync(fullPath) ? fs_1.readFileSync(fullPath, "utf-8") : undefined;
37
+ const pathExists = fs_1.existsSync(fullPath);
38
+ const actualContent = pathExists ? fs_1.readFileSync(fullPath, "utf-8") : undefined;
36
39
  if (actualContent !== expectedContent) {
37
40
  context.addError({
38
41
  file: fullPath,
39
42
  message: "Expect file contents to match",
40
43
  longMessage: jest_diff_1.default(expectedContent, actualContent, { expand: true }),
41
44
  fixer: () => {
42
- if (expectedContent === undefined) {
45
+ if (expectedContent === undefined && pathExists) {
43
46
  fs_1.unlinkSync(fullPath);
44
47
  }
45
48
  else {
49
+ makeDirectory_1.makeDirectoryRecursively(path.dirname(fullPath));
46
50
  fs_1.writeFileSync(fullPath, expectedContent);
47
51
  }
48
52
  },
@@ -1 +1 @@
1
- {"version":3,"file":"fileContents.js","sourceRoot":"","sources":["../src/fileContents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileContents.js","sourceRoot":"","sources":["../src/fileContents.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -5,11 +5,16 @@
5
5
  *
6
6
  */
7
7
  export { alphabeticalDependencies } from "./alphabeticalDependencies";
8
+ export { alphabeticalScripts } from "./alphabeticalScripts";
8
9
  export { bannedDependencies } from "./bannedDependencies";
9
10
  export { consistentDependencies } from "./consistentDependencies";
11
+ export { consistentVersions } from "./consistentVersions";
10
12
  export { fileContents } from "./fileContents";
13
+ export { mustSatisfyPeerDependencies } from "./mustSatisfyPeerDependencies";
11
14
  export { packageOrder } from "./packageOrder";
12
15
  export { packageEntry } from "./packageEntry";
13
16
  export { packageScript } from "./packageScript";
14
17
  export { standardTsconfig } from "./standardTsconfig";
18
+ export { nestedWorkspaces } from "./nestedWorkspaces";
19
+ export { requireDependency } from "./requireDependency";
15
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -7,19 +7,29 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  var alphabeticalDependencies_1 = require("./alphabeticalDependencies");
10
- exports.alphabeticalDependencies = alphabeticalDependencies_1.alphabeticalDependencies;
10
+ Object.defineProperty(exports, "alphabeticalDependencies", { enumerable: true, get: function () { return alphabeticalDependencies_1.alphabeticalDependencies; } });
11
+ var alphabeticalScripts_1 = require("./alphabeticalScripts");
12
+ Object.defineProperty(exports, "alphabeticalScripts", { enumerable: true, get: function () { return alphabeticalScripts_1.alphabeticalScripts; } });
11
13
  var bannedDependencies_1 = require("./bannedDependencies");
12
- exports.bannedDependencies = bannedDependencies_1.bannedDependencies;
14
+ Object.defineProperty(exports, "bannedDependencies", { enumerable: true, get: function () { return bannedDependencies_1.bannedDependencies; } });
13
15
  var consistentDependencies_1 = require("./consistentDependencies");
14
- exports.consistentDependencies = consistentDependencies_1.consistentDependencies;
16
+ Object.defineProperty(exports, "consistentDependencies", { enumerable: true, get: function () { return consistentDependencies_1.consistentDependencies; } });
17
+ var consistentVersions_1 = require("./consistentVersions");
18
+ Object.defineProperty(exports, "consistentVersions", { enumerable: true, get: function () { return consistentVersions_1.consistentVersions; } });
15
19
  var fileContents_1 = require("./fileContents");
16
- exports.fileContents = fileContents_1.fileContents;
20
+ Object.defineProperty(exports, "fileContents", { enumerable: true, get: function () { return fileContents_1.fileContents; } });
21
+ var mustSatisfyPeerDependencies_1 = require("./mustSatisfyPeerDependencies");
22
+ Object.defineProperty(exports, "mustSatisfyPeerDependencies", { enumerable: true, get: function () { return mustSatisfyPeerDependencies_1.mustSatisfyPeerDependencies; } });
17
23
  var packageOrder_1 = require("./packageOrder");
18
- exports.packageOrder = packageOrder_1.packageOrder;
24
+ Object.defineProperty(exports, "packageOrder", { enumerable: true, get: function () { return packageOrder_1.packageOrder; } });
19
25
  var packageEntry_1 = require("./packageEntry");
20
- exports.packageEntry = packageEntry_1.packageEntry;
26
+ Object.defineProperty(exports, "packageEntry", { enumerable: true, get: function () { return packageEntry_1.packageEntry; } });
21
27
  var packageScript_1 = require("./packageScript");
22
- exports.packageScript = packageScript_1.packageScript;
28
+ Object.defineProperty(exports, "packageScript", { enumerable: true, get: function () { return packageScript_1.packageScript; } });
23
29
  var standardTsconfig_1 = require("./standardTsconfig");
24
- exports.standardTsconfig = standardTsconfig_1.standardTsconfig;
30
+ Object.defineProperty(exports, "standardTsconfig", { enumerable: true, get: function () { return standardTsconfig_1.standardTsconfig; } });
31
+ var nestedWorkspaces_1 = require("./nestedWorkspaces");
32
+ Object.defineProperty(exports, "nestedWorkspaces", { enumerable: true, get: function () { return nestedWorkspaces_1.nestedWorkspaces; } });
33
+ var requireDependency_1 = require("./requireDependency");
34
+ Object.defineProperty(exports, "requireDependency", { enumerable: true, get: function () { return requireDependency_1.requireDependency; } });
25
35
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,uEAAsE;AAA7D,8DAAA,wBAAwB,CAAA;AACjC,2DAA0D;AAAjD,kDAAA,kBAAkB,CAAA;AAC3B,mEAAkE;AAAzD,0DAAA,sBAAsB,CAAA;AAC/B,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,iDAAgD;AAAvC,wCAAA,aAAa,CAAA;AACtB,uDAAsD;AAA7C,8CAAA,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AACjC,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}