docs: async function filterFilesList(rawStdOut, ignoreGitStatusResultPrefixes, EOLChar) {
      if (!(typeof rawStdOut === 'string')) {
          throw new TypeError("Value of argument \"rawStdOut\" violates contract.\n\nExpected:\nstring\n\nGot:\n" + _inspect(rawStdOut));
      }
  
      if (!Array.isArray(ignoreGitStatusResultPrefixes)) {
          throw new TypeError("Value of argument \"ignoreGitStatusResultPrefixes\" violates contract.\n\nExpected:\nArray\n\nGot:\n" + _inspect(ignoreGitStatusResultPrefixes));
      }
  
      if (!(typeof EOLChar === 'string')) {
          throw new TypeError("Value of argument \"EOLChar\" violates contract.\n\nExpected:\nstring\n\nGot:\n" + _inspect(EOLChar));
      }
  
      let err;
      let committedFilenames = new Set();
  
      try {
          const committedFilesArray = rawStdOut.trim().split(EOLChar);
  
          committedFilesArray.forEach(f => {
              const filenameArray = f.trim().split(" ");
  
              // Get the filename which is the final element of the array
              const filename = filenameArray.pop();
  
              // Get the list of git operations (Add, Modify, Delete etc.) which is the final character from 0th element in the array
              const lastOperation = filenameArray[0].split("").pop();
  
              if (ignoreGitStatusResultPrefixes.includes(lastOperation) === false) {
                  committedFilenames.add(filename);
              }
          });
      } catch (e) {
          err = e;
      }
  
      const p = new Promise((resolve, reject) => {
          if (err) {
              reject(err);
          } else {
              resolve(committedFilenames);
          }
      });
  
      return p;
  }