aimpress-chatbot/node_modules/openssl-wrapper/lib/index.js
“SamoilenkoVadym” 55445dbc86
Some checks failed
Build and deploy Node.js app to Azure Web App - ChatBot2222 / build (push) Has been cancelled
Build and deploy Node.js app to Azure Web App - ChatBot2222 / deploy (push) Has been cancelled
Deploy bot to Azure
2025-04-27 19:55:19 +01:00

107 lines
No EOL
2.6 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.exec = undefined;
exports.default = exec;
var _child_process = require('child_process');
var isFunction = function isFunction(maybeFunction) {
return typeof maybeFunction === 'function';
};
var expectedStderrForAction = {
'cms.verify': /^verification successful/i,
'genrsa': /^generating/i,
'pkcs12': /^mac verified ok/i,
'req.new': /^generating/i,
'req.verify': /^verify ok/i,
'rsa': /^writing rsa key/i,
'smime.verify': /^verification successful/i,
'x509.req': /^signature ok/i
};
function exec(action, maybeBuffer, maybeOptions, maybeCallback) {
// Support option re-ordering
var buffer = maybeBuffer;
var options = maybeOptions;
var callback = maybeCallback;
if (!Buffer.isBuffer(buffer)) {
callback = options;
options = buffer;
buffer = false;
}
if (isFunction(options)) {
callback = options;
options = {};
}
// Build initial params with passed action
var params = action.split('.').map(function (value, key) {
return !key ? value : '-' + value;
});
var lastParams = [];
Object.keys(options).forEach(function (key) {
if (options[key] === false) {
lastParams.push(key);
} else if (options[key] === true) {
params.push('-' + key);
} else {
if (Array.isArray(options[key])) {
options[key].forEach(function (value) {
params.push('-' + key, value);
});
} else {
params.push('-' + key, options[key]);
}
}
});
// Append last params
params = params.concat(lastParams);
// Actually spawn openssl command
var openssl = (0, _child_process.spawn)('openssl', params);
var outResult = [];
var outLength = 0;
var errResult = [];
var errLength = 0;
openssl.stdout.on('data', function (data) {
outLength += data.length;
outResult.push(data);
});
openssl.stderr.on('data', function (data) {
errLength += data.length;
errResult.push(data);
});
openssl.on('close', function (code) {
var stdout = Buffer.concat(outResult, outLength);
var stderr = Buffer.concat(errResult, errLength).toString('utf8');
var expectedStderr = expectedStderrForAction[action];
var err = null;
if (code || stderr && expectedStderr && !stderr.match(expectedStderr)) {
err = new Error(stderr);
err.code = code;
}
if (isFunction(callback)) {
callback.apply(null, [err, stdout]);
}
});
if (buffer) {
openssl.stdin.write(buffer);
}
openssl.stdin.end();
return openssl;
}
exports.exec = exec;
//# sourceMappingURL=index.js.map