workspace-tools 0.40.4 → 0.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +39 -1
  2. package/lib/dependencies/index.d.ts +2 -2
  3. package/lib/dependencies/index.js +31 -12
  4. package/lib/dependencies/index.js.map +1 -1
  5. package/lib/dependencies/transitiveDeps.d.ts +1 -1
  6. package/lib/dependencies/transitiveDeps.js +59 -38
  7. package/lib/dependencies/transitiveDeps.js.map +1 -1
  8. package/lib/getPackageInfo.d.ts +7 -5
  9. package/lib/getPackageInfo.js +46 -39
  10. package/lib/getPackageInfo.js.map +1 -1
  11. package/lib/getPackageInfos.d.ts +31 -8
  12. package/lib/getPackageInfos.js +41 -41
  13. package/lib/getPackageInfos.js.map +1 -1
  14. package/lib/git/config.d.ts +1 -1
  15. package/lib/git/config.js +15 -12
  16. package/lib/git/config.js.map +1 -1
  17. package/lib/git/getDefaultRemote.js +45 -30
  18. package/lib/git/getDefaultRemote.js.map +1 -1
  19. package/lib/git/getDefaultRemoteBranch.d.ts +1 -1
  20. package/lib/git/getDefaultRemoteBranch.js +35 -24
  21. package/lib/git/getDefaultRemoteBranch.js.map +1 -1
  22. package/lib/git/getRepositoryName.d.ts +1 -1
  23. package/lib/git/getRepositoryName.js +17 -19
  24. package/lib/git/getRepositoryName.js.map +1 -1
  25. package/lib/git/git.d.ts +2 -5
  26. package/lib/git/git.js +62 -64
  27. package/lib/git/git.js.map +1 -1
  28. package/lib/git/gitUtilities.d.ts +3 -3
  29. package/lib/git/gitUtilities.js +377 -147
  30. package/lib/git/gitUtilities.js.map +1 -1
  31. package/lib/git/index.d.ts +5 -5
  32. package/lib/git/index.js +50 -28
  33. package/lib/git/index.js.map +1 -1
  34. package/lib/git/types.js +4 -3
  35. package/lib/git/types.js.map +1 -1
  36. package/lib/graph/createDependencyMap.d.ts +12 -2
  37. package/lib/graph/createDependencyMap.js +18 -10
  38. package/lib/graph/createDependencyMap.js.map +1 -1
  39. package/lib/graph/createPackageGraph.d.ts +10 -6
  40. package/lib/graph/createPackageGraph.js +58 -42
  41. package/lib/graph/createPackageGraph.js.map +1 -1
  42. package/lib/graph/getPackageDependencies.d.ts +2 -2
  43. package/lib/graph/getPackageDependencies.js +24 -53
  44. package/lib/graph/getPackageDependencies.js.map +1 -1
  45. package/lib/graph/index.d.ts +4 -4
  46. package/lib/graph/index.js +25 -27
  47. package/lib/graph/index.js.map +1 -1
  48. package/lib/index.d.ts +29 -27
  49. package/lib/index.js +154 -75
  50. package/lib/index.js.map +1 -1
  51. package/lib/isCachingEnabled.js +17 -6
  52. package/lib/isCachingEnabled.js.map +1 -1
  53. package/lib/lockfile/nameAtVersion.js +9 -4
  54. package/lib/lockfile/nameAtVersion.js.map +1 -1
  55. package/lib/lockfile/parseBerryLock.d.ts +1 -1
  56. package/lib/lockfile/parseBerryLock.js +13 -11
  57. package/lib/lockfile/parseBerryLock.js.map +1 -1
  58. package/lib/lockfile/parseLockFile.d.ts +2 -0
  59. package/lib/lockfile/parseLockFile.js +87 -0
  60. package/lib/lockfile/parseLockFile.js.map +1 -0
  61. package/lib/lockfile/parseNpmLock.d.ts +1 -1
  62. package/lib/lockfile/parseNpmLock.js +15 -7
  63. package/lib/lockfile/parseNpmLock.js.map +1 -1
  64. package/lib/lockfile/parsePnpmLock.d.ts +1 -1
  65. package/lib/lockfile/parsePnpmLock.js +14 -9
  66. package/lib/lockfile/parsePnpmLock.js.map +1 -1
  67. package/lib/lockfile/queryLockFile.d.ts +1 -1
  68. package/lib/lockfile/queryLockFile.js +11 -6
  69. package/lib/lockfile/queryLockFile.js.map +1 -1
  70. package/lib/lockfile/readYaml.js +17 -9
  71. package/lib/lockfile/readYaml.js.map +1 -1
  72. package/lib/lockfile/types.js +3 -2
  73. package/lib/lockfile/types.js.map +1 -1
  74. package/lib/logging.js +10 -6
  75. package/lib/logging.js.map +1 -1
  76. package/lib/paths.d.ts +4 -1
  77. package/lib/paths.js +60 -58
  78. package/lib/paths.js.map +1 -1
  79. package/lib/scope.js +30 -21
  80. package/lib/scope.js.map +1 -1
  81. package/lib/types/Catalogs.js +8 -3
  82. package/lib/types/Catalogs.js.map +1 -1
  83. package/lib/types/PackageGraph.d.ts +5 -1
  84. package/lib/types/PackageGraph.js +4 -3
  85. package/lib/types/PackageGraph.js.map +1 -1
  86. package/lib/types/PackageInfo.d.ts +1 -1
  87. package/lib/types/PackageInfo.js +3 -2
  88. package/lib/types/PackageInfo.js.map +1 -1
  89. package/lib/types/WorkspaceInfo.d.ts +3 -5
  90. package/lib/types/WorkspaceInfo.js +3 -2
  91. package/lib/types/WorkspaceInfo.js.map +1 -1
  92. package/lib/types/WorkspaceManager.js +4 -0
  93. package/lib/types/WorkspaceManager.js.map +1 -0
  94. package/lib/workspaces/catalogsToYaml.d.ts +1 -1
  95. package/lib/workspaces/catalogsToYaml.js +12 -10
  96. package/lib/workspaces/catalogsToYaml.js.map +1 -1
  97. package/lib/workspaces/findWorkspacePath.d.ts +2 -1
  98. package/lib/workspaces/findWorkspacePath.js +10 -12
  99. package/lib/workspaces/findWorkspacePath.js.map +1 -1
  100. package/lib/workspaces/getAllPackageJsonFiles.d.ts +10 -4
  101. package/lib/workspaces/getAllPackageJsonFiles.js +32 -22
  102. package/lib/workspaces/getAllPackageJsonFiles.js.map +1 -1
  103. package/lib/workspaces/getCatalogVersion.d.ts +1 -1
  104. package/lib/workspaces/getCatalogVersion.js +19 -32
  105. package/lib/workspaces/getCatalogVersion.js.map +1 -1
  106. package/lib/workspaces/getCatalogs.d.ts +8 -2
  107. package/lib/workspaces/getCatalogs.js +23 -15
  108. package/lib/workspaces/getCatalogs.js.map +1 -1
  109. package/lib/workspaces/getChangedPackages.d.ts +1 -1
  110. package/lib/workspaces/getChangedPackages.js +47 -30
  111. package/lib/workspaces/getChangedPackages.js.map +1 -1
  112. package/lib/workspaces/getPackagesByFiles.js +29 -24
  113. package/lib/workspaces/getPackagesByFiles.js.map +1 -1
  114. package/lib/workspaces/getWorkspaceInfos.d.ts +36 -0
  115. package/lib/workspaces/getWorkspaceInfos.js +60 -0
  116. package/lib/workspaces/getWorkspaceInfos.js.map +1 -0
  117. package/lib/workspaces/getWorkspaceManagerRoot.d.ts +16 -0
  118. package/lib/workspaces/getWorkspaceManagerRoot.js +32 -0
  119. package/lib/workspaces/getWorkspaceManagerRoot.js.map +1 -0
  120. package/lib/workspaces/getWorkspacePackagePaths.d.ts +17 -2
  121. package/lib/workspaces/getWorkspacePackagePaths.js +138 -24
  122. package/lib/workspaces/getWorkspacePackagePaths.js.map +1 -1
  123. package/lib/workspaces/getWorkspacePatterns.d.ts +11 -0
  124. package/lib/workspaces/getWorkspacePatterns.js +25 -0
  125. package/lib/workspaces/getWorkspacePatterns.js.map +1 -0
  126. package/lib/workspaces/implementations/WorkspaceUtilities.d.ts +27 -0
  127. package/lib/workspaces/implementations/WorkspaceUtilities.js +4 -0
  128. package/lib/workspaces/implementations/WorkspaceUtilities.js.map +1 -0
  129. package/lib/workspaces/implementations/getPackageJsonWorkspacePatterns.d.ts +9 -0
  130. package/lib/workspaces/implementations/getPackageJsonWorkspacePatterns.js +38 -0
  131. package/lib/workspaces/implementations/getPackageJsonWorkspacePatterns.js.map +1 -0
  132. package/lib/workspaces/implementations/getWorkspaceManagerAndRoot.d.ts +19 -5
  133. package/lib/workspaces/implementations/getWorkspaceManagerAndRoot.js +38 -40
  134. package/lib/workspaces/implementations/getWorkspaceManagerAndRoot.js.map +1 -1
  135. package/lib/workspaces/implementations/getWorkspaceUtilities.d.ts +4 -36
  136. package/lib/workspaces/implementations/getWorkspaceUtilities.js +35 -20
  137. package/lib/workspaces/implementations/getWorkspaceUtilities.js.map +1 -1
  138. package/lib/workspaces/implementations/index.d.ts +2 -2
  139. package/lib/workspaces/implementations/index.js +19 -7
  140. package/lib/workspaces/implementations/index.js.map +1 -1
  141. package/lib/workspaces/implementations/lerna.d.ts +2 -20
  142. package/lib/workspaces/implementations/lerna.js +77 -62
  143. package/lib/workspaces/implementations/lerna.js.map +1 -1
  144. package/lib/workspaces/implementations/npm.d.ts +3 -17
  145. package/lib/workspaces/implementations/npm.js +12 -43
  146. package/lib/workspaces/implementations/npm.js.map +1 -1
  147. package/lib/workspaces/implementations/pnpm.d.ts +2 -30
  148. package/lib/workspaces/implementations/pnpm.js +32 -89
  149. package/lib/workspaces/implementations/pnpm.js.map +1 -1
  150. package/lib/workspaces/implementations/rush.d.ts +2 -22
  151. package/lib/workspaces/implementations/rush.js +26 -69
  152. package/lib/workspaces/implementations/rush.js.map +1 -1
  153. package/lib/workspaces/implementations/yarn.d.ts +2 -35
  154. package/lib/workspaces/implementations/yarn.js +33 -85
  155. package/lib/workspaces/implementations/yarn.js.map +1 -1
  156. package/lib/workspaces/wrapWorkspaceUtility.d.ts +31 -0
  157. package/lib/workspaces/wrapWorkspaceUtility.js +47 -0
  158. package/lib/workspaces/wrapWorkspaceUtility.js.map +1 -0
  159. package/package.json +21 -12
  160. package/lib/getPackagePaths.d.ts +0 -10
  161. package/lib/getPackagePaths.js +0 -49
  162. package/lib/getPackagePaths.js.map +0 -1
  163. package/lib/infoFromPackageJson.d.ts +0 -17
  164. package/lib/infoFromPackageJson.js +0 -11
  165. package/lib/infoFromPackageJson.js.map +0 -1
  166. package/lib/lockfile/index.d.ts +0 -6
  167. package/lib/lockfile/index.js +0 -105
  168. package/lib/lockfile/index.js.map +0 -1
  169. package/lib/workspaces/WorkspaceManager.js +0 -3
  170. package/lib/workspaces/WorkspaceManager.js.map +0 -1
  171. package/lib/workspaces/getWorkspacePackageInfo.d.ts +0 -26
  172. package/lib/workspaces/getWorkspacePackageInfo.js +0 -76
  173. package/lib/workspaces/getWorkspacePackageInfo.js.map +0 -1
  174. package/lib/workspaces/getWorkspaceRoot.d.ts +0 -25
  175. package/lib/workspaces/getWorkspaceRoot.js +0 -35
  176. package/lib/workspaces/getWorkspaceRoot.js.map +0 -1
  177. package/lib/workspaces/getWorkspaces.d.ts +0 -20
  178. package/lib/workspaces/getWorkspaces.js +0 -39
  179. package/lib/workspaces/getWorkspaces.js.map +0 -1
  180. package/lib/workspaces/implementations/packageJsonWorkspaces.d.ts +0 -31
  181. package/lib/workspaces/implementations/packageJsonWorkspaces.js +0 -104
  182. package/lib/workspaces/implementations/packageJsonWorkspaces.js.map +0 -1
  183. package/lib/workspaces/listOfWorkspacePackageNames.d.ts +0 -5
  184. package/lib/workspaces/listOfWorkspacePackageNames.js +0 -11
  185. package/lib/workspaces/listOfWorkspacePackageNames.js.map +0 -1
  186. /package/lib/{workspaces → types}/WorkspaceManager.d.ts +0 -0
