docs: function intermediatePaths(sparse) {
    const dense = {};
    [].concat(sparse).forEach(function forEachPath(path) {
      path = rtrimSlash(path);
      dense[path] = {}; // Store as keys to omit dupes
      const curParts = trimSlash(path).split('/');
      const gapParts = [];
      curParts.forEach(function forEachPart(part) {
        const parent = '/' + gapParts.join('/');
  
        gapParts.push(part); // Incrementally include all parts to collect gaps
        const intermediate = '/' + gapParts.join('/');
  
        if (!dense[intermediate]) { dense[intermediate] = {}; } // Collect gap
  
        if (!dense[parent]) { dense[parent] = {}; } // Store its relatinship
        if (parent === '/') {
          dense[parent][trimSlash(intermediate.slice(1))] = 1;
        } else {
          // Guard against '' child name from sparse path w/ trailing slash
          const childName = intermediate.replace(parent + '/', '');
          if (childName) {
            dense[parent][childName] = 1;
          }
        }
      });
    });
    Object.keys(dense).forEach(function forEachDensePath(name) {
      dense[name] = Object.keys(dense[name]);
    });
    return dense;
  }