ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 18.216.244.98 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/nicnwebsiteUpgrade/node_modules/hpack.js/lib/hpack/ |
Upload File : |
var hpack = require('../hpack'); var utils = hpack.utils; var decoder = hpack.decoder; var table = hpack.table; var assert = utils.assert; var inherits = require('inherits'); var Duplex = require('readable-stream').Duplex; function Decompressor(options) { Duplex.call(this, { readableObjectMode: true }); this._decoder = decoder.create(); this._table = table.create(options.table); } inherits(Decompressor, Duplex); module.exports = Decompressor; Decompressor.create = function create(options) { return new Decompressor(options); }; Decompressor.prototype._read = function _read() { // We only push! }; Decompressor.prototype._write = function _write(data, enc, cb) { this._decoder.push(data); cb(null); }; Decompressor.prototype.execute = function execute(cb) { while (!this._decoder.isEmpty()) { try { this._execute(); } catch (err) { if (cb) return done(err); else return this.emit('error', err); } } if (cb) done(null); function done(err) { process.nextTick(function() { cb(err); }); } }; Decompressor.prototype.updateTableSize = function updateTableSize(size) { this._table.updateSize(size); }; Decompressor.prototype._execute = function _execute() { var isIndexed = this._decoder.decodeBit(); if (isIndexed) return this._processIndexed(); var isIncremental = this._decoder.decodeBit(); var neverIndex = 0; if (!isIncremental) { var isUpdate = this._decoder.decodeBit(); if (isUpdate) return this._processUpdate(); neverIndex = this._decoder.decodeBit(); } this._processLiteral(isIncremental, neverIndex); }; Decompressor.prototype._processIndexed = function _processIndexed() { var index = this._decoder.decodeInt(); var lookup = this._table.lookup(index); this.push({ name: lookup.name, value: lookup.value, neverIndex: false }); }; Decompressor.prototype._processLiteral = function _processLiteral(inc, never) { var index = this._decoder.decodeInt(); var name; var nameSize; // Literal header-name too if (index === 0) { name = this._decoder.decodeStr(); nameSize = name.length; name = utils.stringify(name); } else { var lookup = this._table.lookup(index); nameSize = lookup.nameSize; name = lookup.name; } var value = this._decoder.decodeStr(); var valueSize = value.length; value = utils.stringify(value); if (inc) this._table.add(name, value, nameSize, valueSize); this.push({ name: name, value: value, neverIndex: never !== 0}); }; Decompressor.prototype._processUpdate = function _processUpdate() { var size = this._decoder.decodeInt(); this.updateTableSize(size); };