@@ -1,72 +1,87 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getWorkspacesAsync = exports.getWorkspaces = exports.getLernaWorkspacesAsync = exports.getLernaWorkspaces = exports.getWorkspacePackagePaths = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const jju_1 = __importDefault(require("jju"));
9
- const path_1 = __importDefault(require("path"));
10
- const getPackagePaths_1 = require("../../getPackagePaths");
11
- const getWorkspacePackageInfo_1 = require("../getWorkspacePackageInfo");
12
- const logging_1 = require("../../logging");
13
- const getWorkspaceManagerAndRoot_1 = require("./getWorkspaceManagerAndRoot");
14
- function getLernaRoot(cwd) {
15
- const root = (0, getWorkspaceManagerAndRoot_1.getWorkspaceManagerAndRoot)(cwd, undefined, "lerna")?.root;
16
- if (!root) {
17
- throw new Error("Could not find lerna root from " + cwd);
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "lernaUtilities", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return lernaUtilities;
18
9
  }
19
- return root;
10
+ });
11
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ const _jju = /*#__PURE__*/ _interop_require_default(require("jju"));
13
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
+ const _isCachingEnabled = require("../../isCachingEnabled.js");
15
+ const _getWorkspaceManagerAndRoot = require("./getWorkspaceManagerAndRoot.js");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
20
  }
