@rushstack/rush-sdk 5.90.2 → 5.92.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 (361) hide show
  1. package/README.md +46 -11
  2. package/dist/rush-lib.d.ts +77 -11
  3. package/lib/api/ApprovedPackagesConfiguration.d.ts +74 -0
  4. package/lib/api/ApprovedPackagesConfiguration.js +1 -0
  5. package/lib/api/ApprovedPackagesPolicy.d.ts +54 -0
  6. package/lib/api/ApprovedPackagesPolicy.js +1 -0
  7. package/lib/api/BuildCacheConfiguration.d.ts +77 -0
  8. package/lib/api/BuildCacheConfiguration.js +1 -0
  9. package/lib/api/ChangeFile.d.ts +42 -0
  10. package/lib/api/ChangeFile.js +1 -0
  11. package/lib/api/ChangeManagement.d.ts +85 -0
  12. package/lib/api/ChangeManagement.js +1 -0
  13. package/lib/api/ChangeManager.d.ts +16 -0
  14. package/lib/api/ChangeManager.js +1 -0
  15. package/lib/api/Changelog.d.ts +74 -0
  16. package/lib/api/Changelog.js +1 -0
  17. package/lib/api/CommandLineConfiguration.d.ts +161 -0
  18. package/lib/api/CommandLineConfiguration.js +1 -0
  19. package/lib/api/CommandLineJson.d.ts +251 -0
  20. package/lib/api/CommandLineJson.js +1 -0
  21. package/lib/api/CommonVersionsConfiguration.d.ts +96 -0
  22. package/lib/api/CommonVersionsConfiguration.js +1 -0
  23. package/lib/api/EnvironmentConfiguration.d.ts +258 -0
  24. package/lib/api/EnvironmentConfiguration.js +1 -0
  25. package/lib/api/EventHooks.d.ts +42 -0
  26. package/lib/api/EventHooks.js +1 -0
  27. package/lib/api/ExperimentsConfiguration.d.ts +62 -0
  28. package/lib/api/ExperimentsConfiguration.js +1 -0
  29. package/lib/api/LastInstallFlag.d.ts +73 -0
  30. package/lib/api/LastInstallFlag.js +1 -0
  31. package/lib/api/LastLinkFlag.d.ts +41 -0
  32. package/lib/api/LastLinkFlag.js +1 -0
  33. package/lib/api/PackageJsonEditor.d.ts +79 -0
  34. package/lib/api/PackageJsonEditor.js +1 -0
  35. package/lib/api/PackageNameParsers.d.ts +18 -0
  36. package/lib/api/PackageNameParsers.js +1 -0
  37. package/lib/api/Rush.d.ts +91 -0
  38. package/lib/api/Rush.js +1 -0
  39. package/lib/api/RushConfiguration.d.ts +595 -0
  40. package/lib/api/RushConfiguration.js +1 -0
  41. package/lib/api/RushConfigurationProject.d.ts +217 -0
  42. package/lib/api/RushConfigurationProject.js +1 -0
  43. package/lib/api/RushGlobalFolder.d.ts +32 -0
  44. package/lib/api/RushGlobalFolder.js +1 -0
  45. package/lib/api/RushInternals.d.ts +15 -0
  46. package/lib/api/RushInternals.js +1 -0
  47. package/lib/api/RushPluginsConfiguration.d.ts +21 -0
  48. package/lib/api/RushPluginsConfiguration.js +1 -0
  49. package/lib/api/RushProjectConfiguration.d.ts +117 -0
  50. package/lib/api/RushProjectConfiguration.js +1 -0
  51. package/lib/api/RushUserConfiguration.d.ts +16 -0
  52. package/lib/api/RushUserConfiguration.js +1 -0
  53. package/lib/api/SaveCallbackPackageJsonEditor.d.ts +14 -0
  54. package/lib/api/SaveCallbackPackageJsonEditor.js +1 -0
  55. package/lib/api/Variants.d.ts +11 -0
  56. package/lib/api/Variants.js +1 -0
  57. package/lib/api/VersionPolicy.d.ts +203 -0
  58. package/lib/api/VersionPolicy.js +1 -0
  59. package/lib/api/VersionPolicyConfiguration.d.ts +75 -0
  60. package/lib/api/VersionPolicyConfiguration.js +1 -0
  61. package/lib/api/packageManager/NpmPackageManager.d.ts +9 -0
  62. package/lib/api/packageManager/NpmPackageManager.js +1 -0
  63. package/lib/api/packageManager/PackageManager.d.ts +29 -0
  64. package/lib/api/packageManager/PackageManager.js +1 -0
  65. package/lib/api/packageManager/PnpmPackageManager.d.ts +17 -0
  66. package/lib/api/packageManager/PnpmPackageManager.js +1 -0
  67. package/lib/api/packageManager/YarnPackageManager.d.ts +9 -0
  68. package/lib/api/packageManager/YarnPackageManager.js +1 -0
  69. package/lib/cli/CommandLineMigrationAdvisor.d.ts +5 -0
  70. package/lib/cli/CommandLineMigrationAdvisor.js +1 -0
  71. package/lib/cli/RushCommandLineParser.d.ts +49 -0
  72. package/lib/cli/RushCommandLineParser.js +1 -0
  73. package/lib/cli/RushPnpmCommandLine.d.ts +7 -0
  74. package/lib/cli/RushPnpmCommandLine.js +1 -0
  75. package/lib/cli/RushPnpmCommandLineParser.d.ts +26 -0
  76. package/lib/cli/RushPnpmCommandLineParser.js +1 -0
  77. package/lib/cli/RushStartupBanner.d.ts +7 -0
  78. package/lib/cli/RushStartupBanner.js +1 -0
  79. package/lib/cli/RushXCommandLine.d.ts +17 -0
  80. package/lib/cli/RushXCommandLine.js +1 -0
  81. package/lib/cli/actions/AddAction.d.ts +15 -0
  82. package/lib/cli/actions/AddAction.js +1 -0
  83. package/lib/cli/actions/BaseAddAndRemoveAction.d.ts +36 -0
  84. package/lib/cli/actions/BaseAddAndRemoveAction.js +1 -0
  85. package/lib/cli/actions/BaseInstallAction.d.ts +23 -0
  86. package/lib/cli/actions/BaseInstallAction.js +1 -0
  87. package/lib/cli/actions/BaseRushAction.d.ts +55 -0
  88. package/lib/cli/actions/BaseRushAction.js +1 -0
  89. package/lib/cli/actions/ChangeAction.d.ts +65 -0
  90. package/lib/cli/actions/ChangeAction.js +1 -0
  91. package/lib/cli/actions/CheckAction.d.ts +10 -0
  92. package/lib/cli/actions/CheckAction.js +1 -0
  93. package/lib/cli/actions/DeployAction.d.ts +12 -0
  94. package/lib/cli/actions/DeployAction.js +1 -0
  95. package/lib/cli/actions/InitAction.d.ts +16 -0
  96. package/lib/cli/actions/InitAction.js +1 -0
  97. package/lib/cli/actions/InitAutoinstallerAction.d.ts +8 -0
  98. package/lib/cli/actions/InitAutoinstallerAction.js +1 -0
  99. package/lib/cli/actions/InitDeployAction.d.ts +9 -0
  100. package/lib/cli/actions/InitDeployAction.js +1 -0
  101. package/lib/cli/actions/InstallAction.d.ts +9 -0
  102. package/lib/cli/actions/InstallAction.js +1 -0
  103. package/lib/cli/actions/LinkAction.d.ts +8 -0
  104. package/lib/cli/actions/LinkAction.js +1 -0
  105. package/lib/cli/actions/ListAction.d.ts +54 -0
  106. package/lib/cli/actions/ListAction.js +1 -0
  107. package/lib/cli/actions/PublishAction.d.ts +49 -0
  108. package/lib/cli/actions/PublishAction.js +1 -0
  109. package/lib/cli/actions/PurgeAction.d.ts +8 -0
  110. package/lib/cli/actions/PurgeAction.js +1 -0
  111. package/lib/cli/actions/RemoveAction.d.ts +13 -0
  112. package/lib/cli/actions/RemoveAction.js +1 -0
  113. package/lib/cli/actions/ScanAction.d.ts +23 -0
  114. package/lib/cli/actions/ScanAction.js +1 -0
  115. package/lib/cli/actions/SetupAction.d.ts +7 -0
  116. package/lib/cli/actions/SetupAction.js +1 -0
  117. package/lib/cli/actions/UnlinkAction.d.ts +7 -0
  118. package/lib/cli/actions/UnlinkAction.js +1 -0
  119. package/lib/cli/actions/UpdateAction.d.ts +11 -0
  120. package/lib/cli/actions/UpdateAction.js +1 -0
  121. package/lib/cli/actions/UpdateAutoinstallerAction.d.ts +8 -0
  122. package/lib/cli/actions/UpdateAutoinstallerAction.js +1 -0
  123. package/lib/cli/actions/UpdateCloudCredentialsAction.d.ts +10 -0
  124. package/lib/cli/actions/UpdateCloudCredentialsAction.js +1 -0
  125. package/lib/cli/actions/UpgradeInteractiveAction.d.ts +9 -0
  126. package/lib/cli/actions/UpgradeInteractiveAction.js +1 -0
  127. package/lib/cli/actions/VersionAction.d.ts +22 -0
  128. package/lib/cli/actions/VersionAction.js +1 -0
  129. package/lib/cli/parsing/ParseParallelism.d.ts +6 -0
  130. package/lib/cli/parsing/ParseParallelism.js +1 -0
  131. package/lib/cli/parsing/SelectionParameterSet.d.ts +51 -0
  132. package/lib/cli/parsing/SelectionParameterSet.js +1 -0
  133. package/lib/cli/scriptActions/BaseScriptAction.d.ts +28 -0
  134. package/lib/cli/scriptActions/BaseScriptAction.js +1 -0
  135. package/lib/cli/scriptActions/GlobalScriptAction.d.ts +30 -0
  136. package/lib/cli/scriptActions/GlobalScriptAction.js +1 -0
  137. package/lib/cli/scriptActions/PhasedScriptAction.d.ts +65 -0
  138. package/lib/cli/scriptActions/PhasedScriptAction.js +1 -0
  139. package/lib/index.d.ts +51 -1
  140. package/lib/index.js +1 -190
  141. package/lib/logic/Autoinstaller.d.ts +21 -0
  142. package/lib/logic/Autoinstaller.js +1 -0
  143. package/lib/logic/ChangeFiles.d.ts +33 -0
  144. package/lib/logic/ChangeFiles.js +1 -0
  145. package/lib/logic/ChangeManager.d.ts +39 -0
  146. package/lib/logic/ChangeManager.js +1 -0
  147. package/lib/logic/ChangelogGenerator.d.ts +46 -0
  148. package/lib/logic/ChangelogGenerator.js +1 -0
  149. package/lib/logic/CredentialCache.d.ts +36 -0
  150. package/lib/logic/CredentialCache.js +1 -0
  151. package/lib/logic/DependencyAnalyzer.d.ts +34 -0
  152. package/lib/logic/DependencyAnalyzer.js +1 -0
  153. package/lib/logic/DependencySpecifier.d.ts +70 -0
  154. package/lib/logic/DependencySpecifier.js +1 -0
  155. package/lib/logic/EventHooksManager.d.ts +10 -0
  156. package/lib/logic/EventHooksManager.js +1 -0
  157. package/lib/logic/Git.d.ts +103 -0
  158. package/lib/logic/Git.js +1 -0
  159. package/lib/logic/GitStatusParser.d.ts +42 -0
  160. package/lib/logic/GitStatusParser.js +1 -0
  161. package/lib/logic/JsonSchemaUrls.d.ts +8 -0
  162. package/lib/logic/JsonSchemaUrls.js +1 -0
  163. package/lib/logic/LookupByPath.d.ts +86 -0
  164. package/lib/logic/LookupByPath.js +1 -0
  165. package/lib/logic/NodeJsCompatibility.d.ts +42 -0
  166. package/lib/logic/NodeJsCompatibility.js +1 -0
  167. package/lib/logic/PackageJsonUpdaterTypes.d.ts +75 -0
  168. package/lib/logic/PackageJsonUpdaterTypes.js +1 -0
  169. package/lib/logic/PrereleaseToken.d.ts +12 -0
  170. package/lib/logic/PrereleaseToken.js +1 -0
  171. package/lib/logic/ProjectChangeAnalyzer.d.ts +81 -0
  172. package/lib/logic/ProjectChangeAnalyzer.js +1 -0
  173. package/lib/logic/ProjectCommandSet.d.ts +13 -0
  174. package/lib/logic/ProjectCommandSet.js +1 -0
  175. package/lib/logic/PublishGit.d.ts +19 -0
  176. package/lib/logic/PublishGit.js +1 -0
  177. package/lib/logic/PublishUtilities.d.ts +71 -0
  178. package/lib/logic/PublishUtilities.js +1 -0
  179. package/lib/logic/PurgeManager.d.ts +29 -0
  180. package/lib/logic/PurgeManager.js +1 -0
  181. package/lib/logic/RepoStateFile.d.ts +55 -0
  182. package/lib/logic/RepoStateFile.js +1 -0
  183. package/lib/logic/RushConstants.d.ts +219 -0
  184. package/lib/logic/RushConstants.js +1 -0
  185. package/lib/logic/Selection.d.ts +39 -0
  186. package/lib/logic/Selection.js +1 -0
  187. package/lib/logic/SetupChecks.d.ts +22 -0
  188. package/lib/logic/SetupChecks.js +1 -0
  189. package/lib/logic/ShrinkwrapFileFactory.d.ts +8 -0
  190. package/lib/logic/ShrinkwrapFileFactory.js +1 -0
  191. package/lib/logic/StandardScriptUpdater.d.ts +26 -0
  192. package/lib/logic/StandardScriptUpdater.js +1 -0
  193. package/lib/logic/Telemetry.d.ts +123 -0
  194. package/lib/logic/Telemetry.js +1 -0
  195. package/lib/logic/UnlinkManager.d.ts +24 -0
  196. package/lib/logic/UnlinkManager.js +1 -0
  197. package/lib/logic/base/BaseInstallManagerTypes.d.ts +65 -0
  198. package/lib/logic/base/BaseInstallManagerTypes.js +1 -0
  199. package/lib/logic/base/BasePackageManagerOptionsConfiguration.d.ts +50 -0
  200. package/lib/logic/base/BasePackageManagerOptionsConfiguration.js +1 -0
  201. package/lib/logic/base/BaseProjectShrinkwrapFile.d.ts +36 -0
  202. package/lib/logic/base/BaseProjectShrinkwrapFile.js +1 -0
  203. package/lib/logic/base/BaseShrinkwrapFile.d.ts +92 -0
  204. package/lib/logic/base/BaseShrinkwrapFile.js +1 -0
  205. package/lib/logic/buildCache/CacheEntryId.d.ts +28 -0
  206. package/lib/logic/buildCache/CacheEntryId.js +1 -0
  207. package/lib/logic/buildCache/FileSystemBuildCacheProvider.d.ts +40 -0
  208. package/lib/logic/buildCache/FileSystemBuildCacheProvider.js +1 -0
  209. package/lib/logic/buildCache/ICloudBuildCacheProvider.d.ts +14 -0
  210. package/lib/logic/buildCache/ICloudBuildCacheProvider.js +1 -0
  211. package/lib/logic/buildCache/ProjectBuildCache.d.ts +46 -0
  212. package/lib/logic/buildCache/ProjectBuildCache.js +1 -0
  213. package/lib/logic/buildCache/getHashesForGlobsAsync.d.ts +3 -0
  214. package/lib/logic/buildCache/getHashesForGlobsAsync.js +1 -0
  215. package/lib/logic/deploy/DeployScenarioConfiguration.d.ts +39 -0
  216. package/lib/logic/deploy/DeployScenarioConfiguration.js +1 -0
  217. package/lib/logic/installManager/InstallHelpers.d.ts +16 -0
  218. package/lib/logic/installManager/InstallHelpers.js +1 -0
  219. package/lib/logic/npm/NpmOptionsConfiguration.d.ts +21 -0
  220. package/lib/logic/npm/NpmOptionsConfiguration.js +1 -0
  221. package/lib/logic/npm/NpmShrinkwrapFile.d.ts +29 -0
  222. package/lib/logic/npm/NpmShrinkwrapFile.js +1 -0
  223. package/lib/logic/operations/AsyncOperationQueue.d.ts +47 -0
  224. package/lib/logic/operations/AsyncOperationQueue.js +1 -0
  225. package/lib/logic/operations/IOperationExecutionResult.d.ts +49 -0
  226. package/lib/logic/operations/IOperationExecutionResult.js +1 -0
  227. package/lib/logic/operations/IOperationRunner.d.ts +77 -0
  228. package/lib/logic/operations/IOperationRunner.js +1 -0
  229. package/lib/logic/operations/NullOperationRunner.d.ts +35 -0
  230. package/lib/logic/operations/NullOperationRunner.js +1 -0
  231. package/lib/logic/operations/Operation.d.ts +80 -0
  232. package/lib/logic/operations/Operation.js +1 -0
  233. package/lib/logic/operations/OperationError.d.ts +11 -0
  234. package/lib/logic/operations/OperationError.js +1 -0
  235. package/lib/logic/operations/OperationExecutionManager.d.ts +42 -0
  236. package/lib/logic/operations/OperationExecutionManager.js +1 -0
  237. package/lib/logic/operations/OperationExecutionRecord.d.ts +82 -0
  238. package/lib/logic/operations/OperationExecutionRecord.js +1 -0
  239. package/lib/logic/operations/OperationMetadataManager.d.ts +48 -0
  240. package/lib/logic/operations/OperationMetadataManager.js +1 -0
  241. package/lib/logic/operations/OperationResultSummarizerPlugin.d.ts +17 -0
  242. package/lib/logic/operations/OperationResultSummarizerPlugin.js +1 -0
  243. package/lib/logic/operations/OperationStateFile.d.ts +39 -0
  244. package/lib/logic/operations/OperationStateFile.js +1 -0
  245. package/lib/logic/operations/OperationStatus.d.ts +43 -0
  246. package/lib/logic/operations/OperationStatus.js +1 -0
  247. package/lib/logic/operations/PhasedOperationPlugin.d.ts +9 -0
  248. package/lib/logic/operations/PhasedOperationPlugin.js +1 -0
  249. package/lib/logic/operations/ProjectLogWritable.d.ts +17 -0
  250. package/lib/logic/operations/ProjectLogWritable.js +1 -0
  251. package/lib/logic/operations/ShellOperationRunner.d.ts +87 -0
  252. package/lib/logic/operations/ShellOperationRunner.js +1 -0
  253. package/lib/logic/operations/ShellOperationRunnerPlugin.d.ts +8 -0
  254. package/lib/logic/operations/ShellOperationRunnerPlugin.js +1 -0
  255. package/lib/logic/pnpm/IPnpmfile.d.ts +54 -0
  256. package/lib/logic/pnpm/IPnpmfile.js +1 -0
  257. package/lib/logic/pnpm/PnpmOptionsConfiguration.d.ts +242 -0
  258. package/lib/logic/pnpm/PnpmOptionsConfiguration.js +1 -0
  259. package/lib/logic/pnpm/PnpmProjectShrinkwrapFile.d.ts +26 -0
  260. package/lib/logic/pnpm/PnpmProjectShrinkwrapFile.js +1 -0
  261. package/lib/logic/pnpm/PnpmShrinkwrapFile.d.ts +207 -0
  262. package/lib/logic/pnpm/PnpmShrinkwrapFile.js +1 -0
  263. package/lib/logic/pnpm/PnpmYamlCommon.d.ts +8 -0
  264. package/lib/logic/pnpm/PnpmYamlCommon.js +1 -0
  265. package/lib/logic/pnpm/PnpmfileConfiguration.d.ts +28 -0
  266. package/lib/logic/pnpm/PnpmfileConfiguration.js +1 -0
  267. package/lib/logic/pnpm/PnpmfileShim.d.ts +3 -0
  268. package/lib/logic/pnpm/PnpmfileShim.js +1 -0
  269. package/lib/logic/policy/GitEmailPolicy.d.ts +6 -0
  270. package/lib/logic/policy/GitEmailPolicy.js +1 -0
  271. package/lib/logic/policy/PolicyValidator.d.ts +10 -0
  272. package/lib/logic/policy/PolicyValidator.js +1 -0
  273. package/lib/logic/policy/ShrinkwrapFilePolicy.d.ts +13 -0
  274. package/lib/logic/policy/ShrinkwrapFilePolicy.js +1 -0
  275. package/lib/logic/selectors/GitChangedProjectSelectorParser.d.ts +23 -0
  276. package/lib/logic/selectors/GitChangedProjectSelectorParser.js +1 -0
  277. package/lib/logic/selectors/ISelectorParser.d.ts +11 -0
  278. package/lib/logic/selectors/ISelectorParser.js +1 -0
  279. package/lib/logic/selectors/NamedProjectSelectorParser.d.ts +10 -0
  280. package/lib/logic/selectors/NamedProjectSelectorParser.js +1 -0
  281. package/lib/logic/selectors/TagProjectSelectorParser.d.ts +10 -0
  282. package/lib/logic/selectors/TagProjectSelectorParser.js +1 -0
  283. package/lib/logic/selectors/VersionPolicyProjectSelectorParser.d.ts +10 -0
  284. package/lib/logic/selectors/VersionPolicyProjectSelectorParser.js +1 -0
  285. package/lib/logic/setup/ArtifactoryConfiguration.d.ts +38 -0
  286. package/lib/logic/setup/ArtifactoryConfiguration.js +1 -0
  287. package/lib/logic/setup/KeyboardLoop.d.ts +27 -0
  288. package/lib/logic/setup/KeyboardLoop.js +1 -0
  289. package/lib/logic/setup/SetupPackageRegistry.d.ts +72 -0
  290. package/lib/logic/setup/SetupPackageRegistry.js +1 -0
  291. package/lib/logic/setup/TerminalInput.d.ts +22 -0
  292. package/lib/logic/setup/TerminalInput.js +1 -0
  293. package/lib/logic/versionMismatch/VersionMismatchFinder.d.ts +49 -0
  294. package/lib/logic/versionMismatch/VersionMismatchFinder.js +1 -0
  295. package/lib/logic/versionMismatch/VersionMismatchFinderCommonVersions.d.ts +16 -0
  296. package/lib/logic/versionMismatch/VersionMismatchFinderCommonVersions.js +1 -0
  297. package/lib/logic/versionMismatch/VersionMismatchFinderEntity.d.ts +20 -0
  298. package/lib/logic/versionMismatch/VersionMismatchFinderEntity.js +1 -0
  299. package/lib/logic/versionMismatch/VersionMismatchFinderProject.d.ts +16 -0
  300. package/lib/logic/versionMismatch/VersionMismatchFinderProject.js +1 -0
  301. package/lib/logic/yarn/YarnOptionsConfiguration.d.ts +37 -0
  302. package/lib/logic/yarn/YarnOptionsConfiguration.js +1 -0
  303. package/lib/logic/yarn/YarnShrinkwrapFile.d.ts +55 -0
  304. package/lib/logic/yarn/YarnShrinkwrapFile.js +1 -0
  305. package/lib/pluginFramework/IRushPlugin.d.ts +9 -0
  306. package/lib/pluginFramework/IRushPlugin.js +1 -0
  307. package/lib/pluginFramework/PhasedCommandHooks.d.ts +93 -0
  308. package/lib/pluginFramework/PhasedCommandHooks.js +1 -0
  309. package/lib/pluginFramework/PluginLoader/AutoinstallerPluginLoader.d.ts +27 -0
  310. package/lib/pluginFramework/PluginLoader/AutoinstallerPluginLoader.js +1 -0
  311. package/lib/pluginFramework/PluginLoader/BuiltInPluginLoader.d.ts +17 -0
  312. package/lib/pluginFramework/PluginLoader/BuiltInPluginLoader.js +1 -0
  313. package/lib/pluginFramework/PluginLoader/PluginLoaderBase.d.ts +47 -0
  314. package/lib/pluginFramework/PluginLoader/PluginLoaderBase.js +1 -0
  315. package/lib/pluginFramework/PluginLoader/RushSdk.d.ts +5 -0
  316. package/lib/pluginFramework/PluginLoader/RushSdk.js +1 -0
  317. package/lib/pluginFramework/PluginManager.d.ts +47 -0
  318. package/lib/pluginFramework/PluginManager.js +1 -0
  319. package/lib/pluginFramework/RushLifeCycle.d.ts +66 -0
  320. package/lib/pluginFramework/RushLifeCycle.js +1 -0
  321. package/lib/pluginFramework/RushSession.d.ts +30 -0
  322. package/lib/pluginFramework/RushSession.js +1 -0
  323. package/lib/pluginFramework/logging/Logger.d.ts +40 -0
  324. package/lib/pluginFramework/logging/Logger.js +1 -0
  325. package/lib/start-pnpm.d.ts +2 -0
  326. package/lib/start-pnpm.js +1 -0
  327. package/lib/start.d.ts +2 -0
  328. package/lib/start.js +1 -0
  329. package/lib/startx.d.ts +2 -0
  330. package/lib/startx.js +1 -0
  331. package/lib/utilities/AsyncRecycler.d.ts +38 -0
  332. package/lib/utilities/AsyncRecycler.js +1 -0
  333. package/lib/utilities/CollatedTerminalProvider.d.ts +18 -0
  334. package/lib/utilities/CollatedTerminalProvider.js +1 -0
  335. package/lib/utilities/Npm.d.ts +6 -0
  336. package/lib/utilities/Npm.js +1 -0
  337. package/lib/utilities/OverlappingPathAnalyzer.d.ts +9 -0
  338. package/lib/utilities/OverlappingPathAnalyzer.js +1 -0
  339. package/lib/utilities/PathConstants.d.ts +23 -0
  340. package/lib/utilities/PathConstants.js +1 -0
  341. package/lib/utilities/Stopwatch.d.ts +75 -0
  342. package/lib/utilities/Stopwatch.js +1 -0
  343. package/lib/utilities/TarExecutable.d.ts +32 -0
  344. package/lib/utilities/TarExecutable.js +1 -0
  345. package/lib/utilities/Utilities.d.ts +189 -0
  346. package/lib/utilities/Utilities.js +1 -0
  347. package/lib/utilities/WebClient.d.ts +49 -0
  348. package/lib/utilities/WebClient.js +1 -0
  349. package/lib/utilities/npmrcUtilities.d.ts +15 -0
  350. package/lib/utilities/npmrcUtilities.js +1 -0
  351. package/lib-shim/generate-stubs.d.ts +2 -0
  352. package/lib-shim/generate-stubs.d.ts.map +1 -0
  353. package/lib-shim/generate-stubs.js +82 -0
  354. package/lib-shim/generate-stubs.js.map +1 -0
  355. package/lib-shim/index.d.ts +5 -0
  356. package/lib-shim/index.d.ts.map +1 -0
  357. package/lib-shim/index.js +201 -0
  358. package/lib-shim/index.js.map +1 -0
  359. package/package.json +10 -10
  360. package/lib/index.d.ts.map +0 -1
  361. package/lib/index.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ /// <reference types="node" />
