You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

pvutils

Package Overview
Dependencies
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.6 to 1.0.7

circle.yml

2

package.json

@@ -29,4 +29,4 @@ {

"name": "pvutils",
"version": "1.0.6",
"version": "1.0.7",
"license": "MIT"
}

@@ -341,5 +341,6 @@ //**************************************************************************************

* @param {boolean} skipPadding Skip BASE-64 padding or not
* @param {boolean} skipLeadingZeros Skip leading zeros in input data or not
* @returns {string}
*/
export function toBase64(input, useUrlTemplate = false, skipPadding = false)
export function toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false)
{

@@ -355,2 +356,18 @@ let i = 0;

if(skipLeadingZeros)
{
let nonZeroPosition = 0;
for(let i = 0; i < input.length; i++)
{
if(input.charCodeAt(i) !== 0)
{
nonZeroPosition = i;
break;
}
}
input = input.slice(nonZeroPosition);
}
while(i < input.length)

@@ -513,1 +530,113 @@ {

//**************************************************************************************
//region GeneratorDriver's related functions
//**************************************************************************************
const isGenerator = generator =>
{
if(typeof generator === "undefined")
return false;
return ((typeof generator.next === "function") && (typeof generator.throw === "function"));
};
//**************************************************************************************
const isGeneratorFunction = generator =>
{
if(typeof generator === "undefined")
return false;
const constructor = generator.constructor;
if(!constructor)
return false;
if((constructor.name === "GeneratorFunction") || (constructor.displayName === "GeneratorFunction"))
return true;
return isGenerator(generator);
};
//**************************************************************************************
/**
* Simple "generator's driver" inspired by "https://github.com/tj/co".
* @param {Generator|GeneratorFunction} generatorInstance
* @returns {Promise}
*/
export function generatorsDriver(generatorInstance)
{
//region Check that we do have instance of "Generator" as input
if(!isGenerator(generatorInstance))
{
if(isGeneratorFunction(generatorInstance))
generatorInstance = generatorInstance();
else
throw new Error("Only generator instance of generator function is a valid input");
}
//endregion
return new Promise((resolve, reject) =>
{
/**
* Driver function called on "reject" status in Promises
* @param {*} error
* @returns {*}
*/
const onReject = error =>
{
let result;
try
{
result = generatorInstance.throw(error);
}
catch(ex)
{
return reject(ex);
}
return callback(result);
};
/**
* Main driver function
* @param {*} [result]
* @returns {*}
*/
const callback = result =>
{
/**
* @type Object
* @property {boolean} done
* @property {*} value
*/
let generatorResult;
try
{
generatorResult = generatorInstance.next(result);
}
catch(ex)
{
return reject(ex);
}
switch(true)
{
case (generatorResult.value instanceof Promise):
return ((generatorResult.done) ? resolve(generatorResult.value) : generatorResult.value.then(callback, onReject));
case isGeneratorFunction(generatorResult.value):
case isGenerator(generatorResult.value):
return ((generatorResult.done) ? generatorsDriver(generatorResult.value).then(driverResult =>
{
resolve(driverResult);
}, onReject) : generatorsDriver(generatorResult.value).then(callback, onReject));
case (typeof generatorResult.value === "function"):
generatorResult.value = generatorResult.value();
default:
return (generatorResult.done) ? resolve(generatorResult.value) : callback(generatorResult.value);
}
};
callback();
});
}
//**************************************************************************************
//endregion
//**************************************************************************************
SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc