globalFunctions static method

Map<String, NativeFunctionImpl> globalFunctions()

Returns a map of global function names to their native implementations.

Implementation

static Map<String, NativeFunctionImpl> globalFunctions() {
  return {
    'cat': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'cat');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'cat');
      if (!named.containsKey('stdout')) {
        $dcli_core_2.cat(path);
        return null;
      }
      if (named.containsKey('stdout')) {
        final stdoutRaw = named['stdout'];
        final stdout = (String p0) { D4.callInterpreterCallback(visitor!, stdoutRaw, [p0]); };
        $dcli_core_2.cat(path, stdout: stdout);
        return null;
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'copy': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'copy');
      final from = D4.getRequiredArg<String>(positional, 0, 'from', 'copy');
      final to = D4.getRequiredArg<String>(positional, 1, 'to', 'copy');
      final overwrite = D4.getNamedArgWithDefault<bool>(named, 'overwrite', false);
      return $dcli_core_3.copy(from, to, overwrite: overwrite);
    },
    'copyTree': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'copyTree');
      final from = D4.getRequiredArg<String>(positional, 0, 'from', 'copyTree');
      final to = D4.getRequiredArg<String>(positional, 1, 'to', 'copyTree');
      final overwrite = D4.getNamedArgWithDefault<bool>(named, 'overwrite', false);
      final includeHidden = D4.getNamedArgWithDefault<bool>(named, 'includeHidden', false);
      final includeEmpty = D4.getNamedArgWithDefault<bool>(named, 'includeEmpty', true);
      final includeLinks = D4.getNamedArgWithDefault<bool>(named, 'includeLinks', true);
      final recursive = D4.getNamedArgWithDefault<bool>(named, 'recursive', true);
      if (!named.containsKey('filter')) {
        $dcli_core_4.copyTree(from, to, overwrite: overwrite, includeHidden: includeHidden, includeEmpty: includeEmpty, includeLinks: includeLinks, recursive: recursive);
        return null;
      }
      if (named.containsKey('filter')) {
        final filterRaw = named['filter'];
        final filter = (String p0) { return D4.extractBridgedArg<bool>(D4.callInterpreterCallback(visitor!, filterRaw, [p0]), 'callback', visitor); };
        $dcli_core_4.copyTree(from, to, overwrite: overwrite, includeHidden: includeHidden, includeEmpty: includeEmpty, includeLinks: includeLinks, recursive: recursive, filter: filter);
        return null;
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'createDir': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'createDir');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'createDir');
      final recursive = D4.getNamedArgWithDefault<bool>(named, 'recursive', false);
      return $dcli_core_5.createDir(path, recursive: recursive);
    },
    'withTempDirAsync': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'withTempDirAsync');
      if (positional.isEmpty) {
        throw ArgumentError('withTempDirAsync: Missing required argument "action" at position 0');
      }
      final actionRaw = positional[0];
      final action = (String p0) { return D4.extractBridgedArg<Future<dynamic>>(D4.callInterpreterCallback(visitor!, actionRaw, [p0]), 'callback', visitor); };
      final keep = D4.getNamedArgWithDefault<bool>(named, 'keep', false);
      final pathToTempDir = D4.getOptionalNamedArg<String?>(named, 'pathToTempDir');
      return $dcli_core_5.withTempDirAsync<dynamic>(action, keep: keep, pathToTempDir: pathToTempDir);
    },
    'createTempDir': (visitor, positional, named, typeArgs) {
      return $dcli_core_5.createTempDir();
    },
    'deleteDir': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'deleteDir');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'deleteDir');
      final recursive = D4.getNamedArgWithDefault<bool>(named, 'recursive', true);
      return $dcli_core_8.deleteDir(path, recursive: recursive);
    },
    'isOnPATH': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isOnPATH');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isOnPATH');
      return $dcli_core_9.isOnPATH(path);
    },
    'withEnvironmentAsync': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'withEnvironmentAsync');
      if (positional.isEmpty) {
        throw ArgumentError('withEnvironmentAsync: Missing required argument "callback" at position 0');
      }
      final callbackRaw = positional[0];
      final callback = () { return D4.extractBridgedArg<Future<dynamic>>(D4.callInterpreterCallback(visitor!, callbackRaw, []), 'callback', visitor); };
      final environment = D4.getRequiredNamedArg<Map<String, String>>(named, 'environment', 'withEnvironmentAsync');
      return $dcli_core_9.withEnvironmentAsync<dynamic>(callback, environment: environment);
    },
    'isFile': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isFile');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isFile');
      return $dcli_core_11.isFile(path);
    },
    'isDirectory': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isDirectory');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isDirectory');
      return $dcli_core_11.isDirectory(path);
    },
    'isLink': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isLink');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isLink');
      return $dcli_core_11.isLink(path);
    },
    'exists': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'exists');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'exists');
      final followLinks = D4.getNamedArgWithDefault<bool>(named, 'followLinks', true);
      return $dcli_core_11.exists(path, followLinks: followLinks);
    },
    'isEmpty': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isEmpty');
      final pathToDirectory = D4.getRequiredArg<String>(positional, 0, 'pathToDirectory', 'isEmpty');
      return $dcli_core_11.isEmpty(pathToDirectory);
    },
    'move': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'move');
      final from = D4.getRequiredArg<String>(positional, 0, 'from', 'move');
      final to = D4.getRequiredArg<String>(positional, 1, 'to', 'move');
      final overwrite = D4.getNamedArgWithDefault<bool>(named, 'overwrite', false);
      return $dcli_core_12.move(from, to, overwrite: overwrite);
    },
    'moveDir': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'moveDir');
      final from = D4.getRequiredArg<String>(positional, 0, 'from', 'moveDir');
      final to = D4.getRequiredArg<String>(positional, 1, 'to', 'moveDir');
      return $dcli_core_13.moveDir(from, to);
    },
    'moveTree': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'moveTree');
      final from = D4.getRequiredArg<String>(positional, 0, 'from', 'moveTree');
      final to = D4.getRequiredArg<String>(positional, 1, 'to', 'moveTree');
      final overwrite = D4.getNamedArgWithDefault<bool>(named, 'overwrite', false);
      final includeHidden = D4.getNamedArgWithDefault<bool>(named, 'includeHidden', false);
      if (!named.containsKey('filter')) {
        $dcli_core_14.moveTree(from, to, overwrite: overwrite, includeHidden: includeHidden);
        return null;
      }
      if (named.containsKey('filter')) {
        final filterRaw = named['filter'];
        final filter = (String p0) { return D4.extractBridgedArg<bool>(D4.callInterpreterCallback(visitor!, filterRaw, [p0]), 'callback', visitor); };
        $dcli_core_14.moveTree(from, to, overwrite: overwrite, includeHidden: includeHidden, filter: filter);
        return null;
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'touch': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'touch');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'touch');
      final create = D4.getNamedArgWithDefault<bool>(named, 'create', false);
      return $dcli_core_16.touch(path, create: create);
    },
    'verbose': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'verbose');
      if (positional.isEmpty) {
        throw ArgumentError('verbose: Missing required argument "callback" at position 0');
      }
      final callbackRaw = positional[0];
      final callback = () { return D4.extractBridgedArg<String>(D4.callInterpreterCallback(visitor!, callbackRaw, []), 'callback', visitor); };
      return $dcli_core_18.verbose(callback);
    },
    'devNull': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'devNull');
      final line = D4.getRequiredArg<String?>(positional, 0, 'line', 'devNull');
      return $dcli_core_20.devNull(line);
    },
    'createTempFilename': (visitor, positional, named, typeArgs) {
      final suffix = D4.getOptionalNamedArg<String?>(named, 'suffix');
      final pathToTempDir = D4.getOptionalNamedArg<String?>(named, 'pathToTempDir');
      return $dcli_core_21.createTempFilename(suffix: suffix, pathToTempDir: pathToTempDir);
    },
    'createTempFile': (visitor, positional, named, typeArgs) {
      final suffix = D4.getOptionalNamedArg<String?>(named, 'suffix');
      return $dcli_core_21.createTempFile(suffix: suffix);
    },
    'truepath': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'truepath');
      final part1 = D4.getRequiredArg<String>(positional, 0, 'part1', 'truepath');
      final part2 = positional.length > 1 ? positional[1] as String? : null;
      final part3 = positional.length > 2 ? positional[2] as String? : null;
      final part4 = positional.length > 3 ? positional[3] as String? : null;
      final part5 = positional.length > 4 ? positional[4] as String? : null;
      final part6 = positional.length > 5 ? positional[5] as String? : null;
      final part7 = positional.length > 6 ? positional[6] as String? : null;
      return $dcli_core_26.truepath(part1, part2, part3, part4, part5, part6, part7);
    },
    'privatePath': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'privatePath');
      final part1 = D4.getRequiredArg<String>(positional, 0, 'part1', 'privatePath');
      final part2 = positional.length > 1 ? positional[1] as String? : null;
      final part3 = positional.length > 2 ? positional[2] as String? : null;
      final part4 = positional.length > 3 ? positional[3] as String? : null;
      final part5 = positional.length > 4 ? positional[4] as String? : null;
      final part6 = positional.length > 5 ? positional[5] as String? : null;
      final part7 = positional.length > 6 ? positional[6] as String? : null;
      return $dcli_core_26.privatePath(part1, part2, part3, part4, part5, part6, part7);
    },
    'red': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'red');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'red');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.red(text, background: background, bold: bold);
    },
    'black': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'black');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'black');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.white);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.black(text, background: background, bold: bold);
    },
    'green': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'green');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'green');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.green(text, background: background, bold: bold);
    },
    'blue': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'blue');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'blue');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.blue(text, background: background, bold: bold);
    },
    'yellow': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'yellow');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'yellow');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.yellow(text, background: background, bold: bold);
    },
    'magenta': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'magenta');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'magenta');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.magenta(text, background: background, bold: bold);
    },
    'cyan': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'cyan');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'cyan');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.cyan(text, background: background, bold: bold);
    },
    'white': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'white');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'white');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.white(text, background: background, bold: bold);
    },
    'orange': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'orange');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'orange');
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.orange(text, background: background, bold: bold);
    },
    'grey': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'grey');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'grey');
      final level = D4.getNamedArgWithDefault<double>(named, 'level', 0.5);
      final background = D4.getNamedArgWithDefault<$dcli_terminal_2.AnsiColor>(named, 'background', $dcli_terminal_2.AnsiColor.none);
      final bold = D4.getNamedArgWithDefault<bool>(named, 'bold', true);
      return $dcli_terminal_2.grey(text, level: level, background: background, bold: bold);
    },
    'ask': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'ask');
      final prompt = D4.getRequiredArg<String>(positional, 0, 'prompt', 'ask');
      final toLower = D4.getNamedArgWithDefault<bool>(named, 'toLower', false);
      final hidden = D4.getNamedArgWithDefault<bool>(named, 'hidden', false);
      final required = D4.getNamedArgWithDefault<bool>(named, 'required', true);
      final defaultValue = D4.getOptionalNamedArg<String?>(named, 'defaultValue');
      final validator = D4.getNamedArgWithDefault<$dcli_1.AskValidator>(named, 'validator', $aux_dcli.Ask.dontCare);
      final customErrorMessage = D4.getOptionalNamedArg<String?>(named, 'customErrorMessage');
      if (!named.containsKey('customPrompt')) {
        return $dcli_1.ask(prompt, toLower: toLower, hidden: hidden, required: required, defaultValue: defaultValue, validator: validator, customErrorMessage: customErrorMessage);
      }
      if (named.containsKey('customPrompt')) {
        final customPromptRaw = named['customPrompt'];
        final customPrompt = (String p0, String? p1, bool p2) { return D4.extractBridgedArg<String>(D4.callInterpreterCallback(visitor!, customPromptRaw, [p0, p1, p2]), 'callback', visitor); };
        return $dcli_1.ask(prompt, toLower: toLower, hidden: hidden, required: required, defaultValue: defaultValue, validator: validator, customErrorMessage: customErrorMessage, customPrompt: customPrompt);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'backupFile': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'backupFile');
      final pathToFile = D4.getRequiredArg<String>(positional, 0, 'pathToFile', 'backupFile');
      final ignoreMissing = D4.getNamedArgWithDefault<bool>(named, 'ignoreMissing', false);
      return $dcli_2.backupFile(pathToFile, ignoreMissing: ignoreMissing);
    },
    'restoreFile': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'restoreFile');
      final pathToFile = D4.getRequiredArg<String>(positional, 0, 'pathToFile', 'restoreFile');
      final ignoreMissing = D4.getNamedArgWithDefault<bool>(named, 'ignoreMissing', false);
      return $dcli_2.restoreFile(pathToFile, ignoreMissing: ignoreMissing);
    },
    'withFileProtectionAsync': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'withFileProtectionAsync');
      final protected = D4.getRequiredArg<List<String>>(positional, 0, 'protected', 'withFileProtectionAsync');
      if (positional.length <= 1) {
        throw ArgumentError('withFileProtectionAsync: Missing required argument "action" at position 1');
      }
      final actionRaw = positional[1];
      final action = () { return D4.extractBridgedArg<Future<dynamic>>(D4.callInterpreterCallback(visitor!, actionRaw, []), 'callback', visitor); };
      final workingDirectory = D4.getOptionalNamedArg<String?>(named, 'workingDirectory');
      return $dcli_2.withFileProtectionAsync<dynamic>(protected, action, workingDirectory: workingDirectory);
    },
    'confirm': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'confirm');
      final prompt = D4.getRequiredArg<String>(positional, 0, 'prompt', 'confirm');
      final defaultValue = D4.getOptionalNamedArg<bool?>(named, 'defaultValue');
      if (!named.containsKey('customPrompt')) {
        return $dcli_3.confirm(prompt, defaultValue: defaultValue);
      }
      if (named.containsKey('customPrompt')) {
        final customPromptRaw = named['customPrompt'];
        final customPrompt = (String p0, bool? p1) { return D4.extractBridgedArg<String>(D4.callInterpreterCallback(visitor!, customPromptRaw, [p0, p1]), 'callback', visitor); };
        return $dcli_3.confirm(prompt, defaultValue: defaultValue, customPrompt: customPrompt);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'delete': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'delete');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'delete');
      final ask = D4.getNamedArgWithDefault<bool>(named, 'ask', false);
      return $dcli_4.delete(path, ask: ask);
    },
    'echo': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'echo');
      final text = D4.getRequiredArg<String>(positional, 0, 'text', 'echo');
      final newline = D4.getNamedArgWithDefault<bool>(named, 'newline', false);
      return $dcli_5.echo(text, newline: newline);
    },
    'fetch': (visitor, positional, named, typeArgs) {
      final url = D4.getRequiredNamedArg<String>(named, 'url', 'fetch');
      final saveToPath = D4.getRequiredNamedArg<String>(named, 'saveToPath', 'fetch');
      final method = D4.getNamedArgWithDefault<$dcli_6.FetchMethod>(named, 'method', $dcli_6.FetchMethod.get);
      final headers = D4.getOptionalNamedArg<Map<String, String>?>(named, 'headers');
      final data = D4.getOptionalNamedArg<$dcli_6.FetchData?>(named, 'data');
      if (!named.containsKey('fetchProgress')) {
        return $dcli_6.fetch(url: url, saveToPath: saveToPath, method: method, headers: headers, data: data);
      }
      if (named.containsKey('fetchProgress')) {
        final fetchProgressRaw = named['fetchProgress'];
        final fetchProgress = ($dcli_6.FetchProgress p0) { D4.callInterpreterCallback(visitor!, fetchProgressRaw, [p0]); };
        return $dcli_6.fetch(url: url, saveToPath: saveToPath, method: method, headers: headers, data: data, fetchProgress: fetchProgress);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'fetchMultiple': (visitor, positional, named, typeArgs) {
      if (!named.containsKey('urls') || named['urls'] == null) {
        throw ArgumentError('fetchMultiple: Missing required named argument "urls"');
      }
      final urls = D4.coerceList<$dcli_6.FetchUrl>(named['urls'], 'urls');
      return $dcli_6.fetchMultiple(urls: urls);
    },
    'find': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'find');
      final pattern = D4.getRequiredArg<String>(positional, 0, 'pattern', 'find');
      final caseSensitive = D4.getNamedArgWithDefault<bool>(named, 'caseSensitive', false);
      final recursive = D4.getNamedArgWithDefault<bool>(named, 'recursive', true);
      final includeHidden = D4.getNamedArgWithDefault<bool>(named, 'includeHidden', false);
      final workingDirectory = D4.getNamedArgWithDefault<String>(named, 'workingDirectory', '.');
      final progress = D4.getOptionalNamedArg<$dcli_19.Progress?>(named, 'progress');
      if (!named.containsKey('types')) {
        return $dcli_8.find(pattern, caseSensitive: caseSensitive, recursive: recursive, includeHidden: includeHidden, workingDirectory: workingDirectory, progress: progress);
      }
      if (named.containsKey('types')) {
        final types = D4.coerceList<FileSystemEntityType>(named['types'], 'types');
        return $dcli_8.find(pattern, caseSensitive: caseSensitive, recursive: recursive, includeHidden: includeHidden, workingDirectory: workingDirectory, progress: progress, types: types);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'head': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'head');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'head');
      final lines = D4.getRequiredArg<int>(positional, 1, 'lines', 'head');
      return $dcli_9.head(path, lines);
    },
    'isWritable': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isWritable');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isWritable');
      return $dcli_10.isWritable(path);
    },
    'isReadable': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isReadable');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isReadable');
      return $dcli_10.isReadable(path);
    },
    'isExecutable': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isExecutable');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'isExecutable');
      return $dcli_10.isExecutable(path);
    },
    'isMemberOfGroup': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'isMemberOfGroup');
      final group = D4.getRequiredArg<String>(positional, 0, 'group', 'isMemberOfGroup');
      return $dcli_10.isMemberOfGroup(group);
    },
    'menu': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'menu');
      final prompt = D4.getRequiredArg<String>(positional, 0, 'prompt', 'menu');
      if (!named.containsKey('options') || named['options'] == null) {
        throw ArgumentError('menu: Missing required named argument "options"');
      }
      final options = D4.coerceList<dynamic>(named['options'], 'options');
      final defaultOption = D4.getOptionalNamedArg<dynamic>(named, 'defaultOption');
      final limit = D4.getOptionalNamedArg<int?>(named, 'limit');
      final formatRaw = named['format'];
      final format = formatRaw == null ? null : (dynamic p0) { return D4.extractBridgedArg<String>(D4.callInterpreterCallback(visitor!, formatRaw, [p0]), 'callback', visitor); };
      final fromStart = D4.getNamedArgWithDefault<bool>(named, 'fromStart', true);
      if (!named.containsKey('customPrompt')) {
        return $dcli_11.menu(prompt, options: options, defaultOption: defaultOption, limit: limit, format: format, fromStart: fromStart);
      }
      if (named.containsKey('customPrompt')) {
        final customPromptRaw = named['customPrompt'];
        final customPrompt = (String p0, String? p1) { return D4.extractBridgedArg<String>(D4.callInterpreterCallback(visitor!, customPromptRaw, [p0, p1]), 'callback', visitor); };
        return $dcli_11.menu(prompt, options: options, defaultOption: defaultOption, limit: limit, format: format, fromStart: fromStart, customPrompt: customPrompt);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'read': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'read');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'read');
      final delim = D4.getNamedArgWithDefault<String>(named, 'delim', '\n');
      return $dcli_12.read(path, delim: delim);
    },
    'readStdin': (visitor, positional, named, typeArgs) {
      return $dcli_12.readStdin();
    },
    'replace': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 3, 'replace');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'replace');
      final existing = D4.getRequiredArg<Pattern>(positional, 1, 'existing', 'replace');
      final replacement = D4.getRequiredArg<String>(positional, 2, 'replacement', 'replace');
      final all = D4.getNamedArgWithDefault<bool>(named, 'all', false);
      return $dcli_13.replace(path, existing, replacement, all: all);
    },
    'run': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'run');
      final commandLine = D4.getRequiredArg<String>(positional, 0, 'commandLine', 'run');
      final runInShell = D4.getNamedArgWithDefault<bool>(named, 'runInShell', false);
      final nothrow = D4.getNamedArgWithDefault<bool>(named, 'nothrow', false);
      final privileged = D4.getNamedArgWithDefault<bool>(named, 'privileged', false);
      final workingDirectory = D4.getOptionalNamedArg<String?>(named, 'workingDirectory');
      final extensionSearch = D4.getNamedArgWithDefault<bool>(named, 'extensionSearch', true);
      if (!named.containsKey('encoding')) {
        return $dcli_14.run(commandLine, runInShell: runInShell, nothrow: nothrow, privileged: privileged, workingDirectory: workingDirectory, extensionSearch: extensionSearch);
      }
      if (named.containsKey('encoding')) {
        final encoding = D4.getRequiredNamedArg<Encoding>(named, 'encoding', 'run');
        return $dcli_14.run(commandLine, runInShell: runInShell, nothrow: nothrow, privileged: privileged, workingDirectory: workingDirectory, extensionSearch: extensionSearch, encoding: encoding);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'startFromArgs': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'startFromArgs');
      final command = D4.getRequiredArg<String>(positional, 0, 'command', 'startFromArgs');
      final args = D4.getRequiredArg<List<String>>(positional, 1, 'args', 'startFromArgs');
      final progress = D4.getOptionalNamedArg<$dcli_19.Progress?>(named, 'progress');
      final runInShell = D4.getNamedArgWithDefault<bool>(named, 'runInShell', false);
      final detached = D4.getNamedArgWithDefault<bool>(named, 'detached', false);
      final terminal = D4.getNamedArgWithDefault<bool>(named, 'terminal', false);
      final privileged = D4.getNamedArgWithDefault<bool>(named, 'privileged', false);
      final nothrow = D4.getNamedArgWithDefault<bool>(named, 'nothrow', false);
      final workingDirectory = D4.getOptionalNamedArg<String?>(named, 'workingDirectory');
      final extensionSearch = D4.getNamedArgWithDefault<bool>(named, 'extensionSearch', true);
      final includeParentEnvironment = D4.getNamedArgWithDefault<bool>(named, 'includeParentEnvironment', true);
      if (!named.containsKey('encoding')) {
        return $dcli_14.startFromArgs(command, args, progress: progress, runInShell: runInShell, detached: detached, terminal: terminal, privileged: privileged, nothrow: nothrow, workingDirectory: workingDirectory, extensionSearch: extensionSearch, includeParentEnvironment: includeParentEnvironment);
      }
      if (named.containsKey('encoding')) {
        final encoding = D4.getRequiredNamedArg<Encoding>(named, 'encoding', 'startFromArgs');
        return $dcli_14.startFromArgs(command, args, progress: progress, runInShell: runInShell, detached: detached, terminal: terminal, privileged: privileged, nothrow: nothrow, workingDirectory: workingDirectory, extensionSearch: extensionSearch, includeParentEnvironment: includeParentEnvironment, encoding: encoding);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'start': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'start');
      final commandLine = D4.getRequiredArg<String>(positional, 0, 'commandLine', 'start');
      final progress = D4.getOptionalNamedArg<$dcli_19.Progress?>(named, 'progress');
      final runInShell = D4.getNamedArgWithDefault<bool>(named, 'runInShell', false);
      final detached = D4.getNamedArgWithDefault<bool>(named, 'detached', false);
      final terminal = D4.getNamedArgWithDefault<bool>(named, 'terminal', false);
      final nothrow = D4.getNamedArgWithDefault<bool>(named, 'nothrow', false);
      final privileged = D4.getNamedArgWithDefault<bool>(named, 'privileged', false);
      final workingDirectory = D4.getOptionalNamedArg<String?>(named, 'workingDirectory');
      final extensionSearch = D4.getNamedArgWithDefault<bool>(named, 'extensionSearch', true);
      final includeParentEnvironment = D4.getNamedArgWithDefault<bool>(named, 'includeParentEnvironment', true);
      if (!named.containsKey('encoding')) {
        return $dcli_14.start(commandLine, progress: progress, runInShell: runInShell, detached: detached, terminal: terminal, nothrow: nothrow, privileged: privileged, workingDirectory: workingDirectory, extensionSearch: extensionSearch, includeParentEnvironment: includeParentEnvironment);
      }
      if (named.containsKey('encoding')) {
        final encoding = D4.getRequiredNamedArg<Encoding>(named, 'encoding', 'start');
        return $dcli_14.start(commandLine, progress: progress, runInShell: runInShell, detached: detached, terminal: terminal, nothrow: nothrow, privileged: privileged, workingDirectory: workingDirectory, extensionSearch: extensionSearch, includeParentEnvironment: includeParentEnvironment, encoding: encoding);
      }
      throw StateError('Unreachable: all named parameter combinations should be covered');
    },
    'sleep': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'sleep');
      final duration = D4.getRequiredArg<int>(positional, 0, 'duration', 'sleep');
      final interval = D4.getNamedArgWithDefault<$dcli_15.Interval>(named, 'interval', $dcli_15.Interval.seconds);
      return $dcli_15.sleep(duration, interval: interval);
    },
    'sleepAsync': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'sleepAsync');
      final duration = D4.getRequiredArg<int>(positional, 0, 'duration', 'sleepAsync');
      final interval = D4.getNamedArgWithDefault<$dcli_15.Interval>(named, 'interval', $dcli_15.Interval.seconds);
      return $dcli_15.sleepAsync(duration, interval: interval);
    },
    'tail': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'tail');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'tail');
      final lines = D4.getRequiredArg<int>(positional, 1, 'lines', 'tail');
      return $dcli_16.tail(path, lines);
    },
    'which': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'which');
      final appname = D4.getRequiredArg<String>(positional, 0, 'appname', 'which');
      final first = D4.getNamedArgWithDefault<bool>(named, 'first', true);
      final verbose = D4.getNamedArgWithDefault<bool>(named, 'verbose', false);
      final extensionSearch = D4.getNamedArgWithDefault<bool>(named, 'extensionSearch', true);
      final progress = D4.getOptionalNamedArg<Sink<String>?>(named, 'progress');
      return $dcli_17.which(appname, first: first, verbose: verbose, extensionSearch: extensionSearch, progress: progress);
    },
    'addUnitTestOverrides': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'addUnitTestOverrides');
      final pathToProject = D4.getRequiredArg<String>(positional, 0, 'pathToProject', 'addUnitTestOverrides');
      return $dcli_22.addUnitTestOverrides(pathToProject);
    },
    'capture': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'capture');
      if (positional.isEmpty) {
        throw ArgumentError('capture: Missing required argument "action" at position 0');
      }
      final actionRaw = positional[0];
      final action = () { return D4.extractBridgedArg<Future<dynamic>>(D4.callInterpreterCallback(visitor!, actionRaw, []), 'callback', visitor); };
      final progress = D4.getOptionalNamedArg<$dcli_19.Progress?>(named, 'progress');
      return $dcli_29.capture<dynamic>(action, progress: progress);
    },
    'showEditor': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'showEditor');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'showEditor');
      return $dcli_32.showEditor(path);
    },
    'withOpenFile': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 2, 'withOpenFile');
      final pathToFile = D4.getRequiredArg<String>(positional, 0, 'pathToFile', 'withOpenFile');
      if (positional.length <= 1) {
        throw ArgumentError('withOpenFile: Missing required argument "action" at position 1');
      }
      final actionRaw = positional[1];
      final action = ($dcli_35.FileSync p0) { return D4.castCallbackResult<dynamic>(D4.callInterpreterCallback(visitor!, actionRaw, [p0])); };
      final fileMode = D4.getNamedArgWithDefault<FileMode>(named, 'fileMode', FileMode.writeOnlyAppend);
      return $dcli_35.withOpenFile<dynamic>(pathToFile, action, fileMode: fileMode);
    },
    'createSymLink': (visitor, positional, named, typeArgs) {
      final targetPath = D4.getRequiredNamedArg<String>(named, 'targetPath', 'createSymLink');
      final linkPath = D4.getRequiredNamedArg<String>(named, 'linkPath', 'createSymLink');
      return $dcli_35.createSymLink(targetPath: targetPath, linkPath: linkPath);
    },
    'deleteSymlink': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'deleteSymlink');
      final linkPath = D4.getRequiredArg<String>(positional, 0, 'linkPath', 'deleteSymlink');
      return $dcli_35.deleteSymlink(linkPath);
    },
    'resolveSymLink': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'resolveSymLink');
      final pathToLink = D4.getRequiredArg<String>(positional, 0, 'pathToLink', 'resolveSymLink');
      return $dcli_35.resolveSymLink(pathToLink);
    },
    'stat': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'stat');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'stat');
      return $dcli_36.stat(path);
    },
    'fileLength': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'fileLength');
      final pathToFile = D4.getRequiredArg<String>(positional, 0, 'pathToFile', 'fileLength');
      return $dcli_36.fileLength(pathToFile);
    },
    'calculateHash': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'calculateHash');
      final path = D4.getRequiredArg<String>(positional, 0, 'path', 'calculateHash');
      return $dcli_36.calculateHash(path);
    },
    'printerr': (visitor, positional, named, typeArgs) {
      D4.requireMinArgs(positional, 1, 'printerr');
      final object = D4.getRequiredArg<Object?>(positional, 0, 'object', 'printerr');
      return $dcli_41.printerr(object);
    },
  };
}