const crypto = require('crypto');
const zlib = require('zlib');
const { promisify } = require('util');
const crypto = require('crypto');
const zlib = require('zlib');
const { promisify } = require('util');
const allVersions = require('./version-parameters');
const { performance } = require('perf_hooks');
const { name: packageName, version: packageVersion } = require('../package.json');
const allVersions = require('./version-parameters');
const { performance } = require('perf_hooks');
const { name: packageName, version: packageVersion } = require('../package.json');
const deflateRawAsync = promisify(zlib.deflateRaw);
const inflateRawAsync = promisify(zlib.inflateRaw);
const scryptAsync = promisify(crypto.scrypt);
const deflateRawAsync = promisify(zlib.deflateRaw);
const inflateRawAsync = promisify(zlib.inflateRaw);
const scryptAsync = promisify(crypto.scrypt);
// Default to highest
this.bestVersion = Number(Object.keys(this.versionParameters).sort().pop());
if (Number.isNaN(this.bestVersion)) {
// Default to highest
this.bestVersion = Number(Object.keys(this.versionParameters).sort().pop());
if (Number.isNaN(this.bestVersion)) {
}
this.Flags = availableFlags;
this.defaultFlags = 'defaultFlags' in options ? options.defaultFlags : availableFlags.Flate;
if (this.defaultFlags < 0 || this.defaultFlags > 255) {
}
this.Flags = availableFlags;
this.defaultFlags = 'defaultFlags' in options ? options.defaultFlags : availableFlags.Flate;
if (this.defaultFlags < 0 || this.defaultFlags > 255) {
*/
async pack(contents, version = this.bestVersion, flags = this.defaultFlags) {
const { stats, timingsMs } = MysteryBox._newStats('pack');
if (!(version in this.versionParameters)) {
*/
async pack(contents, version = this.bestVersion, flags = this.defaultFlags) {
const { stats, timingsMs } = MysteryBox._newStats('pack');
if (!(version in this.versionParameters)) {
}
// eslint-disable-next-line security/detect-object-injection
const v = this.versionParameters[version];
}
// eslint-disable-next-line security/detect-object-injection
const v = this.versionParameters[version];
const { buffer: versionBuffer, versionBytes } = MysteryBox._versionEncode(v.version);
if (versionBytes !== v.versionBytes) {
const { buffer: versionBuffer, versionBytes } = MysteryBox._versionEncode(v.version);
if (versionBytes !== v.versionBytes) {
const { version, versionBytes } = MysteryBox._versionDecode(raw);
if (!(version in this.versionParameters)) {
const { version, versionBytes } = MysteryBox._versionDecode(raw);
if (!(version in this.versionParameters)) {
}
// eslint-disable-next-line security/detect-object-injection
const v = this.versionParameters[version];
if (v.versionBytes !== versionBytes) {
}
// eslint-disable-next-line security/detect-object-injection
const v = this.versionParameters[version];
if (v.versionBytes !== versionBytes) {
}
offset += v.versionBytes;
stats.version = version;
const minBytes = v.versionBytes + v.flagsBytes + v.ivBytes + v.saltBytes + v.tagBytes;
if (raw.length < minBytes) {
}
offset += v.versionBytes;
stats.version = version;
const minBytes = v.versionBytes + v.flagsBytes + v.ivBytes + v.saltBytes + v.tagBytes;
if (raw.length < minBytes) {
*/
static _timingsLog({ start, preCompress, postCompress, preCrypt, postCrypt, end }) {
return {
*/
static _timingsLog({ start, preCompress, postCompress, preCrypt, postCrypt, end }) {
return {