Skip to content

Instantly share code, notes, and snippets.

Created May 1, 2015 20:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/422f97e21481c2d5e027 to your computer and use it in GitHub Desktop.
Save anonymous/422f97e21481c2d5e027 to your computer and use it in GitHub Desktop.
Have I been hacked? I found these 4 js files sitting in a user's home directory. %UserProfile%\.atom\compile-cache\836a81e7afc5e1080850f10b0790220f3d81503a\js\
'use babel';
// Filter out user's paths from require search list
var re = /[\\\/]\.node_/i;
var requirePaths = require('module').globalPaths;
var newPaths = [];
for (var i = 0; i < requirePaths.length; i++) {
if (requirePaths[i].match(re)) continue;
newPaths.push(requirePaths[i]);
}
require('module').globalPaths = newPaths;
var ipc = require('ipc');
var rx = require('rx-dom');
rx.config.longStackSupport = true;
var AppIntegration = require('./app');
var DockIntegration = require('./dock');
var NotificationIntegration = require('./notify');
var TeamIntegration = require('./team');
var ContextMenuIntegration = require('./context-menu');
var TooltipIntegration = require('./tooltips');
var SpellCheckingHelper = require('./spell-checking');
var WindowApi = require('./window-api');
var logger = require('../browser/logger').init(__filename);
global.globalLogger = logger;
window.rendererEvalAsync = function (blob) {
var data = JSON.parse(decodeURIComponent(blob));
try {
data.result = JSON.stringify(eval(data.code));
} catch (error) {
data.error = { stack: error.stack, message: error.message };
}
ipc.sendToHost('eval-async', data);
};
var webFrame = global.webFrame = require('web-frame');
webFrame.registerUrlSchemeAsSecure('slack-resources');
var spellCheckingHelper = null;
spellCheckingHelper = new SpellCheckingHelper();
if (process.platform === 'linux') {
logger.error('Spellchecking isn\'t supported on Linux');
} else {
// NB: Wait until we're in page context before we try to set up our input
// listener
rx.Scheduler.timeout.scheduleWithRelative(4 * 1000, function () {
try {
spellCheckingHelper.setupInputEventListener();
} catch (error) {
logger.error('Spellchecking is busted, continuing: ' + error.message + '\n' + error.stack);
}
});
}
var contextMenu = new ContextMenuIntegration(spellCheckingHelper ? spellCheckingHelper.currentKeyboardLanguage : rx.Observable.empty());
window.winssb = {
app: new AppIntegration(),
dock: new DockIntegration(),
notice: new NotificationIntegration(),
teams: new TeamIntegration(),
window: new WindowApi(),
contextMenu: contextMenu,
spellCheckingHelper: spellCheckingHelper,
// Tooltips are supported natively on Mac
tooltips: process.platform === 'darwin' ? null : new TooltipIntegration(),
ls: window.localStorage
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L1VzZXJzL3BhdWwvY29kZS90aW55c3BlY2svc2xhY2std2luc3NiL3NyYy9zc2IvbWFpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXLENBQUM7OztBQUdaLElBQUksRUFBRSxHQUFHLGdCQUFnQixDQUFDO0FBQzFCLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUM7QUFDakQsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDOztBQUVsQixLQUFLLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUMxQyxNQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUcsU0FBUztBQUN6QyxVQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2hDOztBQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDOztBQUV6QyxJQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0IsSUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdCLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDOztBQUVsQyxJQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEMsSUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzFDLElBQU0sdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3BELElBQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxQyxJQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3pELElBQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2pELElBQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDeEQsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDOztBQUUxQyxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7O0FBRTdELE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDOztBQUU3QixNQUFNLENBQUMsaUJBQWlCLEdBQUcsVUFBQyxJQUFJLEVBQUs7QUFDbkMsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hELE1BQUk7QUFDRixRQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0dBQy9DLENBQUMsT0FBTyxLQUFLLEVBQUU7QUFDZCxRQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztHQUM3RDs7QUFFRCxLQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztDQUNwQyxDQUFDOztBQUVGLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3RELFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOztBQUV0RCxJQUFJLG1CQUFtQixHQUFHLElBQUksQ0FBQzs7QUFFL0IsbUJBQW1CLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDOztBQUVoRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO0FBQ2hDLFFBQU0sQ0FBQyxLQUFLLENBQUMseUNBQXdDLENBQUMsQ0FBQztDQUN4RCxNQUFNOzs7QUFHTCxJQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUMsSUFBSSxFQUFFLFlBQU07QUFDdEQsUUFBSTtBQUNGLHlCQUFtQixDQUFDLHVCQUF1QixFQUFFLENBQUM7S0FDL0MsQ0FBQyxPQUFPLEtBQUssRUFBRTtBQUNkLFlBQU0sQ0FBQyxLQUFLLENBQUEsdUNBQUEsR0FBeUMsS0FBSyxDQUFDLE9BQU8sR0FBQSxJQUFBLEdBQUssS0FBSyxDQUFDLEtBQUssQ0FBRyxDQUFDO0tBQ3ZGO0dBQ0YsQ0FBQyxDQUFDO0NBQ0o7O0FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxzQkFBc0IsQ0FDMUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDOztBQUU3RixNQUFNLENBQUMsTUFBTSxHQUFHO0FBQ2QsS0FBRyxFQUFFLElBQUksY0FBYyxFQUFFOztBQUV6QixNQUFJLEVBQUUsSUFBSSxlQUFlLEVBQUU7O0FBRTNCLFFBQU0sRUFBRSxJQUFJLHVCQUF1QixFQUFFOztBQUVyQyxPQUFLLEVBQUUsSUFBSSxlQUFlLEVBQUU7O0FBRTVCLFFBQU0sRUFBRSxJQUFJLFNBQVMsRUFBRTs7QUFFdkIsYUFBVyxFQUFFLFdBQVc7O0FBRXhCLHFCQUFtQixFQUFFLG1CQUFtQjs7O0FBR3hDLFVBQVEsRUFBRyxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsRUFBRTs7QUFFMUUsSUFBRSxFQUFFLE1BQU0sQ0FBQyxZQUFZO0NBQ3hCLENBQUMiLCJmaWxlIjoiQzovVXNlcnMvcGF1bC9jb2RlL3RpbnlzcGVjay9zbGFjay13aW5zc2Ivc3JjL3NzYi9tYWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBiYWJlbCc7XG5cbi8vIEZpbHRlciBvdXQgdXNlcidzIHBhdGhzIGZyb20gcmVxdWlyZSBzZWFyY2ggbGlzdFxudmFyIHJlID0gL1tcXFxcXFwvXVxcLm5vZGVfL2k7XG52YXIgcmVxdWlyZVBhdGhzID0gcmVxdWlyZSgnbW9kdWxlJykuZ2xvYmFsUGF0aHM7XG52YXIgbmV3UGF0aHMgPSBbXTtcblxuZm9yICh2YXIgaT0wOyBpIDwgcmVxdWlyZVBhdGhzLmxlbmd0aDsgaSsrKSB7XG4gIGlmIChyZXF1aXJlUGF0aHNbaV0ubWF0Y2gocmUpKSAgY29udGludWU7XG4gIG5ld1BhdGhzLnB1c2gocmVxdWlyZVBhdGhzW2ldKTtcbn1cblxucmVxdWlyZSgnbW9kdWxlJykuZ2xvYmFsUGF0aHMgPSBuZXdQYXRocztcblxuY29uc3QgaXBjID0gcmVxdWlyZSgnaXBjJyk7XG5jb25zdCByeCA9IHJlcXVpcmUoJ3J4LWRvbScpO1xucnguY29uZmlnLmxvbmdTdGFja1N1cHBvcnQgPSB0cnVlO1xuXG5jb25zdCBBcHBJbnRlZ3JhdGlvbiA9IHJlcXVpcmUoJy4vYXBwJyk7XG5jb25zdCBEb2NrSW50ZWdyYXRpb24gPSByZXF1aXJlKCcuL2RvY2snKTtcbmNvbnN0IE5vdGlmaWNhdGlvbkludGVncmF0aW9uID0gcmVxdWlyZSgnLi9ub3RpZnknKTtcbmNvbnN0IFRlYW1JbnRlZ3JhdGlvbiA9IHJlcXVpcmUoJy4vdGVhbScpO1xuY29uc3QgQ29udGV4dE1lbnVJbnRlZ3JhdGlvbiA9IHJlcXVpcmUoJy4vY29udGV4dC1tZW51Jyk7XG5jb25zdCBUb29sdGlwSW50ZWdyYXRpb24gPSByZXF1aXJlKCcuL3Rvb2x0aXBzJyk7XG5jb25zdCBTcGVsbENoZWNraW5nSGVscGVyID0gcmVxdWlyZSgnLi9zcGVsbC1jaGVja2luZycpO1xuY29uc3QgV2luZG93QXBpID0gcmVxdWlyZSgnLi93aW5kb3ctYXBpJyk7XG5cbmNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJy4uL2Jyb3dzZXIvbG9nZ2VyJykuaW5pdChfX2ZpbGVuYW1lKTtcblxuZ2xvYmFsLmdsb2JhbExvZ2dlciA9IGxvZ2dlcjtcblxud2luZG93LnJlbmRlcmVyRXZhbEFzeW5jID0gKGJsb2IpID0+IHtcbiAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChibG9iKSk7XG4gIHRyeSB7XG4gICAgZGF0YS5yZXN1bHQgPSBKU09OLnN0cmluZ2lmeShldmFsKGRhdGEuY29kZSkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGRhdGEuZXJyb3IgPSB7IHN0YWNrOiBlcnJvci5zdGFjaywgbWVzc2FnZTogZXJyb3IubWVzc2FnZSB9O1xuICB9XG5cbiAgaXBjLnNlbmRUb0hvc3QoJ2V2YWwtYXN5bmMnLCBkYXRhKTtcbn07XG5cbmxldCB3ZWJGcmFtZSA9IGdsb2JhbC53ZWJGcmFtZSA9IHJlcXVpcmUoJ3dlYi1mcmFtZScpO1xud2ViRnJhbWUucmVnaXN0ZXJVcmxTY2hlbWVBc1NlY3VyZSgnc2xhY2stcmVzb3VyY2VzJyk7XG5cbmxldCBzcGVsbENoZWNraW5nSGVscGVyID0gbnVsbDtcblxuc3BlbGxDaGVja2luZ0hlbHBlciA9IG5ldyBTcGVsbENoZWNraW5nSGVscGVyKCk7XG5cbmlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnbGludXgnKSB7XG4gIGxvZ2dlci5lcnJvcihcIlNwZWxsY2hlY2tpbmcgaXNuJ3Qgc3VwcG9ydGVkIG9uIExpbnV4XCIpO1xufSBlbHNlIHtcbiAgLy8gTkI6IFdhaXQgdW50aWwgd2UncmUgaW4gcGFnZSBjb250ZXh0IGJlZm9yZSB3ZSB0cnkgdG8gc2V0IHVwIG91ciBpbnB1dFxuICAvLyBsaXN0ZW5lclxuICByeC5TY2hlZHVsZXIudGltZW91dC5zY2hlZHVsZVdpdGhSZWxhdGl2ZSg0KjEwMDAsICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgc3BlbGxDaGVja2luZ0hlbHBlci5zZXR1cElucHV0RXZlbnRMaXN0ZW5lcigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoYFNwZWxsY2hlY2tpbmcgaXMgYnVzdGVkLCBjb250aW51aW5nOiAke2Vycm9yLm1lc3NhZ2V9XFxuJHtlcnJvci5zdGFja31gKTtcbiAgICB9XG4gIH0pO1xufVxuXG5sZXQgY29udGV4dE1lbnUgPSBuZXcgQ29udGV4dE1lbnVJbnRlZ3JhdGlvbihcbiAgc3BlbGxDaGVja2luZ0hlbHBlciA/IHNwZWxsQ2hlY2tpbmdIZWxwZXIuY3VycmVudEtleWJvYXJkTGFuZ3VhZ2UgOiByeC5PYnNlcnZhYmxlLmVtcHR5KCkpO1xuXG53aW5kb3cud2luc3NiID0ge1xuICBhcHA6IG5ldyBBcHBJbnRlZ3JhdGlvbigpLFxuXG4gIGRvY2s6IG5ldyBEb2NrSW50ZWdyYXRpb24oKSxcblxuICBub3RpY2U6IG5ldyBOb3RpZmljYXRpb25JbnRlZ3JhdGlvbigpLFxuXG4gIHRlYW1zOiBuZXcgVGVhbUludGVncmF0aW9uKCksXG5cbiAgd2luZG93OiBuZXcgV2luZG93QXBpKCksXG5cbiAgY29udGV4dE1lbnU6IGNvbnRleHRNZW51LFxuXG4gIHNwZWxsQ2hlY2tpbmdIZWxwZXI6IHNwZWxsQ2hlY2tpbmdIZWxwZXIsXG5cbiAgLy8gVG9vbHRpcHMgYXJlIHN1cHBvcnRlZCBuYXRpdmVseSBvbiBNYWNcbiAgdG9vbHRpcHM6IChwcm9jZXNzLnBsYXRmb3JtID09PSAnZGFyd2luJyA/IG51bGwgOiBuZXcgVG9vbHRpcEludGVncmF0aW9uKCkpLFxuXG4gIGxzOiB3aW5kb3cubG9jYWxTdG9yYWdlXG59O1xuIl19
'use babel';
var rx = require('rx');
var request = require('request');
var fs = require('fs');
var wrapMethodInRx = function wrapMethodInRx(method) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return rx.Observable.create(function (subj) {
// Push the callback as the last parameter
args.push(function (err, resp, body) {
if (err) {
subj.onError(err);
return;
}
if (resp.statusCode >= 400) {
subj.onError(new Error('Request failed: ' + resp.statusCode + '\n' + body));
return;
}
subj.onNext({ response: resp, body: body });
subj.onCompleted();
});
try {
method.apply(undefined, args);
} catch (e) {
subj.onError(e);
}
return rx.Disposable.empty;
});
};
};
var requestRx = wrapMethodInRx(request);
requestRx.get = wrapMethodInRx(request.get);
requestRx.post = wrapMethodInRx(request.post);
requestRx.patch = wrapMethodInRx(request.patch);
requestRx.put = wrapMethodInRx(request.put);
requestRx.del = wrapMethodInRx(request.del);
requestRx.pipe = function (url, stream) {
return rx.Observable.create(function (subj) {
try {
request.get(url).on('response', function (resp) {
if (resp.statusCode > 399) subj.onError(new Error('Failed request: ' + resp.statusCode));
}).on('error', function (err) {
return subj.onError(err);
}).on('end', function () {
subj.onNext(true);subj.onCompleted();
}).pipe(stream);
} catch (e) {
subj.onError(e);
}
});
};
var isHttpUrl = function isHttpUrl(pathOrUrl) {
return pathOrUrl.match(/^http/i);
};
// Public: Fetches a file or URL, then returns its content as an Observable
//
// pathOrUrl - Either a file path or an HTTP URL
//
// Returns: An Observable which will yield a single value and complete, the contents
// of the given path or URL.
requestRx.fetchFileOrUrl = function (pathOrUrl) {
if (!isHttpUrl(pathOrUrl)) {
try {
return rx.Observable['return'](fs.readFileSync(pathOrUrl, { encoding: 'utf8' }));
} catch (e) {
return rx.Observable['throw'](e);
}
}
return requestRx(pathOrUrl).map(function (x) {
return x.body;
});
};
// Private: Opens a file or URL, then returns a Readable Stream as an Observable
//
// pathOrUrl - Either a file path or an HTTP URL
//
// Returns: An Observable which will yield a single value and complete, which will
// be a Readable Stream that can be used with `pipe` or `read` / `readSync`
requestRx.streamFileOrUrl = function (pathOrUrl) {
if (!isHttpUrl(pathOrUrl)) {
return rx.Observable.create(function (subj) {
var s = fs.createReadStream(pathOrUrl);
s.on('open', function () {
subj.onNext(s);
subj.onCompleted();
});
s.on('error', function (err) {
return subj.onError(err);
});
return rx.Disposable.empty;
});
}
return rx.Observable.create(function (subj) {
var rq = null;
try {
rq = request(pathOrUrl);
} catch (e) {
subj.onError(e);
return rx.Disposable.empty;
}
rq.on('response', function (resp) {
subj.onNext(resp);
subj.onCompleted();
});
rq.on('error', function (err) {
return subj.onError(err);
});
return rx.Disposable.empty;
});
};
module.exports = requestRx;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L1VzZXJzL3BhdWwvY29kZS90aW55c3BlY2svc2xhY2std2luc3NiL3NyYy9yZXF1ZXN0LXJ4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVcsQ0FBQzs7QUFFWixJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ25DLElBQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFekIsSUFBSSxjQUFjLEdBQUcsU0FBQSxjQUFBLENBQUMsTUFBTSxFQUFLO0FBQy9CLFNBQU8sWUFBa0I7QUFDdkIsU0FBSyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQURmLElBQUksR0FBQSxLQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsSUFBQSxHQUFBLENBQUEsRUFBQSxJQUFBLEdBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxFQUFBO0FBQUosVUFBSSxDQUFBLElBQUEsQ0FBQSxHQUFBLFNBQUEsQ0FBQSxJQUFBLENBQUEsQ0FBQTtLQUdwQjs7QUFGRCxXQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFLOztBQUVwQyxVQUFJLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUs7QUFDN0IsWUFBSSxHQUFHLEVBQUU7QUFDUCxjQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLGlCQUFPO1NBQ1I7O0FBRUQsWUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRTtBQUMxQixjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFBLGtCQUFBLEdBQW9CLElBQUksQ0FBQyxVQUFVLEdBQUEsSUFBQSxHQUFLLElBQUksQ0FBRyxDQUFDLENBQUM7QUFDdkUsaUJBQU87U0FDUjs7QUFFRCxZQUFJLENBQUMsTUFB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QyxDQUFDO0FBQ2xCLFVBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUNwQixDQUFDLENBQUM7O0FBRUgsTUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQyxHQUFHLEVBQUE7QUFVakIsYUFWc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtLQUFBLENBQUMsQ0FBQztBQUMzQyxXQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0dBQzVCLENBQUMsQ0FBQztDQUNKLENBQUM7O0FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMiLCJmaWxlIjoiQzovVXNlcnMvcGF1bC9jb2RlL3RpbnlzcGVjay9zbGFjay13aW5zc2Ivc3JjL3JlcXVlc3QtcnguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGJhYmVsJztcblxuY29uc3QgcnggPSByZXF1aXJlKCdyeCcpO1xuY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJ3JlcXVlc3QnKTtcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcblxubGV0IHdyYXBNZXRob2RJblJ4ID0gKG1ldGhvZCkgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykge1xuICAgIHJldHVybiByeC5PYnNlcnZhYmxlLmNyZWF0ZSgoc3ViaikgPT4ge1xuICAgICAgLy8gUHVzaCB0aGUgY2FsbGJhY2sgYXMgdGhlIGxhc3QgcGFyYW1ldGVyXG4gICAgICBhcmdzLnB1c2goKGVyciwgcmVzcCwgYm9keSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgc3Viai5vbkVycm9yKGVycik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3Auc3RhdHVzQ29kZSA+PSA0MDApIHtcbiAgICAgICAgICBzdWJqLm9uRXJyb3IobmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZDogJHtyZXNwLnN0YXR1c0NvZGV9XFxuJHtib2R5fWApKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdWJqLm9uTmV4dCh7cmVzcG9uc2U6IHJlc3AsIGJvZHk6IGJvZHl9KTtcbiAgICAgICAgc3Viai5vbkNvbXBsZXRlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIG1ldGhvZCguLi5hcmdzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc3Viai5vbkVycm9yKGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcnguRGlzcG9zYWJsZS5lbXB0eTtcbiAgICB9KTtcbiAgfTtcbn07XG5cbmxldCByZXF1ZXN0UnggPSB3cmFwTWV0aG9kSW5SeChyZXF1ZXN0KTtcbnJlcXVlc3RSeC5nZXQgPSB3cmFwTWV0aG9kSW5SeChyZXF1ZXN0LmdldCk7XG5yZXF1ZXN0UngucG9zdCA9IHdyYXBNZXRob2RJblJ4KHJlcXVlc3QucG9zdCk7XG5yZXF1ZXN0UngucGF0Y2ggPSB3cmFwTWV0aG9kSW5SeChyZXF1ZXN0LnBhdGNoKTtcbnJlcXVlc3RSeC5wdXQgPSB3cmFwTWV0aG9kSW5SeChyZXF1ZXN0LnB1dCk7XG5yZXF1ZXN0UnguZGVsID0gd3JhcE1ldGhvZEluUngocmVxdWVzdC5kZWwpO1xuXG5yZXF1ZXN0UngucGlwZSA9ICh1cmwsIHN0cmVhbSkgPT4ge1xuICByZXR1cm4gcnguT2JzZXJ2YWJsZS5jcmVhdGUoKHN1YmopID0+IHtcbiAgICB0cnkge1xuICAgICAgcmVxdWVzdC5nZXQodXJsKVxuICAgICAgICAub24oJ3Jlc3BvbnNlJywgKHJlc3ApID0+IHtcbiAgICAgICAgICBpZiAocmVzcC5zdGF0dXNDb2RlID4gMzk5KSBzdWJqLm9uRXJyb3IobmV3IEVycm9yKFwiRmFpbGVkIHJlcXVlc3Q6IFwiICsgcmVzcC5zdGF0dXNDb2RlKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCAoZXJyKSA9PiBzdWJqLm9uRXJyb3IoZXJyKSlcbiAgICAgICAgLm9uKCdlbmQnLCAoKSA9PiB7IHN1Ymoub25OZXh0KHRydWUpOyBzdWJqLm9uQ29tcGxldGVkKCk7IH0pXG4gICAgICAgIC5waXBlKHN0cmVhbSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgc3Viai5vbkVycm9yKGUpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5cbmxldCBpc0h0dHBVcmwgPSAocGF0aE9yVXJsKSA9PiBwYXRoT3JVcmwubWF0Y2goL15odHRwL2kpO1xuXG4vLyBQdWJsaWM6IEZldGNoZXMgYSBmaWxlIG9yIFVSTCwgdGhlbiByZXR1cm5zIGl0cyBjb250ZW50IGFzIGFuIE9ic2VydmFibGVcbi8vXG4vLyBwYXRoT3JVcmwgLSBFaXRoZXIgYSBmaWxlIHBhdGggb3IgYW4gSFRUUCBVUkxcbi8vXG4vLyBSZXR1cm5zOiBBbiBPYnNlcnZhYmxlIHdoaWNoIHdpbGwgeWllbGQgYSBzaW5nbGUgdmFsdWUgYW5kIGNvbXBsZXRlLCB0aGUgY29udGVudHNcbi8vIG9mIHRoZSBnaXZlbiBwYXRoIG9yIFVSTC5cbnJlcXVlc3RSeC5mZXRjaEZpbGVPclVybCA9IChwYXRoT3JVcmwpID0+IHtcbiAgaWYgKCFpc0h0dHBVcmwocGF0aE9yVXJsKSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcnguT2JzZXJ2YWJsZS5yZXR1cm4oZnMucmVhZEZpbGVTeW5jKHBhdGhPclVybCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gcnguT2JzZXJ2YWJsZS50aHJvdyhlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVxdWVzdFJ4KHBhdGhPclVybCkubWFwKCh4KSA9PiB4LmJvZHkpO1xufTtcblxuLy8gUHJpdmF0ZTogT3BlbnMgYSBmaWxlIG9yIFVSTCwgdGhlbiByZXR1cm5zIGEgUmVhZGFibGUgU3RyZWFtIGFzIGFuIE9ic2VydmFibGVcbi8vXG4vLyBwYXRoT3JVcmwgLSBFaXRoZXIgYSBmaWxlIHBhdGggb3IgYW4gSFRUUCBVUkxcbi8vXG4vLyBSZXR1cm5zOiBBbiBPYnNlcnZhYmxlIHdoaWNoIHdpbGwgeWllbGQgYSBzaW5nbGUgdmFsdWUgYW5kIGNvbXBsZXRlLCB3aGljaCB3aWxsXG4vLyBiZSBhIFJlYWRhYmxlIFN0cmVhbSB0aGF0IGNhbiBiZSB1c2VkIHdpdGggYHBpcGVgIG9yIGByZWFkYCAvIGByZWFkU3luY2BcbnJlcXVlc3RSeC5zdHJlYW1GaWxlT3JVcmwgPSAocGF0aE9yVXJsKSA9PiB7XG4gIGlmICghaXNIdHRwVXJsKHBhdGhPclVybCkpIHtcbiAgICByZXR1cm4gcnguT2JzZXJ2YWJsZS5jcmVhdGUoKHN1YmopID0+IHtcbiAgICAgIGxldCBzID0gZnMuY3JlYXRlUmVhZFN0cmVhbShwYXRoT3JVcmwpO1xuXG4gICAgICBzLm9uKCdvcGVuJywgKCkgPT4ge1xuICAgICAgICBzdWJqLm9uTmV4dChzKTtcbiAgICAgICAgc3Viai5vbkNvbXBsZXRlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIHMub24oJ2Vycm9yJywgKGVycikgPT4gc3Viai5vbkVycm9yKGVycikpO1xuXG4gICAgICByZXR1cm4gcnguRGlzcG9zYWJsZS5lbXB0eTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByeC5PYnNlcnZhYmxlLmNyZWF0ZSgoc3ViaikgPT4ge1xuICAgIGxldCBycSA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIHJxID0gcmVxdWVzdChwYXRoT3JVcmwpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHN1Ymoub25FcnJvcihlKTtcbiAgICAgIHJldHVybiByeC5EaXNwb3NhYmxlLmVtcHR5O1xuICAgIH1cblxuICAgIHJxLm9uKCdyZXNwb25zZScsIChyZXNwKSA9PiB7XG4gICAgICBzdWJqLm9uTmV4dChyZXNwKTtcbiAgICAgIHN1Ymoub25Db21wbGV0ZWQoKTtcbiAgICB9KTtcblxuICAgIHJxLm9uKCdlcnJvcicsIChlcnIpID0+IHN1Ymoub25FcnJvcihlcnIpKTtcbiAgICByZXR1cm4gcnguRGlzcG9zYWJsZS5lbXB0eTtcbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVlc3RSeDtcbiJdfQ==
'use babel';
var ref = require('ref');
var refStruct = require('ref-struct');
var refArray = require('ref-array');
var ffi = require('ffi-atom-shell');
var intPtr = null;
var boolPtr = null;
var LASTINPUTINFO = null;
var OSVERSIONINFO = null;
var pOSVERSIONINFO = null;
var pLASTINPUTINFO = null;
var shell32 = null;
var user32 = null;
var kernel32 = null;
var dwmApi = null;
var setupWindowsLibs = function setupWindowsLibs() {
intPtr = intPtr || ref.refType(ref.types.int32);
boolPtr = boolPtr || ref.refType(ref.types.bool);
LASTINPUTINFO = LASTINPUTINFO || refStruct({
cbSize: ref.types.int32,
dwTime: ref.types.uint32 });
OSVERSIONINFO = OSVERSIONINFO || refStruct({
dwOSVersionInfoSize: ref.types.uint32,
dwMajorVersion: ref.types.uint32,
dwMinorVersion: ref.types.uint32,
dwBuildNumber: ref.types.uint32,
dwPlatformId: ref.types.uint32,
szCSDVersion: refArray(ref.types.byte, 128) });
pLASTINPUTINFO = pLASTINPUTINFO || ref.refType(LASTINPUTINFO);
pOSVERSIONINFO = pOSVERSIONINFO || ref.refType(OSVERSIONINFO);
shell32 = shell32 || ffi.Library('shell32', {
SHQueryUserNotificationState: ['int', [intPtr]]
});
user32 = user32 || ffi.Library('user32', {
GetLastInputInfo: ['int', [pLASTINPUTINFO]],
GetSystemMetrics: ['int', ['int']]
});
kernel32 = kernel32 || ffi.Library('kernel32', {
GetTickCount: ['uint32', []],
GetVersionExA: ['int', [pOSVERSIONINFO]],
GetLastError: ['uint32', []]
});
dwmApi = dwmApi || ffi.Library('dwmapi', {
DwmIsCompositionEnabled: ['int', [boolPtr]]
});
};
var logger = null;
exports = {
win32: {
shouldDisplayNotifications: function shouldDisplayNotifications() {
setupWindowsLibs();
logger = logger || require('./browser/logger').init(__filename);
var outVal = ref.alloc(intPtr);
var hr = shell32.SHQueryUserNotificationState(outVal);
if (hr !== 0) {
throw new Error('Failed to query notification state, hr is 0x' + hr.toString(16));
}
var result = outVal.get();
logger.debug('shouldDisplayNotifications: ' + result);
// https://msdn.microsoft.com/en-us/library/windows/desktop/bb762533(v=vs.85).aspx
if (result === 5) {
return true;
} // QUNS_ACCEPTS_NOTIFICATIONS
if (result === 7) {
return true;
} // QUNS_APP
return false;
},
getIdleTimeInMs: function getIdleTimeInMs() {
setupWindowsLibs();
logger = logger || require('./browser/logger').init(__filename);
var result = new LASTINPUTINFO();
result.cbSize = LASTINPUTINFO.size;
var failed = user32.GetLastInputInfo(result.ref()) === 0;
if (failed) {
throw new Error('Couldn\'t get idle time');
}
var ret = kernel32.GetTickCount() - result.dwTime;
logger.debug('Idle time is: ' + ret);
return ret;
},
getOSVersion: function getOSVersion() {
setupWindowsLibs();
logger = logger || require('./browser/logger').init(__filename);
var result = new OSVERSIONINFO();
result.dwOSVersionInfoSize = OSVERSIONINFO.size;
var failed = kernel32.GetVersionExA(result.ref()) === 0;
if (failed) {
var gle = kernel32.GetLastError();
throw new Error('Failed to get version information: 0x' + gle.toString(16));
}
return {
major: result.dwMajorVersion,
minor: result.dwMinorVersion,
build: result.dwBuildNumber };
},
// Public: Determine if this machine can support transparent windows.
// First check for DWM Composition, then see if we're in a remote session.
supportsTransparentWindows: function supportsTransparentWindows() {
setupWindowsLibs();
logger = logger || require('./browser/logger').init(__filename);
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa969518%28v=vs.85%29.aspx
var outVal = ref.alloc(boolPtr);
var hr = dwmApi.DwmIsCompositionEnabled(outVal);
// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724385%28v=vs.85%29.aspx
var remoteSession = 4096;
var isRemoteSession = user32.GetSystemMetrics(remoteSession);
if (hr !== 0) {
throw new Error('Failed to check DWM composition, hr is 0x' + hr.toString(16));
}
var isComposing = outVal.get();
logger.debug('DwmIsCompositionEnabled: ' + isComposing + ', Remote Session: ' + isRemoteSession);
return !!(isComposing && !isRemoteSession && !process.env.SLACK_DWM_DISABLED);
} },
darwin: {
shouldDisplayNotifications: function shouldDisplayNotifications() {
// TODO: Replace this with a call to NSApplication.currentSystemPresentationOptions
return true;
},
getIdleTimeInMs: function getIdleTimeInMs() {
// TODO: Replace with a call to CGEventSourceCounterForEventType
return 100000000;
},
getOSVersion: function getOSVersion() {
logger = logger || require('./browser/logger').init(__filename);
logger.error('Not implemented!!!!');
return { major: 1, minor: 0, build: 0 };
},
supportsTransparentWindows: function supportsTransparentWindows() {
return true;
} },
linux: {
shouldDisplayNotifications: function shouldDisplayNotifications() {
return true;
},
getIdleTimeInMs: function getIdleTimeInMs() {
return 100000000;
},
getOSVersion: function getOSVersion() {
logger = logger || require('./browser/logger').init(__filename);
logger.error('Not implemented!!!!');
return { major: 1, minor: 0, build: 0 };
},
supportsTransparentWindows: function supportsTransparentWindows() {
return true;
} }
};
module.exports = exports[process.platform];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L1VzZXJzL3BhdWwvY29kZS90aW55c3BlY2svc2xhY2std2luc3NiL3NyYy9uYXRpdmUtaW50ZXJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXLENBQUM7O0FBRVosSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN0QyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEMsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7O0FBRXBDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztBQUNsQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDbkIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO0FBQ3pCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQztBQUN6QixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDMUIsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQzFCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztBQUNuQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQzs7QUFFbEIsSUFBSSxnQkFBZ0IsR0FBRyxTQUFBLGdCQUFBLEdBQVc7QUFDaEMsUUFBTSxHQUFHLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEQsU0FBTyxHQUFHLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRWpELGVBQWEsR0FBRyxhQUFhLElBQUksU0FBUyxDQUFDO0FBQ3pDLFVBQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFD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Q0YsQ0FBQzs7QUFFRixNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMiLCJmaWxlIjoiQzovVXNlcnMvcGF1bC9jb2RlL3RpbnlzcGVjay9zbGFjay13aW5zc2Ivc3JjL25hdGl2ZS1pbnRlcm9wLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBiYWJlbCc7XG5cbmxldCByZWYgPSByZXF1aXJlKCdyZWYnKTtcbmxldCByZWZTdHJ1Y3QgPSByZXF1aXJlKCdyZWYtc3RydWN0Jyk7XG5sZXQgcmVmQXJyYXkgPSByZXF1aXJlKCdyZWYtYXJyYXknKTtcbmxldCBmZmkgPSByZXF1aXJlKCdmZmktYXRvbS1zaGVsbCcpO1xuXG52YXIgaW50UHRyID0gbnVsbDtcbnZhciBib29sUHRyID0gbnVsbDtcbnZhciBMQVNUSU5QVVRJTkZPID0gbnVsbDtcbnZhciBPU1ZFUlNJT05JTkZPID0gbnVsbDtcbnZhciBwT1NWRVJTSU9OSU5GTyA9IG51bGw7XG52YXIgcExBU1RJTlBVVElORk8gPSBudWxsO1xudmFyIHNoZWxsMzIgPSBudWxsO1xudmFyIHVzZXIzMiA9IG51bGw7XG52YXIga2VybmVsMzIgPSBudWxsO1xudmFyIGR3bUFwaSA9IG51bGw7XG5cbmxldCBzZXR1cFdpbmRvd3NMaWJzID0gZnVuY3Rpb24oKSB7XG4gIGludFB0ciA9IGludFB0ciB8fCByZWYucmVmVHlwZShyZWYudHlwZXMuaW50MzIpO1xuICBib29sUHRyID0gYm9vbFB0ciB8fCByZWYucmVmVHlwZShyZWYudHlwZXMuYm9vbCk7XG5cbiAgTEFTVElOUFVUSU5GTyA9IExBU1RJTlBVVElORk8gfHwgcmVmU3RydWN0KHtcbiAgICBjYlNpemU6IHJlZi50eXBlcy5pbnQzMixcbiAgICBkd1RpbWU6IHJlZi50eXBlcy51aW50MzIsXG4gIH0pO1xuXG4gIE9TVkVSU0lPTklORk8gPSBPU1ZFUlNJT05JTkZPIHx8IHJlZlN0cnVjdCh7XG4gICAgZHdPU1ZlcnNpb25JbmZvU2l6ZTogcmVmLnR5cGVzLnVpbnQzMixcbiAgICBkd01ham9yVmVyc2lvbjogcmVmLnR5cGVzLnVpbnQzMixcbiAgICBkd01pbm9yVmVyc2lvbjogcmVmLnR5cGVzLnVpbnQzMixcbiAgICBkd0J1aWxkTnVtYmVyOiByZWYudHlwZXMudWludDMyLFxuICAgIGR3UGxhdGZvcm1JZDogcmVmLnR5cGVzLnVpbnQzMixcbiAgICBzekNTRFZlcnNpb246IHJlZkFycmF5KHJlZi50eXBlcy5ieXRlLCAxMjgpLFxuICB9KTtcblxuICBwTEFTVElOUFVUSU5GTyA9IHBMQVNUSU5QVVRJTkZPIHx8IHJlZi5yZWZUeXBlKExBU1RJTlBVVElORk8pO1xuICBwT1NWRVJTSU9OSU5GTyA9IHBPU1ZFUlNJT05JTkZPIHx8IHJlZi5yZWZUeXBlKE9TVkVSU0lPTklORk8pO1xuXG4gIHNoZWxsMzIgPSBzaGVsbDMyIHx8IGZmaS5MaWJyYXJ5KCdzaGVsbDMyJywge1xuICAgICdTSFF1ZXJ5VXNlck5vdGlmaWNhdGlvblN0YXRlJzogWyAnaW50JywgWyBpbnRQdHIgXSBdXG4gIH0pO1xuXG4gIHVzZXIzMiA9IHVzZXIzMiB8fCBmZmkuTGlicmFyeSgndXNlcjMyJywge1xuICAgICdHZXRMYXN0SW5wdXRJbmZvJzogWyAnaW50JywgWyBwTEFTVElOUFVUSU5GTyBdIF0sXG4gICAgJ0dldFN5c3RlbU1ldHJpY3MnOiBbICdpbnQnLCBbICdpbnQnIF1dXG4gIH0pO1xuXG4gIGtlcm5lbDMyID0ga2VybmVsMzIgfHwgZmZpLkxpYnJhcnkoJ2tlcm5lbDMyJywge1xuICAgICdHZXRUaWNrQ291bnQnOiBbICd1aW50MzInLCBbXSBdLFxuICAgICdHZXRWZXJzaW9uRXhBJzogWyAnaW50JywgWyBwT1NWRVJTSU9OSU5GTyBdIF0sXG4gICAgJ0dldExhc3RFcnJvcic6IFsgJ3VpbnQzMicsIFtdIF1cbiAgfSk7XG5cbiAgZHdtQXBpID0gZHdtQXBpIHx8IGZmaS5MaWJyYXJ5KCdkd21hcGknLCB7XG4gICAgJ0R3bUlzQ29tcG9zaXRpb25FbmFibGVkJzogWyAnaW50JywgWyBib29sUHRyIF0gXVxuICB9KTtcbn07XG5cbnZhciBsb2dnZXIgPSBudWxsO1xuXG5leHBvcnRzID0ge1xuICAnd2luMzInOiB7XG5cbiAgICBzaG91bGREaXNwbGF5Tm90aWZpY2F0aW9uczogKCkgPT4ge1xuICAgICAgc2V0dXBXaW5kb3dzTGlicygpO1xuICAgICAgbG9nZ2VyID0gbG9nZ2VyIHx8IHJlcXVpcmUoJy4vYnJvd3Nlci9sb2dnZXInKS5pbml0KF9fZmlsZW5hbWUpO1xuXG4gICAgICBsZXQgb3V0VmFsID0gcmVmLmFsbG9jKGludFB0cik7XG4gICAgICBsZXQgaHIgPSBzaGVsbDMyLlNIUXVlcnlVc2VyTm90aWZpY2F0aW9uU3RhdGUob3V0VmFsKTtcblxuICAgICAgaWYgKGhyICE9PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHF1ZXJ5IG5vdGlmaWNhdGlvbiBzdGF0ZSwgaHIgaXMgMHgke2hyLnRvU3RyaW5nKDE2KX1gKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlc3VsdCA9IG91dFZhbC5nZXQoKTtcbiAgICAgIGxvZ2dlci5kZWJ1Zyhgc2hvdWxkRGlzcGxheU5vdGlmaWNhdGlvbnM6ICR7cmVzdWx0fWApO1xuXG4gICAgICAvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9iYjc2MjUzMyh2PXZzLjg1KS5hc3B4XG4gICAgICBpZiAocmVzdWx0ID09PSA1KSByZXR1cm4gdHJ1ZTsgICAgLy8gUVVOU19BQ0NFUFRTX05PVElGSUNBVElPTlNcbiAgICAgIGlmIChyZXN1bHQgPT09IDcpIHJldHVybiB0cnVlOyAgICAvLyBRVU5TX0FQUFxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcblxuICAgIGdldElkbGVUaW1lSW5NczogKCkgPT4ge1xuICAgICAgc2V0dXBXaW5kb3dzTGlicygpO1xuICAgICAgbG9nZ2VyID0gbG9nZ2VyIHx8IHJlcXVpcmUoJy4vYnJvd3Nlci9sb2dnZXInKS5pbml0KF9fZmlsZW5hbWUpO1xuXG4gICAgICBsZXQgcmVzdWx0ID0gbmV3IExBU1RJTlBVVElORk8oKTtcbiAgICAgIHJlc3VsdC5jYlNpemUgPSBMQVNUSU5QVVRJTkZPLnNpemU7XG5cbiAgICAgIGxldCBmYWlsZWQgPSAodXNlcjMyLkdldExhc3RJbnB1dEluZm8ocmVzdWx0LnJlZigpKSA9PT0gMCk7XG5cbiAgICAgIGlmIChmYWlsZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZ2V0IGlkbGUgdGltZVwiKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHJldCA9IGtlcm5lbDMyLkdldFRpY2tDb3VudCgpIC0gcmVzdWx0LmR3VGltZTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgSWRsZSB0aW1lIGlzOiAke3JldH1gKTtcblxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgZ2V0T1NWZXJzaW9uOiAoKSA9PiB7XG4gICAgICBzZXR1cFdpbmRvd3NMaWJzKCk7XG4gICAgICBsb2dnZXIgPSBsb2dnZXIgfHwgcmVxdWlyZSgnLi9icm93c2VyL2xvZ2dlcicpLmluaXQoX19maWxlbmFtZSk7XG5cbiAgICAgIGxldCByZXN1bHQgPSBuZXcgT1NWRVJTSU9OSU5GTygpO1xuICAgICAgcmVzdWx0LmR3T1NWZXJzaW9uSW5mb1NpemUgPSBPU1ZFUlNJT05JTkZPLnNpemU7XG5cbiAgICAgIGxldCBmYWlsZWQgPSAoa2VybmVsMzIuR2V0VmVyc2lvbkV4QShyZXN1bHQucmVmKCkpID09PSAwKTtcbiAgICAgIGlmIChmYWlsZWQpIHtcbiAgICAgICAgbGV0IGdsZSA9IGtlcm5lbDMyLkdldExhc3RFcnJvcigpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgdmVyc2lvbiBpbmZvcm1hdGlvbjogMHgke2dsZS50b1N0cmluZygxNil9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ham9yOiByZXN1bHQuZHdNYWpvclZlcnNpb24sXG4gICAgICAgIG1pbm9yOiByZXN1bHQuZHdNaW5vclZlcnNpb24sXG4gICAgICAgIGJ1aWxkOiByZXN1bHQuZHdCdWlsZE51bWJlcixcbiAgICAgIH07XG4gICAgfSxcblxuICAgIC8vIFB1YmxpYzogRGV0ZXJtaW5lIGlmIHRoaXMgbWFjaGluZSBjYW4gc3VwcG9ydCB0cmFuc3BhcmVudCB3aW5kb3dzLlxuICAgIC8vIEZpcnN0IGNoZWNrIGZvciBEV00gQ29tcG9zaXRpb24sIHRoZW4gc2VlIGlmIHdlJ3JlIGluIGEgcmVtb3RlIHNlc3Npb24uXG4gICAgc3VwcG9ydHNUcmFuc3BhcmVudFdpbmRvd3M6ICgpID0+IHtcbiAgICAgIHNldHVwV2luZG93c0xpYnMoKTtcbiAgICAgIGxvZ2dlciA9IGxvZ2dlciB8fCByZXF1aXJlKCcuL2Jyb3dzZXIvbG9nZ2VyJykuaW5pdChfX2ZpbGVuYW1lKTtcblxuICAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWE5Njk1MTglMjh2PXZzLjg1JTI5LmFzcHhcbiAgICAgIGxldCBvdXRWYWwgPSByZWYuYWxsb2MoYm9vbFB0cik7XG4gICAgICBsZXQgaHIgPSBkd21BcGkuRHdtSXNDb21wb3NpdGlvbkVuYWJsZWQob3V0VmFsKTtcblxuICAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvbXM3MjQzODUlMjh2PXZzLjg1JTI5LmFzcHhcbiAgICAgIGxldCByZW1vdGVTZXNzaW9uID0gMHgxMDAwO1xuICAgICAgbGV0IGlzUmVtb3RlU2Vzc2lvbiA9IHVzZXIzMi5HZXRTeXN0ZW1NZXRyaWNzKHJlbW90ZVNlc3Npb24pO1xuXG4gICAgICBpZiAoaHIgIT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gY2hlY2sgRFdNIGNvbXBvc2l0aW9uLCBociBpcyAweCR7aHIudG9TdHJpbmcoMTYpfWApO1xuICAgICAgfVxuXG4gICAgICBsZXQgaXNDb21wb3NpbmcgPSBvdXRWYWwuZ2V0KCk7XG4gICAgICBsb2dnZXIuZGVidWcoYER3bUlzQ29tcG9zaXRpb25FbmFibGVkOiAke2lzQ29tcG9zaW5nfSwgUmVtb3RlIFNlc3Npb246ICR7aXNSZW1vdGVTZXNzaW9ufWApO1xuXG4gICAgICByZXR1cm4gISEoaXNDb21wb3NpbmcgJiYgIWlzUmVtb3RlU2Vzc2lvbiAmJiAhcHJvY2Vzcy5lbnYuU0xBQ0tfRFdNX0RJU0FCTEVEKTtcbiAgICB9LFxuICB9LFxuXG4gICdkYXJ3aW4nOiB7XG5cbiAgICBzaG91bGREaXNwbGF5Tm90aWZpY2F0aW9uczogKCkgPT4ge1xuICAgICAgLy8gVE9ETzogUmVwbGFjZSB0aGlzIHdpdGggYSBjYWxsIHRvIE5TQXBwbGljYXRpb24uY3VycmVudFN5c3RlbVByZXNlbnRhdGlvbk9wdGlvbnNcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG5cbiAgICBnZXRJZGxlVGltZUluTXM6ICgpID0+IHtcbiAgICAgIC8vIFRPRE86IFJlcGxhY2Ugd2l0aCBhIGNhbGwgdG8gQ0dFdmVudFNvdXJjZUNvdW50ZXJGb3JFdmVudFR5cGVcbiAgICAgIHJldHVybiAxMDAwMDAwMDA7XG4gICAgfSxcblxuICAgIGdldE9TVmVyc2lvbjogKCkgPT4ge1xuICAgICAgbG9nZ2VyID0gbG9nZ2VyIHx8IHJlcXVpcmUoJy4vYnJvd3Nlci9sb2dnZXInKS5pbml0KF9fZmlsZW5hbWUpO1xuICAgICAgbG9nZ2VyLmVycm9yKFwiTm90IGltcGxlbWVudGVkISEhIVwiKTtcblxuICAgICAgcmV0dXJuIHsgbWFqb3I6IDEsIG1pbm9yOiAwLCBidWlsZDogMCB9O1xuICAgIH0sXG5cbiAgICBzdXBwb3J0c1RyYW5zcGFyZW50V2luZG93czogKCkgPT4gdHJ1ZSxcbiAgfSxcblxuICAnbGludXgnOiB7XG5cbiAgICBzaG91bGREaXNwbGF5Tm90aWZpY2F0aW9uczogKCkgPT4ge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIGdldElkbGVUaW1lSW5NczogKCkgPT4ge1xuICAgICAgcmV0dXJuIDEwMDAwMDAwMDtcbiAgICB9LFxuXG4gICAgZ2V0T1NWZXJzaW9uOiAoKSA9PiB7XG4gICAgICBsb2dnZXIgPSBsb2dnZXIgfHwgcmVxdWlyZSgnLi9icm93c2VyL2xvZ2dlcicpLmluaXQoX19maWxlbmFtZSk7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJOb3QgaW1wbGVtZW50ZWQhISEhXCIpO1xuXG4gICAgICByZXR1cm4geyBtYWpvcjogMSwgbWlub3I6IDAsIGJ1aWxkOiAwIH07XG4gICAgfSxcblxuICAgIHN1cHBvcnRzVHJhbnNwYXJlbnRXaW5kb3dzOiAoKSA9PiB0cnVlLFxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbcHJvY2Vzcy5wbGF0Zm9ybV07XG4iXX0=
'use babel';
var rx = require('rx');
var _ = require('underscore-plus');
var ipc = require('ipc');
module.exports = _.extend({}, ipc, {
listen: function listen(channel) {
return rx.Observable.create(function (subj) {
var listener = function listener(event, args) {
return subj.onNext(args);
};
ipc.on(channel, listener);
return rx.Disposable.create(function () {
return ipc.removeListener(channel, listener);
});
});
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L1VzZXJzL3BhdWwvY29kZS90aW55c3BlY2svc2xhY2std2luc3NiL3NyYy9icm93c2VyL2lwYy1yeC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXLENBQUM7O0FBRVosSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ25DLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzs7QUFFekIsTUFBTSxDQUFDLE9BQU8sR0FDZCxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUU7QUFDaEIsUUFBTSxFQUFFLFNBQUEsTUFBQSxDQUFDLE9BQU8sRUFBSztBQUNuQixXQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFLO0FBQ3BDLFVBQUksUUFBUSxHQUNWLFNBQUEsUUFBQSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUE7QUFEWixlQUNpQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO09BQUEsQ0FBQzs7QUFFckMsU0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7O0FBRTFCLGFBQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBQTtBQUMxQixlQUFBLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFBO09BQUEsQ0FBQyxDQUFDO0tBQzFDLENBQUMsQ0FBQztHQUNKO0NBQ0YsQ0FBQyxDQUFDIiwiZmlsZSI6IkM6L1VzZXJzL3BhdWwvY29kZS90aW55c3BlY2svc2xhY2std2luc3NiL3NyYy9icm93c2VyL2lwYy1yeC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgYmFiZWwnO1xuXG5sZXQgcnggPSByZXF1aXJlKCdyeCcpO1xubGV0IF8gPSByZXF1aXJlKCd1bmRlcnNjb3JlLXBsdXMnKTtcbmxldCBpcGMgPSByZXF1aXJlKCdpcGMnKTtcblxubW9kdWxlLmV4cG9ydHMgPVxuXy5leHRlbmQoe30sIGlwYywge1xuICBsaXN0ZW46IChjaGFubmVsKSA9PiB7XG4gICAgcmV0dXJuIHJ4Lk9ic2VydmFibGUuY3JlYXRlKChzdWJqKSA9PiB7XG4gICAgICBsZXQgbGlzdGVuZXIgPVxuICAgICAgICAoZXZlbnQsIGFyZ3MpID0+IHN1Ymoub25OZXh0KGFyZ3MpO1xuXG4gICAgICBpcGMub24oY2hhbm5lbCwgbGlzdGVuZXIpO1xuXG4gICAgICByZXR1cm4gcnguRGlzcG9zYWJsZS5jcmVhdGUoKCkgPT5cbiAgICAgICAgaXBjLnJlbW92ZUxpc3RlbmVyKGNoYW5uZWwsIGxpc3RlbmVyKSk7XG4gICAgfSk7XG4gIH1cbn0pO1xuIl19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment