@monorepolint/rules 0.5.0-alpha.9 → 0.5.0-alpha.95

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 (138) 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 +61 -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 +161 -0
  8. package/lib/__tests__/bannedDependencies.spec.js.map +1 -0
  9. package/lib/__tests__/consistentDependencies.spec.js +30 -23
  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 +183 -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 +59 -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 +1063 -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 +124 -0
  26. package/lib/__tests__/nestedWorkspaces.spec.js.map +1 -0
  27. package/lib/__tests__/packageEntry.spec.js +72 -27
  28. package/lib/__tests__/packageEntry.spec.js.map +1 -1
  29. package/lib/__tests__/packageOrder.spec.js +34 -33
  30. package/lib/__tests__/packageOrder.spec.js.map +1 -1
  31. package/lib/__tests__/packageScript.spec.js +50 -51
  32. package/lib/__tests__/packageScript.spec.js.map +1 -1
  33. package/lib/__tests__/requireDependency.spec.d.ts +2 -0
  34. package/lib/__tests__/requireDependency.spec.d.ts.map +1 -0
  35. package/lib/__tests__/requireDependency.spec.js +123 -0
  36. package/lib/__tests__/requireDependency.spec.js.map +1 -0
  37. package/lib/__tests__/utils.d.ts +69 -1
  38. package/lib/__tests__/utils.d.ts.map +1 -1
  39. package/lib/__tests__/utils.js +72 -12
  40. package/lib/__tests__/utils.js.map +1 -1
  41. package/lib/alphabeticalDependencies.d.ts +3 -1
  42. package/lib/alphabeticalDependencies.d.ts.map +1 -1
  43. package/lib/alphabeticalDependencies.js +5 -39
  44. package/lib/alphabeticalDependencies.js.map +1 -1
  45. package/lib/alphabeticalScripts.d.ts +12 -0
  46. package/lib/alphabeticalScripts.d.ts.map +1 -0
  47. package/lib/alphabeticalScripts.js +20 -0
  48. package/lib/alphabeticalScripts.js.map +1 -0
  49. package/lib/bannedDependencies.d.ts +23 -5
  50. package/lib/bannedDependencies.d.ts.map +1 -1
  51. package/lib/bannedDependencies.js +110 -36
  52. package/lib/bannedDependencies.js.map +1 -1
  53. package/lib/consistentDependencies.d.ts +8 -1
  54. package/lib/consistentDependencies.d.ts.map +1 -1
  55. package/lib/consistentDependencies.js +30 -12
  56. package/lib/consistentDependencies.js.map +1 -1
  57. package/lib/consistentVersions.d.ts +14 -0
  58. package/lib/consistentVersions.d.ts.map +1 -0
  59. package/lib/consistentVersions.js +94 -0
  60. package/lib/consistentVersions.js.map +1 -0
  61. package/lib/fileContents.d.ts +8 -8
  62. package/lib/fileContents.d.ts.map +1 -1
  63. package/lib/fileContents.js +32 -27
  64. package/lib/fileContents.js.map +1 -1
  65. package/lib/index.d.ts +5 -0
  66. package/lib/index.d.ts.map +1 -1
  67. package/lib/index.js +19 -8
  68. package/lib/index.js.map +1 -1
  69. package/lib/mustSatisfyPeerDependencies.d.ts +240 -0
  70. package/lib/mustSatisfyPeerDependencies.d.ts.map +1 -0
  71. package/lib/mustSatisfyPeerDependencies.js +636 -0
  72. package/lib/mustSatisfyPeerDependencies.js.map +1 -0
  73. package/lib/nestedWorkspaces.d.ts +13 -0
  74. package/lib/nestedWorkspaces.d.ts.map +1 -0
  75. package/lib/nestedWorkspaces.js +50 -0
  76. package/lib/nestedWorkspaces.js.map +1 -0
  77. package/lib/packageEntry.d.ts +15 -6
  78. package/lib/packageEntry.d.ts.map +1 -1
  79. package/lib/packageEntry.js +53 -18
  80. package/lib/packageEntry.js.map +1 -1
  81. package/lib/packageOrder.d.ts +3 -3
  82. package/lib/packageOrder.d.ts.map +1 -1
  83. package/lib/packageOrder.js +8 -7
  84. package/lib/packageOrder.js.map +1 -1
  85. package/lib/packageScript.d.ts +10 -10
  86. package/lib/packageScript.js +6 -5
  87. package/lib/packageScript.js.map +1 -1
  88. package/lib/requireDependency.d.ts +15 -0
  89. package/lib/requireDependency.d.ts.map +1 -0
  90. package/lib/requireDependency.js +65 -0
  91. package/lib/requireDependency.js.map +1 -0
  92. package/lib/standardTsconfig.d.ts +20 -8
  93. package/lib/standardTsconfig.d.ts.map +1 -1
  94. package/lib/standardTsconfig.js +36 -18
  95. package/lib/standardTsconfig.js.map +1 -1
  96. package/lib/util/checkAlpha.d.ts +10 -0
  97. package/lib/util/checkAlpha.d.ts.map +1 -0
  98. package/lib/util/checkAlpha.js +51 -0
  99. package/lib/util/checkAlpha.js.map +1 -0
  100. package/lib/util/makeDirectory.d.ts +8 -0
  101. package/lib/util/makeDirectory.d.ts.map +1 -0
  102. package/lib/util/makeDirectory.js +28 -0
  103. package/lib/util/makeDirectory.js.map +1 -0
  104. package/lib/util/packageDependencyGraphService.d.ts +37 -0
  105. package/lib/util/packageDependencyGraphService.d.ts.map +1 -0
  106. package/lib/util/packageDependencyGraphService.js +70 -0
  107. package/lib/util/packageDependencyGraphService.js.map +1 -0
  108. package/package.json +18 -15
  109. package/src/__tests__/alphabeticalScripts.spec.ts +75 -0
  110. package/src/__tests__/bannedDependencies.spec.ts +191 -0
  111. package/src/__tests__/consistentDependencies.spec.ts +39 -26
  112. package/src/__tests__/consistentVersions.spec.ts +223 -0
  113. package/src/__tests__/fileContents.spec.ts +74 -0
  114. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +1188 -0
  115. package/src/__tests__/nestedWorkspaces.spec.ts +152 -0
  116. package/src/__tests__/packageEntry.spec.ts +98 -31
  117. package/src/__tests__/packageOrder.spec.ts +46 -40
  118. package/src/__tests__/packageScript.spec.ts +62 -54
  119. package/src/__tests__/requireDependency.spec.ts +151 -0
  120. package/src/__tests__/utils.ts +113 -11
  121. package/src/alphabeticalDependencies.ts +3 -47
  122. package/src/alphabeticalScripts.ts +19 -0
  123. package/src/bannedDependencies.ts +133 -43
  124. package/src/consistentDependencies.ts +34 -12
  125. package/src/consistentVersions.ts +140 -0
  126. package/src/fileContents.ts +31 -27
  127. package/src/index.ts +5 -0
  128. package/src/mustSatisfyPeerDependencies.ts +739 -0
  129. package/src/nestedWorkspaces.ts +59 -0
  130. package/src/packageEntry.ts +67 -24
  131. package/src/packageOrder.ts +6 -6
  132. package/src/packageScript.ts +3 -3
  133. package/src/requireDependency.ts +69 -0
  134. package/src/standardTsconfig.ts +40 -18
  135. package/src/util/checkAlpha.ts +59 -0
  136. package/src/util/makeDirectory.ts +24 -0
  137. package/src/util/packageDependencyGraphService.ts +114 -0
  138. package/tsconfig.tsbuildinfo +1 -2439
