Socket
Socket
Sign inDemoInstall

hoek

Package Overview
Dependencies
Maintainers
3
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hoek - npm Package Compare versions

Comparing version 2.16.3 to 3.0.0

26

lib/escape.js

@@ -0,4 +1,6 @@

'use strict';
// Declare internals
var internals = {};
const internals = {};

@@ -12,7 +14,7 @@

var escaped = '';
let escaped = '';
for (var i = 0, il = input.length; i < il; ++i) {
for (let i = 0; i < input.length; ++i) {
var charCode = input.charCodeAt(i);
const charCode = input.charCodeAt(i);

@@ -37,7 +39,7 @@ if (internals.isSafe(charCode)) {

var escaped = '';
let escaped = '';
for (var i = 0, il = input.length; i < il; ++i) {
for (let i = 0; i < input.length; ++i) {
var charCode = input.charCodeAt(i);
const charCode = input.charCodeAt(i);

@@ -62,3 +64,3 @@ if (internals.isSafe(charCode)) {

var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');
const hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');
return '\\x' + internals.padLeft(hexValue, 2);

@@ -70,3 +72,3 @@ };

var namedEscape = internals.namedHtml[charCode];
const namedEscape = internals.namedHtml[charCode];
if (typeof namedEscape !== 'undefined') {

@@ -80,3 +82,3 @@ return namedEscape;

var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');
const hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');
return '&#x' + internals.padLeft(hexValue, 2) + ';';

@@ -118,5 +120,5 @@ };

var safe = {};
const safe = {};
for (var i = 32; i < 123; ++i) {
for (let i = 32; i < 123; ++i) {

@@ -123,0 +125,0 @@ if ((i >= 97) || // a-z

@@ -0,7 +1,9 @@

'use strict';
// Load modules
var Crypto = require('crypto');
var Path = require('path');
var Util = require('util');
var Escape = require('./escape');
const Crypto = require('crypto');
const Path = require('path');
const Util = require('util');
const Escape = require('./escape');

@@ -11,3 +13,3 @@

var internals = {};
const internals = {};

@@ -27,3 +29,3 @@

var lookup = seen.orig.indexOf(obj);
const lookup = seen.orig.indexOf(obj);
if (lookup !== -1) {

@@ -33,4 +35,4 @@ return seen.copy[lookup];

var newObj;
var cloneDeep = false;
let newObj;
let cloneDeep = false;

@@ -48,3 +50,3 @@ if (!Array.isArray(obj)) {

else {
var proto = Object.getPrototypeOf(obj);
const proto = Object.getPrototypeOf(obj);
if (proto &&

@@ -70,6 +72,6 @@ proto.isImmutable) {

if (cloneDeep) {
var keys = Object.getOwnPropertyNames(obj);
for (var i = 0, il = keys.length; i < il; ++i) {
var key = keys[i];
var descriptor = Object.getOwnPropertyDescriptor(obj, key);
const keys = Object.getOwnPropertyNames(obj);
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
const descriptor = Object.getOwnPropertyDescriptor(obj, key);
if (descriptor &&

@@ -92,5 +94,7 @@ (descriptor.get ||

// Merge all the properties of source into target, source wins in conflict, and by default null and undefined from source are applied
/*eslint-disable */
exports.merge = function (target, source, isNullOverride /* = true */, isMergeArrays /* = true */) {
/*eslint-enable */
exports.assert(target && typeof target === 'object', 'Invalid target value: must be an object');

@@ -109,3 +113,3 @@ exports.assert(source === null || source === undefined || typeof source === 'object', 'Invalid source value: must be null, undefined, or an object');

for (var i = 0, il = source.length; i < il; ++i) {
for (let i = 0; i < source.length; ++i) {
target.push(exports.clone(source[i]));

@@ -117,6 +121,6 @@ }

var keys = Object.keys(source);
for (var k = 0, kl = keys.length; k < kl; ++k) {
var key = keys[k];
var value = source[key];
const keys = Object.keys(source);
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
const value = source[key];
if (value &&

@@ -165,3 +169,3 @@ typeof value === 'object') {

var copy = exports.clone(defaults);
const copy = exports.clone(defaults);

@@ -186,4 +190,4 @@ if (options === true) { // If options is set to true, use defaults

var storage = internals.store(source, keys); // Move shallow copy items to storage
var copy = exports.clone(source); // Deep copy the rest
const storage = internals.store(source, keys); // Move shallow copy items to storage
const copy = exports.clone(source); // Deep copy the rest
internals.restore(copy, source, storage); // Shallow copy the stored items and restore

@@ -196,6 +200,6 @@ return copy;

var storage = {};
for (var i = 0, il = keys.length; i < il; ++i) {
var key = keys[i];
var value = exports.reach(source, key);
const storage = {};
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
const value = exports.reach(source, key);
if (value !== undefined) {

@@ -213,5 +217,5 @@ storage[key] = value;

var keys = Object.keys(storage);
for (var i = 0, il = keys.length; i < il; ++i) {
var key = keys[i];
const keys = Object.keys(storage);
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
internals.reachSet(copy, key, storage[key]);

@@ -225,7 +229,7 @@ internals.reachSet(source, key, storage[key]);

var path = key.split('.');
var ref = obj;
for (var i = 0, il = path.length; i < il; ++i) {
var segment = path[i];
if (i + 1 === il) {
const path = key.split('.');
let ref = obj;
for (let i = 0; i < path.length; ++i) {
const segment = path[i];
if (i + 1 === path.length) {
ref[segment] = value;

@@ -251,3 +255,3 @@ }

var copy = exports.cloneWithShallow(defaults, keys);
const copy = exports.cloneWithShallow(defaults, keys);

@@ -258,3 +262,3 @@ if (options === true) { // If options is set to true, use defaults

var storage = internals.store(options, keys); // Move shallow copy items to storage
const storage = internals.store(options, keys); // Move shallow copy items to storage
exports.merge(copy, options, false, false); // Deep copy the rest

@@ -272,3 +276,3 @@ internals.restore(copy, options, storage); // Shallow copy the stored items and restore

var type = typeof obj;
const type = typeof obj;

@@ -306,7 +310,7 @@ if (type !== typeof ref) {

for (var i = 0, il = obj.length; i < il; ++i) {
for (let i = 0; i < obj.length; ++i) {
if (options.part) {
var found = false;
for (var r = 0, rl = ref.length; r < rl; ++r) {
if (exports.deepEqual(obj[i], ref[r], options, seen)) {
let found = false;
for (let j = 0; j < ref.length; ++j) {
if (exports.deepEqual(obj[i], ref[j], options, seen)) {
found = true;

@@ -337,4 +341,4 @@ break;

for (var j = 0, jl = obj.length; j < jl; ++j) {
if (obj[j] !== ref[j]) {
for (let i = 0; i < obj.length; ++i) {
if (obj[i] !== ref[i]) {
return false;

@@ -361,3 +365,3 @@ }

var keys = Object.getOwnPropertyNames(obj);
const keys = Object.getOwnPropertyNames(obj);

@@ -368,5 +372,5 @@ if (!options.part && keys.length !== Object.getOwnPropertyNames(ref).length) {

for (var k = 0, kl = keys.length; k < kl; ++k) {
var key = keys[k];
var descriptor = Object.getOwnPropertyDescriptor(obj, key);
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
const descriptor = Object.getOwnPropertyDescriptor(obj, key);
if (descriptor.get) {

@@ -390,7 +394,7 @@ if (!exports.deepEqual(descriptor, Object.getOwnPropertyDescriptor(ref, key), options, seen)) {

var index = {};
var result = [];
const index = {};
const result = [];
for (var i = 0, il = array.length; i < il; ++i) {
var id = (key ? array[i][key] : array[i]);
for (let i = 0; i < array.length; ++i) {
const id = (key ? array[i][key] : array[i]);
if (index[id] !== true) {

@@ -415,4 +419,4 @@

var obj = {};
for (var i = 0, il = array.length; i < il; ++i) {
const obj = {};
for (let i = 0; i < array.length; ++i) {
if (key) {

@@ -440,6 +444,6 @@ if (array[i][key]) {

var common = [];
var hash = (Array.isArray(array1) ? exports.mapToObject(array1) : array1);
var found = {};
for (var i = 0, il = array2.length; i < il; ++i) {
const common = [];
const hash = (Array.isArray(array1) ? exports.mapToObject(array1) : array1);
const found = {};
for (let i = 0; i < array2.length; ++i) {
if (hash[array2[i]] && !found[array2[i]]) {

@@ -470,3 +474,3 @@ if (justFirst) {

var valuePairs = null;
let valuePairs = null;
if (typeof ref === 'object' &&

@@ -490,7 +494,8 @@ typeof values === 'object' &&

var compare, compareFlags;
let compare;
let compareFlags;
if (options.deep) {
compare = exports.deepEqual;
var hasOnly = options.hasOwnProperty('only'), hasPart = options.hasOwnProperty('part');
const hasOnly = options.hasOwnProperty('only'), hasPart = options.hasOwnProperty('part');

@@ -503,11 +508,8 @@ compareFlags = {

else {
compare = function (a, b) {
return a === b;
};
compare = (a, b) => a === b;
}
var misses = false;
var matches = new Array(values.length);
for (var i = 0, il = matches.length; i < il; ++i) {
let misses = false;
const matches = new Array(values.length);
for (let i = 0; i < matches.length; ++i) {
matches[i] = 0;

@@ -517,5 +519,5 @@ }

if (typeof ref === 'string') {
var pattern = '(';
for (i = 0, il = values.length; i < il; ++i) {
var value = values[i];
let pattern = '(';
for (let i = 0; i < values.length; ++i) {
const value = values[i];
exports.assert(typeof value === 'string', 'Cannot compare string reference to non-string value');

@@ -525,6 +527,6 @@ pattern += (i ? '|' : '') + exports.escapeRegex(value);

var regex = new RegExp(pattern + ')', 'g');
var leftovers = ref.replace(regex, function ($0, $1) {
const regex = new RegExp(pattern + ')', 'g');
const leftovers = ref.replace(regex, ($0, $1) => {
var index = values.indexOf($1);
const index = values.indexOf($1);
++matches[index];

@@ -537,4 +539,5 @@ return ''; // Remove from string

else if (Array.isArray(ref)) {
for (i = 0, il = ref.length; i < il; ++i) {
for (var j = 0, jl = values.length, matched = false; j < jl && matched === false; ++j) {
for (let i = 0; i < ref.length; ++i) {
let matched = false;
for (let j = 0; j < values.length && matched === false; ++j) {
matched = compare(values[j], ref[i], compareFlags) && j;

@@ -552,6 +555,6 @@ }

else {
var keys = Object.keys(ref);
for (i = 0, il = keys.length; i < il; ++i) {
var key = keys[i];
var pos = values.indexOf(key);
const keys = Object.keys(ref);
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
const pos = values.indexOf(key);
if (pos !== -1) {

@@ -572,4 +575,4 @@ if (valuePairs &&

var result = false;
for (i = 0, il = matches.length; i < il; ++i) {
let result = false;
for (let i = 0; i < matches.length; ++i) {
result = result || !!matches[i];

@@ -597,5 +600,5 @@ if ((options.once && matches[i] > 1) ||

var result = target || [];
const result = target || [];
for (var i = 0, il = array.length; i < il; ++i) {
for (let i = 0; i < array.length; ++i) {
if (Array.isArray(array[i])) {

@@ -629,6 +632,6 @@ exports.flatten(array[i], result);

var path = chain.split(options.separator || '.');
var ref = obj;
for (var i = 0, il = path.length; i < il; ++i) {
var key = path[i];
const path = chain.split(options.separator || '.');
let ref = obj;
for (let i = 0; i < path.length; ++i) {
let key = path[i];
if (key[0] === '-' && Array.isArray(ref)) {

@@ -643,3 +646,3 @@ key = key.slice(1, key.length);

exports.assert(!options.strict || i + 1 === il, 'Missing segment', key, 'in reach path ', chain);
exports.assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);
exports.assert(typeof ref === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);

@@ -659,5 +662,5 @@ ref = options.default;

return template.replace(/{([^}]+)}/g, function ($0, chain) {
return template.replace(/{([^}]+)}/g, ($0, chain) => {
var value = exports.reach(obj, chain, options);
const value = exports.reach(obj, chain, options);
return (value === undefined || value === null ? '' : value);

@@ -670,5 +673,5 @@ });

var trace = [];
for (var i = 0, il = stack.length; i < il; ++i) {
var item = stack[i];
const trace = [];
for (let i = 0; i < stack.length; ++i) {
const item = stack[i];
trace.push([item.getFileName(), item.getLineNumber(), item.getColumnNumber(), item.getFunctionName(), item.isConstructor()]);

@@ -683,6 +686,6 @@ }

var display = [];
const display = [];
for (var i = 0, il = trace.length; i < il; ++i) {
var row = trace[i];
for (let i = 0; i < trace.length; ++i) {
const row = trace[i];
display.push((row[4] ? 'new ' : '') + row[3] + ' (' + row[0] + ':' + row[1] + ':' + row[2] + ')');

@@ -699,3 +702,3 @@ }

var v8 = Error.prepareStackTrace;
const v8 = Error.prepareStackTrace;
Error.prepareStackTrace = function (err, stack) {

@@ -706,15 +709,11 @@

var capture = {};
Error.captureStackTrace(capture, arguments.callee); /*eslint no-caller:0 */
var stack = capture.stack;
const capture = {};
Error.captureStackTrace(capture, this); // arguments.callee is not supported in strict mode so we use this and slice the trace of this off the result
const stack = capture.stack;
Error.prepareStackTrace = v8;
var trace = exports.formatStack(stack);
const trace = exports.formatStack(stack);
if (slice) {
return trace.slice(slice);
}
return trace;
return trace.slice(1 + slice);
};

@@ -725,3 +724,3 @@

var trace = exports.callStack(slice === undefined ? 1 : slice + 1);
const trace = exports.callStack(slice === undefined ? 1 : slice + 1);

@@ -741,3 +740,3 @@ return exports.formatTrace(trace);

var stack = '';
let stack = '';
if (!hideStack) {

@@ -761,4 +760,4 @@ stack = exports.displayStack(1).join('\n\t');

var msgs = [];
for (var i = 1, il = arguments.length; i < il; ++i) {
let msgs = [];
for (let i = 1; i < arguments.length; ++i) {
if (arguments[i] !== '') {

@@ -817,3 +816,3 @@ msgs.push(arguments[i]); // Avoids Array.slice arguments leak, allowing for V8 optimizations

var ts = process.hrtime();
const ts = process.hrtime();
return (ts[0] * 1e3) + (ts[1] / 1e6);

@@ -836,3 +835,3 @@ };

var buf = (Buffer.isBuffer(value) ? value : new Buffer(value, encoding || 'binary'));
const buf = (Buffer.isBuffer(value) ? value : new Buffer(value, encoding || 'binary'));
return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '');

@@ -853,3 +852,3 @@ };

try {
var buf = new Buffer(value, 'base64');
const buf = new Buffer(value, 'base64');
return (encoding === 'buffer' ? buf : buf.toString(encoding || 'binary'));

@@ -891,4 +890,4 @@ }

var args = arguments;
process.nextTick(function () {
const args = arguments;
process.nextTick(() => {

@@ -907,4 +906,4 @@ callback.apply(null, args);

var once = false;
var wrapped = function () {
let once = false;
const wrapped = function () {

@@ -969,4 +968,4 @@ if (!once) {

if (Array.isArray(source)) {
var results = [];
for (var i = 0, il = source.length; i < il; ++i) {
const results = [];
for (let i = 0; i < source.length; ++i) {
results.push(exports.transform(source[i], transform, options));

@@ -977,14 +976,14 @@ }

var result = {};
var keys = Object.keys(transform);
const result = {};
const keys = Object.keys(transform);
for (var k = 0, kl = keys.length; k < kl; ++k) {
var key = keys[k];
var path = key.split('.');
var sourcePath = transform[key];
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
const path = key.split('.');
const sourcePath = transform[key];
exports.assert(typeof sourcePath === 'string', 'All mappings must be "." delineated strings');
var segment;
var res = result;
let segment;
let res = result;

@@ -1016,3 +1015,3 @@ while (path.length > 1) {

path = Path.resolve(path);
var name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;
const name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;
return Path.join(path, name);

@@ -1035,6 +1034,6 @@ };

var target = {};
var keys = Object.keys(source);
for (var i = 0, il = keys.length; i < il; ++i) {
var key = keys[i];
const target = {};
const keys = Object.keys(source);
for (let i = 0; i < keys.length; ++i) {
const key = keys[i];
target[key] = source[key];

@@ -1041,0 +1040,0 @@ }

{
"name": "hoek",
"description": "General purpose node utilities",
"version": "2.16.3",
"version": "3.0.0",
"repository": "git://github.com/hapijs/hoek",

@@ -11,8 +11,8 @@ "main": "lib/index.js",

"engines": {
"node": ">=0.10.40"
"node": ">=4.0.0"
},
"dependencies": {},
"devDependencies": {
"code": "1.x.x",
"lab": "5.x.x"
"code": "2.x.x",
"lab": "7.x.x"
},

@@ -19,0 +19,0 @@ "scripts": {

@@ -0,6 +1,8 @@

'use strict';
// Load modules
var Code = require('code');
var Hoek = require('../lib');
var Lab = require('lab');
const Code = require('code');
const Hoek = require('../lib');
const Lab = require('lab');

@@ -10,3 +12,3 @@

var internals = {};
const internals = {};

@@ -16,13 +18,13 @@

var lab = exports.lab = Lab.script();
var describe = lab.experiment;
var it = lab.test;
var expect = Code.expect;
const lab = exports.lab = Lab.script();
const describe = lab.experiment;
const it = lab.test;
const expect = Code.expect;
describe('escapeJavaScript()', function () {
describe('escapeJavaScript()', () => {
it('encodes / characters', function (done) {
it('encodes / characters', (done) => {
var encoded = Hoek.escapeJavaScript('<script>alert(1)</script>');
const encoded = Hoek.escapeJavaScript('<script>alert(1)</script>');
expect(encoded).to.equal('\\x3cscript\\x3ealert\\x281\\x29\\x3c\\x2fscript\\x3e');

@@ -32,5 +34,5 @@ done();

it('encodes \' characters', function (done) {
it('encodes \' characters', (done) => {
var encoded = Hoek.escapeJavaScript('something(\'param\')');
const encoded = Hoek.escapeJavaScript('something(\'param\')');
expect(encoded).to.equal('something\\x28\\x27param\\x27\\x29');

@@ -40,5 +42,5 @@ done();

it('encodes large unicode characters with the correct padding', function (done) {
it('encodes large unicode characters with the correct padding', (done) => {
var encoded = Hoek.escapeJavaScript(String.fromCharCode(500) + String.fromCharCode(1000));
const encoded = Hoek.escapeJavaScript(String.fromCharCode(500) + String.fromCharCode(1000));
expect(encoded).to.equal('\\u0500\\u1000');

@@ -48,5 +50,5 @@ done();

it('doesn\'t throw an exception when passed null', function (done) {
it('doesn\'t throw an exception when passed null', (done) => {
var encoded = Hoek.escapeJavaScript(null);
const encoded = Hoek.escapeJavaScript(null);
expect(encoded).to.equal('');

@@ -57,7 +59,7 @@ done();

describe('escapeHtml()', function () {
describe('escapeHtml()', () => {
it('encodes / characters', function (done) {
it('encodes / characters', (done) => {
var encoded = Hoek.escapeHtml('<script>alert(1)</script>');
const encoded = Hoek.escapeHtml('<script>alert(1)</script>');
expect(encoded).to.equal('&lt;script&gt;alert&#x28;1&#x29;&lt;&#x2f;script&gt;');

@@ -67,5 +69,5 @@ done();

it('encodes < and > as named characters', function (done) {
it('encodes < and > as named characters', (done) => {
var encoded = Hoek.escapeHtml('<script><>');
const encoded = Hoek.escapeHtml('<script><>');
expect(encoded).to.equal('&lt;script&gt;&lt;&gt;');

@@ -75,5 +77,5 @@ done();

it('encodes large unicode characters', function (done) {
it('encodes large unicode characters', (done) => {
var encoded = Hoek.escapeHtml(String.fromCharCode(500) + String.fromCharCode(1000));
const encoded = Hoek.escapeHtml(String.fromCharCode(500) + String.fromCharCode(1000));
expect(encoded).to.equal('&#500;&#1000;');

@@ -83,5 +85,5 @@ done();

it('doesn\'t throw an exception when passed null', function (done) {
it('doesn\'t throw an exception when passed null', (done) => {
var encoded = Hoek.escapeHtml(null);
const encoded = Hoek.escapeHtml(null);
expect(encoded).to.equal('');

@@ -91,5 +93,5 @@ done();

it('encodes {} characters', function (done) {
it('encodes {} characters', (done) => {
var encoded = Hoek.escapeHtml('{}');
const encoded = Hoek.escapeHtml('{}');
expect(encoded).to.equal('&#x7b;&#x7d;');

@@ -96,0 +98,0 @@ done();

@@ -0,1 +1,3 @@

'use strict';
exports.x = 1;

@@ -0,1 +1,3 @@

'use strict';
exports.y = 2;

@@ -0,1 +1,3 @@

'use strict';
exports.z = 3;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc