Socket
Socket
Sign inDemoInstall

atom-haskell-utils

Package Overview
Dependencies
0
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.2 to 2.1.0

bin/cabal2json.min.js

8

CHANGELOG.md

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

## 2.1.0
- Use GHCJS-compiled "binary" for cabal2json
## 2.0.2
- Fix UV trigger code
## 2.0.1

@@ -2,0 +10,0 @@

18

lib/util.js

@@ -127,12 +127,11 @@ "use strict";

const CP = require("child_process");
const cabal2jsonPath = process.env.ATOM_HASKELL_CABAL2JSONPATH
? process.env.ATOM_HASKELL_CABAL2JSONPATH
: path.join(__dirname, '..', 'bin', 'cabal2json-' +
process.platform +
(process.platform === 'win32' ? '.exe' : ''));
const cabal2jsonPath = path.join(__dirname, '..', 'bin', 'cabal2json.min.js');
async function runCabal2Json(cabalSource, args, def) {
let interval = undefined;
try {
const env = Object.create(process.env);
env.ELECTRON_RUN_AS_NODE = 1;
env.ELECTRON_NO_ATTACH_CONSOLE = 1;
return await new Promise((resolve) => {
const cp = CP.execFile(cabal2jsonPath, args, function (error, stdout, _stderr) {
const cp = CP.execFile(process.execPath, ['--no-deprecation', cabal2jsonPath, ...args], { env }, function (error, stdout, _stderr) {
if (error) {

@@ -179,3 +178,6 @@ atom.notifications.addError('Atom-Haskell core error in getComponentFromFile', {

async function getComponentFromFile(cabalSource, filePath) {
return runCabal2Json(cabalSource, [filePath], []);
const fp = process.platform === 'win32'
? filePath.replace(path.sep, path.posix.sep)
: filePath;
return runCabal2Json(cabalSource, [fp], []);
}

@@ -216,2 +218,2 @@ exports.getComponentFromFile = getComponentFromFile;

exports.hsEscapeString = HS.hsEscapeString;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsK0JBQWtEO0FBQ2xELHlCQUF3QjtBQUN4Qiw2QkFBNEI7QUFFNUIsb0JBQW9CLEdBQVE7SUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUE7QUFDaEUsQ0FBQztBQUVELHNCQUFzQixDQUFNO0lBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUNwQixDQUFDO0FBRUQscUJBQ0UsR0FBMkM7SUFFM0MsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZDLENBQUM7UUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQTtRQUNkLENBQUM7SUFDSCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFqQkQsa0NBaUJDO0FBRUQsNEJBQW1DLElBQTZCO0lBQzlELElBQUksR0FB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QUFBO0FBQ0osQ0FBQztBQVpELHNCQVlDO0FBQ0QsdUJBQXVCLENBQU07SUFDM0IsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUE7QUFDcEQsQ0FBQztBQUNNLEtBQUssK0JBQStCLE1BQWM7SUFDdkQsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4RCxFQUFFLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDekMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUIsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQ2pDLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDakIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBVkQsb0RBVUM7QUFDWSwwQ0FBYyxDQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG5vLW51bGwta2V5d29yZFxuaW1wb3J0IHsgRGlyZWN0b3J5LCBGaWxlLCBUZXh0QnVmZmVyIH0gZnJvbSAnYXRvbSdcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuXG5mdW5jdGlvbiBoYXNHZXRQYXRoKGRpcjogYW55KTogZGlyIGlzIERpcmVjdG9yeSB8IEZpbGUge1xuICByZXR1cm4gZGlyICYmIGRpci5nZXRQYXRoICYmIHR5cGVvZiBkaXIuZ2V0UGF0aCA9PT0gJ2Z1bmN0aW9uJ1xufVxuXG5mdW5jdGlvbiBpc1RleHRCdWZmZXIoeDogYW55KTogeCBpcyBUZXh0QnVmZmVyIHtcbiAgcmV0dXJuIHggJiYgeC5maWxlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdG9yeShcbiAgZGlyOiBGaWxlIHwgRGlyZWN0b3J5IHwgc3RyaW5nIHwgbnVsbCB8IGFueSxcbik6IGJvb2xlYW4ge1xuICBpZiAoZGlyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgaWYgKGhhc0dldFBhdGgoZGlyKSkge1xuICAgIHJldHVybiBpc0RpcmVjdG9yeShkaXIuZ2V0UGF0aCgpKVxuICB9IGVsc2UgaWYgKHR5cGVvZiBkaXIgPT09ICdzdHJpbmcnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmcy5zdGF0U3luYyhkaXIpLmlzRGlyZWN0b3J5KClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3REaXJGYWxsYmFjayhmaWxlOiBGaWxlIHwgRGlyZWN0b3J5IHwgbnVsbCk6IERpcmVjdG9yeSB7XG4gIGxldCBkaXI6IERpcmVjdG9yeSB8IG51bGwgPSBudWxsXG4gIGlmIChmaWxlKSB7XG4gICAgO1tkaXJdID0gYXRvbS5wcm9qZWN0XG4gICAgICAuZ2V0RGlyZWN0b3JpZXMoKVxuICAgICAgLmZpbHRlcigoZCkgPT4gZC5jb250YWlucyhmaWxlLmdldFBhdGgoKSkpXG4gIH1cbiAgaWYgKCFkaXIpIHtcbiAgICBkaXIgPSBhdG9tLnByb2plY3QuZ2V0RGlyZWN0b3JpZXMoKVswXVxuICB9XG4gIGlmIChkaXIgJiYgZGlyLmdldFBhdGgoKSA9PT0gJ2F0b206Ly9jb25maWcnKSB7XG4gICAgZGlyID0gbnVsbFxuICB9XG4gIGlmICghKGRpciAmJiBpc0RpcmVjdG9yeShkaXIpKSkge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBkaXIgPSBmaWxlLmdldFBhcmVudCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRpciA9IG5ldyBEaXJlY3RvcnkoJy4nKVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGlyXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREaXJFbnRyaWVzKFxuICBkaXI6IERpcmVjdG9yeSxcbik6IFByb21pc2U8QXJyYXk8RGlyZWN0b3J5IHwgRmlsZT4+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPEFycmF5PERpcmVjdG9yeSB8IEZpbGU+PigocmVzb2x2ZSwgcmVqZWN0KSA9PlxuICAgIGRpci5nZXRFbnRyaWVzKChlcnJvciwgY29udGVudHMpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKGNvbnRlbnRzKVxuICAgICAgfVxuICAgIH0pLFxuICApXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRpckhhc0NhYmFsRmlsZShkOiBEaXJlY3RvcnkpIHtcbiAgaWYgKCFkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIChhd2FpdCBnZXREaXJFbnRyaWVzKGQpKS5zb21lKFxuICAgIChmaWxlKSA9PiBmaWxlLmlzRmlsZSgpICYmIGZpbGUuZ2V0QmFzZU5hbWUoKS5lbmRzV2l0aCgnLmNhYmFsJyksXG4gIClcbn1cblxuYXN5bmMgZnVuY3Rpb24gZGlySGFzU2FuZGJveEZpbGUoZDogRGlyZWN0b3J5KSB7XG4gIGlmICghZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiAoYXdhaXQgZ2V0RGlyRW50cmllcyhkKSkuc29tZShcbiAgICAoZmlsZSkgPT4gZmlsZS5pc0ZpbGUoKSAmJiBmaWxlLmdldEJhc2VOYW1lKCkgPT09ICdjYWJhbC5zYW5kYm94LmNvbmZpZycsXG4gIClcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZFByb2plY3RSb290KFxuICBkOiBEaXJlY3RvcnksXG4gIGNoZWNrOiAoZDogRGlyZWN0b3J5KSA9PiBQcm9taXNlPGJvb2xlYW4+LFxuKSB7XG4gIHdoaWxlICghKGQuaXNSb290KCkgfHwgKGF3YWl0IGNoZWNrKGQpKSkpIHtcbiAgICBkID0gZCAmJiBkLmdldFBhcmVudCgpXG4gIH1cbiAgaWYgKGF3YWl0IGNoZWNrKGQpKSB7XG4gICAgcmV0dXJuIGRcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSb290RGlyKFxuICBpbnB1dDogVGV4dEJ1ZmZlciB8IEZpbGUgfCBzdHJpbmcgfCBudWxsLFxuKTogUHJvbWlzZTxEaXJlY3Rvcnk+IHtcbiAgbGV0IGZpbGU6IEZpbGUgfCBEaXJlY3RvcnkgfCBudWxsXG4gIGlmIChpc1RleHRCdWZmZXIoaW5wdXQpKSB7XG4gICAgY29uc3QgcCA9IGlucHV0LmdldFBhdGgoKVxuICAgIGlmIChwKSBmaWxlID0gbmV3IEZpbGUocClcbiAgICBlbHNlIGZpbGUgPSBudWxsXG4gIH0gZWxzZSBpZiAoaGFzR2V0UGF0aChpbnB1dCkpIHtcbiAgICBmaWxlID0gaW5wdXRcbiAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZmlsZSA9IG5ldyBGaWxlKGlucHV0KVxuICB9IGVsc2Uge1xuICAgIGZpbGUgPSBudWxsXG4gIH1cbiAgbGV0IGRpcjogRGlyZWN0b3J5IHwgbnVsbFxuICBpZiAoZmlsZSAmJiBpc0RpcmVjdG9yeShmaWxlKSkge1xuICAgIGRpciA9IG5ldyBEaXJlY3RvcnkoZmlsZS5nZXRQYXRoKCkpXG4gIH0gZWxzZSB7XG4gICAgZGlyID0gKGZpbGUgJiYgZmlsZS5nZXRQYXJlbnQoKSkgfHwgZ2V0Um9vdERpckZhbGxiYWNrKGZpbGUpXG4gIH1cbiAgY29uc3QgY2FiYWxSb290ID0gYXdhaXQgZmluZFByb2plY3RSb290KGRpciwgZGlySGFzQ2FiYWxGaWxlKVxuICBjb25zdCBzYW5kYm94Um9vdCA9IGF3YWl0IGZpbmRQcm9qZWN0Um9vdChkaXIsIGRpckhhc1NhbmRib3hGaWxlKVxuICBkaXIgPSBjYWJhbFJvb3QgfHwgc2FuZGJveFJvb3RcbiAgaWYgKCEoZGlyICYmIGlzRGlyZWN0b3J5KGRpcikpKSB7XG4gICAgZGlyID0gZ2V0Um9vdERpckZhbGxiYWNrKGZpbGUpXG4gIH1cbiAgcmV0dXJuIGRpclxufVxuXG5pbXBvcnQgSFMgPSByZXF1aXJlKCcuLi9ocy9ocy5taW4uanMnKVxuZXhwb3J0IHsgSVRhcmdldCwgSURvdENhYmFsLCBJSW1wb3J0LCBJTW9kdWxlSW1wb3J0cyB9IGZyb20gJy4uL2hzL2hzLm1pbi5qcydcblxuaW1wb3J0IENQID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpXG5jb25zdCBjYWJhbDJqc29uUGF0aCA9IHByb2Nlc3MuZW52LkFUT01fSEFTS0VMTF9DQUJBTDJKU09OUEFUSFxuICA/IHByb2Nlc3MuZW52LkFUT01fSEFTS0VMTF9DQUJBTDJKU09OUEFUSFxuICA6IHBhdGguam9pbihcbiAgICAgIF9fZGlybmFtZSxcbiAgICAgICcuLicsXG4gICAgICAnYmluJyxcbiAgICAgICdjYWJhbDJqc29uLScgK1xuICAgICAgICBwcm9jZXNzLnBsYXRmb3JtICtcbiAgICAgICAgKHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyAnLmV4ZScgOiAnJyksXG4gICAgKVxuXG5hc3luYyBmdW5jdGlvbiBydW5DYWJhbDJKc29uPFQ+KGNhYmFsU291cmNlOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdLCBkZWY6IFQpIHtcbiAgbGV0IGludGVydmFsID0gdW5kZWZpbmVkXG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBjcCA9IENQLmV4ZWNGaWxlKGNhYmFsMmpzb25QYXRoLCBhcmdzLCBmdW5jdGlvbiAoXG4gICAgICAgIGVycm9yLFxuICAgICAgICBzdGRvdXQsXG4gICAgICAgIF9zdGRlcnIsXG4gICAgICApIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKFxuICAgICAgICAgICAgJ0F0b20tSGFza2VsbCBjb3JlIGVycm9yIGluIGdldENvbXBvbmVudEZyb21GaWxlJyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGV0YWlsOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICBkaXNtaXNzYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKVxuICAgICAgICAgIHJlc29sdmUoZGVmKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoSlNPTi5wYXJzZShzdGRvdXQpKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgdHJ5IHtcbiAgICAgICAgY3Auc3RkaW4ud3JpdGUoY2FiYWxTb3VyY2UsICd1dGY4JylcbiAgICAgICAgY3Auc3RkaW4uZW5kKClcbiAgICAgICAgaW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgIDsocHJvY2VzcyBhcyBhbnkpLmFjdGl2YXRlVXZMb29wKClcbiAgICAgICAgfSwgMTAwKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoXG4gICAgICAgICAgJ0F0b20tSGFza2VsbCBjb3JlIGVycm9yIGluIGdldENvbXBvbmVudEZyb21GaWxlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRhaWw6IGUubWVzc2FnZSxcbiAgICAgICAgICAgIGRpc21pc3NhYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjcC5raWxsKClcbiAgICAgICAgfSBjYXRjaCAoZTIpIHt9XG4gICAgICB9XG4gICAgfSlcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoaW50ZXJ2YWwgIT09IHVuZGVmaW5lZCkgY2xlYXJJbnRlcnZhbChpbnRlcnZhbClcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VEb3RDYWJhbChjYWJhbFNvdXJjZTogc3RyaW5nKSB7XG4gIHJldHVybiBydW5DYWJhbDJKc29uPEhTLklEb3RDYWJhbCB8IG51bGw+KGNhYmFsU291cmNlLCBbXSwgbnVsbClcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDb21wb25lbnRGcm9tRmlsZShcbiAgY2FiYWxTb3VyY2U6IHN0cmluZyxcbiAgZmlsZVBhdGg6IHN0cmluZyxcbikge1xuICByZXR1cm4gcnVuQ2FiYWwySnNvbjxzdHJpbmdbXT4oY2FiYWxTb3VyY2UsIFtmaWxlUGF0aF0sIFtdKVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVubGl0KGZpbGVuYW1lOiBzdHJpbmcsIHNvdXJjZTogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBIUy51bmxpdChmaWxlbmFtZSwgc291cmNlLCAoZXJyb3IsIHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3IpKVxuICAgICAgfSBlbHNlIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmtub3duIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHJ1biB1bmxpdCcpKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59XG5mdW5jdGlvbiBpc0Vycm9yUmVzdWx0KHg6IGFueSk6IHggaXMgeyBlcnJvcjogc3RyaW5nIH0ge1xuICByZXR1cm4geCAmJiB4LmVycm9yICYmIHR5cGVvZiB4LmVycm9yID09PSAnc3RyaW5nJ1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlSHNNb2R1bGVJbXBvcnRzKHNvdXJjZTogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxIUy5JTW9kdWxlSW1wb3J0cz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIEhTLnBhcnNlSHNNb2R1bGVJbXBvcnRzKHNvdXJjZSwgKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGlzRXJyb3JSZXN1bHQocmVzdWx0KSkge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKHJlc3VsdC5lcnJvcikpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgIH1cbiAgICB9KVxuICB9KVxufVxuZXhwb3J0IGxldCB7IGhzRXNjYXBlU3RyaW5nIH0gPSBIU1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsK0JBQWtEO0FBQ2xELHlCQUF3QjtBQUN4Qiw2QkFBNEI7QUFFNUIsb0JBQW9CLEdBQVE7SUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUE7QUFDaEUsQ0FBQztBQUVELHNCQUFzQixDQUFNO0lBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUNwQixDQUFDO0FBRUQscUJBQ0UsR0FBMkM7SUFFM0MsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZDLENBQUM7UUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQTtRQUNkLENBQUM7SUFDSCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFqQkQsa0NBaUJDO0FBRUQsNEJBQW1DLElBQTZCO0lBQzlELElBQUksR0FB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LE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNqQixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFaRCxzQkFZQztBQUNELHVCQUF1QixDQUFNO0lBQzNCLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFBO0FBQ3BELENBQUM7QUFDTSxLQUFLLCtCQUErQixNQUFjO0lBQ3ZELE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBb0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDeEQsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3pDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUNqQyxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQVZELG9EQVVDO0FBQ1ksMENBQWMsQ0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOiBuby1udWxsLWtleXdvcmRcbmltcG9ydCB7IERpcmVjdG9yeSwgRmlsZSwgVGV4dEJ1ZmZlciB9IGZyb20gJ2F0b20nXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcydcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuZnVuY3Rpb24gaGFzR2V0UGF0aChkaXI6IGFueSk6IGRpciBpcyBEaXJlY3RvcnkgfCBGaWxlIHtcbiAgcmV0dXJuIGRpciAmJiBkaXIuZ2V0UGF0aCAmJiB0eXBlb2YgZGlyLmdldFBhdGggPT09ICdmdW5jdGlvbidcbn1cblxuZnVuY3Rpb24gaXNUZXh0QnVmZmVyKHg6IGFueSk6IHggaXMgVGV4dEJ1ZmZlciB7XG4gIHJldHVybiB4ICYmIHguZmlsZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEaXJlY3RvcnkoXG4gIGRpcjogRmlsZSB8IERpcmVjdG9yeSB8IHN0cmluZyB8IG51bGwgfCBhbnksXG4pOiBib29sZWFuIHtcbiAgaWYgKGRpciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGlmIChoYXNHZXRQYXRoKGRpcikpIHtcbiAgICByZXR1cm4gaXNEaXJlY3RvcnkoZGlyLmdldFBhdGgoKSlcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGlyID09PSAnc3RyaW5nJykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnMuc3RhdFN5bmMoZGlyKS5pc0RpcmVjdG9yeSgpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290RGlyRmFsbGJhY2soZmlsZTogRmlsZSB8IERpcmVjdG9yeSB8IG51bGwpOiBEaXJlY3Rvcnkge1xuICBsZXQgZGlyOiBEaXJlY3RvcnkgfCBudWxsID0gbnVsbFxuICBpZiAoZmlsZSkge1xuICAgIDtbZGlyXSA9IGF0b20ucHJvamVjdFxuICAgICAgLmdldERpcmVjdG9yaWVzKClcbiAgICAgIC5maWx0ZXIoKGQpID0+IGQuY29udGFpbnMoZmlsZS5nZXRQYXRoKCkpKVxuICB9XG4gIGlmICghZGlyKSB7XG4gICAgZGlyID0gYXRvbS5wcm9qZWN0LmdldERpcmVjdG9yaWVzKClbMF1cbiAgfVxuICBpZiAoZGlyICYmIGRpci5nZXRQYXRoKCkgPT09ICdhdG9tOi8vY29uZmlnJykge1xuICAgIGRpciA9IG51bGxcbiAgfVxuICBpZiAoIShkaXIgJiYgaXNEaXJlY3RvcnkoZGlyKSkpIHtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgZGlyID0gZmlsZS5nZXRQYXJlbnQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXIgPSBuZXcgRGlyZWN0b3J5KCcuJylcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRpclxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGlyRW50cmllcyhcbiAgZGlyOiBEaXJlY3RvcnksXG4pOiBQcm9taXNlPEFycmF5PERpcmVjdG9yeSB8IEZpbGU+PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxBcnJheTxEaXJlY3RvcnkgfCBGaWxlPj4oKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICBkaXIuZ2V0RW50cmllcygoZXJyb3IsIGNvbnRlbnRzKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShjb250ZW50cylcbiAgICAgIH1cbiAgICB9KSxcbiAgKVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaXJIYXNDYWJhbEZpbGUoZDogRGlyZWN0b3J5KSB7XG4gIGlmICghZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiAoYXdhaXQgZ2V0RGlyRW50cmllcyhkKSkuc29tZShcbiAgICAoZmlsZSkgPT4gZmlsZS5pc0ZpbGUoKSAmJiBmaWxlLmdldEJhc2VOYW1lKCkuZW5kc1dpdGgoJy5jYWJhbCcpLFxuICApXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRpckhhc1NhbmRib3hGaWxlKGQ6IERpcmVjdG9yeSkge1xuICBpZiAoIWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gKGF3YWl0IGdldERpckVudHJpZXMoZCkpLnNvbWUoXG4gICAgKGZpbGUpID0+IGZpbGUuaXNGaWxlKCkgJiYgZmlsZS5nZXRCYXNlTmFtZSgpID09PSAnY2FiYWwuc2FuZGJveC5jb25maWcnLFxuICApXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmRQcm9qZWN0Um9vdChcbiAgZDogRGlyZWN0b3J5LFxuICBjaGVjazogKGQ6IERpcmVjdG9yeSkgPT4gUHJvbWlzZTxib29sZWFuPixcbikge1xuICB3aGlsZSAoIShkLmlzUm9vdCgpIHx8IChhd2FpdCBjaGVjayhkKSkpKSB7XG4gICAgZCA9IGQgJiYgZC5nZXRQYXJlbnQoKVxuICB9XG4gIGlmIChhd2FpdCBjaGVjayhkKSkge1xuICAgIHJldHVybiBkXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Um9vdERpcihcbiAgaW5wdXQ6IFRleHRCdWZmZXIgfCBGaWxlIHwgc3RyaW5nIHwgbnVsbCxcbik6IFByb21pc2U8RGlyZWN0b3J5PiB7XG4gIGxldCBmaWxlOiBGaWxlIHwgRGlyZWN0b3J5IHwgbnVsbFxuICBpZiAoaXNUZXh0QnVmZmVyKGlucHV0KSkge1xuICAgIGNvbnN0IHAgPSBpbnB1dC5nZXRQYXRoKClcbiAgICBpZiAocCkgZmlsZSA9IG5ldyBGaWxlKHApXG4gICAgZWxzZSBmaWxlID0gbnVsbFxuICB9IGVsc2UgaWYgKGhhc0dldFBhdGgoaW5wdXQpKSB7XG4gICAgZmlsZSA9IGlucHV0XG4gIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIGZpbGUgPSBuZXcgRmlsZShpbnB1dClcbiAgfSBlbHNlIHtcbiAgICBmaWxlID0gbnVsbFxuICB9XG4gIGxldCBkaXI6IERpcmVjdG9yeSB8IG51bGxcbiAgaWYgKGZpbGUgJiYgaXNEaXJlY3RvcnkoZmlsZSkpIHtcbiAgICBkaXIgPSBuZXcgRGlyZWN0b3J5KGZpbGUuZ2V0UGF0aCgpKVxuICB9IGVsc2Uge1xuICAgIGRpciA9IChmaWxlICYmIGZpbGUuZ2V0UGFyZW50KCkpIHx8IGdldFJvb3REaXJGYWxsYmFjayhmaWxlKVxuICB9XG4gIGNvbnN0IGNhYmFsUm9vdCA9IGF3YWl0IGZpbmRQcm9qZWN0Um9vdChkaXIsIGRpckhhc0NhYmFsRmlsZSlcbiAgY29uc3Qgc2FuZGJveFJvb3QgPSBhd2FpdCBmaW5kUHJvamVjdFJvb3QoZGlyLCBkaXJIYXNTYW5kYm94RmlsZSlcbiAgZGlyID0gY2FiYWxSb290IHx8IHNhbmRib3hSb290XG4gIGlmICghKGRpciAmJiBpc0RpcmVjdG9yeShkaXIpKSkge1xuICAgIGRpciA9IGdldFJvb3REaXJGYWxsYmFjayhmaWxlKVxuICB9XG4gIHJldHVybiBkaXJcbn1cblxuaW1wb3J0IEhTID0gcmVxdWlyZSgnLi4vaHMvaHMubWluLmpzJylcbmV4cG9ydCB7IElUYXJnZXQsIElEb3RDYWJhbCwgSUltcG9ydCwgSU1vZHVsZUltcG9ydHMgfSBmcm9tICcuLi9ocy9ocy5taW4uanMnXG5cbmltcG9ydCBDUCA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKVxuY29uc3QgY2FiYWwyanNvblBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnYmluJywgJ2NhYmFsMmpzb24ubWluLmpzJylcblxuYXN5bmMgZnVuY3Rpb24gcnVuQ2FiYWwySnNvbjxUPihjYWJhbFNvdXJjZTogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgZGVmOiBUKSB7XG4gIGxldCBpbnRlcnZhbCA9IHVuZGVmaW5lZFxuICB0cnkge1xuICAgIGNvbnN0IGVudiA9IE9iamVjdC5jcmVhdGUocHJvY2Vzcy5lbnYpXG4gICAgZW52LkVMRUNUUk9OX1JVTl9BU19OT0RFID0gMVxuICAgIGVudi5FTEVDVFJPTl9OT19BVFRBQ0hfQ09OU09MRSA9IDFcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8VD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGNwID0gQ1AuZXhlY0ZpbGUoXG4gICAgICAgIHByb2Nlc3MuZXhlY1BhdGgsXG4gICAgICAgIFsnLS1uby1kZXByZWNhdGlvbicsIGNhYmFsMmpzb25QYXRoLCAuLi5hcmdzXSxcbiAgICAgICAgeyBlbnYgfSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yLCBzdGRvdXQsIF9zdGRlcnIpIHtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcbiAgICAgICAgICAgICAgJ0F0b20tSGFza2VsbCBjb3JlIGVycm9yIGluIGdldENvbXBvbmVudEZyb21GaWxlJyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRldGFpbDogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgICAgICBkaXNtaXNzYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJlc29sdmUoZGVmKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKEpTT04ucGFyc2Uoc3Rkb3V0KSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICB0cnkge1xuICAgICAgICBjcC5zdGRpbi53cml0ZShjYWJhbFNvdXJjZSwgJ3V0ZjgnKVxuICAgICAgICBjcC5zdGRpbi5lbmQoKVxuICAgICAgICBpbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgOyhwcm9jZXNzIGFzIGFueSkuYWN0aXZhdGVVdkxvb3AoKVxuICAgICAgICB9LCAxMDApXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcbiAgICAgICAgICAnQXRvbS1IYXNrZWxsIGNvcmUgZXJyb3IgaW4gZ2V0Q29tcG9uZW50RnJvbUZpbGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGFpbDogZS5tZXNzYWdlLFxuICAgICAgICAgICAgZGlzbWlzc2FibGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNwLmtpbGwoKVxuICAgICAgICB9IGNhdGNoIChlMikge31cbiAgICAgIH1cbiAgICB9KVxuICB9IGZpbmFsbHkge1xuICAgIGlmIChpbnRlcnZhbCAhPT0gdW5kZWZpbmVkKSBjbGVhckludGVydmFsKGludGVydmFsKVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJzZURvdENhYmFsKGNhYmFsU291cmNlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHJ1bkNhYmFsMkpzb248SFMuSURvdENhYmFsIHwgbnVsbD4oY2FiYWxTb3VyY2UsIFtdLCBudWxsKVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENvbXBvbmVudEZyb21GaWxlKFxuICBjYWJhbFNvdXJjZTogc3RyaW5nLFxuICBmaWxlUGF0aDogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IGZwID1cbiAgICBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInXG4gICAgICA/IGZpbGVQYXRoLnJlcGxhY2UocGF0aC5zZXAsIHBhdGgucG9zaXguc2VwKVxuICAgICAgOiBmaWxlUGF0aFxuICByZXR1cm4gcnVuQ2FiYWwySnNvbjxzdHJpbmdbXT4oY2FiYWxTb3VyY2UsIFtmcF0sIFtdKVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVubGl0KGZpbGVuYW1lOiBzdHJpbmcsIHNvdXJjZTogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBIUy51bmxpdChmaWxlbmFtZSwgc291cmNlLCAoZXJyb3IsIHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3IpKVxuICAgICAgfSBlbHNlIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmtub3duIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHJ1biB1bmxpdCcpKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59XG5mdW5jdGlvbiBpc0Vycm9yUmVzdWx0KHg6IGFueSk6IHggaXMgeyBlcnJvcjogc3RyaW5nIH0ge1xuICByZXR1cm4geCAmJiB4LmVycm9yICYmIHR5cGVvZiB4LmVycm9yID09PSAnc3RyaW5nJ1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlSHNNb2R1bGVJbXBvcnRzKHNvdXJjZTogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxIUy5JTW9kdWxlSW1wb3J0cz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIEhTLnBhcnNlSHNNb2R1bGVJbXBvcnRzKHNvdXJjZSwgKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGlzRXJyb3JSZXN1bHQocmVzdWx0KSkge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKHJlc3VsdC5lcnJvcikpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgIH1cbiAgICB9KVxuICB9KVxufVxuZXhwb3J0IGxldCB7IGhzRXNjYXBlU3RyaW5nIH0gPSBIU1xuIl19
{
"name": "atom-haskell-utils",
"version": "2.0.2",
"version": "2.1.0",
"description": "Various utility functions utilized by atom-haskell packages",

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

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc