text: 'use strict';
  
  const stream = require('stream');
  const Transform = stream.Transform;
  
  /**
   * Ensures that only <CR><LF> sequences are used for linebreaks
   *
   * @param {Object} options Stream options
   */
  class LeWindows extends Transform {
      constructor(options) {
          super(options);
          // init Transform
          this.options = options || {};
          this.lastByte = false;
      }
  
      /**
       * Escapes dots
       */
      _transform(chunk, encoding, done) {
          let buf;
          let lastPos = 0;
  
          for (let i = 0, len = chunk.length; i < len; i++) {
              if (chunk[i] === 0x0a) {
                  // \n
                  if ((i && chunk[i - 1] !== 0x0d) || (!i && this.lastByte !== 0x0d)) {
                      if (i > lastPos) {
                          buf = chunk.slice(lastPos, i);
                          this.push(buf);
                      }
                      this.push(new Buffer('\r\n'));
                      lastPos = i + 1;
                  }
              }
          }
  
          if (lastPos && lastPos < chunk.length) {
              buf = chunk.slice(lastPos);
              this.push(buf);
          } else if (!lastPos) {
              this.push(chunk);
          }
  
          this.lastByte = chunk[chunk.length - 1];
          done();
      }
  }
  
  module.exports = LeWindows;
  