code: function makeStreamParser() {
    var chunkNb = 0;
    var isBinary = false;
  
    var faceOffset = 0;
    var previousRemainderData = void 0;
  
    var parser = function parser(chunk, enc, callback) {
      // console.log('chunk', chunk.length, chunkNb)
      if (chunkNb === 0) {
        isBinary = (0, _utils.isDataBinaryRobust)(chunk);
      }
  
      var workChunk = void 0;
      if (previousRemainderData) {
        workChunk = new Uint8Array(previousRemainderData.byteLength + chunk.byteLength);
        workChunk.set(new Uint8Array(previousRemainderData));
        workChunk.set(new Uint8Array(chunk), previousRemainderData.byteLength);
        workChunk = workChunk.buffer;
        //let data = ensureString(workChunk)
      } else {
        workChunk = chunk;
      }
  
      var _ref = isBinary ? computeBinaryOffset(workChunk, chunkNb) : computASCIIOffset(workChunk, chunkNb),
          remainingDataInChunk = _ref.remainingDataInChunk,
          startOffset = _ref.startOffset;
  
      var parsed = isBinary ? parseBinaryChunk(faceOffset, remainingDataInChunk, startOffset, workChunk) : parseASCIIChunk(workChunk);
      // console.log('faceOffset', faceOffset, 'facesInChunk', facesInChunk, 'remainderDataLength', remainderDataLength, 'current face ', face)
  
      // update size
      chunkNb += 1;
  
      previousRemainderData = parsed.remainderData;
      faceOffset = parsed.faceOffset;
  
      callback(null, parsed.data);
    };
  
    return parser;
  }
docs: /*
  this version of the parser tries to get rid of the dependency on node.js Buffer
  - works for binary files
  - for some reason fails with ASCII files, very likely due to how data is cut and reassembled