Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'use strict';
// apt-get install libcurl4-openssl-dev
// IF YOU USE 32-BIT NODEJS:
// patch /usr/include/curl/curlbuild.h
// #define CURL_SIZEOF_LONG 4
// #define CURL_SIZEOF_CURL_OFF_T 4
var Curl = require('node-libcurl').Curl;
var curl = new Curl();
curl.setOpt('URL', 'www.yandex.ru');
curl.setOpt('FOLLOWLOCATION', true);
curl.on('end', function (status) {
if (status === 200) {
console.log('ok');
}
this.close(); // eslint-disable-line no-invalid-this
});
curl.perform();
this.setProxy = (host, proxyType) => {
this.curl.setOpt(Curl.option.PROXY, host);
// SOCKS5 default
if (typeof proxyType === 'undefined') {
this.curl.setOpt(Curl.option.PROXYTYPE, Curl.proxy.SOCKS5_HOSTNAME);
} else {
this.curl.setOpt(Curl.option.PROXYTYPE, proxyType);
}
return this;
};
this.setProxy = (host, proxyType) => {
this.curl.setOpt(Curl.option.PROXY, host);
// SOCKS5 default
if (typeof proxyType === 'undefined') {
this.curl.setOpt(Curl.option.PROXYTYPE, Curl.proxy.SOCKS5_HOSTNAME);
} else {
this.curl.setOpt(Curl.option.PROXYTYPE, proxyType);
}
return this;
};
module.exports = function () {
this['default'] = {
torControlHost: 'localhost',
torControlPort: 9051,
autoParse: true, // content-type detect -> json
verbose: false,
useProxy: false,
proxy: 'localhost:9050',
proxyType: Curl.proxy.SOCKS5_HOSTNAME
};
this.libcurl = Curl;
this.curl = new Curl();
this.newTorIdentity = () => {
let client = new Net.Socket();
client.connect(this['default'].torControlPort, this['default'].torControlHost, () => {
client.write('authenticate\nsignal newnym\nquit');
});
};
this._setUrl = (url) => {
this.curl.setOpt(Curl.option.URL, url);
return this;
{
name: 'operations',
contents: JSON.stringify(postData.operations),
},
{
name: 'map',
contents:
'{' +
Object.entries(postData.map)
.map(([i, path]) => `"${i}":["${path}"]`)
.join(',') +
'}',
},
...postData.filePaths,
];
curl.setOpt(Curl.option.URL, this.apiUrl);
curl.setOpt(Curl.option.VERBOSE, false);
curl.setOpt(Curl.option.TIMEOUT_MS, 30000);
curl.setOpt(Curl.option.HTTPPOST, processedPostData);
curl.setOpt(Curl.option.HTTPHEADER, [
`Authorization: Bearer ${this.authToken}`,
`${this.vendureConfig.channelTokenKey}: ${this.channelToken}`,
]);
curl.perform();
curl.on('end', (statusCode: any, body: any) => {
curl.close();
const response = JSON.parse(body);
if (response.errors && response.errors.length) {
const error = response.errors[0];
console.log(JSON.stringify(error.extensions, null, 2));
throw new Error(error.message);
}
{
name: 'map',
contents:
'{' +
Object.entries(postData.map)
.map(([i, path]) => `"${i}":["${path}"]`)
.join(',') +
'}',
},
...postData.filePaths,
];
curl.setOpt(Curl.option.URL, this.apiUrl);
curl.setOpt(Curl.option.VERBOSE, false);
curl.setOpt(Curl.option.TIMEOUT_MS, 30000);
curl.setOpt(Curl.option.HTTPPOST, processedPostData);
curl.setOpt(Curl.option.HTTPHEADER, [
`Authorization: Bearer ${this.authToken}`,
`${this.vendureConfig.channelTokenKey}: ${this.channelToken}`,
]);
curl.perform();
curl.on('end', (statusCode: any, body: any) => {
curl.close();
const response = JSON.parse(body);
if (response.errors && response.errors.length) {
const error = response.errors[0];
console.log(JSON.stringify(error.extensions, null, 2));
throw new Error(error.message);
}
resolve(response.data);
});
curl.on('error', (err: any) => {
return new Promise((resolve, reject) => {
const curl = new Curl();
const postData = createUploadPostData(mutation, filePaths, mapVariables);
const processedPostData = [
{
name: 'operations',
contents: JSON.stringify(postData.operations),
},
{
name: 'map',
contents:
'{' +
Object.entries(postData.map)
.map(([i, path]) => `"${i}":["${path}"]`)
.join(',') +
'}',
},
this.head = (url) => {
this._setUrl(url);
this.curl.setOpt(Curl.option.CUSTOMREQUEST, 'HEAD');
return this._submit();
};
T.async(done => {
const req = new C.Curl();
const reqHead = [
...(isJson(requestType)
? ["Content-Type: application/json"]
: []),
...pipe(
headers,
R.collect((k, v) => `${k}: ${v}`)
)
];
req.setOpt("URL", url);
req.setOpt("CAINFO", caPath);
req.setOpt("FOLLOWLOCATION", 1);
req.setOpt("VERBOSE", 0);
req.setOpt("SSL_VERIFYHOST", 2);
req.setOpt("SSL_VERIFYPEER", 1);
this._reset = () => {
this.curl = new Curl();
};