anchor.diff:  }
   
   @Command("dsa-value", description: "Get DSA Value", usage: "<path>", prefix: "DSA")
  -getDsaValue(String input) async {
  +getDsaValue(CommandEvent event, String input) async {
  +  input = getAliasOrPath(event, input);
  +
     RemoteNode node = await link.requester
       .getRemoteNode(input)
       .timeout(const Duration(seconds: 3), onTimeout: () => null);
  
positive.code: }
  
  @Command("dsa-ls", description: "Get a Simple List of DSA Nodes", usage: "<path>", prefix: "DSA")
  getSimpleList(String input) async {
    var node = await link.requester
      .getRemoteNode(input)
      .timeout(const Duration(seconds: 3), onTimeout: () => null);
  
negative.code: }
  
  @Command("dsa-html", description: "Generate an HTML Url to a DSA node", usage: "<path>", prefix: "DSA")
  getHtmlUrl(CommandEvent event, String input) {
    input = getAliasOrPath(event, input);
  
    if (config.has("html_url_template")) {
      var template = config.getString("html_url_template");
      return template.replaceAll("{path}", Uri.encodeFull(input));
    } else {
      return "Unsupported.";
    }
  }
  
  String getAliasOrPath(CommandEvent event, String path) {
    var meta = event.getChannelMetadata();
    if (meta.has("alias::${path}")) {
      return meta.getString("alias::${path}");
    } else {
      return path;
    }
  }
  
  