@monorepolint/rules 0.5.0-alpha.97 → 0.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +47 -25
  3. package/src/__tests__/alphabeticalScripts.spec.ts +7 -6
  4. package/src/__tests__/bannedDependencies.spec.ts +7 -9
  5. package/src/__tests__/consistentDependencies.spec.ts +8 -7
  6. package/src/__tests__/consistentVersions.spec.ts +7 -6
  7. package/src/__tests__/fileContents.spec.ts +45 -18
  8. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +41 -40
  9. package/src/__tests__/nestedWorkspaces.spec.ts +7 -6
  10. package/src/__tests__/packageEntry.spec.ts +44 -33
  11. package/src/__tests__/packageOrder.spec.ts +24 -15
  12. package/src/__tests__/packageScript.spec.ts +62 -44
  13. package/src/__tests__/requireDependency.spec.ts +10 -9
  14. package/src/__tests__/utils.ts +11 -6
  15. package/src/alphabeticalDependencies.ts +7 -9
  16. package/src/alphabeticalScripts.ts +7 -9
  17. package/src/bannedDependencies.ts +9 -10
  18. package/src/consistentDependencies.ts +9 -7
  19. package/src/consistentVersions.ts +6 -5
  20. package/src/fileContents.ts +17 -14
  21. package/src/index.ts +13 -13
  22. package/src/mustSatisfyPeerDependencies.ts +16 -11
  23. package/src/nestedWorkspaces.ts +10 -9
  24. package/src/packageEntry.ts +7 -6
  25. package/src/packageOrder.ts +12 -7
  26. package/src/packageScript.ts +12 -16
  27. package/src/public/util.ts +1 -0
  28. package/src/requireDependency.ts +9 -7
  29. package/src/standardTsconfig.ts +11 -9
  30. package/src/util/checkAlpha.ts +2 -2
  31. package/src/util/makeRule.ts +29 -0
  32. package/src/util/packageDependencyGraphService.ts +2 -2
  33. package/tsconfig.json +10 -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 -12
  83. package/lib/alphabeticalDependencies.d.ts.map +0 -1
  84. package/lib/alphabeticalDependencies.js +0 -22
  85. package/lib/alphabeticalDependencies.js.map +0 -1
  86. package/lib/alphabeticalScripts.d.ts +0 -12
  87. package/lib/alphabeticalScripts.d.ts.map +0 -1
  88. package/lib/alphabeticalScripts.js +0 -20
  89. package/lib/alphabeticalScripts.js.map +0 -1
  90. package/lib/bannedDependencies.d.ts +0 -33
  91. package/lib/bannedDependencies.d.ts.map +0 -1
  92. package/lib/bannedDependencies.js +0 -131
  93. package/lib/bannedDependencies.js.map +0 -1
  94. package/lib/consistentDependencies.d.ts +0 -17
  95. package/lib/consistentDependencies.d.ts.map +0 -1
  96. package/lib/consistentDependencies.js +0 -75
  97. package/lib/consistentDependencies.js.map +0 -1
  98. package/lib/consistentVersions.d.ts +0 -14
  99. package/lib/consistentVersions.d.ts.map +0 -1
  100. package/lib/consistentVersions.js +0 -94
  101. package/lib/consistentVersions.js.map +0 -1
  102. package/lib/fileContents.d.ts +0 -25
  103. package/lib/fileContents.d.ts.map +0 -1
  104. package/lib/fileContents.js +0 -82
  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 -36
  109. package/lib/index.js.map +0 -1
  110. package/lib/mustSatisfyPeerDependencies.d.ts +0 -240
  111. package/lib/mustSatisfyPeerDependencies.d.ts.map +0 -1
  112. package/lib/mustSatisfyPeerDependencies.js +0 -636
  113. package/lib/mustSatisfyPeerDependencies.js.map +0 -1
  114. package/lib/nestedWorkspaces.d.ts +0 -13
  115. package/lib/nestedWorkspaces.d.ts.map +0 -1
  116. package/lib/nestedWorkspaces.js +0 -50
  117. package/lib/nestedWorkspaces.js.map +0 -1
  118. package/lib/packageEntry.d.ts +0 -25
  119. package/lib/packageEntry.d.ts.map +0 -1
  120. package/lib/packageEntry.js +0 -75
  121. package/lib/packageEntry.js.map +0 -1
  122. package/lib/packageOrder.d.ts +0 -12
  123. package/lib/packageOrder.d.ts.map +0 -1
  124. package/lib/packageOrder.js +0 -103
  125. package/lib/packageOrder.js.map +0 -1
  126. package/lib/packageScript.d.ts +0 -25
  127. package/lib/packageScript.d.ts.map +0 -1
  128. package/lib/packageScript.js +0 -90
  129. package/lib/packageScript.js.map +0 -1
  130. package/lib/requireDependency.d.ts +0 -15
  131. package/lib/requireDependency.d.ts.map +0 -1
  132. package/lib/requireDependency.js +0 -65
  133. package/lib/requireDependency.js.map +0 -1
  134. package/lib/standardTsconfig.d.ts +0 -45
  135. package/lib/standardTsconfig.d.ts.map +0 -1
  136. package/lib/standardTsconfig.js +0 -116
  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/makeDirectory.d.ts +0 -8
  143. package/lib/util/makeDirectory.d.ts.map +0 -1
  144. package/lib/util/makeDirectory.js +0 -28
  145. package/lib/util/makeDirectory.js.map +0 -1
  146. package/lib/util/packageDependencyGraphService.d.ts +0 -37
  147. package/lib/util/packageDependencyGraphService.d.ts.map +0 -1
  148. package/lib/util/packageDependencyGraphService.js +0 -70
  149. package/lib/util/packageDependencyGraphService.js.map +0 -1
  150. package/tsconfig.tsbuildinfo +0 -1
  151. /package/{jest.config.js → jest.config.cjs} +0 -0
@@ -1,131 +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 = 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 packageDependencyGraphService_1 = require("./util/packageDependencyGraphService");
16
- // FIXME: This rule is messed. bannedTransitiveDependencies doesnt glob
17
- const bannedDepGlobsField = r.Union(r.Array(r.String), r.Record({
18
- glob: r.Array(r.String).optional(),
19
- exact: r.Array(r.String).optional(),
20
- }));
21
- const Options = r.Union(r.Record({
22
- bannedDependencies: bannedDepGlobsField,
23
- bannedTransitiveDependencies: r.Undefined.optional(),
24
- }), r.Record({
25
- bannedDependencies: bannedDepGlobsField.optional(),
26
- bannedTransitiveDependencies: r.Array(r.String),
27
- }), r.Record({
28
- bannedDependencies: bannedDepGlobsField.optional(),
29
- bannedTransitiveDependencies: r.Array(r.String).optional(),
30
- }));
31
- /**
32
- * We use this locally to avoid making a billion sets. Because check is called once per package
33
- * (with the exact same config object reference) we can save quite a bit of time by reusing this cache.
34
- */
35
- const setCache = new Map();
36
- const aggregateTiming = new utils_2.AggregateTiming(":bannedDependencies stats");
37
- exports.bannedDependencies = {
38
- check: function expectAllowedDependencies(context, opts, extra) {
39
- var _a;
40
- aggregateTiming.start((_a = extra === null || extra === void 0 ? void 0 : extra.id) !== null && _a !== void 0 ? _a : "unknown id");
41
- const packageJson = context.getPackageJson();
42
- const packagePath = context.getPackageJsonPath();
43
- const curDeps = packageJson.dependencies && Object.keys(packageJson.dependencies);
44
- const curDevDeps = packageJson.devDependencies && Object.keys(packageJson.devDependencies);
45
- const curPeerDeps = packageJson.peerDependencies && Object.keys(packageJson.peerDependencies);
46
- const { bannedDependencies: banned, bannedTransitiveDependencies: transitives } = opts;
47
- const globs = banned && (Array.isArray(banned) ? banned : banned.glob);
48
- const exacts = banned && (Array.isArray(banned) ? undefined : banned.exact);
49
- const violations = new Set();
50
- if (globs) {
51
- if (curDeps)
52
- populateProblemsGlobs(globs, curDeps, violations);
53
- if (curDevDeps)
54
- populateProblemsGlobs(globs, curDevDeps, violations);
55
- if (curPeerDeps)
56
- populateProblemsGlobs(globs, curPeerDeps, violations);
57
- }
58
- if (exacts) {
59
- let set = setCache.get(exacts);
60
- if (set === undefined) {
61
- set = new Set(exacts);
62
- setCache.set(exacts, set);
63
- }
64
- if (curDeps)
65
- populateProblemsExact(set, curDeps, violations);
66
- if (curDevDeps)
67
- populateProblemsExact(set, curDevDeps, violations);
68
- if (curPeerDeps)
69
- populateProblemsExact(set, curPeerDeps, violations);
70
- }
71
- if (violations.size > 0) {
72
- context.addError({
73
- file: packagePath,
74
- message: `Found ${violations.size} banned dependencies of package.json:\n\t` +
75
- Array.from(violations)
76
- .map((v) => `'${v}'`)
77
- .join(", "),
78
- });
79
- }
80
- if (transitives) {
81
- let set = setCache.get(transitives);
82
- if (set === undefined) {
83
- set = new Set(transitives);
84
- setCache.set(transitives, set);
85
- }
86
- checkTransitives(context, set);
87
- }
88
- aggregateTiming.stop();
89
- },
90
- optionsRuntype: Options,
91
- printStats: () => {
92
- aggregateTiming.printResults();
93
- },
94
- };
95
- function populateProblemsExact(banned, dependencies, violations) {
96
- for (const dependency of dependencies) {
97
- if (banned.has(dependency)) {
98
- violations.add(dependency);
99
- }
100
- }
101
- }
102
- function populateProblemsGlobs(bannedDependencyGlobs, dependencies, violations) {
103
- for (const dependency of dependencies) {
104
- if ((0, utils_1.matchesAnyGlob)(dependency, bannedDependencyGlobs)) {
105
- violations.add(dependency);
106
- }
107
- }
108
- }
109
- // This function is slow. God help you if you use this on a big repo
110
- function checkTransitives(context, banned) {
111
- const graphService = new packageDependencyGraphService_1.PackageDependencyGraphService();
112
- const root = graphService.buildDependencyGraph(path_1.default.resolve(context.getPackageJsonPath()), context.host);
113
- for (const { dependencies, importPath } of graphService.traverse(root)) {
114
- for (const [dependency] of dependencies) {
115
- if (banned.has(dependency)) {
116
- // Remove the starting package since it's obvious in CLI output.
117
- const [, ...importPathWithoutRoot] = importPath;
118
- const pathing = [...importPathWithoutRoot.map(nameOrPackageJsonPath), dependency].join(" -> ");
119
- context.addError({
120
- file: root.paths.packageJsonPath,
121
- message: `Banned transitive dependencies in repo: ${pathing}`,
122
- });
123
- }
124
- }
125
- }
126
- }
127
- function nameOrPackageJsonPath(node) {
128
- var _a;
129
- return (_a = node.packageJson.name) !== null && _a !== void 0 ? _a : node.paths.packageJsonPath;
130
- }
131
- //# sourceMappingURL=bannedDependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bannedDependencies.js","sourceRoot":"","sources":["../src/bannedDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,+CAAqD;AACrD,+CAAsD;AACtD,wDAAwB;AACxB,oDAA8B;AAC9B,wFAAkH;AAElH,uEAAuE;AAEvE,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CACjC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;CACpC,CAAC,CACH,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CACrB,CAAC,CAAC,MAAM,CAAC;IACP,kBAAkB,EAAE,mBAAmB;IACvC,4BAA4B,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;CACrD,CAAC,EAEF,CAAC,CAAC,MAAM,CAAC;IACP,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAClD,4BAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;CAChD,CAAC,EAEF,CAAC,CAAC,MAAM,CAAC;IACP,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAClD,4BAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CACH,CAAC;AAIF;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsC,CAAC;AAE/D,MAAM,eAAe,GAAG,IAAI,uBAAe,CAAC,2BAA2B,CAAC,CAAC;AAE5D,QAAA,kBAAkB,GAE3B;IACF,KAAK,EAAE,SAAS,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK;;QAC5D,eAAe,CAAC,KAAK,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,mCAAI,YAAY,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAEjD,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC3F,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAE9F,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,4BAA4B,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAEvF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,IAAI,KAAK,EAAE;YACT,IAAI,OAAO;gBAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/D,IAAI,UAAU;gBAAE,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,WAAW;gBAAE,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;SACxE;QAED,IAAI,MAAM,EAAE;YACV,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aAC3B;YACD,IAAI,OAAO;gBAAE,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC7D,IAAI,UAAU;gBAAE,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACnE,IAAI,WAAW;gBAAE,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;SACtE;QAED,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EACL,SAAS,UAAU,CAAC,IAAI,2CAA2C;oBACnE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;yBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;yBACpB,IAAI,CAAC,IAAI,CAAC;aAChB,CAAC,CAAC;SACJ;QAED,IAAI,WAAW,EAAE;YACf,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3B,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;aAChC;YACD,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAChC;QAED,eAAe,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,cAAc,EAAE,OAAO;IACvB,UAAU,EAAE,GAAG,EAAE;QACf,eAAe,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC;CACF,CAAC;AAEF,SAAS,qBAAqB,CAAC,MAAmB,EAAE,YAAmC,EAAE,UAAuB;IAC9G,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;QACrC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC1B,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC5B;KACF;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,qBAA4C,EAC5C,YAAmC,EACnC,UAAuB;IAEvB,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;QACrC,IAAI,IAAA,sBAAc,EAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE;YACrD,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC5B;KACF;AACH,CAAC;AAED,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,OAAgB,EAAE,MAAmB;IAC7D,MAAM,YAAY,GAAG,IAAI,6DAA6B,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,YAAY,CAAC,oBAAoB,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACzG,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACtE,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,YAAY,EAAE;YACvC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBAC1B,gEAAgE;gBAChE,MAAM,CAAC,EAAE,GAAG,qBAAqB,CAAC,GAAG,UAAU,CAAC;gBAChD,MAAM,OAAO,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE/F,OAAO,CAAC,QAAQ,CAAC;oBACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;oBAChC,OAAO,EAAE,2CAA2C,OAAO,EAAE;iBAC9D,CAAC,CAAC;aACJ;SACF;KACF;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAiC;;IAC9D,OAAO,MAAA,IAAI,CAAC,WAAW,CAAC,IAAI,mCAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AAC7D,CAAC"}
@@ -1,17 +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 { RuleModule } from "@monorepolint/core";
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 {};
17
- //# 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,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,QAAA,MAAM,OAAO;;iCAIK,CAAC;AACnB,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAI/C,eAAO,MAAM,sBAAsB;;kCAOJ,CAAC"}
@@ -1,75 +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 = 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 Options = r
14
- .Record({
15
- ignoredDependencies: r.Array(r.String).Or(r.Undefined),
16
- })
17
- .Or(r.Undefined);
18
- const skippedVersions = ["*", "latest"];
19
- exports.consistentDependencies = {
20
- check: function expectConsistentDependencies(context, args) {
21
- checkDeps(context, args, "dependencies");
22
- checkDeps(context, args, "devDependencies");
23
- // we don't check peer deps since they can be more lenient
24
- },
25
- optionsRuntype: Options,
26
- };
27
- function checkDeps(context, args, block) {
28
- var _a;
29
- const packageJson = context.getPackageJson();
30
- const packagePath = context.getPackageJsonPath();
31
- const dependencies = packageJson[block];
32
- const workspacePackageJson = context.getWorkspaceContext().getPackageJson();
33
- const workspaceDependencies = workspacePackageJson[block];
34
- const ignoredDeps = (_a = args === null || args === void 0 ? void 0 : args.ignoredDependencies) !== null && _a !== void 0 ? _a : [];
35
- const depsToCheck = workspaceDependencies == null || ignoredDeps.length === 0
36
- ? workspaceDependencies
37
- : omit(workspaceDependencies, ignoredDeps);
38
- if (dependencies === undefined || depsToCheck === undefined) {
39
- return;
40
- }
41
- const expectedDependencies = {
42
- ...dependencies,
43
- ...filterKeys(depsToCheck, dependencies),
44
- };
45
- if (JSON.stringify(dependencies) !== JSON.stringify(expectedDependencies)) {
46
- context.addError({
47
- file: packagePath,
48
- message: `Inconsistent ${block} with root in package.json`,
49
- longMessage: (0, jest_diff_1.default)(expectedDependencies, dependencies, { expand: true }),
50
- fixer: () => {
51
- const newPackageJson = { ...packageJson };
52
- newPackageJson[block] = expectedDependencies;
53
- context.host.writeJson(packagePath, newPackageJson);
54
- },
55
- });
56
- }
57
- }
58
- function filterKeys(ob, filterOb) {
59
- const newOb = {};
60
- for (const key of Object.keys(filterOb)) {
61
- if (ob[key] !== undefined && skippedVersions.indexOf(filterOb[key]) === -1) {
62
- newOb[key] = ob[key];
63
- }
64
- }
65
- return newOb;
66
- }
67
- function omit(obj, keysToOmit) {
68
- const newObj = {};
69
- const filtered = Object.entries(obj).filter(([key]) => !keysToOmit.includes(key));
70
- for (const [key, value] of filtered) {
71
- newObj[key] = value;
72
- }
73
- return newObj;
74
- }
75
- //# sourceMappingURL=consistentDependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consistentDependencies.js","sourceRoot":"","sources":["../src/consistentDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,kEAA6B;AAC7B,oDAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC;KACd,MAAM,CAAC;IACN,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CACvD,CAAC;KACD,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAGnB,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE3B,QAAA,sBAAsB,GAAG;IACpC,KAAK,EAAE,SAAS,4BAA4B,CAAC,OAAgB,EAAE,IAAa;QAC1E,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC5C,0DAA0D;IAC5D,CAAC;IACD,cAAc,EAAE,OAAO;CACM,CAAC;AAEhC,SAAS,SAAS,CAAC,OAAgB,EAAE,IAAa,EAAE,KAA8D;;IAChH,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,cAAc,EAAE,CAAC;IAC5E,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,mCAAI,EAAE,CAAC;IACpD,MAAM,WAAW,GACf,qBAAqB,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QACvD,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAE/C,IAAI,YAAY,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3D,OAAO;KACR;IAED,MAAM,oBAAoB,GAAG;QAC3B,GAAG,YAAY;QACf,GAAG,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;KACzC,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;QACzE,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,gBAAgB,KAAK,4BAA4B;YAC1D,WAAW,EAAE,IAAA,mBAAI,EAAC,oBAAoB,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvE,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,cAAc,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACtD,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAA0B,EAAE,QAAgC;IAC9E,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACvC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YAC1E,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SACtB;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAI,GAAsB,EAAE,UAA6B;IACpE,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACrB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,14 +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 { RuleModule } from "@monorepolint/core";
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
- //# 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,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"}
@@ -1,94 +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.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 = (0, 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 = (0, 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: () => (0, utils_1.mutateJson)(packageJsonPath, context.host, (input) => {
46
- input.dependencies[dependencyPackageName] = expectedPackageDependencyValue;
47
- return input;
48
- }),
49
- });
50
- }
51
- const actualPackageDevDependencyValue = packageJson.devDependencies && packageJson.devDependencies[dependencyPackageName];
52
- const actualPackageDevDependencyVersion = (0, 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: () => (0, utils_1.mutateJson)(packageJsonPath, context.host, (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 = (0, 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 = (0, 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 = (0, 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
@@ -1 +0,0 @@
1
- {"version":3,"file":"consistentVersions.js","sourceRoot":"","sources":["../src/consistentVersions.ts"],"names":[],"mappings":"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"}
@@ -1,25 +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 { RuleModule } from "@monorepolint/core";
8
- import * as r from "runtypes";
9
- export declare const fileContents: RuleModule<r.Union<[r.Record<{
10
- file: r.String;
11
- generator: r.Function;
12
- template: r.Optional<r.Literal<undefined>>;
13
- templateFile: r.Optional<r.Literal<undefined>>;
14
- }, false>, r.Record<{
15
- file: r.String;
16
- generator: r.Optional<r.Literal<undefined>>;
17
- template: r.String;
18
- templateFile: r.Optional<r.Literal<undefined>>;
19
- }, false>, r.Record<{
20
- file: r.String;
21
- generator: r.Optional<r.Literal<undefined>>;
22
- template: r.Optional<r.Literal<undefined>>;
23
- templateFile: r.String;
24
- }, false>]>>;
25
- //# sourceMappingURL=fileContents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fileContents.d.ts","sourceRoot":"","sources":["../src/fileContents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AA2B9B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;YAwBM,CAAC"}
@@ -1,82 +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.fileContents = void 0;
10
- const tslib_1 = require("tslib");
11
- const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
- const path = tslib_1.__importStar(require("path"));
13
- const r = tslib_1.__importStar(require("runtypes"));
14
- const Options = r.Union(r.Record({
15
- file: r.String,
16
- generator: r.Function,
17
- template: r.Undefined.optional(),
18
- templateFile: r.Undefined.optional(),
19
- }), r.Record({
20
- file: r.String,
21
- generator: r.Undefined.optional(),
22
- template: r.String,
23
- templateFile: r.Undefined.optional(),
24
- }), r.Record({
25
- file: r.String,
26
- generator: r.Undefined.optional(),
27
- template: r.Undefined.optional(),
28
- templateFile: r.String,
29
- }));
30
- exports.fileContents = {
31
- check: function expectFileContents(context, opts) {
32
- const fullPath = path.join(context.packageDir, opts.file);
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
- if (actualContent !== expectedContent) {
37
- context.addError({
38
- file: fullPath,
39
- message: "Expect file contents to match",
40
- longMessage: (0, jest_diff_1.default)(expectedContent, actualContent, { expand: true }),
41
- fixer: () => {
42
- if (expectedContent === undefined) {
43
- if (pathExists)
44
- context.host.deleteFile(fullPath);
45
- }
46
- else {
47
- context.host.mkdir(path.dirname(fullPath), { recursive: true });
48
- context.host.writeFile(fullPath, expectedContent, { encoding: "utf-8" });
49
- }
50
- },
51
- });
52
- }
53
- },
54
- optionsRuntype: Options,
55
- };
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
- }
66
- if (opts.generator) {
67
- optionsCache.set(opts, opts.generator);
68
- return opts.generator(context); // we have no guarentee its the right kind of function
69
- }
70
- else if (opts.templateFile) {
71
- const { packageDir: workspacePackageDir } = context.getWorkspaceContext();
72
- const fullPath = path.resolve(workspacePackageDir, opts.templateFile);
73
- const template = context.host.readFile(fullPath, { encoding: "utf-8" });
74
- optionsCache.set(opts, template);
75
- return template;
76
- }
77
- else {
78
- optionsCache.set(opts, opts.template);
79
- return opts.template;
80
- }
81
- }
82
- //# sourceMappingURL=fileContents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fileContents.js","sourceRoot":"","sources":["../src/fileContents.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts DELETED
@@ -1,20 +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
- export { alphabeticalDependencies } from "./alphabeticalDependencies";
8
- export { alphabeticalScripts } from "./alphabeticalScripts";
9
- export { bannedDependencies } from "./bannedDependencies";
10
- export { consistentDependencies } from "./consistentDependencies";
11
- export { consistentVersions } from "./consistentVersions";
12
- export { fileContents } from "./fileContents";
13
- export { mustSatisfyPeerDependencies } from "./mustSatisfyPeerDependencies";
14
- export { packageOrder } from "./packageOrder";
15
- export { packageEntry } from "./packageEntry";
16
- export { packageScript } from "./packageScript";
17
- export { standardTsconfig } from "./standardTsconfig";
18
- export { nestedWorkspaces } from "./nestedWorkspaces";
19
- export { requireDependency } from "./requireDependency";
20
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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 DELETED
@@ -1,36 +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.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;
10
- var alphabeticalDependencies_1 = require("./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; } });
14
- var bannedDependencies_1 = require("./bannedDependencies");
15
- Object.defineProperty(exports, "bannedDependencies", { enumerable: true, get: function () { return bannedDependencies_1.bannedDependencies; } });
16
- var consistentDependencies_1 = require("./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; } });
20
- var fileContents_1 = require("./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; } });
24
- var packageOrder_1 = require("./packageOrder");
25
- Object.defineProperty(exports, "packageOrder", { enumerable: true, get: function () { return packageOrder_1.packageOrder; } });
26
- var packageEntry_1 = require("./packageEntry");
27
- Object.defineProperty(exports, "packageEntry", { enumerable: true, get: function () { return packageEntry_1.packageEntry; } });
28
- var packageScript_1 = require("./packageScript");
29
- Object.defineProperty(exports, "packageScript", { enumerable: true, get: function () { return packageScript_1.packageScript; } });
30
- var standardTsconfig_1 = require("./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; } });
36
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
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"}