summaryrefslogtreecommitdiffstats
path: root/krebs
diff options
context:
space:
mode:
Diffstat (limited to 'krebs')
-rw-r--r--krebs/3modules/default.nix1
-rw-r--r--krebs/3modules/lass/default.nix9
-rw-r--r--krebs/3modules/newsbot-js.nix89
-rw-r--r--krebs/3modules/nginx.nix58
-rw-r--r--krebs/5pkgs/newsbot-js/default.nix60
-rw-r--r--krebs/5pkgs/newsbot-js/packages.nix1442
6 files changed, 1651 insertions, 8 deletions
diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix
index 77fb3d61c..be530d46f 100644
--- a/krebs/3modules/default.nix
+++ b/krebs/3modules/default.nix
@@ -21,6 +21,7 @@ let
./go.nix
./iptables.nix
./lib.nix
+ ./newsbot-js.nix
./nginx.nix
./nixpkgs.nix
./on-failure.nix
diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix
index 4bf10ac56..148460735 100644
--- a/krebs/3modules/lass/default.nix
+++ b/krebs/3modules/lass/default.nix
@@ -19,6 +19,7 @@ with config.krebs.lib;
addrs6 = ["42:0000:0000:0000:0000:0000:d15f:1233"];
aliases = [
"dishfire.retiolum"
+ "dishfire.r"
];
tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY-----
@@ -50,8 +51,10 @@ with config.krebs.lib;
addrs6 = ["42:941e:2816:35f4:5c5e:206b:3f0b:f763"];
aliases = [
"echelon.retiolum"
+ "echelon.r"
"cgit.echelon.retiolum"
"go.retiolum"
+ "go.r"
];
tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY-----
@@ -83,6 +86,7 @@ with config.krebs.lib;
addrs6 = ["42:0000:0000:0000:0000:0000:0000:15ab"];
aliases = [
"prism.retiolum"
+ "prism.r"
"cgit.prism.retiolum"
];
tinc.pubkey = ''
@@ -114,6 +118,7 @@ with config.krebs.lib;
addrs6 = ["42:422a:194f:ff3b:e196:2f82:5cf5:bc00"];
aliases = [
"fastpoke.retiolum"
+ "fastpoke.r"
"cgit.fastpoke.retiolum"
];
tinc.pubkey = ''
@@ -144,6 +149,7 @@ with config.krebs.lib;
addrs6 = ["42:941e:2816:35f4:5c5e:206b:3f0b:f762"];
aliases = [
"cloudkrebs.retiolum"
+ "cloudkrebs.r"
"cgit.cloudkrebs.retiolum"
];
tinc.pubkey = ''
@@ -173,6 +179,7 @@ with config.krebs.lib;
addrs6 = ["42:dc25:60cf:94ef:759b:d2b6:98a9:2e56"];
aliases = [
"uriel.retiolum"
+ "uriel.r"
"cgit.uriel.retiolum"
];
tinc.pubkey = ''
@@ -203,6 +210,7 @@ with config.krebs.lib;
addrs6 = ["42:0:0:0:0:0:0:dea7"];
aliases = [
"mors.retiolum"
+ "mors.r"
"cgit.mors.retiolum"
];
tinc.pubkey = ''
@@ -229,6 +237,7 @@ with config.krebs.lib;
addrs6 = ["42:0:0:0:0:0:0:7105"];
aliases = [
"helios.retiolum"
+ "helios.r"
"cgit.helios.retiolum"
];
tinc.pubkey = ''
diff --git a/krebs/3modules/newsbot-js.nix b/krebs/3modules/newsbot-js.nix
new file mode 100644
index 000000000..b58c555e7
--- /dev/null
+++ b/krebs/3modules/newsbot-js.nix
@@ -0,0 +1,89 @@
+{ config, lib, pkgs, ... }:
+
+with builtins;
+with lib;
+
+let
+ inherit (config.krebs.lib) genid;
+
+ cfg = config.krebs.newsbot-js;
+
+ out = {
+ options.krebs.newsbot-js = api;
+ config = mkIf cfg.enable imp;
+ };
+
+ api = {
+ enable = mkEnableOption "Enable krebs newsbot";
+ ircServer = mkOption {
+ type = types.str;
+ default = "echelon.retiolum";
+ description = "to which server the bot should connect";
+ };
+ channel = mkOption {
+ type = types.str;
+ default = "#news";
+ description = "post the news in this channel";
+ };
+ masterNick = mkOption {
+ type = types.str;
+ default = "knews";
+ description = "nickname of the master bot";
+ };
+ feeds = mkOption {
+ type = types.path;
+ description = ''
+ file with feeds to post
+ format:
+ $nick|$feedURI
+ '';
+ };
+ urlShortenerHost = mkOption {
+ type = types.str;
+ default = "echelon";
+ description = "what server to use for url shortening, host";
+ };
+ urlShortenerPort = mkOption {
+ type = types.str;
+ default = "80";
+ description = "what server to use for url shortening, port";
+ };
+ };
+
+ imp = {
+ users.extraUsers.newsbot-js = {
+ name = "newsbot-js";
+ uid = genid "newsbot-js";
+ description = "newsbot-js user";
+ home = "/var/empty";
+ };
+
+ systemd.services.newsbot-js = {
+ description = "krebs newsbot";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+
+ path = with pkgs; [
+ newsbot-js
+ ];
+
+ environment = {
+ irc_server = cfg.ircServer;
+ master_nick = cfg.masterNick;
+ news_channel = cfg.channel;
+ feeds_file = cfg.feeds;
+ url_shortener_host = cfg.urlShortenerHost;
+ url_shortener_port = cfg.urlShortenerPort;
+ };
+
+ restartIfChanged = true;
+
+ serviceConfig = {
+ User = "newsbot-js";
+ Restart = "always";
+ ExecStart = "${pkgs.newsbot-js}/bin/newsbot";
+ };
+ };
+ };
+
+in out
diff --git a/krebs/3modules/nginx.nix b/krebs/3modules/nginx.nix
index 8d0704e8c..816c2ff69 100644
--- a/krebs/3modules/nginx.nix
+++ b/krebs/3modules/nginx.nix
@@ -54,6 +54,34 @@ let
type = with types; string;
default = "";
};
+ ssl = mkOption {
+ type = with types; submodule ({
+ options = {
+ enable = mkEnableOption "ssl";
+ certificate = mkOption {
+ type = str;
+ };
+ certificate_key = mkOption {
+ type = str;
+ };
+ #TODO: check for valid cipher
+ ciphers = mkOption {
+ type = str;
+ default = "AES128+EECDH:AES128+EDH";
+ };
+ prefer_server_ciphers = mkOption {
+ type = bool;
+ default = true;
+ };
+ protocols = mkOption {
+ type = listOf (enum [ "SSLv2" "SSLv3" "TLSv1" "TLSv1.1" "TLSv1.2" ]);
+ default = [ "TLSv1.1" "TLSv1.2" ];
+
+ };
+ };
+ });
+ default = {};
+ };
};
});
default = {};
@@ -89,14 +117,28 @@ let
}
'';
- to-server = { server-names, listen, locations, extraConfig, ... }: ''
- server {
- ${concatMapStringsSep "\n" (x: "listen ${x};") listen}
- server_name ${toString server-names};
- ${indent extraConfig}
- ${indent (concatMapStrings to-location locations)}
- }
- '';
+ to-server = { server-names, listen, locations, extraConfig, ssl, ... }:
+ let
+ _extraConfig = if ssl.enable then
+ extraConfig + ''
+ ssl_certificate ${ssl.certificate};
+ ssl_certificate_key ${ssl.certificate_key};
+ ${optionalString ssl.prefer_server_ciphers "ssl_prefer_server_ciphers On;"}
+ ssl_ciphers ${ssl.ciphers};
+ ssl_protocols ${toString ssl.protocols};
+ ''
+ else
+ extraConfig
+ ;
+
+ in ''
+ server {
+ ${concatMapStringsSep "\n" (x: "listen ${x};") (listen ++ optional ssl.enable "443 ssl")}
+ server_name ${toString server-names};
+ ${indent _extraConfig}
+ ${indent (concatMapStrings to-location locations)}
+ }
+ '';
in
out
diff --git a/krebs/5pkgs/newsbot-js/default.nix b/krebs/5pkgs/newsbot-js/default.nix
new file mode 100644
index 000000000..9e4a51306
--- /dev/null
+++ b/krebs/5pkgs/newsbot-js/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodePackages, nodejs }:
+
+with lib;
+
+let
+ np = nodePackages.override {
+ generated = ./packages.nix;
+ self = np;
+ };
+
+ node_env = buildEnv {
+ name = "node_env";
+ paths = [
+ np.feedparser
+ np.form-data
+ np.irc
+ np.request
+ np.shell-quote
+ ];
+ pathsToLink = [ "/lib" ];
+ ignoreCollisions = true;
+ };
+
+in nodePackages.buildNodePackage {
+ name = "newsbot-js";
+
+ src = fetchgit {
+ url = "http://cgit.prism/newsbot-js/";
+ rev = "09e01639be4ea9691cf5b33f7d9057b68ac98079";
+ sha256 = "28ffbed66c2efcd194c47823c7d5d5533c80852fc0cf9d9d4ee609c71d50c142";
+ };
+
+ phases = [
+ "unpackPhase"
+ "installPhase"
+ ];
+
+ deps = (filter (v: nixType v == "derivation") (attrValues np));
+
+ buildInputs = [
+ nodejs
+ makeWrapper
+ ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ cp newsbot.js $out/
+ cat > $out/newsbot << EOF
+ ${nodejs}/bin/node $out/newsbot.js
+ EOF
+ chmod +x $out/newsbot
+
+ wrapProgram $out/newsbot \
+ --prefix NODE_PATH : ${node_env}/lib/node_modules
+
+ ln -s $out/newsbot /$out/bin/newsbot
+ '';
+
+}
diff --git a/krebs/5pkgs/newsbot-js/packages.nix b/krebs/5pkgs/newsbot-js/packages.nix
new file mode 100644
index 000000000..982a9d55c
--- /dev/null
+++ b/krebs/5pkgs/newsbot-js/packages.nix
@@ -0,0 +1,1442 @@
+{ self, fetchurl, fetchgit ? null, lib }:
+
+{
+ by-spec."addressparser"."~0.1.3" =
+ self.by-version."addressparser"."0.1.3";
+ by-version."addressparser"."0.1.3" = self.buildNodePackage {
+ name = "addressparser-0.1.3";
+ version = "0.1.3";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/addressparser/-/addressparser-0.1.3.tgz";
+ name = "addressparser-0.1.3.tgz";
+ sha1 = "9e9ab43d257e1ae784e1df5f580c9f5240f58874";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."ansi-color"."0.2.1" =
+ self.by-version."ansi-color"."0.2.1";
+ by-version."ansi-color"."0.2.1" = self.buildNodePackage {
+ name = "ansi-color-0.2.1";
+ version = "0.2.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz";
+ name = "ansi-color-0.2.1.tgz";
+ sha1 = "3e75c037475217544ed763a8db5709fa9ae5bf9a";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."ansi-regex"."^2.0.0" =
+ self.by-version."ansi-regex"."2.0.0";
+ by-version."ansi-regex"."2.0.0" = self.buildNodePackage {
+ name = "ansi-regex-2.0.0";
+ version = "2.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz";
+ name = "ansi-regex-2.0.0.tgz";
+ sha1 = "c5061b6e0ef8a81775e50f5d66151bf6bf371107";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."ansi-styles"."^2.1.0" =
+ self.by-version."ansi-styles"."2.1.0";
+ by-version."ansi-styles"."2.1.0" = self.buildNodePackage {
+ name = "ansi-styles-2.1.0";
+ version = "2.1.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz";
+ name = "ansi-styles-2.1.0.tgz";
+ sha1 = "990f747146927b559a932bf92959163d60c0d0e2";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."array-filter"."~0.0.0" =
+ self.by-version."array-filter"."0.0.1";
+ by-version."array-filter"."0.0.1" = self.buildNodePackage {
+ name = "array-filter-0.0.1";
+ version = "0.0.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz";
+ name = "array-filter-0.0.1.tgz";
+ sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."array-indexofobject"."~0.0.1" =
+ self.by-version."array-indexofobject"."0.0.1";
+ by-version."array-indexofobject"."0.0.1" = self.buildNodePackage {
+ name = "array-indexofobject-0.0.1";
+ version = "0.0.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz";
+ name = "array-indexofobject-0.0.1.tgz";
+ sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."array-map"."~0.0.0" =
+ self.by-version."array-map"."0.0.0";
+ by-version."array-map"."0.0.0" = self.buildNodePackage {
+ name = "array-map-0.0.0";
+ version = "0.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz";
+ name = "array-map-0.0.0.tgz";
+ sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."array-reduce"."~0.0.0" =
+ self.by-version."array-reduce"."0.0.0";
+ by-version."array-reduce"."0.0.0" = self.buildNodePackage {
+ name = "array-reduce-0.0.0";
+ version = "0.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz";
+ name = "array-reduce-0.0.0.tgz";
+ sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."asn1"."0.1.11" =
+ self.by-version."asn1"."0.1.11";
+ by-version."asn1"."0.1.11" = self.buildNodePackage {
+ name = "asn1-0.1.11";
+ version = "0.1.11";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
+ name = "asn1-0.1.11.tgz";
+ sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."assert-plus"."^0.1.5" =
+ self.by-version."assert-plus"."0.1.5";
+ by-version."assert-plus"."0.1.5" = self.buildNodePackage {
+ name = "assert-plus-0.1.5";
+ version = "0.1.5";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
+ name = "assert-plus-0.1.5.tgz";
+ sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."async"."^1.4.0" =
+ self.by-version."async"."1.4.2";
+ by-version."async"."1.4.2" = self.buildNodePackage {
+ name = "async-1.4.2";
+ version = "1.4.2";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/async/-/async-1.4.2.tgz";
+ name = "async-1.4.2.tgz";
+ sha1 = "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."aws-sign2"."~0.5.0" =
+ self.by-version."aws-sign2"."0.5.0";
+ by-version."aws-sign2"."0.5.0" = self.buildNodePackage {
+ name = "aws-sign2-0.5.0";
+ version = "0.5.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
+ name = "aws-sign2-0.5.0.tgz";
+ sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."bl"."~1.0.0" =
+ self.by-version."bl"."1.0.0";
+ by-version."bl"."1.0.0" = self.buildNodePackage {
+ name = "bl-1.0.0";
+ version = "1.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/bl/-/bl-1.0.0.tgz";
+ name = "bl-1.0.0.tgz";
+ sha1 = "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5";
+ };
+ deps = {
+ "readable-stream-2.0.2" = self.by-version."readable-stream"."2.0.2";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."bluebird"."^2.9.30" =
+ self.by-version."bluebird"."2.10.2";
+ by-version."bluebird"."2.10.2" = self.buildNodePackage {
+ name = "bluebird-2.10.2";
+ version = "2.10.2";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz";
+ name = "bluebird-2.10.2.tgz";
+ sha1 = "024a5517295308857f14f91f1106fc3b555f446b";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."boom"."2.x.x" =
+ self.by-version."boom"."2.9.0";
+ by-version."boom"."2.9.0" = self.buildNodePackage {
+ name = "boom-2.9.0";
+ version = "2.9.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/boom/-/boom-2.9.0.tgz";
+ name = "boom-2.9.0.tgz";
+ sha1 = "a54b7fd2fee477d351bf9e371680cbea67f12715";
+ };
+ deps = {
+ "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."boom"."^2.8.x" =
+ self.by-version."boom"."2.9.0";
+ by-spec."caseless"."~0.11.0" =
+ self.by-version."caseless"."0.11.0";
+ by-version."caseless"."0.11.0" = self.buildNodePackage {
+ name = "caseless-0.11.0";
+ version = "0.11.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz";
+ name = "caseless-0.11.0.tgz";
+ sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."chalk"."^1.0.0" =
+ self.by-version."chalk"."1.1.1";
+ by-version."chalk"."1.1.1" = self.buildNodePackage {
+ name = "chalk-1.1.1";
+ version = "1.1.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz";
+ name = "chalk-1.1.1.tgz";
+ sha1 = "509afb67066e7499f7eb3535c77445772ae2d019";
+ };
+ deps = {
+ "ansi-styles-2.1.0" = self.by-version."ansi-styles"."2.1.0";
+ "escape-string-regexp-1.0.3" = self.by-version."escape-string-regexp"."1.0.3";
+ "has-ansi-2.0.0" = self.by-version."has-ansi"."2.0.0";
+ "strip-ansi-3.0.0" = self.by-version."strip-ansi"."3.0.0";
+ "supports-color-2.0.0" = self.by-version."supports-color"."2.0.0";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."combined-stream"."^1.0.5" =
+ self.by-version."combined-stream"."1.0.5";
+ by-version."combined-stream"."1.0.5" = self.buildNodePackage {
+ name = "combined-stream-1.0.5";
+ version = "1.0.5";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz";
+ name = "combined-stream-1.0.5.tgz";
+ sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009";
+ };
+ deps = {
+ "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."combined-stream"."~1.0.1" =
+ self.by-version."combined-stream"."1.0.5";
+ by-spec."commander"."^2.8.1" =
+ self.by-version."commander"."2.8.1";
+ by-version."commander"."2.8.1" = self.buildNodePackage {
+ name = "commander-2.8.1";
+ version = "2.8.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz";
+ name = "commander-2.8.1.tgz";
+ sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4";
+ };
+ deps = {
+ "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."core-util-is"."~1.0.0" =
+ self.by-version."core-util-is"."1.0.1";
+ by-version."core-util-is"."1.0.1" = self.buildNodePackage {
+ name = "core-util-is-1.0.1";
+ version = "1.0.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz";
+ name = "core-util-is-1.0.1.tgz";
+ sha1 = "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."cryptiles"."2.x.x" =
+ self.by-version."cryptiles"."2.0.5";
+ by-version."cryptiles"."2.0.5" = self.buildNodePackage {
+ name = "cryptiles-2.0.5";
+ version = "2.0.5";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
+ name = "cryptiles-2.0.5.tgz";
+ sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
+ };
+ deps = {
+ "boom-2.9.0" = self.by-version."boom"."2.9.0";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."ctype"."0.5.3" =
+ self.by-version."ctype"."0.5.3";
+ by-version."ctype"."0.5.3" = self.buildNodePackage {
+ name = "ctype-0.5.3";
+ version = "0.5.3";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz";
+ name = "ctype-0.5.3.tgz";
+ sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."delayed-stream"."~1.0.0" =
+ self.by-version."delayed-stream"."1.0.0";
+ by-version."delayed-stream"."1.0.0" = self.buildNodePackage {
+ name = "delayed-stream-1.0.0";
+ version = "1.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ name = "delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."escape-string-regexp"."^1.0.2" =
+ self.by-version."escape-string-regexp"."1.0.3";
+ by-version."escape-string-regexp"."1.0.3" = self.buildNodePackage {
+ name = "escape-string-regexp-1.0.3";
+ version = "1.0.3";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz";
+ name = "escape-string-regexp-1.0.3.tgz";
+ sha1 = "9e2d8b25bc2555c3336723750e03f099c2735bb5";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."extend"."~3.0.0" =
+ self.by-version."extend"."3.0.0";
+ by-version."extend"."3.0.0" = self.buildNodePackage {
+ name = "extend-3.0.0";
+ version = "3.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/extend/-/extend-3.0.0.tgz";
+ name = "extend-3.0.0.tgz";
+ sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."feedparser"."*" =
+ self.by-version."feedparser"."1.1.3";
+ by-version."feedparser"."1.1.3" = self.buildNodePackage {
+ name = "feedparser-1.1.3";
+ version = "1.1.3";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/feedparser/-/feedparser-1.1.3.tgz";
+ name = "feedparser-1.1.3.tgz";
+ sha1 = "0b725f6b4cbe4b26d518baec0d010ad020156c8b";
+ };
+ deps = {
+ "sax-0.6.1" = self.by-version."sax"."0.6.1";
+ "addressparser-0.1.3" = self.by-version."addressparser"."0.1.3";
+ "array-indexofobject-0.0.1" = self.by-version."array-indexofobject"."0.0.1";
+ "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ "feedparser" = self.by-version."feedparser"."1.1.3";
+ by-spec."forever-agent"."~0.6.0" =
+ self.by-version."forever-agent"."0.6.1";
+ by-version."forever-agent"."0.6.1" = self.buildNodePackage {
+ name = "forever-agent-0.6.1";
+ version = "0.6.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+ name = "forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."form-data"."*" =
+ self.by-version."form-data"."1.0.0-rc3";
+ by-version."form-data"."1.0.0-rc3" = self.buildNodePackage {
+ name = "form-data-1.0.0-rc3";
+ version = "1.0.0-rc3";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz";
+ name = "form-data-1.0.0-rc3.tgz";
+ sha1 = "d35bc62e7fbc2937ae78f948aaa0d38d90607577";
+ };
+ deps = {
+ "async-1.4.2" = self.by-version."async"."1.4.2";
+ "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5";
+ "mime-types-2.1.7" = self.by-version."mime-types"."2.1.7";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ "form-data" = self.by-version."form-data"."1.0.0-rc3";
+ by-spec."form-data"."~1.0.0-rc1" =
+ self.by-version."form-data"."1.0.0-rc3";
+ by-spec."generate-function"."^2.0.0" =
+ self.by-version."generate-function"."2.0.0";
+ by-version."generate-function"."2.0.0" = self.buildNodePackage {
+ name = "generate-function-2.0.0";
+ version = "2.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz";
+ name = "generate-function-2.0.0.tgz";
+ sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."generate-object-property"."^1.1.0" =
+ self.by-version."generate-object-property"."1.2.0";
+ by-version."generate-object-property"."1.2.0" = self.buildNodePackage {
+ name = "generate-object-property-1.2.0";
+ version = "1.2.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
+ name = "generate-object-property-1.2.0.tgz";
+ sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+ };
+ deps = {
+ "is-property-1.0.2" = self.by-version."is-property"."1.0.2";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."graceful-readlink".">= 1.0.0" =
+ self.by-version."graceful-readlink"."1.0.1";
+ by-version."graceful-readlink"."1.0.1" = self.buildNodePackage {
+ name = "graceful-readlink-1.0.1";
+ version = "1.0.1";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+ name = "graceful-readlink-1.0.1.tgz";
+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."har-validator"."^1.6.1" =
+ self.by-version."har-validator"."1.8.0";
+ by-version."har-validator"."1.8.0" = self.buildNodePackage {
+ name = "har-validator-1.8.0";
+ version = "1.8.0";
+ bin = true;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz";
+ name = "har-validator-1.8.0.tgz";
+ sha1 = "d83842b0eb4c435960aeb108a067a3aa94c0eeb2";
+ };
+ deps = {
+ "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2";
+ "chalk-1.1.1" = self.by-version."chalk"."1.1.1";
+ "commander-2.8.1" = self.by-version."commander"."2.8.1";
+ "is-my-json-valid-2.12.2" = self.by-version."is-my-json-valid"."2.12.2";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."has-ansi"."^2.0.0" =
+ self.by-version."has-ansi"."2.0.0";
+ by-version."has-ansi"."2.0.0" = self.buildNodePackage {
+ name = "has-ansi-2.0.0";
+ version = "2.0.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+ name = "has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ deps = {
+ "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."hashish"."~0.0.4" =
+ self.by-version."hashish"."0.0.4";
+ by-version."hashish"."0.0.4" = self.buildNodePackage {
+ name = "hashish-0.0.4";
+ version = "0.0.4";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz";
+ name = "hashish-0.0.4.tgz";
+ sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554";
+ };
+ deps = {
+ "traverse-0.6.6" = self.by-version."traverse"."0.6.6";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."hawk"."~3.1.0" =
+ self.by-version."hawk"."3.1.0";
+ by-version."hawk"."3.1.0" = self.buildNodePackage {
+ name = "hawk-3.1.0";
+ version = "3.1.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz";
+ name = "hawk-3.1.0.tgz";
+ sha1 = "8a13ae19977ec607602f3f0b9fd676f18c384e44";
+ };
+ deps = {
+ "hoek-2.16.3" = self.by-version."hoek"."2.16.3";
+ "boom-2.9.0" = self.by-version."boom"."2.9.0";
+ "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5";
+ "sntp-1.0.9" = self.by-version."sntp"."1.0.9";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."hoek"."2.x.x" =
+ self.by-version."hoek"."2.16.3";
+ by-version."hoek"."2.16.3" = self.buildNodePackage {
+ name = "hoek-2.16.3";
+ version = "2.16.3";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
+ name = "hoek-2.16.3.tgz";
+ sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
+ };
+ deps = {
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."http-signature"."~0.11.0" =
+ self.by-version."http-signature"."0.11.0";
+ by-version."http-signature"."0.11.0" = self.buildNodePackage {
+ name = "http-signature-0.11.0";
+ version = "0.11.0";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz";
+ name = "http-signature-0.11.0.tgz";
+ sha1 = "1796cf67a001ad5cd6849dca0991485f09089fe6";
+ };
+ deps = {
+ "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5";
+ "asn1-0.1.11" = self.by-version."asn1"."0.1.11";
+ "ctype-0.5.3" = self.by-version."ctype"."0.5.3";
+ };
+ optionalDependencies = {
+ };
+ peerDependencies = [];
+ os = [ ];
+ cpu = [ ];
+ };
+ by-spec."iconv"."~2.1.6" =
+ self.by-version."iconv"."2.1.11";
+ by-version."iconv"."2.1.11" = self.buildNodePackage {
+ name = "iconv-2.1.11";
+ version = "2.1.11";
+ bin = false;
+ src = fetchurl {
+ url = "http://registry.npmjs.org/iconv/-/iconv-2.1.11.tgz";
+ name = "iconv-2.1.11.tgz";
+ sha1 = "5f5da93a643506f5ceaa8bd9c78d6174f8b9351a";
+ };
+ deps = {
+ "nan-2.0.9" = s