@@ -6,44 +6,46 @@
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
- const fs_1 = require("fs");
11
11
  const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
12
  const path = tslib_1.__importStar(require("path"));
13
13
  const r = tslib_1.__importStar(require("runtypes"));
14
14
  const Options = r.Union(r.Record({
15
15
  file: r.String,
16
16
  generator: r.Function,
17
- template: r.Undefined,
18
- templateFile: r.Undefined,
17
+ template: r.Undefined.optional(),
18
+ templateFile: r.Undefined.optional(),
19
19
  }), r.Record({
20
20
  file: r.String,
21
- generator: r.Undefined,
21
+ generator: r.Undefined.optional(),
22
22
  template: r.String,
23
- templateFile: r.Undefined,
23
+ templateFile: r.Undefined.optional(),
24
24
  }), r.Record({
25
25
  file: r.String,
26
- generator: r.Undefined,
27
- template: r.Undefined,
26
+ generator: r.Undefined.optional(),
27
+ template: r.Undefined.optional(),
28
28
  templateFile: r.String,
29
29
  }));
30
30
  exports.fileContents = {
31
31
  check: function expectFileContents(context, opts) {
32
32
  const fullPath = path.join(context.packageDir, opts.file);
33
- const generator = getGenerator(context, opts);
34
- const expectedContent = generator(context);
35
- const actualContent = fs_1.existsSync(fullPath) ? fs_1.readFileSync(fullPath, "utf-8") : undefined;
33
+ const expectedContent = getExpectedContents(context, opts);
34
+ const pathExists = context.host.exists(fullPath);
35
+ const actualContent = pathExists ? context.host.readFile(fullPath, { encoding: "utf-8" }) : undefined;
36
36
  if (actualContent !== expectedContent) {
37
37
  context.addError({
38
38
  file: fullPath,
39
39
  message: "Expect file contents to match",
40
- longMessage: jest_diff_1.default(expectedContent, actualContent, { expand: true }),
40
+ longMessage: (0, jest_diff_1.default)(expectedContent, actualContent, { expand: true }),
41
41
  fixer: () => {
42
42
  if (expectedContent === undefined) {
43
- fs_1.unlinkSync(fullPath);
43
+ if (pathExists)
44
+ context.host.deleteFile(fullPath);
44
45
  }
45
46
  else {
46
- fs_1.writeFileSync(fullPath, expectedContent);
47
+ context.host.mkdir(path.dirname(fullPath), { recursive: true });
48
+ context.host.writeFile(fullPath, expectedContent, { encoding: "utf-8" });
47
49
  }
48
50
  },
49
51
  });
@@ -51,27 +53,30 @@ exports.fileContents = {
51
53
  },
52
54
  optionsRuntype: Options,
53
55
  };
54
- function getGenerator(context, opts) {
56
+ const optionsCache = new Map();
57
+ function getExpectedContents(context, opts) {
58
+ // we need to use has because undefined is a valid value in the cache
59
+ if (optionsCache.has(opts)) {
60
+ const cachedEntry = optionsCache.get(opts);
61
+ if (cachedEntry && typeof cachedEntry === "function") {
62
+ return cachedEntry(context);
63
+ }
64
+ return cachedEntry;
65
+ }
55
66
  if (opts.generator) {
56
- return opts.generator;
67
+ optionsCache.set(opts, opts.generator);
68
+ return opts.generator(context); // we have no guarentee its the right kind of function
57
69
  }
58
70
  else if (opts.templateFile) {
59
71
  const { packageDir: workspacePackageDir } = context.getWorkspaceContext();
60
72
  const fullPath = path.resolve(workspacePackageDir, opts.templateFile);
61
- const template = fs_1.readFileSync(fullPath, "utf-8");
62
- return makeGenerator(template);
63
- }
64
- else if (opts.template) {
65
- return makeGenerator(opts.template);
73
+ const template = context.host.readFile(fullPath, { encoding: "utf-8" });
74
+ optionsCache.set(opts, template);
75
+ return template;
66
76
  }
67
77
  else {
68
- throw new Error("Unable to make generator");
78
+ optionsCache.set(opts, opts.template);
79
+ return opts.template;
69
80
  }
70
81
  }
71
- function makeGenerator(template) {
72
- // tslint:disable-next-line:variable-name
73
- return function generator(_context) {
74
- return template;
75
- };
76
- }
77
82
  //# sourceMappingURL=fileContents.js.map
@@ -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
@@ -6,20 +6,31 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.requireDependency = exports.nestedWorkspaces = exports.standardTsconfig = exports.packageScript = exports.packageEntry = exports.packageOrder = exports.mustSatisfyPeerDependencies = exports.fileContents = exports.consistentVersions = exports.consistentDependencies = exports.bannedDependencies = exports.alphabeticalScripts = exports.alphabeticalDependencies = void 0;
9
10
  var alphabeticalDependencies_1 = require("./alphabeticalDependencies");
10
- exports.alphabeticalDependencies = alphabeticalDependencies_1.alphabeticalDependencies;
11
+ Object.defineProperty(exports, "alphabeticalDependencies", { enumerable: true, get: function () { return alphabeticalDependencies_1.alphabeticalDependencies; } });
12
+ var alphabeticalScripts_1 = require("./alphabeticalScripts");
13
+ Object.defineProperty(exports, "alphabeticalScripts", { enumerable: true, get: function () { return alphabeticalScripts_1.alphabeticalScripts; } });
11
14
  var bannedDependencies_1 = require("./bannedDependencies");
12
- exports.bannedDependencies = bannedDependencies_1.bannedDependencies;
15
+ Object.defineProperty(exports, "bannedDependencies", { enumerable: true, get: function () { return bannedDependencies_1.bannedDependencies; } });
13
16
  var consistentDependencies_1 = require("./consistentDependencies");
14
- exports.consistentDependencies = consistentDependencies_1.consistentDependencies;
17
+ Object.defineProperty(exports, "consistentDependencies", { enumerable: true, get: function () { return consistentDependencies_1.consistentDependencies; } });
18
+ var consistentVersions_1 = require("./consistentVersions");
19
+ Object.defineProperty(exports, "consistentVersions", { enumerable: true, get: function () { return consistentVersions_1.consistentVersions; } });
15
20
  var fileContents_1 = require("./fileContents");
16
- exports.fileContents = fileContents_1.fileContents;
21
+ Object.defineProperty(exports, "fileContents", { enumerable: true, get: function () { return fileContents_1.fileContents; } });
22
+ var mustSatisfyPeerDependencies_1 = require("./mustSatisfyPeerDependencies");
23
+ Object.defineProperty(exports, "mustSatisfyPeerDependencies", { enumerable: true, get: function () { return mustSatisfyPeerDependencies_1.mustSatisfyPeerDependencies; } });
17
24
  var packageOrder_1 = require("./packageOrder");
18
- exports.packageOrder = packageOrder_1.packageOrder;
25
+ Object.defineProperty(exports, "packageOrder", { enumerable: true, get: function () { return packageOrder_1.packageOrder; } });
19
26
  var packageEntry_1 = require("./packageEntry");
20
- exports.packageEntry = packageEntry_1.packageEntry;
27
+ Object.defineProperty(exports, "packageEntry", { enumerable: true, get: function () { return packageEntry_1.packageEntry; } });
21
28
  var packageScript_1 = require("./packageScript");
22
- exports.packageScript = packageScript_1.packageScript;
29
+ Object.defineProperty(exports, "packageScript", { enumerable: true, get: function () { return packageScript_1.packageScript; } });
23
30
  var standardTsconfig_1 = require("./standardTsconfig");
24
- exports.standardTsconfig = standardTsconfig_1.standardTsconfig;
31
+ Object.defineProperty(exports, "standardTsconfig", { enumerable: true, get: function () { return standardTsconfig_1.standardTsconfig; } });
32
+ var nestedWorkspaces_1 = require("./nestedWorkspaces");
33
+ Object.defineProperty(exports, "nestedWorkspaces", { enumerable: true, get: function () { return nestedWorkspaces_1.nestedWorkspaces; } });
34
+ var requireDependency_1 = require("./requireDependency");
35
+ Object.defineProperty(exports, "requireDependency", { enumerable: true, get: function () { return requireDependency_1.requireDependency; } });
25
36
  //# 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"}
@@ -0,0 +1,240 @@
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
+ declare const Options: r.Union<[r.Partial<{
10
+ skipUnparseableRanges: r.Literal<undefined>;
11
+ dependencyWhitelist: r.Literal<undefined>;
12
+ dependencyBlacklist: r.Literal<undefined>;
13
+ enforceForDevDependencies: r.Literal<undefined>;
14
+ }, false>, r.Intersect<[r.Record<{
15
+ skipUnparseableRanges: r.Boolean;
16
+ }, false>, r.Partial<{
17
+ dependencyWhitelist: r.Literal<undefined>;
18
+ dependencyBlacklist: r.Literal<undefined>;
19
+ enforceForDevDependencies: r.Literal<undefined>;
20
+ }, false>]>, r.Intersect<[r.Record<{
21
+ dependencyWhitelist: r.Array<r.String, false>;
22
+ }, false>, r.Partial<{
23
+ skipUnparseableRanges: r.Literal<undefined>;
24
+ dependencyBlacklist: r.Literal<undefined>;
25
+ enforceForDevDependencies: r.Literal<undefined>;
26
+ }, false>]>, r.Intersect<[r.Record<{
27
+ dependencyBlacklist: r.Array<r.String, false>;
28
+ }, false>, r.Partial<{
29
+ skipUnparseableRanges: r.Literal<undefined>;
30
+ dependencyWhitelist: r.Literal<undefined>;
31
+ enforceForDevDependencies: r.Literal<undefined>;
32
+ }, false>]>, r.Intersect<[r.Record<{
33
+ enforceForDevDependencies: r.Boolean;
34
+ }, false>, r.Partial<{
35
+ skipUnparseableRanges: r.Literal<undefined>;
36
+ dependencyWhitelist: r.Literal<undefined>;
37
+ dependencyBlacklist: r.Literal<undefined>;
38
+ }, false>]>, r.Intersect<[r.Record<{
39
+ skipUnparseableRanges: r.Boolean;
40
+ dependencyWhitelist: r.Array<r.String, false>;
41
+ }, false>, r.Partial<{
42
+ dependencyBlacklist: r.Literal<undefined>;
43
+ enforceForDevDependencies: r.Literal<undefined>;
44
+ }, false>]>, r.Intersect<[r.Record<{
45
+ skipUnparseableRanges: r.Boolean;
46
+ dependencyBlacklist: r.Array<r.String, false>;
47
+ }, false>, r.Partial<{
48
+ dependencyWhitelist: r.Literal<undefined>;
49
+ enforceForDevDependencies: r.Literal<undefined>;
50
+ }, false>]>, r.Intersect<[r.Record<{
51
+ skipUnparseableRanges: r.Boolean;
52
+ enforceForDevDependencies: r.Boolean;
53
+ }, false>, r.Partial<{
54
+ dependencyWhitelist: r.Literal<undefined>;
55
+ dependencyBlacklist: r.Literal<undefined>;
56
+ }, false>]>, r.Intersect<[r.Record<{
57
+ dependencyWhitelist: r.Array<r.String, false>;
58
+ dependencyBlacklist: r.Array<r.String, false>;
59
+ }, false>, r.Partial<{
60
+ skipUnparseableRanges: r.Literal<undefined>;
61
+ enforceForDevDependencies: r.Literal<undefined>;
62
+ }, false>]>, r.Intersect<[r.Record<{
63
+ dependencyWhitelist: r.Array<r.String, false>;
64
+ enforceForDevDependencies: r.Boolean;
65
+ }, false>, r.Partial<{
66
+ skipUnparseableRanges: r.Literal<undefined>;
67
+ dependencyBlacklist: r.Literal<undefined>;
68
+ }, false>]>, r.Intersect<[r.Record<{
69
+ dependencyBlacklist: r.Array<r.String, false>;
70
+ enforceForDevDependencies: r.Boolean;
71
+ }, false>, r.Partial<{
72
+ skipUnparseableRanges: r.Literal<undefined>;
73
+ dependencyWhitelist: r.Literal<undefined>;
74
+ }, false>]>, r.Intersect<[r.Record<{
75
+ skipUnparseableRanges: r.Boolean;
76
+ dependencyWhitelist: r.Array<r.String, false>;
77
+ dependencyBlacklist: r.Array<r.String, false>;
78
+ }, false>, r.Partial<{
79
+ enforceForDevDependencies: r.Literal<undefined>;
80
+ }, false>]>, r.Intersect<[r.Record<{
81
+ skipUnparseableRanges: r.Boolean;
82
+ dependencyWhitelist: r.Array<r.String, false>;
83
+ enforceForDevDependencies: r.Boolean;
84
+ }, false>, r.Partial<{
85
+ dependencyBlacklist: r.Literal<undefined>;
86
+ }, false>]>, r.Intersect<[r.Record<{
87
+ skipUnparseableRanges: r.Boolean;
88
+ dependencyBlacklist: r.Array<r.String, false>;
89
+ enforceForDevDependencies: r.Boolean;
90
+ }, false>, r.Partial<{
91
+ dependencyWhitelist: r.Literal<undefined>;
92
+ }, false>]>, r.Intersect<[r.Record<{
93
+ dependencyWhitelist: r.Array<r.String, false>;
94
+ dependencyBlacklist: r.Array<r.String, false>;
95
+ enforceForDevDependencies: r.Boolean;
96
+ }, false>, r.Partial<{
97
+ skipUnparseableRanges: r.Literal<undefined>;
98
+ }, false>]>, r.Record<{
99
+ skipUnparseableRanges: r.Boolean;
100
+ dependencyWhitelist: r.Array<r.String, false>;
101
+ dependencyBlacklist: r.Array<r.String, false>;
102
+ enforceForDevDependencies: r.Boolean;
103
+ }, false>]>;
104
+ export declare type Options = r.Static<typeof Options>;
105
+ export declare const mustSatisfyPeerDependencies: RuleModule<typeof Options>;
106
+ /**
107
+ * separating on `|`, this regex allows any of the following formats:
108
+ * - `*`
109
+ * - `x`
110
+ *
111
+ * More info: https://docs.npmjs.com/about-semantic-versioning
112
+ */
113
+ export declare const MATCH_ANY_VERSION_RANGE: RegExp;
114
+ /**
115
+ * This regex allows any of the following formats:
116
+ * - `>=15`
117
+ * - `>=15.2`
118
+ * - `>=15.2.1`
119
+ * - `>=15.2.1-rc.0`
120
+ * - `>=15.2.1+sha`
121
+ * - `>=15.2.1-rc.0+sha`
122
+ *
123
+ * See https://semver.org/#spec-item-9 for details about semver formatting, and
124
+ * https://regex101.com/r/vkijKf/1/ for a sample Regex.
125
+ *
126
+ * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)
127
+ *
128
+ * More info: https://docs.npmjs.com/about-semantic-versioning
129
+ */
130
+ export declare const MATCH_GREATER_OR_EQUAL_VERSION_RANGE: RegExp;
131
+ /**
132
+ * This regex allows any of the following formats:
133
+ * - `15`
134
+ * - `^15`
135
+ * - `15.x`
136
+ * - `^15.x`
137
+ * - `15.x.x`
138
+ * - `^15.x.x`
139
+ * - `^15.2`
140
+ * - `^15.2.x`
141
+ * - `^15.2.1`
142
+ * - `^15.2.1-rc.0`
143
+ * - `^15.2.1+sha`
144
+ * - `^15.2.1-rc.0+sha`
145
+ *
146
+ * See https://semver.org/#spec-item-9 for details about semver formatting, and
147
+ * https://regex101.com/r/vkijKf/1/ for a sample Regex.
148
+ *
149
+ * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)
150
+ *
151
+ * More info: https://docs.npmjs.com/about-semantic-versioning
152
+ */
153
+ export declare const MATCH_MAJOR_VERSION_RANGE: RegExp;
154
+ /**
155
+ * Does not currently accept `<`, `<=`, `>`, `=` or `-` for ranges (e.g. `> 2.5.1 < 3` or `1.0.0 - 1.2.0`),
156
+ * though it will accept isolated `>=` ranges (e.g. `>=2.5.1`, but not `^1 || >=2.5.1`)
157
+ *
158
+ * See https://semver.org/#spec-item-9 for details about semver formatting, and
159
+ * https://regex101.com/r/vkijKf/1/ for a sample Regex.
160
+ *
161
+ * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)
162
+ *
163
+ * More info: https://docs.npmjs.com/about-semantic-versioning
164
+ *
165
+ * TODO: accept minor pins `~4.2.1`
166
+ */
167
+ export declare const RANGE_REGEX: RegExp;
168
+ /**
169
+ * Given two version ranges, find the maximum intersecting range
170
+ * of `a` and `b`. `findIntersection(a,b)` should return the same
171
+ * result as `findIntersection(b,a)`.
172
+ *
173
+ * NOTE: This code assumes that input version ranges match `RANGE_REGEX`.
174
+ * Additionally, major version ranges must not be repeated in union ranges.
175
+ * e.g. `^15.0.5 || ^16.0.0` is permitted, but `15.0.5 || 15.0.999` is not.
176
+ *
177
+ * EXAMPLES:
178
+ * findIntersection("15.1.0", "*") => "15.1.0"
179
+ * findIntersection("^15", "*") => "^15"
180
+ * findIntersection(">=15", "*") => ">=15"
181
+ * findIntersection("*", "*") => "*"
182
+ * findIntersection("15.1.0", ">=1") => "15.1.0"
183
+ * findIntersection("^15", ">=1") => "^15"
184
+ * findIntersection(">=15", ">=1") => ">=15"
185
+ * findIntersection("15.1.0", "^15") => "15.1.0"
186
+ * findIntersection("^15.2", "^15") => "^15.2"
187
+ * findIntersection("14", "^15") => undefined
188
+ * findIntersection("15.1.0", "^15 || ^16") => "15.1.0"
189
+ * findIntersection("^15.2", "^15 || ^16") => "^15.2"
190
+ * findIntersection("14", "^15 || ^16") => undefined
191
+ * findIntersection("^15.2 || ^16", "^15 || ^16.4") => "^15.2 || ^16.4"
192
+ *
193
+ * @param a version range that matches `RANGE_REGEX`
194
+ * @param b version range that matches `RANGE_REGEX`
195
+ * @returns the maximum intersecting `ValidRange`, or `undefined` if there is no intersection
196
+ */
197
+ export declare function findIntersection(a: ValidRange, b: ValidRange): ValidRange | undefined;
198
+ /**
199
+ * Given two version ranges, determine whether `a` satisfies `b`.
200
+ * `a` satisfies `b` iff `a` is a "more strict than or equal to" subset of `b`.
201
+ * For example, both `^15` and `^15.2.0` satisfy `^15`, but `^15 || ^16` does not.
202
+ *
203
+ * NOTE: This code assumes that input version ranges match `RANGE_REGEX`.
204
+ * Additionally, major version ranges must not be repeated in union ranges.
205
+ * e.g. `^15.0.5 || ^16.0.0` is permitted, but `15.0.5 || 15.0.999` is not.
206
+ *
207
+ * To determine that `a` is "more strict than or equal to" `b`, we first
208
+ * split the set of all versions or ranges that are potentially unioned in `a` and `b`.
209
+ * For example, if `a` is `15.0.5`, we produce the set `[ "15.0.5" ]`,
210
+ * and if `b` is `^15 || ^16`, we produce the set `[ "^15", "^16" ]`.
211
+ * `a` is "more strict than or equal to" `b` iff each entry in `a`'s set
212
+ * satisfies (equal to or greater than) some entry in `b`.
213
+ *
214
+ * The following version ranges satisfy `^15.0.5 || ^16.0.0`:
215
+ * - `^15.0.5 || ^16.0.0`
216
+ * - `^15.0.5 || ^16.x.x`
217
+ * - `15.0.5 || 16.0.0`
218
+ * - `^15.0.999 || ^16.0.0`
219
+ * - `^15.0.5 || ^16.0.999`
220
+ * - `^15.0.999`
221
+ * - `^16.0.0`
222
+ * - `16.0.0`
223
+ * The following version ranges do not satisfy `^15.0.5 || ^16.0.0`:
224
+ * - `^15.0.0 || ^16.0.0`
225
+ * - `^15.0.5 || ^17.0.0`
226
+ * - `^14.0.0 || ^15.0.5 || ^16.0.0`
227
+ * - `^17.0.0`
228
+ * - `17.0.0`
229
+ *
230
+ * @param a version range that matches `RANGE_REGEX`
231
+ * @param b version range that matches `RANGE_REGEX`
232
+ * @returns `true` if `a` is more strict than or equal to `b`, `false` otherwise
233
+ */
234
+ export declare function doesASatisfyB(a: ValidRange, b: ValidRange): boolean;
235
+ export declare type ValidRange = string & {
236
+ _type: "valid range";
237
+ };
238
+ export declare function isValidRange(version: string): version is ValidRange;
239
+ export {};
240
+ //# sourceMappingURL=mustSatisfyPeerDependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mustSatisfyPeerDependencies.d.ts","sourceRoot":"","sources":["../src/mustSatisfyPeerDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAuKZ,CAAC;AAEF,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,OAAO,OAAO,CAGlE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oCAAoC,QAA4K,CAAC;AAE9N;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,yBAAyB,QAA0N,CAAC;AAEjQ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,QAAyiB,CAAC;AAyNlkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAoFrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAmEnE;AAoBD,oBAAY,UAAU,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAC3D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,UAAU,CAEnE"}