Server IP : 162.213.251.212 / Your IP : 18.116.27.43 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/home/allssztx/public_html/easybuyer/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); };