New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

lib

Package Overview
Dependencies
Maintainers
2
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lib - npm Package Compare versions

Comparing version 4.2.0 to 4.3.0

lib/request.js

24

lib/parse.js

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

function getType(v) {
if (v === undefined || v === null || typeof v === 'function') {
return 'any';
} else if (typeof v !== 'object') {
return typeof v;
} else {
return Array.isArray(v) ? 'array' : (Buffer.isBuffer(v) ? 'buffer' : 'object');
}
};
function formatBuffer(b) {
return Buffer.isBuffer(b) ? {_base64: b.toString('base64')} : b;
let type = getType(b);
if (type === 'object') {
return Object.keys(b).reduce(function (obj, key) {
obj[key] = formatBuffer(b[key]);
return obj;
}, {});
} else if (type === 'array') {
return b.map(elem => formatBuffer(elem));
} else {
return Buffer.isBuffer(b) ? {_base64: b.toString('base64')} : b;
}
}

@@ -4,0 +26,0 @@

97

lib/remote.js

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

const https = require('https');
const http = require('http');
const request = require('./request.js');
const HOST = 'api.stdlib.com';

@@ -11,22 +11,3 @@ const PORT = 443;

function parseBuffers (value, contentType) {
if (Buffer.isBuffer(value)) {
var buffer = value;
buffer.contentType = contentType || 'application/octet-stream';
return buffer;
} else if (Array.isArray(value)) {
return value.map(v => parseBuffers(v));
} else if (value && typeof value === 'object' && Object.keys(value).length === 1 && typeof value._base64 === 'string') {
var buffer = Buffer.from(value._base64, 'base64');
buffer.contentType = contentType || 'application/octet-stream';
return buffer;
} else if (value &&typeof value === 'object') {
return Object.keys(value).reduce((n, key) => {
n[key] = parseBuffers(value[key]);
return n;
}, {});
} else {
return value;
}
};
const MAX_REDIRECTS = 1;

@@ -87,69 +68,9 @@ module.exports = (cfg, names, params, callback) => {

cfg.token && (headers['Authorization'] = `Bearer ${cfg.token}`);
cfg.keys && (headers['X-Authorization-Keys'] = JSON.stringify(cfg.keys));
cfg.webhook && (headers['X-Webhook'] = cfg.webhook); // TODO: Deprecate
cfg.convert && (headers['X-Convert-Strings'] = 'true');
headers['X-Stdlib-Stack-Trace'] = process.env.__STDLIB_STACK_TRACE || '';
cfg.bg && (pathname += `:bg${typeof cfg.bg === 'string' ? '=' + encodeURIComponent(cfg.bg) : ''}`);
return request(cfg, 'POST', pathname, headers, body, names, MAX_REDIRECTS, (err, res, resHeaders) => {
if (err) {
return callback(err);
}
return callback(null, res, resHeaders);
})
let responded = false;
let req = (cfg.port === 443 ? https : http).request({
host: cfg.host,
method: 'POST',
headers: headers,
port: cfg.port,
path: `${cfg.path}${pathname}`,
agent: false
}, function (res) {
let buffers = [];
res.on('data', chunk => buffers.push(chunk));
res.on('end', () => {
var response = Buffer.concat(buffers);
var contentType = (res.headers['content-type'] || '').split(';')[0];
if (contentType === 'application/json') {
response = response.toString();
try {
response = JSON.parse(response);
} catch(e) {
response = null;
}
} else if (contentType === 'text/plain') {
response = response.toString();
}
response = parseBuffers(response, contentType);
responded = true;
if (((res.statusCode / 100) | 0) !== 2) {
let message = typeof response === 'object' ?
(response && response.error && response.error.message) || ('Unspecified error running remote Standard Library function "' + names.join('.') + '"') :
response;
let error = new Error(message);
if (response.error && response.error.hasOwnProperty('details')) {
error.details = response.error.details;
}
if (response.error && response.error.hasOwnProperty('type')) {
error.type = response.error.type;
}
if (response.error && response.error.hasOwnProperty('stack')) {
error.stack = response.error.stack;
}
return callback(error, response);
} else {
return callback(null, response, res.headers);
}
});
});
req.on('error', err => responded || callback(err));
req.write(body);
req.end();
};
{
"name": "lib",
"version": "4.2.0",
"version": "4.3.0",
"description": "StdLib: Standard Library for Microservices Node.js Bindings",

@@ -5,0 +5,0 @@ "main": "lib.js",

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