21
- /**
22
- * Get paths for each package ("workspace") in a lerna monorepo.
23
- * @returns Array of monorepo package paths, or an empty array on error
24
- */
25
- function getWorkspacePackagePaths(cwd) {
26
- try {
27
- const root = getLernaRoot(cwd);
28
- const lernaJsonPath = path_1.default.join(root, "lerna.json");
29
- const lernaConfig = jju_1.default.parse(fs_1.default.readFileSync(lernaJsonPath, "utf-8"));
30
- return (0, getPackagePaths_1.getPackagePaths)(root, lernaConfig.packages);
21
+ const lernaUtilities = {
22
+ getWorkspacePatterns: ({ root })=>{
23
+ const lernaJsonPath = _path.default.join(root, _getWorkspaceManagerAndRoot.managerFiles.lerna);
24
+ const lernaConfig = _jju.default.parse(_fs.default.readFileSync(lernaJsonPath, "utf-8"));
25
+ if (lernaConfig.packages) {
26
+ return {
27
+ patterns: lernaConfig.packages,
28
+ type: "pattern"
29
+ };
30
+ }
31
+ // Newer lerna versions also pick up workspaces from the package manager.
32
+ const actualManager = getActualManager({
33
+ root
34
+ });
35
+ if (!actualManager) {
36
+ throw new Error(`${lernaJsonPath} does not define "packages", and no known package manager was found.`);
37
+ }
38
+ const managerUtils = getManagerUtils(actualManager);
39
+ return managerUtils.getWorkspacePatterns({
40
+ root
41
+ });
42
+ },
43
+ // lerna could theoretically use yarn or pnpm catalogs
44
+ getCatalogs: ({ root })=>{
45
+ const actualManager = getActualManager({
46
+ root
47
+ });
48
+ return actualManager && getManagerUtils(actualManager).getCatalogs?.({
49
+ root
50
+ });
31
51
  }
32
- catch (err) {
33
- (0, logging_1.logVerboseWarning)(`Error getting lerna workspace package paths for ${cwd}`, err);
34
- return [];
35
- }
36
- }
37
- exports.getWorkspacePackagePaths = getWorkspacePackagePaths;
52
+ };
53
+ /** Mapping from lerna repo root to actual package manager */ const managerCache = new Map();
38
54
  /**
39
- * Get an array with names, paths, and package.json contents for each package ("workspace")
40
- * in a lerna monorepo.
41
- * @returns Array of monorepo package infos, or an empty array on error
42
- */
43
- function getLernaWorkspaces(cwd) {
44
- try {
45
- const packagePaths = getWorkspacePackagePaths(cwd);
46
- return (0, getWorkspacePackageInfo_1.getWorkspacePackageInfo)(packagePaths);
55
+ * Get the actual package manager used by a lerna monorepo (with caching).
56
+ */ function getActualManager(params) {
57
+ const { root } = params;
58
+ if ((0, _isCachingEnabled.isCachingEnabled)() && managerCache.has(root)) {
59
+ return managerCache.get(root);
47
60
  }
48
- catch (err) {
49
- (0, logging_1.logVerboseWarning)(`Error getting lerna workspace package infos for ${cwd}`, err);
50
- return [];
61
+ for (const manager of [
62
+ "npm",
63
+ "yarn",
64
+ "pnpm"
65
+ ]){
66
+ const managerPath = _path.default.join(root, _getWorkspaceManagerAndRoot.managerFiles[manager]);
67
+ if (_fs.default.existsSync(managerPath)) {
68
+ managerCache.set(root, manager);
69
+ return manager;
70
+ }
51
71
  }
72
+ managerCache.set(root, undefined);
73
+ return undefined;
52
74
  }
53
- exports.getLernaWorkspaces = getLernaWorkspaces;
54
- exports.getWorkspaces = getLernaWorkspaces;
55
- /**
56
- * Get an array with names, paths, and package.json contents for each package ("workspace")
57
- * in a lerna monorepo.
58
- * @returns Array of monorepo package infos, or an empty array on error
59
- */
60
- async function getLernaWorkspacesAsync(cwd) {
61
- try {
62
- const packagePaths = getWorkspacePackagePaths(cwd);
63
- return (0, getWorkspacePackageInfo_1.getWorkspacePackageInfoAsync)(packagePaths);
64
- }
65
- catch (err) {
66
- (0, logging_1.logVerboseWarning)(`Error getting lerna workspace package infos for ${cwd}`, err);
67
- return [];
75
+ function getManagerUtils(manager) {
76
+ switch(manager){
77
+ case "npm":
78
+ // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
79
+ return require("./npm").npmUtilities;
80
+ case "yarn":
81
+ // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
82
+ return require("./yarn").yarnUtilities;
83
+ case "pnpm":
84
+ // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
85
+ return require("./pnpm").pnpmUtilities;
68
86
  }
69
87
  }
70
- exports.getLernaWorkspacesAsync = getLernaWorkspacesAsync;
71
- exports.getWorkspacesAsync = getLernaWorkspacesAsync;
72
- //# sourceMappingURL=lerna.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lerna.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/lerna.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,8CAAsB;AACtB,gDAAwB;AACxB,2DAAwD;AAExD,wEAAmG;AACnG,2CAAkD;AAClD,6EAA0E;AAE1E,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,IAAI,GAAG,IAAA,uDAA0B,EAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;IACvE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,GAAG,CAAC,CAAC;KAC1D;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,GAAW;IAClD,IAAI;QACF,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,aAAG,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,OAAO,IAAA,iCAAe,EAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;KACpD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,2BAAiB,EAAC,mDAAmD,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAVD,4DAUC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,IAAI;QACF,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAA,iDAAuB,EAAC,YAAY,CAAC,CAAC;KAC9C;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,2BAAiB,EAAC,mDAAmD,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AARD,gDAQC;AAiB8B,2CAAa;AAf5C;;;;GAIG;AACI,KAAK,UAAU,uBAAuB,CAAC,GAAW;IACvD,IAAI;QACF,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAA,sDAA4B,EAAC,YAAY,CAAC,CAAC;KACnD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,2BAAiB,EAAC,mDAAmD,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AARD,0DAQC;AAGmC,qDAAkB"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/lerna.ts"],"sourcesContent":["import fs from \"fs\";\nimport jju from \"jju\";\nimport path from \"path\";\nimport { isCachingEnabled } from \"../../isCachingEnabled.js\";\nimport { managerFiles } from \"./getWorkspaceManagerAndRoot.js\";\nimport type { WorkspaceUtilities } from \"./WorkspaceUtilities.js\";\n\nexport const lernaUtilities: WorkspaceUtilities = {\n getWorkspacePatterns: ({ root }) => {\n const lernaJsonPath = path.join(root, managerFiles.lerna);\n const lernaConfig = jju.parse(fs.readFileSync(lernaJsonPath, \"utf-8\")) as { packages?: string[] };\n if (lernaConfig.packages) {\n return { patterns: lernaConfig.packages, type: \"pattern\" };\n }\n\n // Newer lerna versions also pick up workspaces from the package manager.\n const actualManager = getActualManager({ root });\n if (!actualManager) {\n throw new Error(`${lernaJsonPath} does not define \"packages\", and no known package manager was found.`);\n }\n\n const managerUtils = getManagerUtils(actualManager);\n return managerUtils.getWorkspacePatterns({ root });\n },\n\n // lerna could theoretically use yarn or pnpm catalogs\n getCatalogs: ({ root }) => {\n const actualManager = getActualManager({ root });\n return actualManager && getManagerUtils(actualManager).getCatalogs?.({ root });\n },\n};\n\n/** Mapping from lerna repo root to actual package manager */\nconst managerCache = new Map<string, \"yarn\" | \"pnpm\" | \"npm\" | undefined>();\n\n/**\n * Get the actual package manager used by a lerna monorepo (with caching).\n */\nfunction getActualManager(params: { root: string }): \"yarn\" | \"pnpm\" | \"npm\" | undefined {\n const { root } = params;\n if (isCachingEnabled() && managerCache.has(root)) {\n return managerCache.get(root);\n }\n\n for (const manager of [\"npm\", \"yarn\", \"pnpm\"] as const) {\n const managerPath = path.join(root, managerFiles[manager]);\n if (fs.existsSync(managerPath)) {\n managerCache.set(root, manager);\n return manager;\n }\n }\n\n managerCache.set(root, undefined);\n return undefined;\n}\n\nfunction getManagerUtils(manager: \"npm\" | \"yarn\" | \"pnpm\"): WorkspaceUtilities {\n switch (manager) {\n case \"npm\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n return (require(\"./npm\") as typeof import(\"./npm\")).npmUtilities;\n case \"yarn\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n return (require(\"./yarn\") as typeof import(\"./yarn\")).yarnUtilities;\n case \"pnpm\":\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n return (require(\"./pnpm\") as typeof import(\"./pnpm\")).pnpmUtilities;\n }\n}\n"],"names":["lernaUtilities","getWorkspacePatterns","root","lernaJsonPath","path","join","managerFiles","lerna","lernaConfig","jju","parse","fs","readFileSync","packages","patterns","type","actualManager","getActualManager","Error","managerUtils","getManagerUtils","getCatalogs","managerCache","Map","params","isCachingEnabled","has","get","manager","managerPath","existsSync","set","undefined","require","npmUtilities","yarnUtilities","pnpmUtilities"],"mappings":";;;;+BAOaA;;;eAAAA;;;2DAPE;4DACC;6DACC;kCACgB;4CACJ;;;;;;AAGtB,MAAMA,iBAAqC;IAChDC,sBAAsB,CAAC,EAAEC,IAAI,EAAE;QAC7B,MAAMC,gBAAgBC,aAAI,CAACC,IAAI,CAACH,MAAMI,wCAAY,CAACC,KAAK;QACxD,MAAMC,cAAcC,YAAG,CAACC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACT,eAAe;QAC7D,IAAIK,YAAYK,QAAQ,EAAE;YACxB,OAAO;gBAAEC,UAAUN,YAAYK,QAAQ;gBAAEE,MAAM;YAAU;QAC3D;QAEA,yEAAyE;QACzE,MAAMC,gBAAgBC,iBAAiB;YAAEf;QAAK;QAC9C,IAAI,CAACc,eAAe;YAClB,MAAM,IAAIE,MAAM,GAAGf,cAAc,oEAAoE,CAAC;QACxG;QAEA,MAAMgB,eAAeC,gBAAgBJ;QACrC,OAAOG,aAAalB,oBAAoB,CAAC;YAAEC;QAAK;IAClD;IAEA,sDAAsD;IACtDmB,aAAa,CAAC,EAAEnB,IAAI,EAAE;QACpB,MAAMc,gBAAgBC,iBAAiB;YAAEf;QAAK;QAC9C,OAAOc,iBAAiBI,gBAAgBJ,eAAeK,WAAW,GAAG;YAAEnB;QAAK;IAC9E;AACF;AAEA,2DAA2D,GAC3D,MAAMoB,eAAe,IAAIC;AAEzB;;CAEC,GACD,SAASN,iBAAiBO,MAAwB;IAChD,MAAM,EAAEtB,IAAI,EAAE,GAAGsB;IACjB,IAAIC,IAAAA,kCAAgB,OAAMH,aAAaI,GAAG,CAACxB,OAAO;QAChD,OAAOoB,aAAaK,GAAG,CAACzB;IAC1B;IAEA,KAAK,MAAM0B,WAAW;QAAC;QAAO;QAAQ;KAAO,CAAW;QACtD,MAAMC,cAAczB,aAAI,CAACC,IAAI,CAACH,MAAMI,wCAAY,CAACsB,QAAQ;QACzD,IAAIjB,WAAE,CAACmB,UAAU,CAACD,cAAc;YAC9BP,aAAaS,GAAG,CAAC7B,MAAM0B;YACvB,OAAOA;QACT;IACF;IAEAN,aAAaS,GAAG,CAAC7B,MAAM8B;IACvB,OAAOA;AACT;AAEA,SAASZ,gBAAgBQ,OAAgC;IACvD,OAAQA;QACN,KAAK;YACH,iJAAiJ;YACjJ,OAAO,AAACK,QAAQ,SAAoCC,YAAY;QAClE,KAAK;YACH,iJAAiJ;YACjJ,OAAO,AAACD,QAAQ,UAAsCE,aAAa;QACrE,KAAK;YACH,iJAAiJ;YACjJ,OAAO,AAACF,QAAQ,UAAsCG,aAAa;IACvE;AACF"}
@@ -1,17 +1,3 @@
1
- import type { WorkspaceInfos } from "../../types/WorkspaceInfo";
2
- /** Get paths for each package ("workspace") in an npm monorepo. */
3
- export declare function getWorkspacePackagePaths(cwd: string): string[];
4
- /** Get paths for each package ("workspace") in an npm monorepo. */
5
- export declare function getWorkspacePackagePathsAsync(cwd: string): Promise<string[]>;
6
- /**
7
- * Get an array with names, paths, and package.json contents for each package ("workspace")
8
- * in an npm monorepo.
9
- */
10
- export declare function getNpmWorkspaces(cwd: string): WorkspaceInfos;
11
- /**
12
- * Get an array with names, paths, and package.json contents for each package ("workspace")
13
- * in an npm monorepo.
14
- */
15
- export declare function getNpmWorkspacesAsync(cwd: string): Promise<WorkspaceInfos>;
16
- export { getNpmWorkspaces as getWorkspaces };
17
- export { getNpmWorkspacesAsync as getWorkspacesAsync };
1
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
2
+ /** npm has no overrides of the default behaviors */
3
+ export declare const npmUtilities: WorkspaceUtilities;
@@ -1,45 +1,14 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWorkspacesAsync = exports.getWorkspaces = exports.getNpmWorkspacesAsync = exports.getNpmWorkspaces = exports.getWorkspacePackagePathsAsync = exports.getWorkspacePackagePaths = void 0;
4
- const _1 = require(".");
5
- const packageJsonWorkspaces_1 = require("./packageJsonWorkspaces");
6
- function getNpmRoot(cwd) {
7
- const root = (0, _1.getWorkspaceManagerAndRoot)(cwd, undefined, "npm")?.root;
8
- if (!root) {
9
- throw new Error("Could not find npm root from " + cwd);
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "npmUtilities", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return npmUtilities;
10
9
  }
11
- return root;
12
- }
13
- /** Get paths for each package ("workspace") in an npm monorepo. */
14
- function getWorkspacePackagePaths(cwd) {
15
- const root = getNpmRoot(cwd);
16
- return (0, packageJsonWorkspaces_1.getPackagePathsFromWorkspaceRoot)(root);
17
- }
18
- exports.getWorkspacePackagePaths = getWorkspacePackagePaths;
19
- /** Get paths for each package ("workspace") in an npm monorepo. */
20
- function getWorkspacePackagePathsAsync(cwd) {
21
- const root = getNpmRoot(cwd);
22
- return (0, packageJsonWorkspaces_1.getPackagePathsFromWorkspaceRootAsync)(root);
23
- }
24
- exports.getWorkspacePackagePathsAsync = getWorkspacePackagePathsAsync;
25
- /**
26
- * Get an array with names, paths, and package.json contents for each package ("workspace")
27
- * in an npm monorepo.
28
- */
29
- function getNpmWorkspaces(cwd) {
30
- const root = getNpmRoot(cwd);
31
- return (0, packageJsonWorkspaces_1.getWorkspaceInfoFromWorkspaceRoot)(root);
32
- }
33
- exports.getNpmWorkspaces = getNpmWorkspaces;
34
- exports.getWorkspaces = getNpmWorkspaces;
35
- /**
36
- * Get an array with names, paths, and package.json contents for each package ("workspace")
37
- * in an npm monorepo.
38
- */
39
- function getNpmWorkspacesAsync(cwd) {
40
- const root = getNpmRoot(cwd);
41
- return (0, packageJsonWorkspaces_1.getWorkspaceInfoFromWorkspaceRootAsync)(root);
42
- }
43
- exports.getNpmWorkspacesAsync = getNpmWorkspacesAsync;
44
- exports.getWorkspacesAsync = getNpmWorkspacesAsync;
45
- //# sourceMappingURL=npm.js.map
10
+ });
11
+ const _getPackageJsonWorkspacePatterns = require("./getPackageJsonWorkspacePatterns.js");
12
+ const npmUtilities = {
13
+ getWorkspacePatterns: _getPackageJsonWorkspacePatterns.getPackageJsonWorkspacePatterns
14
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/npm.ts"],"names":[],"mappings":";;;AAAA,wBAA+C;AAE/C,mEAKiC;AAEjC,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,IAAI,GAAG,IAAA,6BAA0B,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;IACrE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;KACxD;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mEAAmE;AACnE,SAAgB,wBAAwB,CAAC,GAAW;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,IAAA,wDAAgC,EAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAHD,4DAGC;AAED,mEAAmE;AACnE,SAAgB,6BAA6B,CAAC,GAAW;IACvD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,IAAA,6DAAqC,EAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAHD,sEAGC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,IAAA,yDAAiC,EAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAHD,4CAGC;AAW4B,yCAAa;AAT1C;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,IAAA,8DAAsC,EAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAHD,sDAGC;AAGiC,mDAAkB"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/npm.ts"],"sourcesContent":["import { getPackageJsonWorkspacePatterns } from \"./getPackageJsonWorkspacePatterns.js\";\nimport type { WorkspaceUtilities } from \"./WorkspaceUtilities.js\";\n\n/** npm has no overrides of the default behaviors */\nexport const npmUtilities: WorkspaceUtilities = {\n getWorkspacePatterns: getPackageJsonWorkspacePatterns,\n};\n"],"names":["npmUtilities","getWorkspacePatterns","getPackageJsonWorkspacePatterns"],"mappings":";;;;+BAIaA;;;eAAAA;;;iDAJmC;AAIzC,MAAMA,eAAmC;IAC9CC,sBAAsBC,gEAA+B;AACvD"}
@@ -1,30 +1,2 @@
1
- import type { WorkspaceInfos } from "../../types/WorkspaceInfo";
2
- import type { Catalogs } from "../../types/Catalogs";
3
- /** @deprecated Use `getWorkspaceManagerRoot` */
4
- export declare function getPnpmWorkspaceRoot(cwd: string): string;
5
- /**
6
- * Get paths for each package ("workspace") in a pnpm monorepo.
7
- * @returns Array of monorepo package paths, or an empty array on error
8
- */
9
- export declare function getWorkspacePackagePaths(cwd: string): string[];
10
- /**
11
- * Get an array with names, paths, and package.json contents for each package ("workspace")
12
- * in a pnpm monorepo.
13
- * @returns Array of monorepo package infos, or an empty array on error
14
- */
15
- export declare function getPnpmWorkspaces(cwd: string): WorkspaceInfos;
16
- /**
17
- * Get an array with names, paths, and package.json contents for each package ("workspace")
18
- * in a pnpm monorepo.
19
- * @returns Array of monorepo package infos, or an empty array on error
20
- */
21
- export declare function getPnpmWorkspacesAsync(cwd: string): Promise<WorkspaceInfos>;
22
- /**
23
- * Get version catalogs if present.
24
- * Returns undefined if there's no catalog, or any issue reading or parsing.
25
- * @see https://pnpm.io/catalogs
26
- */
27
- export declare function getPnpmCatalogs(cwd: string): Catalogs | undefined;
28
- export { getPnpmWorkspaces as getWorkspaces };
29
- export { getPnpmWorkspacesAsync as getWorkspacesAsync };
30
- export { getPnpmCatalogs as getCatalogs };
1
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
2
+ export declare const pnpmUtilities: WorkspaceUtilities;
@@ -1,86 +1,36 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getCatalogs = exports.getWorkspacesAsync = exports.getWorkspaces = exports.getPnpmCatalogs = exports.getPnpmWorkspacesAsync = exports.getPnpmWorkspaces = exports.getWorkspacePackagePaths = exports.getPnpmWorkspaceRoot = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const getPackagePaths_1 = require("../../getPackagePaths");
9
- const getWorkspacePackageInfo_1 = require("../getWorkspacePackageInfo");
10
- const readYaml_1 = require("../../lockfile/readYaml");
11
- const logging_1 = require("../../logging");
12
- const getWorkspaceManagerAndRoot_1 = require("./getWorkspaceManagerAndRoot");
13
- function getPnpmRootAndYaml(cwd) {
14
- const root = getPnpmWorkspaceRoot(cwd);
15
- const pnpmWorkspacesFile = path_1.default.join(root, "pnpm-workspace.yaml");
16
- return { root, workspaceYaml: (0, readYaml_1.readYaml)(pnpmWorkspacesFile) };
17
- }
18
- /** @deprecated Use `getWorkspaceManagerRoot` */
19
- function getPnpmWorkspaceRoot(cwd) {
20
- const root = (0, getWorkspaceManagerAndRoot_1.getWorkspaceManagerAndRoot)(cwd, undefined, "pnpm")?.root;
21
- if (!root) {
22
- throw new Error("Could not find pnpm root from " + cwd);
23
- }
24
- return root;
25
- }
26
- exports.getPnpmWorkspaceRoot = getPnpmWorkspaceRoot;
27
- /**
28
- * Get paths for each package ("workspace") in a pnpm monorepo.
29
- * @returns Array of monorepo package paths, or an empty array on error
30
- */
31
- function getWorkspacePackagePaths(cwd) {
32
- try {
33
- const { root, workspaceYaml } = getPnpmRootAndYaml(cwd);
34
- return (0, getPackagePaths_1.getPackagePaths)(root, workspaceYaml.packages);
35
- }
36
- catch (err) {
37
- (0, logging_1.logVerboseWarning)(`Error getting pnpm workspace package paths for ${cwd}`, err);
38
- return [];
39
- }
40
- }
41
- exports.getWorkspacePackagePaths = getWorkspacePackagePaths;
42
- /**
43
- * Get an array with names, paths, and package.json contents for each package ("workspace")
44
- * in a pnpm monorepo.
45
- * @returns Array of monorepo package infos, or an empty array on error
46
- */
47
- function getPnpmWorkspaces(cwd) {
48
- try {
49
- const packagePaths = getWorkspacePackagePaths(cwd);
50
- return (0, getWorkspacePackageInfo_1.getWorkspacePackageInfo)(packagePaths);
51
- }
52
- catch (err) {
53
- (0, logging_1.logVerboseWarning)(`Error getting pnpm workspace package infos for ${cwd}`, err);
54
- return [];
55
- }
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "pnpmUtilities", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return pnpmUtilities;
9
+ }
10
+ });
11
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
+ const _readYaml = require("../../lockfile/readYaml.js");
13
+ const _getWorkspaceManagerAndRoot = require("./getWorkspaceManagerAndRoot.js");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
56
18
  }
57
- exports.getPnpmWorkspaces = getPnpmWorkspaces;
58
- exports.getWorkspaces = getPnpmWorkspaces;
59
- /**
60
- * Get an array with names, paths, and package.json contents for each package ("workspace")
61
- * in a pnpm monorepo.
62
- * @returns Array of monorepo package infos, or an empty array on error
63
- */
64
- async function getPnpmWorkspacesAsync(cwd) {
65
- try {
66
- const packagePaths = getWorkspacePackagePaths(cwd);
67
- return (0, getWorkspacePackageInfo_1.getWorkspacePackageInfoAsync)(packagePaths);
68
- }
69
- catch (err) {
70
- (0, logging_1.logVerboseWarning)(`Error getting pnpm workspace package infos for ${cwd}`, err);
71
- return [];
72
- }
19
+ function getPnpmWorkspaceYaml(params) {
20
+ const pnpmWorkspacesFile = _path.default.join(params.root, _getWorkspaceManagerAndRoot.managerFiles.pnpm);
21
+ return (0, _readYaml.readYaml)(pnpmWorkspacesFile);
73
22
  }
74
- exports.getPnpmWorkspacesAsync = getPnpmWorkspacesAsync;
75
- exports.getWorkspacesAsync = getPnpmWorkspacesAsync;
76
- /**
77
- * Get version catalogs if present.
78
- * Returns undefined if there's no catalog, or any issue reading or parsing.
79
- * @see https://pnpm.io/catalogs
80
- */
81
- function getPnpmCatalogs(cwd) {
82
- try {
83
- const { workspaceYaml } = getPnpmRootAndYaml(cwd);
23
+ const pnpmUtilities = {
24
+ getWorkspacePatterns: (params)=>{
25
+ const { packages } = getPnpmWorkspaceYaml(params);
26
+ return packages ? {
27
+ patterns: packages,
28
+ type: "pattern"
29
+ } : undefined;
30
+ },
31
+ // See https://pnpm.io/catalogs
32
+ getCatalogs: (params)=>{
33
+ const workspaceYaml = getPnpmWorkspaceYaml(params);
84
34
  if (!workspaceYaml.catalog && !workspaceYaml.catalogs) {
85
35
  return undefined;
86
36
  }
@@ -89,14 +39,7 @@ function getPnpmCatalogs(cwd) {
89
39
  const { default: namedDefaultCatalog, ...namedCatalogs } = workspaceYaml.catalogs || {};
90
40
  return {
91
41
  default: workspaceYaml.catalog || namedDefaultCatalog,
92
- named: Object.keys(namedCatalogs).length ? namedCatalogs : undefined,
42
+ named: Object.keys(namedCatalogs).length ? namedCatalogs : undefined
93
43
  };
94
44
  }
95
- catch (err) {
96
- (0, logging_1.logVerboseWarning)(`Error getting pnpm catalogs for ${cwd}`, err);
97
- return undefined;
98
- }
99
- }
100
- exports.getPnpmCatalogs = getPnpmCatalogs;
101
- exports.getCatalogs = getPnpmCatalogs;
102
- //# sourceMappingURL=pnpm.js.map
45
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"pnpm.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/pnpm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/pnpm.ts"],"sourcesContent":["import path from \"path\";\nimport { readYaml } from \"../../lockfile/readYaml.js\";\nimport type { Catalog, NamedCatalogs } from \"../../types/Catalogs.js\";\nimport { managerFiles } from \"./getWorkspaceManagerAndRoot.js\";\nimport type { WorkspaceUtilities } from \"./WorkspaceUtilities.js\";\n\ntype PnpmWorkspaceYaml = {\n packages: string[];\n // Format per https://pnpm.io/catalogs\n catalog?: Catalog;\n catalogs?: NamedCatalogs;\n};\n\nfunction getPnpmWorkspaceYaml(params: { root: string }) {\n const pnpmWorkspacesFile = path.join(params.root, managerFiles.pnpm);\n return readYaml<PnpmWorkspaceYaml>(pnpmWorkspacesFile);\n}\n\nexport const pnpmUtilities: WorkspaceUtilities = {\n getWorkspacePatterns: (params) => {\n const { packages } = getPnpmWorkspaceYaml(params);\n return packages ? { patterns: packages, type: \"pattern\" } : undefined;\n },\n\n // See https://pnpm.io/catalogs\n getCatalogs: (params) => {\n const workspaceYaml = getPnpmWorkspaceYaml(params);\n if (!workspaceYaml.catalog && !workspaceYaml.catalogs) {\n return undefined;\n }\n // pnpm treats catalog: and catalog:default as the same (and errors if both are defined),\n // so treat the catalog named \"default\" as the default if present.\n const { default: namedDefaultCatalog, ...namedCatalogs } = workspaceYaml.catalogs || {};\n return {\n default: workspaceYaml.catalog || namedDefaultCatalog,\n named: Object.keys(namedCatalogs).length ? namedCatalogs : undefined,\n };\n },\n};\n"],"names":["pnpmUtilities","getPnpmWorkspaceYaml","params","pnpmWorkspacesFile","path","join","root","managerFiles","pnpm","readYaml","getWorkspacePatterns","packages","patterns","type","undefined","getCatalogs","workspaceYaml","catalog","catalogs","default","namedDefaultCatalog","namedCatalogs","named","Object","keys","length"],"mappings":";;;;+BAkBaA;;;eAAAA;;;6DAlBI;0BACQ;4CAEI;;;;;;AAU7B,SAASC,qBAAqBC,MAAwB;IACpD,MAAMC,qBAAqBC,aAAI,CAACC,IAAI,CAACH,OAAOI,IAAI,EAAEC,wCAAY,CAACC,IAAI;IACnE,OAAOC,IAAAA,kBAAQ,EAAoBN;AACrC;AAEO,MAAMH,gBAAoC;IAC/CU,sBAAsB,CAACR;QACrB,MAAM,EAAES,QAAQ,EAAE,GAAGV,qBAAqBC;QAC1C,OAAOS,WAAW;YAAEC,UAAUD;YAAUE,MAAM;QAAU,IAAIC;IAC9D;IAEA,+BAA+B;IAC/BC,aAAa,CAACb;QACZ,MAAMc,gBAAgBf,qBAAqBC;QAC3C,IAAI,CAACc,cAAcC,OAAO,IAAI,CAACD,cAAcE,QAAQ,EAAE;YACrD,OAAOJ;QACT;QACA,yFAAyF;QACzF,kEAAkE;QAClE,MAAM,EAAEK,SAASC,mBAAmB,EAAE,GAAGC,eAAe,GAAGL,cAAcE,QAAQ,IAAI,CAAC;QACtF,OAAO;YACLC,SAASH,cAAcC,OAAO,IAAIG;YAClCE,OAAOC,OAAOC,IAAI,CAACH,eAAeI,MAAM,GAAGJ,gBAAgBP;QAC7D;IACF;AACF"}
@@ -1,22 +1,2 @@
1
- import type { WorkspaceInfos } from "../../types/WorkspaceInfo";
2
- /** @deprecated Use getWorkspaceRoot */
3
- export declare function getRushWorkspaceRoot(cwd: string): string;
4
- /**
5
- * Get paths for each package ("workspace") in a rush monorepo.
6
- * @returns Array of monorepo package paths, or an empty array on error
7
- */
8
- export declare function getWorkspacePackagePaths(cwd: string): string[];
9
- /**
10
- * Get an array with names, paths, and package.json contents for each package ("workspace")
11
- * in a rush monorepo.
12
- * @returns Array of monorepo package infos, or an empty array on error
13
- */
14
- export declare function getRushWorkspaces(cwd: string): WorkspaceInfos;
15
- /**
16
- * Get an array with names, paths, and package.json contents for each package ("workspace")
17
- * in a rush monorepo.
18
- * @returns Array of monorepo package infos, or an empty array on error
19
- */
20
- export declare function getRushWorkspacesAsync(cwd: string): Promise<WorkspaceInfos>;
21
- export { getRushWorkspaces as getWorkspaces };
22
- export { getRushWorkspacesAsync as getWorkspacesAsync };
1
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
2
+ export declare const rushUtilities: WorkspaceUtilities;
@@ -1,73 +1,30 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getWorkspacesAsync = exports.getWorkspaces = exports.getRushWorkspacesAsync = exports.getRushWorkspaces = exports.getWorkspacePackagePaths = exports.getRushWorkspaceRoot = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const jju_1 = __importDefault(require("jju"));
9
- const fs_1 = __importDefault(require("fs"));
10
- const getWorkspacePackageInfo_1 = require("../getWorkspacePackageInfo");
11
- const logging_1 = require("../../logging");
12
- const getWorkspaceManagerAndRoot_1 = require("./getWorkspaceManagerAndRoot");
13
- /** @deprecated Use getWorkspaceRoot */
14
- function getRushWorkspaceRoot(cwd) {
15
- const root = (0, getWorkspaceManagerAndRoot_1.getWorkspaceManagerAndRoot)(cwd, undefined, "rush")?.root;
16
- if (!root) {
17
- throw new Error("Could not find rush root from " + cwd);
18
- }
19
- return root;
20
- }
21
- exports.getRushWorkspaceRoot = getRushWorkspaceRoot;
22
- /**
23
- * Get paths for each package ("workspace") in a rush monorepo.
24
- * @returns Array of monorepo package paths, or an empty array on error
25
- */
26
- function getWorkspacePackagePaths(cwd) {
27
- try {
28
- const root = getRushWorkspaceRoot(cwd);
29
- const rushJsonPath = path_1.default.join(root, "rush.json");
30
- const rushConfig = jju_1.default.parse(fs_1.default.readFileSync(rushJsonPath, "utf-8"));
31
- return rushConfig.projects.map((project) => path_1.default.join(root, project.projectFolder));
32
- }
33
- catch (err) {
34
- (0, logging_1.logVerboseWarning)(`Error getting rush workspace package paths for ${cwd}`, err);
35
- return [];
36
- }
37
- }
38
- exports.getWorkspacePackagePaths = getWorkspacePackagePaths;
39
- /**
40
- * Get an array with names, paths, and package.json contents for each package ("workspace")
41
- * in a rush monorepo.
42
- * @returns Array of monorepo package infos, or an empty array on error
43
- */
44
- function getRushWorkspaces(cwd) {
45
- try {
46
- const packagePaths = getWorkspacePackagePaths(cwd);
47
- return (0, getWorkspacePackageInfo_1.getWorkspacePackageInfo)(packagePaths);
48
- }
49
- catch (err) {
50
- (0, logging_1.logVerboseWarning)(`Error getting rush workspace package infos for ${cwd}`, err);
51
- return [];
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "rushUtilities", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return rushUtilities;
52
9
  }
10
+ });
11
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ const _jju = /*#__PURE__*/ _interop_require_default(require("jju"));
13
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
+ const _getWorkspaceManagerAndRoot = require("./getWorkspaceManagerAndRoot.js");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
53
19
  }
54
- exports.getRushWorkspaces = getRushWorkspaces;
55
- exports.getWorkspaces = getRushWorkspaces;
56
- /**
57
- * Get an array with names, paths, and package.json contents for each package ("workspace")
58
- * in a rush monorepo.
59
- * @returns Array of monorepo package infos, or an empty array on error
60
- */
61
- async function getRushWorkspacesAsync(cwd) {
62
- try {
63
- const packagePaths = getWorkspacePackagePaths(cwd);
64
- return (0, getWorkspacePackageInfo_1.getWorkspacePackageInfoAsync)(packagePaths);
65
- }
66
- catch (err) {
67
- (0, logging_1.logVerboseWarning)(`Error getting rush workspace package infos for ${cwd}`, err);
68
- return [];
20
+ const rushUtilities = {
21
+ getWorkspacePatterns: ({ root })=>{
22
+ const rushConfig = _jju.default.parse(_fs.default.readFileSync(_path.default.join(root, _getWorkspaceManagerAndRoot.managerFiles.rush), "utf-8"));
23
+ // The rush config "projects" are single folder paths
24
+ const patterns = rushConfig.projects.map((p)=>p.projectFolder);
25
+ return {
26
+ patterns,
27
+ type: "path"
28
+ };
69
29
  }
70
- }
71
- exports.getRushWorkspacesAsync = getRushWorkspacesAsync;
72
- exports.getWorkspacesAsync = getRushWorkspacesAsync;
73
- //# sourceMappingURL=rush.js.map
30
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"rush.js","sourceRoot":"","sources":["../../../src/workspaces/implementations/rush.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,8CAAsB;AACtB,4CAAoB;AAGpB,wEAAmG;AACnG,2CAAkD;AAClD,6EAA0E;AAE1E,uCAAuC;AACvC,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,IAAI,GAAG,IAAA,uDAA0B,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;IACtE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC;KACzD;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAND,oDAMC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,GAAW;IAClD,IAAI;QACF,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAElD,MAAM,UAAU,GAAmD,aAAG,CAAC,KAAK,CAC1E,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CACvC,CAAC;QACF,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KACrF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,2BAAiB,EAAC,kDAAkD,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAbD,4DAaC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI;QACF,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAA,iDAAuB,EAAC,YAAY,CAAC,CAAC;KAC9C;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,2BAAiB,EAAC,kDAAkD,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AARD,8CAQC;AAiB6B,0CAAa;AAf3C;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CAAC,GAAW;IACtD,IAAI;QACF,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAA,sDAA4B,EAAC,YAAY,CAAC,CAAC;KACnD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,2BAAiB,EAAC,kDAAkD,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AARD,wDAQC;AAGkC,oDAAkB"}
1
+ {"version":3,"sources":["../../../src/workspaces/implementations/rush.ts"],"sourcesContent":["import fs from \"fs\";\nimport jju from \"jju\";\nimport path from \"path\";\nimport { managerFiles } from \"./getWorkspaceManagerAndRoot.js\";\nimport type { WorkspaceUtilities } from \"./WorkspaceUtilities.js\";\n\nexport const rushUtilities: WorkspaceUtilities = {\n getWorkspacePatterns: ({ root }) => {\n const rushConfig = jju.parse(fs.readFileSync(path.join(root, managerFiles.rush), \"utf-8\")) as {\n projects: Array<{ projectFolder: string }>;\n };\n // The rush config \"projects\" are single folder paths\n const patterns = rushConfig.projects.map((p) => p.projectFolder);\n return { patterns, type: \"path\" };\n },\n};\n"],"names":["rushUtilities","getWorkspacePatterns","root","rushConfig","jju","parse","fs","readFileSync","path","join","managerFiles","rush","patterns","projects","map","p","projectFolder","type"],"mappings":";;;;+BAMaA;;;eAAAA;;;2DANE;4DACC;6DACC;4CACY;;;;;;AAGtB,MAAMA,gBAAoC;IAC/CC,sBAAsB,CAAC,EAAEC,IAAI,EAAE;QAC7B,MAAMC,aAAaC,YAAG,CAACC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACC,aAAI,CAACC,IAAI,CAACP,MAAMQ,wCAAY,CAACC,IAAI,GAAG;QAGjF,qDAAqD;QACrD,MAAMC,WAAWT,WAAWU,QAAQ,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,aAAa;QAC/D,OAAO;YAAEJ;YAAUK,MAAM;QAAO;IAClC;AACF"}
@@ -1,35 +1,2 @@
1
- import type { WorkspaceInfos } from "../../types/WorkspaceInfo";
2
- import type { Catalogs } from "../../types/Catalogs";
3
- /** @deprecated Use `getWorkspaceManagerRoot` */
4
- export declare function getYarnWorkspaceRoot(cwd: string): string;
5
- /**
6
- * Get paths for each package ("workspace") in a yarn monorepo.
7
- * @returns Array of monorepo package paths, or an empty array on error
8
- */
9
- export declare function getWorkspacePackagePaths(cwd: string): string[];
10
- /**
11
- * Get paths for each package ("workspace") in a yarn monorepo.
12
- * @returns Array of monorepo package paths, or an empty array on error
13
- */
14
- export declare function getWorkspacePackagePathsAsync(cwd: string): Promise<string[]>;
15
- /**
16
- * Get an array with names, paths, and package.json contents for each package ("workspace")
17
- * in a yarn monorepo.
18
- * @returns Array of monorepo package infos, or an empty array on error
19
- */
20
- export declare function getYarnWorkspaces(cwd: string): WorkspaceInfos;
21
- /**
22
- * Get an array with names, paths, and package.json contents for each package ("workspace")
23
- * in a yarn monorepo.
24
- * @returns Array of monorepo package infos, or an empty array on error
25
- */
26
- export declare function getYarnWorkspacesAsync(cwd: string): Promise<WorkspaceInfos>;
27
- /**
28
- * Get version catalogs if present.
29
- * Returns undefined if there's no catalog, or any issue reading or parsing.
30
- * @see https://yarnpkg.com/features/catalogs
31
- */
32
- export declare function getYarnCatalogs(cwd: string): Catalogs | undefined;
33
- export { getYarnWorkspaces as getWorkspaces };
34
- export { getYarnWorkspacesAsync as getWorkspacesAsync };
35
- export { getYarnCatalogs as getCatalogs };
1
+ import type { WorkspaceUtilities } from "./WorkspaceUtilities.js";
2
+ export declare const yarnUtilities: WorkspaceUtilities;