code: function resolvePackageVersion(rushCommonFolder, { name, version }) {
      if (!version) {
          version = '*'; // If no version is specified, use the latest version
      }
      if (version.match(/^[a-zA-Z0-9\-\+\.]+$/)) {
          // If the version contains only characters that we recognize to be used in static version specifiers,
          // pass the version through
          return version;
      }
      else {
          // version resolves to
          try {
              const rushTempFolder = ensureAndJoinPath(rushCommonFolder, 'temp');
              const sourceNpmrcFolder = path.join(rushCommonFolder, 'config', 'rush');
              syncNpmrc(sourceNpmrcFolder, rushTempFolder);
              const npmPath = getNpmPath();
              // This returns something that looks like:
              //  @microsoft/rush@3.0.0 '3.0.0'
              //  @microsoft/rush@3.0.1 '3.0.1'
              //  ...
              //  @microsoft/rush@3.0.20 '3.0.20'
              //  <blank line>
              const npmVersionSpawnResult = childProcess.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier'], {
                  cwd: rushTempFolder,
                  stdio: []
              });
              if (npmVersionSpawnResult.status !== 0) {
                  throw new Error(`"npm view" returned error code ${npmVersionSpawnResult.status}`);
              }
              const npmViewVersionOutput = npmVersionSpawnResult.stdout.toString();
              const versionLines = npmViewVersionOutput.split('\n').filter((line) => !!line);
              const latestVersion = versionLines[versionLines.length - 1];
              if (!latestVersion) {
                  throw new Error('No versions found for the specified version range.');
              }
              const versionMatches = latestVersion.match(/^.+\s\'(.+)\'$/);
              if (!versionMatches) {
                  throw new Error(`Invalid npm output ${latestVersion}`);
              }
              return versionMatches[1];
          }
          catch (e) {
              throw new Error(`Unable to resolve version ${version} of package ${name}: ${e}`);
          }
      }
  }
docs: Resolve a package specifier to a static version