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.callInterpreterCallback(visitor!, filterRaw, [p0])
                      as bool;
                })
                as bool Function(String);
        $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 Future.value(
                  D4.callInterpreterCallback(visitor!, actionRaw, [p0]),
                ).then((v) => v as dynamic);
              })
              as Future<dynamic> Function(String);
      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 Future.value(
                  D4.callInterpreterCallback(visitor!, callbackRaw, []),
                ).then((v) => v as dynamic);
              })
              as Future<dynamic> Function();
      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.callInterpreterCallback(visitor!, filterRaw, [p0])
                      as bool;
                })
                as bool Function(String);
        $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.callInterpreterCallback(visitor!, callbackRaw, [])
                    as String;
              })
              as String Function();
      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.callInterpreterCallback(
                        visitor!,
                        customPromptRaw,
                        [p0, p1, p2],
                      )
                      as String;
                })
                as String Function(String, String?, bool);
        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 Future.value(
                  D4.callInterpreterCallback(visitor!, actionRaw, []),
                ).then((v) => v as dynamic);
              })
              as Future<dynamic> Function();
      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.callInterpreterCallback(
                        visitor!,
                        customPromptRaw,
                        [p0, p1],
                      )
                      as String;
                })
                as String Function(String, bool?);
        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.callInterpreterCallback(visitor!, formatRaw, [p0])
                      as String;
                })
                as String Function(dynamic);
      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.callInterpreterCallback(
                        visitor!,
                        customPromptRaw,
                        [p0, p1],
                      )
                      as String;
                })
                as String Function(String, String?);
        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 Future.value(
                  D4.callInterpreterCallback(visitor!, actionRaw, []),
                ).then((v) => v as dynamic);
              })
              as Future<dynamic> Function();
      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);
    },
  };
}