2
+ import * as fetch from 'node-fetch';
3
+ /**
4
+ * For use with {@link WebClient}.
5
+ */
6
+ export declare type WebClientResponse = fetch.Response;
7
+ /**
8
+ * For use with {@link WebClient}.
9
+ */
10
+ export interface IWebFetchOptionsBase {
11
+ timeoutMs?: number;
12
+ verb?: 'GET' | 'PUT';
13
+ headers?: fetch.Headers;
14
+ }
15
+ /**
16
+ * For use with {@link WebClient}.
17
+ */
18
+ export interface IGetFetchOptions extends IWebFetchOptionsBase {
19
+ verb: 'GET' | never;
20
+ }
21
+ /**
22
+ * For use with {@link WebClient}.
23
+ */
24
+ export interface IPutFetchOptions extends IWebFetchOptionsBase {
25
+ verb: 'PUT';
26
+ body?: Buffer;
27
+ }
28
+ /**
29
+ * For use with {@link WebClient}.
30
+ */
31
+ export declare enum WebClientProxy {
32
+ None = 0,
33
+ Detect = 1,
34
+ Fiddler = 2
35
+ }
36
+ /**
37
+ * A helper for issuing HTTP requests.
38
+ */
39
+ export declare class WebClient {
40
+ readonly standardHeaders: fetch.Headers;
41
+ accept: string | undefined;
42
+ userAgent: string | undefined;
43
+ proxy: WebClientProxy;
44
+ constructor();
45
+ static mergeHeaders(target: fetch.Headers, source: fetch.Headers): void;
46
+ addBasicAuthHeader(userName: string, password: string): void;
47
+ fetchAsync(url: string, options?: IGetFetchOptions | IPutFetchOptions): Promise<WebClientResponse>;
48
+ }
49
+ //# sourceMappingURL=WebClient.d.ts.map
@@ -0,0 +1 @@
1
+ module.exports = require("../../lib-shim/index")._rushSdk_loadInternalModule("utilities/WebClient");
@@ -0,0 +1,15 @@
1
+ export interface ILogger {
2
+ info: (string: string) => void;
3
+ error: (string: string) => void;
4
+ }
5
+ /**
6
+ * syncNpmrc() copies the .npmrc file to the target folder, and also trims unusable lines from the .npmrc file.
7
+ * If the source .npmrc file not exist, then syncNpmrc() will delete an .npmrc that is found in the target folder.
8
+ *
9
+ * IMPORTANT: THIS CODE SHOULD BE KEPT UP TO DATE WITH Utilities._syncNpmrc()
10
+ *
11
+ * @returns
12
+ * The text of the the synced .npmrc, if one exists. If one does not exist, then undefined is returned.
13
+ */
14
+ export declare function syncNpmrc(sourceNpmrcFolder: string, targetNpmrcFolder: string, useNpmrcPublish?: boolean, logger?: ILogger): string | undefined;
15
+ //# sourceMappingURL=npmrcUtilities.d.ts.map
@@ -0,0 +1 @@
1
+ module.exports = require("../../lib-shim/index")._rushSdk_loadInternalModule("utilities/npmrcUtilities");
@@ -0,0 +1,2 @@
1
+ export declare function run(): void;
2
+ //# sourceMappingURL=generate-stubs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stubs.d.ts","sourceRoot":"","sources":["../src/generate-stubs.ts"],"names":[],"mappings":"AAkDA,wBAAgB,GAAG,IAAI,IAAI,CAe1B"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
+ // See LICENSE in the project root for license information.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.run = void 0;
29
+ const path = __importStar(require("path"));
30
+ const node_core_library_1 = require("@rushstack/node-core-library");
31
+ function generateLibFilesRecursively(options) {
32
+ for (const folderItem of node_core_library_1.FileSystem.readFolderItems(options.parentSourcePath)) {
33
+ const sourcePath = path.join(options.parentSourcePath, folderItem.name);
34
+ const targetPath = path.join(options.parentTargetPath, folderItem.name);
35
+ if (folderItem.isDirectory()) {
36
+ // create destination folder
37
+ node_core_library_1.FileSystem.ensureEmptyFolder(targetPath);
38
+ generateLibFilesRecursively({
39
+ parentSourcePath: sourcePath,
40
+ parentTargetPath: targetPath,
41
+ parentSrcImportPathWithSlash: options.parentSrcImportPathWithSlash + folderItem.name + '/',
42
+ libShimIndexPath: options.libShimIndexPath
43
+ });
44
+ }
45
+ else {
46
+ if (folderItem.name.endsWith('.d.ts')) {
47
+ node_core_library_1.FileSystem.copyFile({
48
+ sourcePath: sourcePath,
49
+ destinationPath: targetPath
50
+ });
51
+ }
52
+ else if (folderItem.name.endsWith('.js')) {
53
+ const srcImportPath = options.parentSrcImportPathWithSlash + path.parse(folderItem.name).name;
54
+ const shimPath = path.relative(options.parentTargetPath, options.libShimIndexPath);
55
+ const shimPathLiteral = JSON.stringify(node_core_library_1.Path.convertToSlashes(shimPath));
56
+ const srcImportPathLiteral = JSON.stringify(srcImportPath);
57
+ node_core_library_1.FileSystem.writeFile(targetPath,
58
+ // Example:
59
+ // module.exports = require("../../../lib-shim/index")._rushSdk_loadInternalModule("logic/policy/GitEmailPolicy");
60
+ `module.exports = require(${shimPathLiteral})._rushSdk_loadInternalModule(${srcImportPathLiteral});`);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ // Entry point invoked by "runScript" action from config/heft.json
66
+ function run() {
67
+ const rushLibFolder = node_core_library_1.Import.resolvePackage({
68
+ baseFolderPath: __dirname,
69
+ packageName: '@microsoft/rush-lib'
70
+ });
71
+ const stubsTargetPath = path.resolve(__dirname, '../lib');
72
+ console.log('generate-stubs: Generating stub files under: ' + stubsTargetPath);
73
+ generateLibFilesRecursively({
74
+ parentSourcePath: path.join(rushLibFolder, 'lib'),
75
+ parentTargetPath: stubsTargetPath,
76
+ parentSrcImportPathWithSlash: '',
77
+ libShimIndexPath: path.join(__dirname, '../lib-shim/index')
78
+ });
79
+ console.log('generate-stubs: Completed successfully.');
80
+ }
81
+ exports.run = run;
82
+ //# sourceMappingURL=generate-stubs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stubs.js","sourceRoot":"","sources":["../src/generate-stubs.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,2CAA6B;AAE7B,oEAAwE;AAExE,SAAS,2BAA2B,CAAC,OAKpC;IACC,KAAK,MAAM,UAAU,IAAI,8BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAC7E,MAAM,UAAU,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,UAAU,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAEhF,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE;YAC5B,4BAA4B;YAC5B,8BAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACzC,2BAA2B,CAAC;gBAC1B,gBAAgB,EAAE,UAAU;gBAC5B,gBAAgB,EAAE,UAAU;gBAC5B,4BAA4B,EAAE,OAAO,CAAC,4BAA4B,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG;gBAC1F,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACrC,8BAAU,CAAC,QAAQ,CAAC;oBAClB,UAAU,EAAE,UAAU;oBACtB,eAAe,EAAE,UAAU;iBAC5B,CAAC,CAAC;aACJ;iBAAM,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC1C,MAAM,aAAa,GAAW,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBACtG,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC3F,MAAM,eAAe,GAAW,IAAI,CAAC,SAAS,CAAC,wBAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChF,MAAM,oBAAoB,GAAW,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAEnE,8BAAU,CAAC,SAAS,CAClB,UAAU;gBACV,WAAW;gBACX,kHAAkH;gBAClH,4BAA4B,eAAe,iCAAiC,oBAAoB,IAAI,CACrG,CAAC;aACH;SACF;KACF;AACH,CAAC;AAED,kEAAkE;AAClE,SAAgB,GAAG;IACjB,MAAM,aAAa,GAAW,0BAAM,CAAC,cAAc,CAAC;QAClD,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,qBAAqB;KACnC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,+CAA+C,GAAG,eAAe,CAAC,CAAC;IAC/E,2BAA2B,CAAC;QAC1B,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;QACjD,gBAAgB,EAAE,eAAe;QACjC,4BAA4B,EAAE,EAAE;QAChC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;KAC5D,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;AAfD,kBAeC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'path';\n\nimport { FileSystem, Import, Path } from '@rushstack/node-core-library';\n\nfunction generateLibFilesRecursively(options: {\n parentSourcePath: string;\n parentTargetPath: string;\n parentSrcImportPathWithSlash: string;\n libShimIndexPath: string;\n}): void {\n for (const folderItem of FileSystem.readFolderItems(options.parentSourcePath)) {\n const sourcePath: string = path.join(options.parentSourcePath, folderItem.name);\n const targetPath: string = path.join(options.parentTargetPath, folderItem.name);\n\n if (folderItem.isDirectory()) {\n // create destination folder\n FileSystem.ensureEmptyFolder(targetPath);\n generateLibFilesRecursively({\n parentSourcePath: sourcePath,\n parentTargetPath: targetPath,\n parentSrcImportPathWithSlash: options.parentSrcImportPathWithSlash + folderItem.name + '/',\n libShimIndexPath: options.libShimIndexPath\n });\n } else {\n if (folderItem.name.endsWith('.d.ts')) {\n FileSystem.copyFile({\n sourcePath: sourcePath,\n destinationPath: targetPath\n });\n } else if (folderItem.name.endsWith('.js')) {\n const srcImportPath: string = options.parentSrcImportPathWithSlash + path.parse(folderItem.name).name;\n const shimPath: string = path.relative(options.parentTargetPath, options.libShimIndexPath);\n const shimPathLiteral: string = JSON.stringify(Path.convertToSlashes(shimPath));\n const srcImportPathLiteral: string = JSON.stringify(srcImportPath);\n\n FileSystem.writeFile(\n targetPath,\n // Example:\n // module.exports = require(\"../../../lib-shim/index\")._rushSdk_loadInternalModule(\"logic/policy/GitEmailPolicy\");\n `module.exports = require(${shimPathLiteral})._rushSdk_loadInternalModule(${srcImportPathLiteral});`\n );\n }\n }\n }\n}\n\n// Entry point invoked by \"runScript\" action from config/heft.json\nexport function run(): void {\n const rushLibFolder: string = Import.resolvePackage({\n baseFolderPath: __dirname,\n packageName: '@microsoft/rush-lib'\n });\n\n const stubsTargetPath: string = path.resolve(__dirname, '../lib');\n console.log('generate-stubs: Generating stub files under: ' + stubsTargetPath);\n generateLibFilesRecursively({\n parentSourcePath: path.join(rushLibFolder, 'lib'),\n parentTargetPath: stubsTargetPath,\n parentSrcImportPathWithSlash: '',\n libShimIndexPath: path.join(__dirname, '../lib-shim/index')\n });\n console.log('generate-stubs: Completed successfully.');\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Used by the .js stubs for path-based imports of `@microsoft/rush-lib` internal APIs.
3
+ */
4
+ export declare function _rushSdk_loadInternalModule(srcImportPath: string): unknown;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuLA;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAO1E"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
3
+ // See LICENSE in the project root for license information.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ var _a;
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports._rushSdk_loadInternalModule = void 0;
30
+ const path = __importStar(require("path"));
31
+ const node_core_library_1 = require("@rushstack/node-core-library");
32
+ const RUSH_LIB_NAME = '@microsoft/rush-lib';
33
+ const verboseEnabled = typeof process !== 'undefined' && process.env.RUSH_SDK_DEBUG === '1';
34
+ const terminal = new node_core_library_1.Terminal(new node_core_library_1.ConsoleTerminalProvider({
35
+ verboseEnabled
36
+ }));
37
+ function _require(moduleName) {
38
+ if (typeof __non_webpack_require__ === 'function') {
39
+ // If this library has been bundled with Webpack, we need to call the real `require` function
40
+ // that doesn't get turned into a `__webpack_require__` statement.
41
+ // `__non_webpack_require__` is a Webpack macro that gets turned into a `require` statement
42
+ // during bundling.
43
+ return __non_webpack_require__(moduleName);
44
+ }
45
+ else {
46
+ return require(moduleName);
47
+ }
48
+ }
49
+ // SCENARIO 1: Rush's PluginManager has initialized "rush-sdk" with Rush's own instance of rush-lib.
50
+ // The Rush host process will assign "global.___rush___rushLibModule" before loading the plugin.
51
+ let rushLibModule = global.___rush___rushLibModule || global.___rush___rushLibModuleFromInstallAndRunRush;
52
+ let errorMessage = '';
53
+ // SCENARIO 2: The project importing "rush-sdk" has installed its own instance of "rush-lib"
54
+ // as a package.json dependency. For example, this is used by the Jest tests for Rush plugins.
55
+ if (rushLibModule === undefined) {
56
+ const importingPath = (_a = module === null || module === void 0 ? void 0 : module.parent) === null || _a === void 0 ? void 0 : _a.filename;
57
+ if (importingPath) {
58
+ const callerPackageFolder = node_core_library_1.PackageJsonLookup.instance.tryGetPackageFolderFor(importingPath);
59
+ if (callerPackageFolder !== undefined) {
60
+ const callerPackageJson = _require(path.join(callerPackageFolder, 'package.json'));
61
+ // Does the caller properly declare a dependency on rush-lib?
62
+ if ((callerPackageJson.dependencies && callerPackageJson.dependencies[RUSH_LIB_NAME] !== undefined) ||
63
+ (callerPackageJson.devDependencies &&
64
+ callerPackageJson.devDependencies[RUSH_LIB_NAME] !== undefined) ||
65
+ (callerPackageJson.peerDependencies &&
66
+ callerPackageJson.peerDependencies[RUSH_LIB_NAME] !== undefined)) {
67
+ // Try to resolve rush-lib from the caller's folder
68
+ terminal.writeVerboseLine(`Try to load ${RUSH_LIB_NAME} from caller package`);
69
+ try {
70
+ rushLibModule = requireRushLibUnderFolderPath(callerPackageFolder);
71
+ }
72
+ catch (error) {
73
+ // If we fail to resolve it, ignore the error
74
+ terminal.writeVerboseLine(`Failed to load ${RUSH_LIB_NAME} from caller package`);
75
+ }
76
+ // If two different libraries invoke `rush-sdk`, and one of them provides "rush-lib"
77
+ // then the first version to be loaded wins. We do not support side-by-side instances of "rush-lib".
78
+ if (rushLibModule !== undefined) {
79
+ // to track which scenario is active and how it got initialized.
80
+ global.___rush___rushLibModule = rushLibModule;
81
+ terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} from caller`);
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ // SCENARIO 3: A tool or script depends on "rush-sdk", and is meant to be used inside a monorepo folder.
88
+ // In this case, we can use install-run-rush.js to obtain the appropriate rush-lib version for the monorepo.
89
+ if (rushLibModule === undefined) {
90
+ try {
91
+ const rushJsonPath = tryFindRushJsonLocation(process.cwd());
92
+ if (!rushJsonPath) {
93
+ throw new Error('Unable to find rush.json in the current folder or its parent folders.\n' +
94
+ 'This tool is meant to be invoked from a working directory inside a Rush repository.');
95
+ }
96
+ const monorepoRoot = path.dirname(rushJsonPath);
97
+ const rushJson = node_core_library_1.JsonFile.load(rushJsonPath);
98
+ const { rushVersion } = rushJson;
99
+ const installRunNodeModuleFolder = path.join(monorepoRoot, `common/temp/install-run/@microsoft+rush@${rushVersion}`);
100
+ try {
101
+ // First, try to load the version of "rush-lib" that was installed by install-run-rush.js
102
+ terminal.writeVerboseLine(`Trying to load ${RUSH_LIB_NAME} installed by install-run-rush`);
103
+ rushLibModule = requireRushLibUnderFolderPath(installRunNodeModuleFolder);
104
+ }
105
+ catch (e) {
106
+ let installAndRunRushStderrContent = '';
107
+ try {
108
+ const installAndRunRushJSPath = path.join(monorepoRoot, 'common/scripts/install-run-rush.js');
109
+ terminal.writeLine('The Rush engine has not been installed yet. Invoking install-run-rush.js...');
110
+ const installAndRuhRushProcess = node_core_library_1.Executable.spawnSync('node', [installAndRunRushJSPath, '--help'], {
111
+ stdio: 'pipe'
112
+ });
113
+ installAndRunRushStderrContent = installAndRuhRushProcess.stderr;
114
+ if (installAndRuhRushProcess.status !== 0) {
115
+ throw new Error(`The ${RUSH_LIB_NAME} package failed to install`);
116
+ }
117
+ // Retry to load "rush-lib" after install-run-rush run
118
+ terminal.writeVerboseLine(`Trying to load ${RUSH_LIB_NAME} installed by install-run-rush a second time`);
119
+ rushLibModule = requireRushLibUnderFolderPath(installRunNodeModuleFolder);
120
+ }
121
+ catch (e) {
122
+ console.error(`${installAndRunRushStderrContent}`);
123
+ throw new Error(`The ${RUSH_LIB_NAME} package failed to load`);
124
+ }
125
+ }
126
+ if (rushLibModule !== undefined) {
127
+ // to track which scenario is active and how it got initialized.
128
+ global.___rush___rushLibModuleFromInstallAndRunRush = rushLibModule;
129
+ terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} installed by install-run-rush`);
130
+ }
131
+ }
132
+ catch (e) {
133
+ // no-catch
134
+ errorMessage = e.message;
135
+ }
136
+ }
137
+ if (rushLibModule === undefined) {
138
+ // This error indicates that a project is trying to import "@rushstack/rush-sdk", but the Rush engine
139
+ // instance cannot be found. If you are writing Jest tests for a Rush plugin, add "@microsoft/rush-lib"
140
+ // to the devDependencies for your project.
141
+ console.error(`Error: The @rushstack/rush-sdk package was not able to load the Rush engine:
142
+ ${errorMessage}
143
+ `);
144
+ process.exit(1);
145
+ }
146
+ // Based on TypeScript's __exportStar()
147
+ for (const property in rushLibModule) {
148
+ if (property !== 'default' && !exports.hasOwnProperty(property)) {
149
+ const rushLibModuleForClosure = rushLibModule;
150
+ // Based on TypeScript's __createBinding()
151
+ Object.defineProperty(exports, property, {
152
+ enumerable: true,
153
+ get: function () {
154
+ return rushLibModuleForClosure[property];
155
+ }
156
+ });
157
+ }
158
+ }
159
+ /**
160
+ * Used by the .js stubs for path-based imports of `@microsoft/rush-lib` internal APIs.
161
+ */
162
+ function _rushSdk_loadInternalModule(srcImportPath) {
163
+ if (!exports._RushInternals) {
164
+ throw new Error(`Rush version ${exports.Rush.version} does not support internal API imports via rush-sdk`);
165
+ }
166
+ return exports._RushInternals.loadModule(srcImportPath);
167
+ }
168
+ exports._rushSdk_loadInternalModule = _rushSdk_loadInternalModule;
169
+ /**
170
+ * Require `@microsoft/rush-lib` under the specified folder path.
171
+ */
172
+ function requireRushLibUnderFolderPath(folderPath) {
173
+ const rushLibModulePath = node_core_library_1.Import.resolveModule({
174
+ modulePath: RUSH_LIB_NAME,
175
+ baseFolderPath: folderPath
176
+ });
177
+ return _require(rushLibModulePath);
178
+ }
179
+ /**
180
+ * Find the rush.json location and return the path, or undefined if a rush.json can't be found.
181
+ *
182
+ * @privateRemarks
183
+ * Keep this in sync with `RushConfiguration.tryFindRushJsonLocation`.
184
+ */
185
+ function tryFindRushJsonLocation(startingFolder) {
186
+ let currentFolder = startingFolder;
187
+ // Look upwards at parent folders until we find a folder containing rush.json
188
+ for (let i = 0; i < 10; ++i) {
189
+ const rushJsonFilename = path.join(currentFolder, 'rush.json');
190
+ if (node_core_library_1.FileSystem.exists(rushJsonFilename)) {
191
+ return rushJsonFilename;
192
+ }
193
+ const parentFolder = path.dirname(currentFolder);
194
+ if (parentFolder === currentFolder) {
195
+ break;
196
+ }
197
+ currentFolder = parentFolder;
198
+ }
199
+ return undefined;
200
+ }
201
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'path';\nimport {\n JsonFile,\n JsonObject,\n Import,\n IPackageJson,\n PackageJsonLookup,\n Executable,\n FileSystem,\n Terminal,\n ConsoleTerminalProvider\n} from '@rushstack/node-core-library';\nimport type { SpawnSyncReturns } from 'child_process';\n\nconst RUSH_LIB_NAME: string = '@microsoft/rush-lib';\n\nconst verboseEnabled: boolean = typeof process !== 'undefined' && process.env.RUSH_SDK_DEBUG === '1';\nconst terminal: Terminal = new Terminal(\n new ConsoleTerminalProvider({\n verboseEnabled\n })\n);\n\ntype RushLibModuleType = Record<string, unknown>;\ndeclare const global: NodeJS.Global &\n typeof globalThis & {\n ___rush___rushLibModule?: RushLibModuleType;\n ___rush___rushLibModuleFromInstallAndRunRush?: RushLibModuleType;\n };\n\nfunction _require<TResult>(moduleName: string): TResult {\n if (typeof __non_webpack_require__ === 'function') {\n // If this library has been bundled with Webpack, we need to call the real `require` function\n // that doesn't get turned into a `__webpack_require__` statement.\n // `__non_webpack_require__` is a Webpack macro that gets turned into a `require` statement\n // during bundling.\n return __non_webpack_require__(moduleName);\n } else {\n return require(moduleName);\n }\n}\n\n// SCENARIO 1: Rush's PluginManager has initialized \"rush-sdk\" with Rush's own instance of rush-lib.\n// The Rush host process will assign \"global.___rush___rushLibModule\" before loading the plugin.\nlet rushLibModule: RushLibModuleType | undefined =\n global.___rush___rushLibModule || global.___rush___rushLibModuleFromInstallAndRunRush;\nlet errorMessage: string = '';\n\n// SCENARIO 2: The project importing \"rush-sdk\" has installed its own instance of \"rush-lib\"\n// as a package.json dependency. For example, this is used by the Jest tests for Rush plugins.\nif (rushLibModule === undefined) {\n const importingPath: string | null | undefined = module?.parent?.filename;\n if (importingPath) {\n const callerPackageFolder: string | undefined =\n PackageJsonLookup.instance.tryGetPackageFolderFor(importingPath);\n\n if (callerPackageFolder !== undefined) {\n const callerPackageJson: IPackageJson = _require(path.join(callerPackageFolder, 'package.json'));\n\n // Does the caller properly declare a dependency on rush-lib?\n if (\n (callerPackageJson.dependencies && callerPackageJson.dependencies[RUSH_LIB_NAME] !== undefined) ||\n (callerPackageJson.devDependencies &&\n callerPackageJson.devDependencies[RUSH_LIB_NAME] !== undefined) ||\n (callerPackageJson.peerDependencies &&\n callerPackageJson.peerDependencies[RUSH_LIB_NAME] !== undefined)\n ) {\n // Try to resolve rush-lib from the caller's folder\n terminal.writeVerboseLine(`Try to load ${RUSH_LIB_NAME} from caller package`);\n try {\n rushLibModule = requireRushLibUnderFolderPath(callerPackageFolder);\n } catch (error) {\n // If we fail to resolve it, ignore the error\n terminal.writeVerboseLine(`Failed to load ${RUSH_LIB_NAME} from caller package`);\n }\n\n // If two different libraries invoke `rush-sdk`, and one of them provides \"rush-lib\"\n // then the first version to be loaded wins. We do not support side-by-side instances of \"rush-lib\".\n if (rushLibModule !== undefined) {\n // to track which scenario is active and how it got initialized.\n global.___rush___rushLibModule = rushLibModule;\n terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} from caller`);\n }\n }\n }\n }\n}\n\n// SCENARIO 3: A tool or script depends on \"rush-sdk\", and is meant to be used inside a monorepo folder.\n// In this case, we can use install-run-rush.js to obtain the appropriate rush-lib version for the monorepo.\nif (rushLibModule === undefined) {\n try {\n const rushJsonPath: string | undefined = tryFindRushJsonLocation(process.cwd());\n if (!rushJsonPath) {\n throw new Error(\n 'Unable to find rush.json in the current folder or its parent folders.\\n' +\n 'This tool is meant to be invoked from a working directory inside a Rush repository.'\n );\n }\n const monorepoRoot: string = path.dirname(rushJsonPath);\n\n const rushJson: JsonObject = JsonFile.load(rushJsonPath);\n const { rushVersion } = rushJson;\n\n const installRunNodeModuleFolder: string = path.join(\n monorepoRoot,\n `common/temp/install-run/@microsoft+rush@${rushVersion}`\n );\n\n try {\n // First, try to load the version of \"rush-lib\" that was installed by install-run-rush.js\n terminal.writeVerboseLine(`Trying to load ${RUSH_LIB_NAME} installed by install-run-rush`);\n rushLibModule = requireRushLibUnderFolderPath(installRunNodeModuleFolder);\n } catch (e) {\n let installAndRunRushStderrContent: string = '';\n try {\n const installAndRunRushJSPath: string = path.join(monorepoRoot, 'common/scripts/install-run-rush.js');\n\n terminal.writeLine('The Rush engine has not been installed yet. Invoking install-run-rush.js...');\n\n const installAndRuhRushProcess: SpawnSyncReturns<string> = Executable.spawnSync(\n 'node',\n [installAndRunRushJSPath, '--help'],\n {\n stdio: 'pipe'\n }\n );\n\n installAndRunRushStderrContent = installAndRuhRushProcess.stderr;\n if (installAndRuhRushProcess.status !== 0) {\n throw new Error(`The ${RUSH_LIB_NAME} package failed to install`);\n }\n\n // Retry to load \"rush-lib\" after install-run-rush run\n terminal.writeVerboseLine(\n `Trying to load ${RUSH_LIB_NAME} installed by install-run-rush a second time`\n );\n rushLibModule = requireRushLibUnderFolderPath(installRunNodeModuleFolder);\n } catch (e) {\n console.error(`${installAndRunRushStderrContent}`);\n throw new Error(`The ${RUSH_LIB_NAME} package failed to load`);\n }\n }\n\n if (rushLibModule !== undefined) {\n // to track which scenario is active and how it got initialized.\n global.___rush___rushLibModuleFromInstallAndRunRush = rushLibModule;\n terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} installed by install-run-rush`);\n }\n } catch (e) {\n // no-catch\n errorMessage = (e as Error).message;\n }\n}\n\nif (rushLibModule === undefined) {\n // This error indicates that a project is trying to import \"@rushstack/rush-sdk\", but the Rush engine\n // instance cannot be found. If you are writing Jest tests for a Rush plugin, add \"@microsoft/rush-lib\"\n // to the devDependencies for your project.\n console.error(`Error: The @rushstack/rush-sdk package was not able to load the Rush engine:\n${errorMessage}\n`);\n process.exit(1);\n}\n\n// Based on TypeScript's __exportStar()\nfor (const property in rushLibModule) {\n if (property !== 'default' && !exports.hasOwnProperty(property)) {\n const rushLibModuleForClosure: RushLibModuleType = rushLibModule;\n\n // Based on TypeScript's __createBinding()\n Object.defineProperty(exports, property, {\n enumerable: true,\n get: function () {\n return rushLibModuleForClosure[property];\n }\n });\n }\n}\n\n/**\n * Used by the .js stubs for path-based imports of `@microsoft/rush-lib` internal APIs.\n */\nexport function _rushSdk_loadInternalModule(srcImportPath: string): unknown {\n if (!exports._RushInternals) {\n throw new Error(\n `Rush version ${exports.Rush.version} does not support internal API imports via rush-sdk`\n );\n }\n return exports._RushInternals.loadModule(srcImportPath);\n}\n\n/**\n * Require `@microsoft/rush-lib` under the specified folder path.\n */\nfunction requireRushLibUnderFolderPath(folderPath: string): RushLibModuleType {\n const rushLibModulePath: string = Import.resolveModule({\n modulePath: RUSH_LIB_NAME,\n baseFolderPath: folderPath\n });\n\n return _require(rushLibModulePath);\n}\n\n/**\n * Find the rush.json location and return the path, or undefined if a rush.json can't be found.\n *\n * @privateRemarks\n * Keep this in sync with `RushConfiguration.tryFindRushJsonLocation`.\n */\nfunction tryFindRushJsonLocation(startingFolder: string): string | undefined {\n let currentFolder: string = startingFolder;\n\n // Look upwards at parent folders until we find a folder containing rush.json\n for (let i: number = 0; i < 10; ++i) {\n const rushJsonFilename: string = path.join(currentFolder, 'rush.json');\n\n if (FileSystem.exists(rushJsonFilename)) {\n return rushJsonFilename;\n }\n\n const parentFolder: string = path.dirname(currentFolder);\n if (parentFolder === currentFolder) {\n break;\n }\n\n currentFolder = parentFolder;\n }\n\n return undefined;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.90.2",
3
+ "version": "5.92.0",
4
4
  "description": "An API for interacting with the Rush engine",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,25 +8,25 @@
8
8
  "directory": "apps/rush-sdk"
9
9
  },
10
10
  "homepage": "https://rushjs.io",
11
- "main": "lib/index.js",
11
+ "main": "lib-shim/index.js",
12
12
  "typings": "dist/rush-lib.d.ts",
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
15
  "@types/node-fetch": "2.6.2",
16
16
  "tapable": "2.2.1",
17
- "@rushstack/node-core-library": "3.55.1"
17
+ "@rushstack/node-core-library": "3.55.2"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/heft-jest": "1.0.1",
21
21
  "@types/semver": "7.3.5",
22
22
  "@types/webpack-env": "1.18.0",
23
- "@microsoft/rush-lib": "5.90.2",
24
- "@rushstack/heft": "0.49.6",
25
- "@rushstack/eslint-config": "3.1.1",
26
- "@rushstack/heft-node-rig": "1.12.3",
27
- "@rushstack/stream-collator": "4.0.226",
28
- "@rushstack/ts-command-line": "4.13.1",
29
- "@rushstack/terminal": "0.5.1"
23
+ "@microsoft/rush-lib": "5.92.0",
24
+ "@rushstack/eslint-config": "3.2.0",
25
+ "@rushstack/heft": "0.49.7",
26
+ "@rushstack/heft-node-rig": "1.12.4",
27
+ "@rushstack/stream-collator": "4.0.227",
28
+ "@rushstack/ts-command-line": "4.13.2",
29
+ "@rushstack/terminal": "0.5.2"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "heft build --clean",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'path';\nimport {\n JsonFile,\n JsonObject,\n Import,\n IPackageJson,\n PackageJsonLookup,\n Executable,\n FileSystem,\n Terminal,\n ConsoleTerminalProvider\n} from '@rushstack/node-core-library';\nimport type { SpawnSyncReturns } from 'child_process';\n\nconst RUSH_LIB_NAME: string = '@microsoft/rush-lib';\n\nconst verboseEnabled: boolean = typeof process !== 'undefined' && process.env.RUSH_SDK_DEBUG === '1';\nconst terminal: Terminal = new Terminal(\n new ConsoleTerminalProvider({\n verboseEnabled\n })\n);\n\ntype RushLibModuleType = Record<string, unknown>;\ndeclare const global: NodeJS.Global &\n typeof globalThis & {\n ___rush___rushLibModule?: RushLibModuleType;\n ___rush___rushLibModuleFromInstallAndRunRush?: RushLibModuleType;\n };\n\nfunction _require<TResult>(moduleName: string): TResult {\n if (typeof __non_webpack_require__ === 'function') {\n // If this library has been bundled with Webpack, we need to call the real `require` function\n // that doesn't get turned into a `__webpack_require__` statement.\n // `__non_webpack_require__` is a Webpack macro that gets turned into a `require` statement\n // during bundling.\n return __non_webpack_require__(moduleName);\n } else {\n return require(moduleName);\n }\n}\n\n// SCENARIO 1: Rush's PluginManager has initialized \"rush-sdk\" with Rush's own instance of rush-lib.\n// The Rush host process will assign \"global.___rush___rushLibModule\" before loading the plugin.\nlet rushLibModule: RushLibModuleType | undefined =\n global.___rush___rushLibModule || global.___rush___rushLibModuleFromInstallAndRunRush;\nlet errorMessage: string = '';\n\n// SCENARIO 2: The project importing \"rush-sdk\" has installed its own instance of \"rush-lib\"\n// as a package.json dependency. For example, this is used by the Jest tests for Rush plugins.\nif (rushLibModule === undefined) {\n const importingPath: string | null | undefined = module?.parent?.filename;\n if (importingPath) {\n const callerPackageFolder: string | undefined =\n PackageJsonLookup.instance.tryGetPackageFolderFor(importingPath);\n\n if (callerPackageFolder !== undefined) {\n const callerPackageJson: IPackageJson = _require(path.join(callerPackageFolder, 'package.json'));\n\n // Does the caller properly declare a dependency on rush-lib?\n if (\n (callerPackageJson.dependencies && callerPackageJson.dependencies[RUSH_LIB_NAME] !== undefined) ||\n (callerPackageJson.devDependencies &&\n callerPackageJson.devDependencies[RUSH_LIB_NAME] !== undefined) ||\n (callerPackageJson.peerDependencies &&\n callerPackageJson.peerDependencies[RUSH_LIB_NAME] !== undefined)\n ) {\n // Try to resolve rush-lib from the caller's folder\n terminal.writeVerboseLine(`Try to load ${RUSH_LIB_NAME} from caller package`);\n try {\n rushLibModule = requireRushLibUnderFolderPath(callerPackageFolder);\n } catch (error) {\n // If we fail to resolve it, ignore the error\n terminal.writeVerboseLine(`Failed to load ${RUSH_LIB_NAME} from caller package`);\n }\n\n // If two different libraries invoke `rush-sdk`, and one of them provides \"rush-lib\"\n // then the first version to be loaded wins. We do not support side-by-side instances of \"rush-lib\".\n if (rushLibModule !== undefined) {\n // to track which scenario is active and how it got initialized.\n global.___rush___rushLibModule = rushLibModule;\n terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} from caller`);\n }\n }\n }\n }\n}\n\n// SCENARIO 3: A tool or script depends on \"rush-sdk\", and is meant to be used inside a monorepo folder.\n// In this case, we can use install-run-rush.js to obtain the appropriate rush-lib version for the monorepo.\nif (rushLibModule === undefined) {\n try {\n const rushJsonPath: string | undefined = tryFindRushJsonLocation(process.cwd());\n if (!rushJsonPath) {\n throw new Error(\n 'Unable to find rush.json in the current folder or its parent folders.\\n' +\n 'This tool is meant to be invoked from a working directory inside a Rush repository.'\n );\n }\n const monorepoRoot: string = path.dirname(rushJsonPath);\n\n const rushJson: JsonObject = JsonFile.load(rushJsonPath);\n const { rushVersion } = rushJson;\n\n const installRunNodeModuleFolder: string = path.join(\n monorepoRoot,\n `common/temp/install-run/@microsoft+rush@${rushVersion}`\n );\n\n try {\n // First, try to load the version of \"rush-lib\" that was installed by install-run-rush.js\n terminal.writeVerboseLine(`Trying to load ${RUSH_LIB_NAME} installed by install-run-rush`);\n rushLibModule = requireRushLibUnderFolderPath(installRunNodeModuleFolder);\n } catch (e) {\n let installAndRunRushStderrContent: string = '';\n try {\n const installAndRunRushJSPath: string = path.join(monorepoRoot, 'common/scripts/install-run-rush.js');\n\n terminal.writeLine('The Rush engine has not been installed yet. Invoking install-run-rush.js...');\n\n const installAndRuhRushProcess: SpawnSyncReturns<string> = Executable.spawnSync(\n 'node',\n [installAndRunRushJSPath, '--help'],\n {\n stdio: 'pipe'\n }\n );\n\n installAndRunRushStderrContent = installAndRuhRushProcess.stderr;\n if (installAndRuhRushProcess.status !== 0) {\n throw new Error(`The ${RUSH_LIB_NAME} package failed to install`);\n }\n\n // Retry to load \"rush-lib\" after install-run-rush run\n terminal.writeVerboseLine(\n `Trying to load ${RUSH_LIB_NAME} installed by install-run-rush a second time`\n );\n rushLibModule = requireRushLibUnderFolderPath(installRunNodeModuleFolder);\n } catch (e) {\n console.error(`${installAndRunRushStderrContent}`);\n throw new Error(`The ${RUSH_LIB_NAME} package failed to load`);\n }\n }\n\n if (rushLibModule !== undefined) {\n // to track which scenario is active and how it got initialized.\n global.___rush___rushLibModuleFromInstallAndRunRush = rushLibModule;\n terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} installed by install-run-rush`);\n }\n } catch (e) {\n // no-catch\n errorMessage = (e as Error).message;\n }\n}\n\nif (rushLibModule === undefined) {\n // This error indicates that a project is trying to import \"@rushstack/rush-sdk\", but the Rush engine\n // instance cannot be found. If you are writing Jest tests for a Rush plugin, add \"@microsoft/rush-lib\"\n // to the devDependencies for your project.\n console.error(`Error: The @rushstack/rush-sdk package was not able to load the Rush engine:\n${errorMessage}\n`);\n process.exit(1);\n}\n\n// Based on TypeScript's __exportStar()\nfor (const property in rushLibModule) {\n if (property !== 'default' && !exports.hasOwnProperty(property)) {\n const rushLibModuleForClosure: RushLibModuleType = rushLibModule;\n\n // Based on TypeScript's __createBinding()\n Object.defineProperty(exports, property, {\n enumerable: true,\n get: function () {\n return rushLibModuleForClosure[property];\n }\n });\n }\n}\n\n/**\n * Require `@microsoft/rush-lib` under the specified folder path.\n */\nfunction requireRushLibUnderFolderPath(folderPath: string): RushLibModuleType {\n const rushLibModulePath: string = Import.resolveModule({\n modulePath: RUSH_LIB_NAME,\n baseFolderPath: folderPath\n });\n\n return _require(rushLibModulePath);\n}\n\n/**\n * Find the rush.json location and return the path, or undefined if a rush.json can't be found.\n *\n * @privateRemarks\n * Keep this in sync with `RushConfiguration.tryFindRushJsonLocation`.\n */\nfunction tryFindRushJsonLocation(startingFolder: string): string | undefined {\n let currentFolder: string = startingFolder;\n\n // Look upwards at parent folders until we find a folder containing rush.json\n for (let i: number = 0; i < 10; ++i) {\n const rushJsonFilename: string = path.join(currentFolder, 'rush.json');\n\n if (FileSystem.exists(rushJsonFilename)) {\n return rushJsonFilename;\n }\n\n const parentFolder: string = path.dirname(currentFolder);\n if (parentFolder === currentFolder) {\n break;\n }\n\n currentFolder = parentFolder;\n }\n\n return undefined;\n}\n"]}