{"_id":"ttyrec","_rev":"45-90f2329d33c72f6c04c82545c6c026db","name":"ttyrec","description":"Native javascript Ttyrec file encoder/decoder using streams","dist-tags":{"latest":"0.0.27"},"versions":{"0.0.2":{"name":"ttyrec","version":"0.0.2","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 . \n\n## Write recStream\n```\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n  process.stdout.pipe(ttyrecStream);\n  process.stdout.pipe(ttyrecStream);\n```\n\n## Read playStream\n```\n  var ttyrec = require('ttyrec');\n  var ttyplayStream = new ttyrec.playStream();\n  ttyrecStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n\n# Todo\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.2","dist":{"shasum":"54b05110c34af3ff130db543d09c023addb324d8","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.2.tgz","integrity":"sha512-OIqCjlytKFqW+i9kq/7cIytcNwhQtHU7ZOIWMK/L1YaBQ6Pv3Z80/bQ6BFf1HXqFPofEibzxFdUGXKK3IoDDnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlgEy++FhiAnAHzzqsgJcUwEk5676JggSNMdeCzvzNkwIgZo/nRPHit7InTBZaZEuhkIA+UC5toweLwmDuJkcPobs="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.3":{"name":"ttyrec","version":"0.0.3","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 . \n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('ps');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n\n  pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('ps');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.3","dist":{"shasum":"4c9849d8c1bae44de8b8d70b020611300435bfd8","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.3.tgz","integrity":"sha512-bb8NvrMrlZQFiILmU+yspt/eNawrQ4Hmhj5xl6iUexQV+F/wD71dasGdW5CTKMzcckq+dTxRLToenvQXYlHc3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCj9WcA9fQY6bjzCs/FhPT+h1IJkJNntLLLMNKsud7QogIhAMD8UQDOCOe8iIcz0RSJVvSskErzbL4CYsKttfJPkUL4"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.4":{"name":"ttyrec","version":"0.0.4","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('ps');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n\n  pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('ps');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.4","dist":{"shasum":"93a1e0ee2227439e9066d43d9e8276b74a9b741e","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.4.tgz","integrity":"sha512-/WqsL3WofIaSi3eh6Of7uL4Msn0Ya4ua8VLwMQGGqRql9rUOWvEfPXTvjcdDYE6Y8ibx7KV9tqIrQ7tnuoiWwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQhJP9xj/LAtXex6+j7LvCh16IuSxoQl/7Ik81rk8WigIgYO6HD6WRO8I5Gm/PoJlYYDkqqAtWqN7hRhFPRn29Krw="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.5":{"name":"ttyrec","version":"0.0.5","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('ps');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('ps');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.5","dist":{"shasum":"b5bccb0be4824a13db3976cb11d4d5bc6561cccf","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.5.tgz","integrity":"sha512-WAySaBrUBh/5vhwHwI44Dz+YxZu6OypHusJMZLdj7X4XgbcS7ttWp9UXcyd+b8bOIluxWEll2BEAIUHx3SOH2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGYupwHuOr79qG3zqOlee5NJUAkNCD5d95Vovg4uq26mAiA1LGOTPxtqpFy1X48OJNm0aDA831wjd8ouJJrUajdBHw=="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.6":{"name":"ttyrec","version":"0.0.6","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.6","dist":{"shasum":"4ce130b230766f97048989ee3665bdec05485bec","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.6.tgz","integrity":"sha512-+3vnvQaLdJRhSN4O1mFQ/z545vW+fBdQhZ4IBAwuse11aTaMmyZt3im0qiTaZnFRXJMyXZ0Q7dJ3LqY/4Cn1mQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb+6Di1yf47FjBP/x3zFtFWAcAVNhttqjPFGkI1Ml2YAIgCrrYySn1iPR2NjaTdM1JsfDNBiBSV/GRL/P/OE8z7r0="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.7":{"name":"ttyrec","version":"0.0.7","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.7","dist":{"shasum":"d47d924d42b5f7c2fd1e26bad602b815ec4fd2e4","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.7.tgz","integrity":"sha512-awp3TfoDhQzy/ym2oii6qgR8q9sy/mAdKDHzJj7fP8hmuacrtM5gOmH8Xpg3VQRDznHs7NpxEpVKZkztlIWHZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcFzvdpUjBXQcvehzf9EWIokda9Vsuioi+dV8sQY8/UAiEAoiWXgJWzysLvm8pMhWgbaD+wxCoADacuvT7QunRLVUI="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.8":{"name":"ttyrec","version":"0.0.8","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"_id":"ttyrec@0.0.8","dist":{"shasum":"c6922ceca19c233c0cdb0e02871ed9ea1471e609","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.8.tgz","integrity":"sha512-iMYsdNuGtxVZ60TMeHVzaYvpS44y13nx6T8c3qQAq2YCSYAkivCZlK+EjilHd4mTzsUFBg8FEJyo0JbvBTOobg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZV+57AAHbCw2yHiojxs61oMCMV1sq1VjeQVICNqPNzAiAmQwq5q9GuYYaxIHOmtYvi0TIRnNfETWPpsj+Ey9NeCw=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.9":{"name":"ttyrec","version":"0.0.9","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethask"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec/issues"},"homepage":"https://github.com/jedi4ever/ttyrec","_id":"ttyrec@0.0.9","dist":{"shasum":"1cd1c380a784c8e71b9b873403701c8b144633f8","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.9.tgz","integrity":"sha512-/2da8/1dNw74BGrJVa2SJWhNdKtVYp7/3pHE43irIQM1mCEsP7sqvmKb/Xdgsx6ELLjr6A57b7M4JmShYAcm5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbNrNeHE/hdzB2wQ8KSkbgI9w0ECvM2kdTZwgZ/Mw69wIhAO7gj+MVxXmXYLFMw77CkoSnWIOwLyhyuma8ykdGDHXc"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.10":{"name":"ttyrec","version":"0.0.10","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only decodes relative timestamps,need to handle non-relative timestamps\n- only handles buffered (non encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- handle correct timing\n- enable correct delay for first packet\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- add more tests\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.10","dist":{"shasum":"cea8764a8897f12889c5b51a5a698fba9d7f20b6","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.10.tgz","integrity":"sha512-1l3To5Gk46s0v6pkf7sYnFWopIuX9w3hNqbIQ5tqZZbrzCEclRvmfWtQFOkG9c0bdNbwdpaz9J3f0dGzAwM2YQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWvDt/YHfMzZChPJQvXpBPzJ6Lh215HIXB+2FwFJ3RLAIgN7BxzZXhbJ5V5WpNlIXiXtwFxxssYqJH3tr9L3heHPo="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.11":{"name":"ttyrec","version":"0.0.11","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-mocha-test":"~0.5.0","blanket":"~1.1.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","browserify":"~3.18.0"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.11","dist":{"shasum":"9078ac352cee543702ff9fdd92d5a1039dddd45a","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.11.tgz","integrity":"sha512-5beTe5BpSvgxmlnF1c2uHOeCA5fdY8sfNNaqSb2duE8Qv7LOmXejsNGpqw7pMJ44FDP/89R7N7zD2xLpEFa/zg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDR6rDXQ5+HXXO4nI5YW2FNEX2R6sHYv/edDNVjfLtWPAiEAp2CzJ+cwFNjLO3/7+FG+WfyiEjL9G0ajBe/gzxcMUb4="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.12":{"name":"ttyrec","version":"0.0.12","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n\n  // Play at half the speed\n  ttyplayStream.setSpeed(0.5);\n\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.12","dist":{"shasum":"e51ad46f4dee1373cc920b6006c49df8bd2d5043","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.12.tgz","integrity":"sha512-+WPaaOY8NqSRY7v1YAo8FXEzd73S9gepIvVHlRXf9VeqoP9ZA4igPR9whPjEWjgRCL+n/h+XwgPW7KknqDhEmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGTSVTdt8//BRxAUXnQRjHKnAGYa/nl/Rc/4vM5Pa5I/AiASSJvvr3IHBCwn2Ff9JW35nH6YE6tHY5RQl/VawNRPNA=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.13":{"name":"ttyrec","version":"0.0.13","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n\n  // Play at half the speed\n  ttyplayStream.setSpeed(0.5);\n\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.13","dist":{"shasum":"96f0355243d4a158a3b89273a1a43eda6cccdac7","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.13.tgz","integrity":"sha512-HXlZ3m3ZVwRkyyzkelE38y2bqFCJJiertJ8ZZAOCLdGvBetT/v6yYb8XIZ+6JxeRHvkPKshgUTF1dUldAzMQOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFDKWBq8XgoGMtsj0SIsYPC0PPmgtK7pTCmRdfaibw3wAiAfIrHypHqMqy5EQ7JpPBasmifyu3s+Pugj6GHxx1xVmA=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.14":{"name":"ttyrec","version":"0.0.14","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n\n  // Play at half the speed\n  ttyplayStream.setSpeed(0.5);\n\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.14","dist":{"shasum":"f1bebeddfc38e6bf1ed981a33c66941a5b425caf","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.14.tgz","integrity":"sha512-0pVXxwZe7/VUgjuV6fsRRnqS5oMlfXCVWdf46ZdiT+bKFwe0HgG5zRVHm0qL/goZ3gY65WJUHMixoBcExlmK9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG7KMm7B+3XVjNKFPZiX+pVTb1ihMyhKC19n3m3htn9yAiBm2iFleBOlSsbUGbyrrh1g7YGSQXO83z2fhSRxPU+jBA=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.15":{"name":"ttyrec","version":"0.0.15","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```\n  var fs = require('fs');\n  var pty = require('pty');\n\n  var ttyrec = require('ttyrec');\n  var ttyrecStream = new ttyrec.recStream();\n\n  var fileStream = fs.createWriteStream('ttyrecord');\n\n  var _pty = pty.spawn('/bin/bash');\n  process.stdin.pipe(_pty);\n\n  _pty.pipe(ttyrecStream);\n  ttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```\n  var fs = require('fs');\n\n  var ttyrec = require('ttyrec');\n  var fileStream = fs.createReadStream('ttyrecord');\n\n  var ttyplayStream = new ttyrec.playStream();\n\n  // Play at half the speed\n  ttyplayStream.setSpeed(0.5);\n\n  fileStream.pipe(ttyplayStream);\n  ttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```\n  var ttyrec = require('ttyrec');\n  var encoder = ttyrec.encoder;\n  var sec = 0;\n  var usec = 10;\n  var record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```\n  var ttyrec = require('ttyrec');\n  var decoder = ttyrec.decoder;\n  var results = decoder.decode(arecord);\n\n  // This returns an array of\n  // [0] = records\n  // [1] = rest of chunk not parsed\n  var records = result[0];\n  var record = records[0];\n  var rest = result[1];\n\n  var header = record.header;\n  console.log(header.sec, header.usec, header.length)\n  var packet = record.packet; // Buffer\n  console.log(packet.toString());\n\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.15","dist":{"shasum":"1b11257a96c87adc22fb09ecacc15d24ecf85f9d","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.15.tgz","integrity":"sha512-9sixgG21cWj/DOh2i1fvjoI3MZskke7H3YwC+QaD3AlHRze8Hk0UTyZHV82fUcaMh2TtU/oGZ4BKKmyhrTUe3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCby63KA6lqAjFN5URVp8qY6wR41P6B/lPOkWgkpbiREQIgFi2zloaJ+VjzoCGd32W1xg9zGjwhBXLy2nCNdSMAL50="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.16":{"name":"ttyrec","version":"0.0.16","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.16","dist":{"shasum":"10ac1defe7e4a6111c5c68172bfe6ac6e2d6693b","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.16.tgz","integrity":"sha512-UHjMQyxNpdxYQs/9jRj1794A5UnbhvwAN3FTtQqqvKBZ51pKxZtwxSyl8JYkHe+0JYEHktU2pY/Ae8OizqYdaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClNsyFC/W1SI0iSBQCyd7+Tk2U2QB2RZVT9DzdD3/yfgIgcwepqJbJWbDhYCL2pptLDFjuuqyzsnQGk+RGIZrVEHc="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.17":{"name":"ttyrec","version":"0.0.17","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- avoid too much recursion\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.17","dist":{"shasum":"dac91744e966edb1f0cf920aebbe0c5a37038645","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.17.tgz","integrity":"sha512-3wMgyeVUbAfTkDjXQDJdXTKmuT/jKLXtH/XMiL9K2mCRHEb9IrYl+8IoBK7nj2dGpsO+AzPiuGxk87n9T4jAYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfvmI09ADzHO0nWM5FTwYNLoVyClJoMUB4D7XiFLG6agIgKcY3np4R3SUyfrMJs7jM0eNwrFzYqxwjXs7eXPF2NGA="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.18":{"name":"ttyrec","version":"0.0.18","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.18","dist":{"shasum":"f276c88a7ab678dcf1a0646fbeedccbb6e6347e5","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.18.tgz","integrity":"sha512-1XfnrMKuvybNljK4C444Rj6w8QPzEiYHmX+OrrJ3gUM7z9B3brvEm3VipgGr316venWxBNyXE/l0hbCQKCAzhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMop9nZW8JtTmTVtmAZtykxIOpxDBtSnY2h5me1MgJEQIgagZPfWrJ2kUGWN5M1j96RBCFyy+JAOIk0xDrTspLaNQ="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.19":{"name":"ttyrec","version":"0.0.19","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.19","dist":{"shasum":"e0057e027abcf03d75e855c9796b570428695832","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.19.tgz","integrity":"sha512-I9YUCRCO5RywXJviNp34GFnwZHqAKl77lGqnaPhF3HiOoLW0WFR8F49rUQEpyTyUasVct8lC1YJQb1NCSQdM5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChbtp4/9SrJ/mj8o2ygHZ8q4XN4Kt/YCxdr3iDhxKC6QIgdMZmlKRMCZtRgR5/jZuPPSM2jZM1hXXTbCyMwnRx4hY="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.20":{"name":"ttyrec","version":"0.0.20","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n- ttytime\n\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.20","dist":{"shasum":"9607408c77aa26d662f42115482734302c2c031d","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.20.tgz","integrity":"sha512-lTwHVv3HJhaJBN5k6deYgGNYwtnTmnFN8a7s8dkm+ay3v07qVpxBqcObN9NCbhCJQOiIm6UZaR+b2pjahebtUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUltvtlqiFlNHIbBtE3u4Mlen5FhfQtwL9diyje3Tp4AiBp9A7RYNIsp2I9JDbX7MMke1YSBFfc59Ey/i2esgaw2w=="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.21":{"name":"ttyrec","version":"0.0.21","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.21","dist":{"shasum":"a0dc9469406befe03e5323c4af781443f38b0407","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.21.tgz","integrity":"sha512-MFyUoyC214mVD/zvnQw3CYdzJ2ESDQ2ODVBnWNxDppS0emC3cWuHmjUv6X0ahU88fq1Y7+AJ2lQI65FA5ykSxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0soEZ4mRiB8NDkAmjLx6kuN5kaLSUb7OOFyH0Wm8qPQIhAIuff16yYDdHEhHAHU1sfbPpghu2hObmlAYyy/1ANBoC"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.22":{"name":"ttyrec","version":"0.0.22","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides two simple executable `ttyrec` and `ttyplay` and `ttytime` commands.\n\nSee [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n\n# Installation\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.22","dist":{"shasum":"bda2613b0464330569ffd6cb1328365a3f9df257","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.22.tgz","integrity":"sha512-JDM79t78VkaetiHq5xBjkaoTkjESCUQwjfctde9qBz2doHannZfqAEu5eHwfELSl1w5ofwh3wb930nNRxkV8uQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFTEZ2pWs7ew27ue+pOiwJxHb/V/k00cucFq5mwg0/WAIgZSdUVBvJeVbKoHGDyltwk/SymFGtnhweqoSn2Jn4pOQ="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.23":{"name":"ttyrec","version":"0.0.23","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime","ttyrec++":"./bin/ttyrec++"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","ttyrec++","termrec","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1","jsesc":"~0.4.3"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides a few simple executable:\n\n- `ttyrec` : records ttyrec file from the current terminal\n- `ttyplay`: plays ttyrec files\n- `ttytime`: shows the number of seconds is in the ttyrecord file\n- `ttyrec++` : similar to ttyrec but generator a json file\n\n\n- See [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n- See [Ttyrec++](https://github.com/ewaters/ttyrec-plusplus)\n\n# Installation\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.23","dist":{"shasum":"7ce096199c64a965dc1418fc405b4f4cce884527","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.23.tgz","integrity":"sha512-YZtiLxodotVqS0yMLOkxPXINZU9eX3i9YZYuoestRCFP/CaVMI8WrFtmeKXU6lFWVS5qu1A64VM2cpsoA4At6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmCN1M8UR9okq0zJW7Pg/bD1i3yoFS/QQaKdq1kiO3zwIhAJt5K5GO4/nX+jdZ0iTP/TRMYOdJ+btOgNogO85YOKbq"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.24":{"name":"ttyrec","version":"0.0.24","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime","ttyrec++":"./bin/ttyrec++"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","ttyrec++","termrec","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1","jsesc":"~0.4.3"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.8"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides a few simple executable:\n\n- `ttyrec` : records ttyrec file from the current terminal\n- `ttyplay`: plays ttyrec files\n- `ttytime`: shows the number of seconds is in the ttyrecord file\n- `ttyrec++` : similar to ttyrec but generator a json file\n\n\n- See [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n- See [Ttyrec++](https://github.com/ewaters/ttyrec-plusplus)\n\n# Installation\n\n[![NPM](https://nodei.co/npm/ttyrec.png?downloads=true&stars=true)](https://nodei.co/npm/ttyrec/)\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works on v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.24","dist":{"shasum":"63c9e2cf8c79dc679fc6aab4429c5eb13e9ea43c","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.24.tgz","integrity":"sha512-QCl3+63wBbCX9GqmuM42Z1EWO0JqtQ12hnIW+cpVOnLLNHz0/bn1Ulx+CvNwSLtWhkejvxTngkQDPj9zPX8XfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+Ufm0fKNYKSg1DjVl6cfjfso/zEk1SS/CVyDzJcmzqwIgQskFCR8IzHAUUO/nWmRueQ5fWjH1+1h+9k3imEPGixk="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.25":{"name":"ttyrec","version":"0.0.25","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime","ttyrec++":"./bin/ttyrec++"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","ttyrec++","termrec","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1","jsesc":"~0.4.3"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.10"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides a few simple executable:\n\n- `ttyrec` : records ttyrec file from the current terminal\n- `ttyplay`: plays ttyrec files\n- `ttytime`: shows the number of seconds is in the ttyrecord file\n- `ttyrec++` : similar to ttyrec but generator a json file\n\n\n- See [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n- See [Ttyrec++](https://github.com/ewaters/ttyrec-plusplus)\n\n# Installation\n\n[![NPM](https://nodei.co/npm/ttyrec.png?downloads=true&stars=true)](https://nodei.co/npm/ttyrec/)\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works versions above  v0.10.x\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"homepage":"https://github.com/jedi4ever/ttyrec.js","_id":"ttyrec@0.0.25","dist":{"shasum":"1213078c7630aa51cdeb5e58ecd120bba064ccd0","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.25.tgz","integrity":"sha512-JAdnj/eRHk5J4f6EpuT0RMNydDBA5E0FEmUV/MJq6VdYjKLIVHAZvEROZt96dm/oJlp4+zIiP8mzWM81decEAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD76LMAm+MMZjZ+rlSvmc1/4j5bq+QDx7zjmq1XI4XRvwIgZuYHpd3+QWQusEsRXs8dWPeaEtbLZl0GXfKOE67l9L4="}]},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"directories":{}},"0.0.26":{"name":"ttyrec","version":"0.0.26","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime","ttyrec++":"./bin/ttyrec++"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","ttyrec++","termrec","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1","jsesc":"~0.4.3"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.10"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides a few simple executable:\n\n- `ttyrec` : records ttyrec file from the current terminal\n- `ttyplay`: plays ttyrec files\n- `ttytime`: shows the number of seconds is in the ttyrecord file\n- `ttyrec++` : similar to ttyrec but generator a json file\n\n\n- See [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n- See [Ttyrec++](https://github.com/ewaters/ttyrec-plusplus)\n\n# Installation\n\n[![NPM](https://nodei.co/npm/ttyrec.png?downloads=true&stars=true)](https://nodei.co/npm/ttyrec/)\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works versions v0.10.x (for v0.11 pty.js needs to be patched first)\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"homepage":"https://github.com/jedi4ever/ttyrec.js","_id":"ttyrec@0.0.26","dist":{"shasum":"3cb5646cd9ea4a4a31895cae87d74bc9c7e50e19","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.26.tgz","integrity":"sha512-MuY8+lsOtk4vpDRCmYWr5YIIW3Fjyh5luRTMgvs60kTn/iFpfAyT//Pwdy9HKb/+5WPOrNmqTIHGjTsjv03t1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvfwINuMAeHEU8V2jLsJOGmIyk404jXNEOjn3+N5SaGQIhAK5ZFNl1wt/o0Yxkqu2bawUYLYmOZ1kbQkfqpc/l2d9M"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}]},"0.0.27":{"name":"ttyrec","version":"0.0.27","private":false,"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"description":"Native javascript Ttyrec file encoder/decoder using streams","scripts":{"test":"grunt test"},"main":"./lib/ttyrec.js","bin":{"ttyrec":"./bin/ttyrec","ttyplay":"./bin/ttyplay","ttytime":"./bin/ttytime","ttyrec++":"./bin/ttyrec++"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"},"keywords":["terminal","ttyrec","ttyplay","vt100","term","ttyrec++","termrec","tty","nethack"],"dependencies":{"pty.js":"~0.2.3","async":"~0.2.9","minimist":"0.0.5","shell-quote":"~1.4.1","jsesc":"~0.4.3"},"devDependencies":{"mocha":"*","jshint":"*","jscoverage":"*","nodewatch":"*","assert":"*","expect.js":"*","should":"0.5.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.4","grunt-release":"~0.3.5","grunt-html":"~0.3.3","grunt-readme-generator":"~0.3.41","grunt-contrib-clean":"~0.5.0","grunt-jsdoc":"~0.4.0","grunt-gh-pages":"~0.7.1","grunt-mocha-test":"~0.8.1","grunt-browserify":"~1.3.0","blanket":"~1.1.6"},"license":"MIT","engine":{"node":">=0.10"},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides a few simple executable:\n\n- `ttyrec` : records ttyrec file from the current terminal\n- `ttyplay`: plays ttyrec files\n- `ttytime`: shows the number of seconds is in the ttyrecord file\n- `ttyrec++` : similar to ttyrec but generator a json file\n\n\n- See [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n- See [Ttyrec++](https://github.com/ewaters/ttyrec-plusplus)\n\n# Installation\n\n[![NPM](https://nodei.co/npm/ttyrec.png?downloads=true&stars=true)](https://nodei.co/npm/ttyrec/)\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works versions v0.10.x (for v0.11 pty.js needs to be patched first)\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jedi4ever/ttyrec.js/issues"},"_id":"ttyrec@0.0.27","dist":{"shasum":"64947ef0b23a3ce980e425f5998a01b9107de46c","tarball":"https://registry.npmjs.org/ttyrec/-/ttyrec-0.0.27.tgz","integrity":"sha512-zqHLpUvEGL5o6THJ71LztpdAjj42DwAVFdiBKWP4+hMWYD8kiGZWBXkqDTn3eXRm5eWWgO54IdjUbfLQq4a8jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG4WKkfKBTn6uEzJmXnzpE3YWRpnYChkI2zdeboP7qZIAiEAtF5sFC8xuMakzASez2LWju2zjYA9oj9MseJoU/aEP2Q="}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"},"maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}]}},"readme":"# Ttyrec.js\n\na native implementation for encoding and decoding ttyrec files.\n\n[![Build Status](https://travis-ci.org/jedi4ever/ttyrec.js.png)](https://travis-ci.org/jedi4ever/ttyrec.js)\n\n# Usage\nThis implements a duplex / `transform` stream v2 .  Therefore only node v0.10.x is supported.\n\nIt also provides a few simple executable:\n\n- `ttyrec` : records ttyrec file from the current terminal\n- `ttyplay`: plays ttyrec files\n- `ttytime`: shows the number of seconds is in the ttyrecord file\n- `ttyrec++` : similar to ttyrec but generator a json file\n\n\n- See [Ttyrec format specification](http://en.wikipedia.org/wiki/Ttyrec#Technical_file_format_specification)\n- See [Ttyrec++](https://github.com/ewaters/ttyrec-plusplus)\n\n# Installation\n\n[![NPM](https://nodei.co/npm/ttyrec.png?downloads=true&stars=true)](https://nodei.co/npm/ttyrec/)\n\n`npm install ttyrec`\n\n## Write recStream\n```js\nvar fs = require('fs');\nvar pty = require('pty');\n\nvar ttyrec = require('ttyrec');\nvar ttyrecStream = new ttyrec.recStream();\n\nvar fileStream = fs.createWriteStream('ttyrecord');\n\nvar _pty = pty.spawn('/bin/bash');\nprocess.stdin.pipe(_pty);\n\n_pty.pipe(ttyrecStream);\nttyrecStream.pipe(fileStream);\n```\n\n## Read playStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyplayStream = new ttyrec.playStream();\n\n// Play at half the speed\nttyplayStream.setSpeed(0.5);\n\nfileStream.pipe(ttyplayStream);\nttyplayStream.pipe(process.stdout);\n```\n\n## parseStream\n```js\nvar fs = require('fs');\n\nvar ttyrec = require('ttyrec');\nvar fileStream = fs.createReadStream('ttyrecord');\n\nvar ttyparseStream = new ttyrec.parseStream();\n\n// No waiting = speed 0\nttyparseStream.setSpeed(0);\n\nfileStream.pipe(ttyparseStream);\nttyparseStream.on('data', function(record) {\n  console.log(record.header);\n  console.log(record.packet);\n});\n```\n\n## Encode\n```js\nvar ttyrec = require('ttyrec');\nvar encoder = ttyrec.encoder;\nvar sec = 0;\nvar usec = 10;\nvar record = encoder.encode(sec, usec, new Buffer('abc');\n```\n\n## Decode (parseBuffer)\n```js\nvar ttyrec = require('ttyrec');\nvar decoder = ttyrec.decoder;\nvar results = decoder.decode(arecord);\n\n// This returns an array of\n// [0] = records\n// [1] = rest of chunk not parsed\nvar records = result[0];\nvar record = records[0];\nvar rest = result[1];\n\nvar header = record.header;\nconsole.log(header.sec, header.usec, header.length)\nvar packet = record.packet; // Buffer\nconsole.log(packet.toString());\n```\n\n# Limitations\n- only handles buffer streams(non-encoded streams)\n- only works versions v0.10.x (for v0.11 pty.js needs to be patched first)\n\n# Todo\n- enhance the executables to mimic arguments from real ttyrec and ttyplay (almost, need peek + help)\n- make v0.11 and v0.8 compatible\n- handle special resizing escape codes for ttyrec\n- browserify this code (almost, only process.hrtime does not exist in browser)\n- help page\n","maintainers":[{"name":"jedi4ever","email":"Patrick.Debois@jedi.be"}],"time":{"modified":"2022-06-27T23:05:23.304Z","created":"2014-01-02T16:24:01.547Z","0.0.2":"2014-01-02T16:24:01.547Z","0.0.3":"2014-01-02T16:30:32.131Z","0.0.4":"2014-01-02T16:36:51.416Z","0.0.5":"2014-01-02T16:37:59.034Z","0.0.6":"2014-01-02T16:42:28.174Z","0.0.7":"2014-01-02T16:44:53.172Z","0.0.8":"2014-01-03T20:42:57.674Z","0.0.9":"2014-01-04T08:22:24.465Z","0.0.10":"2014-01-04T11:07:13.976Z","0.0.11":"2014-01-04T12:22:21.794Z","0.0.12":"2014-01-05T15:05:43.717Z","0.0.13":"2014-01-05T15:37:48.946Z","0.0.14":"2014-01-05T15:57:02.653Z","0.0.15":"2014-01-05T17:45:21.453Z","0.0.16":"2014-01-06T11:03:15.885Z","0.0.17":"2014-01-06T11:29:58.596Z","0.0.18":"2014-01-06T14:20:10.136Z","0.0.19":"2014-01-06T14:52:23.387Z","0.0.20":"2014-01-06T15:07:45.443Z","0.0.21":"2014-01-06T15:12:07.876Z","0.0.22":"2014-01-06T15:33:29.994Z","0.0.23":"2014-01-06T18:01:38.894Z","0.0.24":"2014-01-06T19:29:27.668Z","0.0.25":"2014-01-07T11:38:29.360Z","0.0.26":"2014-01-07T12:36:35.773Z","0.0.27":"2014-01-07T12:38:32.446Z"},"author":{"name":"Patrick Debois","email":"patrick.debois@jedi.be"},"repository":{"type":"git","url":"https://github.com/jedi4ever/ttyrec.js.git"}}