summary refs log tree commit diff
path: root/pkgs/development/web/remarkjs
diff options
context:
space:
mode:
authorSander van der Burg <svanderburg@gmail.com>2016-09-02 13:00:16 +0000
committerSander van der Burg <svanderburg@gmail.com>2016-09-02 13:02:37 +0000
commitfcbaf2bc23dd68b13ae8a93fe752766f3c73aee7 (patch)
tree14c300177cbb83d52a301865ba2adb587b92e9ea /pkgs/development/web/remarkjs
parent4cac903456cc3ab838e8c5be79525b53104ac02b (diff)
downloadnixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.tar
nixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.tar.gz
nixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.tar.bz2
nixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.tar.lz
nixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.tar.xz
nixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.tar.zst
nixlib-fcbaf2bc23dd68b13ae8a93fe752766f3c73aee7.zip
remarkjs: use node2nix generated expressions
(cherry picked from commit 0f591992df1e7abe8e324e53a8970e20afac267d)
Diffstat (limited to 'pkgs/development/web/remarkjs')
-rw-r--r--pkgs/development/web/remarkjs/default.nix15
-rw-r--r--pkgs/development/web/remarkjs/generate.sh3
-rw-r--r--pkgs/development/web/remarkjs/node-packages.nix2954
-rw-r--r--pkgs/development/web/remarkjs/nodepkgs.nix16
-rw-r--r--pkgs/development/web/remarkjs/pkgs.json12
5 files changed, 2994 insertions, 6 deletions
diff --git a/pkgs/development/web/remarkjs/default.nix b/pkgs/development/web/remarkjs/default.nix
index 180fed4e8971..03cbf74cbad3 100644
--- a/pkgs/development/web/remarkjs/default.nix
+++ b/pkgs/development/web/remarkjs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, fetchurl, nodejs, nodePackages }:
+{ stdenv, lib, fetchgit, fetchurl, nodejs, phantomjs2, pkgs }:
 
 with lib;
 
@@ -10,6 +10,11 @@ let
     rev = "10b9500b67983f0a9c42d8ce8bf8e8c469f7078c";
     sha256 = "1yy8by15kfklw8lwh17z1swpj067q0skjjih12yawbryraig41m0";
   };
+  
+  nodePackages = import ./nodepkgs.nix {
+    inherit pkgs;
+    inherit (stdenv) system;
+  };
 
 in stdenv.mkDerivation rec {
   name = "remarkjs-${version}";
@@ -21,20 +26,18 @@ in stdenv.mkDerivation rec {
     sha256 = "1a2il6aa0g9cnig56ykmq8lr626pbxlsllk6js41h6gcn214rw60";
   };
 
-  buildInputs = with nodePackages; [
-    nodejs
+  buildInputs = [ nodejs phantomjs2 ] ++ (with nodePackages; [
     marked
     browserify
     uglify-js
     less
     mocha
-    mocha-phantomjs
-    phantomjs
+    #mocha-phantomjs
     should
     sinon
     jshint
     shelljs
-  ];
+  ]);
 
   configurePhase = ''
     mkdir -p node_modules/.bin
diff --git a/pkgs/development/web/remarkjs/generate.sh b/pkgs/development/web/remarkjs/generate.sh
new file mode 100644
index 000000000000..63d43c6773f0
--- /dev/null
+++ b/pkgs/development/web/remarkjs/generate.sh
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+node2nix -i pkgs.json -c nodepkgs.nix -e ../../node-packages/node-env.nix
diff --git a/pkgs/development/web/remarkjs/node-packages.nix b/pkgs/development/web/remarkjs/node-packages.nix
new file mode 100644
index 000000000000..f6b9f901ec8f
--- /dev/null
+++ b/pkgs/development/web/remarkjs/node-packages.nix
@@ -0,0 +1,2954 @@
+# This file has been generated by node2nix 1.0.1. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit}:
+
+let
+  sources = {
+    "JSONStream-1.1.4" = {
+      name = "JSONStream";
+      packageName = "JSONStream";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/JSONStream/-/JSONStream-1.1.4.tgz";
+        sha1 = "be11a495938e882d277773d11986f3974a8ba37a";
+      };
+    };
+    "assert-1.3.0" = {
+      name = "assert";
+      packageName = "assert";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz";
+        sha1 = "03939a622582a812cc202320a0b9a56c9b815849";
+      };
+    };
+    "browser-pack-6.0.1" = {
+      name = "browser-pack";
+      packageName = "browser-pack";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.1.tgz";
+        sha1 = "779887c792eaa1f64a46a22c8f1051cdcd96755f";
+      };
+    };
+    "browser-resolve-1.11.2" = {
+      name = "browser-resolve";
+      packageName = "browser-resolve";
+      version = "1.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz";
+        sha1 = "8ff09b0a2c421718a1051c260b32e48f442938ce";
+      };
+    };
+    "browserify-zlib-0.1.4" = {
+      name = "browserify-zlib";
+      packageName = "browserify-zlib";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz";
+        sha1 = "bb35f8a519f600e0fa6b8485241c979d0141fb2d";
+      };
+    };
+    "buffer-4.9.1" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "4.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz";
+        sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
+      };
+    };
+    "concat-stream-1.5.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz";
+        sha1 = "708978624d856af41a5a741defdd261da752c266";
+      };
+    };
+    "console-browserify-1.1.0" = {
+      name = "console-browserify";
+      packageName = "console-browserify";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz";
+        sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+      };
+    };
+    "constants-browserify-1.0.0" = {
+      name = "constants-browserify";
+      packageName = "constants-browserify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz";
+        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+      };
+    };
+    "crypto-browserify-3.11.0" = {
+      name = "crypto-browserify";
+      packageName = "crypto-browserify";
+      version = "3.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz";
+        sha1 = "3652a0906ab9b2a7e0c3ce66a408e957a2485522";
+      };
+    };
+    "defined-1.0.0" = {
+      name = "defined";
+      packageName = "defined";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz";
+        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+      };
+    };
+    "deps-sort-2.0.0" = {
+      name = "deps-sort";
+      packageName = "deps-sort";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz";
+        sha1 = "091724902e84658260eb910748cccd1af6e21fb5";
+      };
+    };
+    "domain-browser-1.1.7" = {
+      name = "domain-browser";
+      packageName = "domain-browser";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz";
+        sha1 = "867aa4b093faa05f1de08c06f4d7b21fdf8698bc";
+      };
+    };
+    "duplexer2-0.1.4" = {
+      name = "duplexer2";
+      packageName = "duplexer2";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz";
+        sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+      };
+    };
+    "events-1.1.1" = {
+      name = "events";
+      packageName = "events";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-1.1.1.tgz";
+        sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
+      };
+    };
+    "glob-5.0.15" = {
+      name = "glob";
+      packageName = "glob";
+      version = "5.0.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz";
+        sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1";
+      };
+    };
+    "has-1.0.1" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.1.tgz";
+        sha1 = "8461733f538b0837c9361e39a9ab9e9704dc2f28";
+      };
+    };
+    "htmlescape-1.1.1" = {
+      name = "htmlescape";
+      packageName = "htmlescape";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz";
+        sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351";
+      };
+    };
+    "https-browserify-0.0.1" = {
+      name = "https-browserify";
+      packageName = "https-browserify";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz";
+        sha1 = "3f91365cabe60b77ed0ebba24b454e3e09d95a82";
+      };
+    };
+    "inherits-2.0.1" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    };
+    "insert-module-globals-7.0.1" = {
+      name = "insert-module-globals";
+      packageName = "insert-module-globals";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz";
+        sha1 = "c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3";
+      };
+    };
+    "labeled-stream-splicer-2.0.0" = {
+      name = "labeled-stream-splicer";
+      packageName = "labeled-stream-splicer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz";
+        sha1 = "a52e1d138024c00b86b1c0c91f677918b8ae0a59";
+      };
+    };
+    "module-deps-4.0.7" = {
+      name = "module-deps";
+      packageName = "module-deps";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/module-deps/-/module-deps-4.0.7.tgz";
+        sha1 = "edfeb3937be7359bc14a6672c22ef124887f6ed2";
+      };
+    };
+    "os-browserify-0.1.2" = {
+      name = "os-browserify";
+      packageName = "os-browserify";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz";
+        sha1 = "49ca0293e0b19590a5f5de10c7f265a617d8fe54";
+      };
+    };
+    "parents-1.0.1" = {
+      name = "parents";
+      packageName = "parents";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz";
+        sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751";
+      };
+    };
+    "path-browserify-0.0.0" = {
+      name = "path-browserify";
+      packageName = "path-browserify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz";
+        sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a";
+      };
+    };
+    "process-0.11.9" = {
+      name = "process";
+      packageName = "process";
+      version = "0.11.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process/-/process-0.11.9.tgz";
+        sha1 = "7bd5ad21aa6253e7da8682264f1e11d11c0318c1";
+      };
+    };
+    "punycode-1.4.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    };
+    "querystring-es3-0.2.1" = {
+      name = "querystring-es3";
+      packageName = "querystring-es3";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz";
+        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+      };
+    };
+    "read-only-stream-2.0.0" = {
+      name = "read-only-stream";
+      packageName = "read-only-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz";
+        sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
+      };
+    };
+    "readable-stream-2.1.5" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz";
+        sha1 = "66fa8b720e1438b364681f2ad1a63c618448c9d0";
+      };
+    };
+    "resolve-1.1.7" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
+        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+      };
+    };
+    "shasum-1.0.2" = {
+      name = "shasum";
+      packageName = "shasum";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz";
+        sha1 = "e7012310d8f417f4deb5712150e5678b87ae565f";
+      };
+    };
+    "shell-quote-1.6.1" = {
+      name = "shell-quote";
+      packageName = "shell-quote";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz";
+        sha1 = "f4781949cce402697127430ea3b3c5476f481767";
+      };
+    };
+    "stream-browserify-2.0.1" = {
+      name = "stream-browserify";
+      packageName = "stream-browserify";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz";
+        sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+      };
+    };
+    "stream-http-2.3.1" = {
+      name = "stream-http";
+      packageName = "stream-http";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-http/-/stream-http-2.3.1.tgz";
+        sha1 = "7e1dc87102c3e31b32e660f04ca31f23ddbd1d52";
+      };
+    };
+    "string_decoder-0.10.31" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "0.10.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      };
+    };
+    "subarg-1.0.0" = {
+      name = "subarg";
+      packageName = "subarg";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz";
+        sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2";
+      };
+    };
+    "syntax-error-1.1.6" = {
+      name = "syntax-error";
+      packageName = "syntax-error";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz";
+        sha1 = "b4549706d386cc1c1dc7c2423f18579b6cade710";
+      };
+    };
+    "through2-2.0.1" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz";
+        sha1 = "384e75314d49f32de12eebb8136b8eb6b5d59da9";
+      };
+    };
+    "timers-browserify-1.4.2" = {
+      name = "timers-browserify";
+      packageName = "timers-browserify";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz";
+        sha1 = "c9c58b575be8407375cb5e2462dacee74359f41d";
+      };
+    };
+    "tty-browserify-0.0.0" = {
+      name = "tty-browserify";
+      packageName = "tty-browserify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
+        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+      };
+    };
+    "url-0.11.0" = {
+      name = "url";
+      packageName = "url";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz";
+        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+      };
+    };
+    "util-0.10.3" = {
+      name = "util";
+      packageName = "util";
+      version = "0.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+      };
+    };
+    "vm-browserify-0.0.4" = {
+      name = "vm-browserify";
+      packageName = "vm-browserify";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz";
+        sha1 = "5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73";
+      };
+    };
+    "xtend-4.0.1" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
+        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+      };
+    };
+    "jsonparse-1.2.0" = {
+      name = "jsonparse";
+      packageName = "jsonparse";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz";
+        sha1 = "5c0c5685107160e72fe7489bddea0b44c2bc67bd";
+      };
+    };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
+    "combine-source-map-0.7.2" = {
+      name = "combine-source-map";
+      packageName = "combine-source-map";
+      version = "0.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz";
+        sha1 = "0870312856b307a87cc4ac486f3a9a62aeccc09e";
+      };
+    };
+    "umd-3.0.1" = {
+      name = "umd";
+      packageName = "umd";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz";
+        sha1 = "8ae556e11011f63c2596708a8837259f01b3d60e";
+      };
+    };
+    "convert-source-map-1.1.3" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz";
+        sha1 = "4829c877e9fe49b3161f3bf3673888e204699860";
+      };
+    };
+    "inline-source-map-0.6.2" = {
+      name = "inline-source-map";
+      packageName = "inline-source-map";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz";
+        sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5";
+      };
+    };
+    "lodash.memoize-3.0.4" = {
+      name = "lodash.memoize";
+      packageName = "lodash.memoize";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz";
+        sha1 = "2dcbd2c287cbc0a55cc42328bd0c736150d53e3f";
+      };
+    };
+    "source-map-0.5.6" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz";
+        sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412";
+      };
+    };
+    "pako-0.2.9" = {
+      name = "pako";
+      packageName = "pako";
+      version = "0.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz";
+        sha1 = "f3f7522f4ef782348da8161bad9ecfd51bf83a75";
+      };
+    };
+    "base64-js-1.1.2" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz";
+        sha1 = "d6400cac1c4c660976d90d07a04351d89395f5e8";
+      };
+    };
+    "ieee754-1.1.6" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz";
+        sha1 = "2e1013219c6d6712973ec54d981ec19e5579de97";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "typedarray-0.0.6" = {
+      name = "typedarray";
+      packageName = "typedarray";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    };
+    "readable-stream-2.0.6" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz";
+        sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "process-nextick-args-1.0.7" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
+        sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "date-now-0.1.4" = {
+      name = "date-now";
+      packageName = "date-now";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz";
+        sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+      };
+    };
+    "browserify-cipher-1.0.0" = {
+      name = "browserify-cipher";
+      packageName = "browserify-cipher";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz";
+        sha1 = "9988244874bf5ed4e28da95666dcd66ac8fc363a";
+      };
+    };
+    "browserify-sign-4.0.0" = {
+      name = "browserify-sign";
+      packageName = "browserify-sign";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz";
+        sha1 = "10773910c3c206d5420a46aad8694f820b85968f";
+      };
+    };
+    "create-ecdh-4.0.0" = {
+      name = "create-ecdh";
+      packageName = "create-ecdh";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz";
+        sha1 = "888c723596cdf7612f6498233eebd7a35301737d";
+      };
+    };
+    "create-hash-1.1.2" = {
+      name = "create-hash";
+      packageName = "create-hash";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz";
+        sha1 = "51210062d7bb7479f6c65bb41a92208b1d61abad";
+      };
+    };
+    "create-hmac-1.1.4" = {
+      name = "create-hmac";
+      packageName = "create-hmac";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz";
+        sha1 = "d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170";
+      };
+    };
+    "diffie-hellman-5.0.2" = {
+      name = "diffie-hellman";
+      packageName = "diffie-hellman";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz";
+        sha1 = "b5835739270cfe26acf632099fded2a07f209e5e";
+      };
+    };
+    "pbkdf2-3.0.4" = {
+      name = "pbkdf2";
+      packageName = "pbkdf2";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.4.tgz";
+        sha1 = "12c8bfaf920543786a85150b03f68d5f1aa982fc";
+      };
+    };
+    "public-encrypt-4.0.0" = {
+      name = "public-encrypt";
+      packageName = "public-encrypt";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz";
+        sha1 = "39f699f3a46560dd5ebacbca693caf7c65c18cc6";
+      };
+    };
+    "randombytes-2.0.3" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz";
+        sha1 = "674c99760901c3c4112771a31e521dc349cc09ec";
+      };
+    };
+    "browserify-aes-1.0.6" = {
+      name = "browserify-aes";
+      packageName = "browserify-aes";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz";
+        sha1 = "5e7725dbdef1fd5930d4ebab48567ce451c48a0a";
+      };
+    };
+    "browserify-des-1.0.0" = {
+      name = "browserify-des";
+      packageName = "browserify-des";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz";
+        sha1 = "daa277717470922ed2fe18594118a175439721dd";
+      };
+    };
+    "evp_bytestokey-1.0.0" = {
+      name = "evp_bytestokey";
+      packageName = "evp_bytestokey";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz";
+        sha1 = "497b66ad9fef65cd7c08a6180824ba1476b66e53";
+      };
+    };
+    "buffer-xor-1.0.3" = {
+      name = "buffer-xor";
+      packageName = "buffer-xor";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz";
+        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+      };
+    };
+    "cipher-base-1.0.2" = {
+      name = "cipher-base";
+      packageName = "cipher-base";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.2.tgz";
+        sha1 = "54ac1d1ebdf6a1bcd3559e6f369d72697f2cab8f";
+      };
+    };
+    "des.js-1.0.0" = {
+      name = "des.js";
+      packageName = "des.js";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz";
+        sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+      };
+    };
+    "minimalistic-assert-1.0.0" = {
+      name = "minimalistic-assert";
+      packageName = "minimalistic-assert";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
+        sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
+      };
+    };
+    "bn.js-4.11.6" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "4.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz";
+        sha1 = "53344adb14617a13f6e8dd2ce28905d1c0ba3215";
+      };
+    };
+    "browserify-rsa-4.0.1" = {
+      name = "browserify-rsa";
+      packageName = "browserify-rsa";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+      };
+    };
+    "elliptic-6.3.1" = {
+      name = "elliptic";
+      packageName = "elliptic";
+      version = "6.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.3.1.tgz";
+        sha1 = "17781f2109ab0ec686b146bdcff5d2e8c6aeceda";
+      };
+    };
+    "parse-asn1-5.0.0" = {
+      name = "parse-asn1";
+      packageName = "parse-asn1";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz";
+        sha1 = "35060f6d5015d37628c770f4e091a0b5a278bc23";
+      };
+    };
+    "brorand-1.0.5" = {
+      name = "brorand";
+      packageName = "brorand";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brorand/-/brorand-1.0.5.tgz";
+        sha1 = "07b54ca30286abd1718a0e2a830803efdc9bfa04";
+      };
+    };
+    "hash.js-1.0.3" = {
+      name = "hash.js";
+      packageName = "hash.js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz";
+        sha1 = "1332ff00156c0a0ffdd8236013d07b77a0451573";
+      };
+    };
+    "asn1.js-4.8.0" = {
+      name = "asn1.js";
+      packageName = "asn1.js";
+      version = "4.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.8.0.tgz";
+        sha1 = "e0e04e9923319163be46aed9e5378973b161ef13";
+      };
+    };
+    "ripemd160-1.0.1" = {
+      name = "ripemd160";
+      packageName = "ripemd160";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz";
+        sha1 = "93a4bbd4942bc574b69a8fa57c71de10ecca7d6e";
+      };
+    };
+    "sha.js-2.4.5" = {
+      name = "sha.js";
+      packageName = "sha.js";
+      version = "2.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.5.tgz";
+        sha1 = "27d171efcc82a118b99639ff581660242b506e7c";
+      };
+    };
+    "miller-rabin-4.0.0" = {
+      name = "miller-rabin";
+      packageName = "miller-rabin";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz";
+        sha1 = "4a62fb1d42933c05583982f4c716f6fb9e6c6d3d";
+      };
+    };
+    "inflight-1.0.5" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz";
+        sha1 = "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a";
+      };
+    };
+    "minimatch-3.0.3" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz";
+        sha1 = "2a4e4090b96b2db06a9d7df01055a62a77c9b774";
+      };
+    };
+    "once-1.3.3" = {
+      name = "once";
+      packageName = "once";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.3.3.tgz";
+        sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20";
+      };
+    };
+    "path-is-absolute-1.0.0" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz";
+        sha1 = "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "brace-expansion-1.1.6" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz";
+        sha1 = "7197d7eaa9b87e648390ea61fc66c84427420df9";
+      };
+    };
+    "balanced-match-0.4.2" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "0.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz";
+        sha1 = "cb3f3e3c732dc0f01ee70b403f302e61d7709838";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "function-bind-1.1.0" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz";
+        sha1 = "16176714c801798e4e8f2cf7f7529467bb4a5771";
+      };
+    };
+    "is-buffer-1.1.4" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz";
+        sha1 = "cfc86ccd5dc5a52fa80489111c6920c457e2d98b";
+      };
+    };
+    "lexical-scope-1.2.0" = {
+      name = "lexical-scope";
+      packageName = "lexical-scope";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz";
+        sha1 = "fcea5edc704a4b3a8796cdca419c3a0afaf22df4";
+      };
+    };
+    "astw-2.0.0" = {
+      name = "astw";
+      packageName = "astw";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz";
+        sha1 = "08121ac8288d35611c0ceec663f6cd545604897d";
+      };
+    };
+    "acorn-1.2.2" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz";
+        sha1 = "c8ce27de0acc76d896d2b1fad3df588d9e82f014";
+      };
+    };
+    "isarray-0.0.1" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    };
+    "stream-splicer-2.0.0" = {
+      name = "stream-splicer";
+      packageName = "stream-splicer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz";
+        sha1 = "1b63be438a133e4b671cc1935197600175910d83";
+      };
+    };
+    "detective-4.3.1" = {
+      name = "detective";
+      packageName = "detective";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz";
+        sha1 = "9fb06dd1ee8f0ea4dbcc607cda39d9ce1d4f726f";
+      };
+    };
+    "stream-combiner2-1.1.1" = {
+      name = "stream-combiner2";
+      packageName = "stream-combiner2";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
+        sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+      };
+    };
+    "path-platform-0.11.15" = {
+      name = "path-platform";
+      packageName = "path-platform";
+      version = "0.11.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz";
+        sha1 = "e864217f74c36850f0852b78dc7bf7d4a5721bf2";
+      };
+    };
+    "buffer-shims-1.0.0" = {
+      name = "buffer-shims";
+      packageName = "buffer-shims";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz";
+        sha1 = "9978ce317388c649ad8793028c3477ef044a8b51";
+      };
+    };
+    "json-stable-stringify-0.0.1" = {
+      name = "json-stable-stringify";
+      packageName = "json-stable-stringify";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz";
+        sha1 = "611c23e814db375527df851193db59dd2af27f45";
+      };
+    };
+    "jsonify-0.0.0" = {
+      name = "jsonify";
+      packageName = "jsonify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    };
+    "array-filter-0.0.1" = {
+      name = "array-filter";
+      packageName = "array-filter";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz";
+        sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
+      };
+    };
+    "array-reduce-0.0.0" = {
+      name = "array-reduce";
+      packageName = "array-reduce";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz";
+        sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
+      };
+    };
+    "array-map-0.0.0" = {
+      name = "array-map";
+      packageName = "array-map";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz";
+        sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
+      };
+    };
+    "builtin-status-codes-2.0.0" = {
+      name = "builtin-status-codes";
+      packageName = "builtin-status-codes";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-2.0.0.tgz";
+        sha1 = "6f22003baacf003ccd287afe6872151fddc58579";
+      };
+    };
+    "to-arraybuffer-1.0.1" = {
+      name = "to-arraybuffer";
+      packageName = "to-arraybuffer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    };
+    "minimist-1.2.0" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+      };
+    };
+    "acorn-2.7.0" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz";
+        sha1 = "ab6e7d9d886aaca8b085bc3312b79a198433f0e7";
+      };
+    };
+    "punycode-1.3.2" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz";
+        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+      };
+    };
+    "querystring-0.2.0" = {
+      name = "querystring";
+      packageName = "querystring";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz";
+        sha1 = "b209849203bb25df820da756e747005878521620";
+      };
+    };
+    "indexof-0.0.1" = {
+      name = "indexof";
+      packageName = "indexof";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz";
+        sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+      };
+    };
+    "async-0.2.10" = {
+      name = "async";
+      packageName = "async";
+      version = "0.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+      };
+    };
+    "uglify-to-browserify-1.0.2" = {
+      name = "uglify-to-browserify";
+      packageName = "uglify-to-browserify";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
+        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+      };
+    };
+    "yargs-3.10.0" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "3.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
+        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+      };
+    };
+    "camelcase-1.2.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
+        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+      };
+    };
+    "cliui-2.1.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
+        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "window-size-0.1.0" = {
+      name = "window-size";
+      packageName = "window-size";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
+        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
+      };
+    };
+    "center-align-0.1.3" = {
+      name = "center-align";
+      packageName = "center-align";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
+        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
+      };
+    };
+    "right-align-0.1.3" = {
+      name = "right-align";
+      packageName = "right-align";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
+        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
+      };
+    };
+    "wordwrap-0.0.2" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
+        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+      };
+    };
+    "align-text-0.1.4" = {
+      name = "align-text";
+      packageName = "align-text";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
+        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
+      };
+    };
+    "lazy-cache-1.0.4" = {
+      name = "lazy-cache";
+      packageName = "lazy-cache";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
+        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
+      };
+    };
+    "kind-of-3.0.4" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.0.4.tgz";
+        sha1 = "7b8ecf18a4e17f8269d73b501c9f232c96887a74";
+      };
+    };
+    "longest-1.0.1" = {
+      name = "longest";
+      packageName = "longest";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
+        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+      };
+    };
+    "repeat-string-1.5.4" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz";
+        sha1 = "64ec0c91e0f4b475f90d5b643651e3e6e5b6c2d5";
+      };
+    };
+    "errno-0.1.4" = {
+      name = "errno";
+      packageName = "errno";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz";
+        sha1 = "b896e23a9e5e8ba33871fc996abd3635fc9a1c7d";
+      };
+    };
+    "graceful-fs-4.1.6" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.6.tgz";
+        sha1 = "514c38772b31bee2e08bedc21a0aeb3abf54c19e";
+      };
+    };
+    "image-size-0.5.0" = {
+      name = "image-size";
+      packageName = "image-size";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/image-size/-/image-size-0.5.0.tgz";
+        sha1 = "be7aed1c37b5ac3d9ba1d66a24b4c47ff8397651";
+      };
+    };
+    "mime-1.3.4" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz";
+        sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53";
+      };
+    };
+    "mkdirp-0.5.1" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    };
+    "promise-7.1.1" = {
+      name = "promise";
+      packageName = "promise";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz";
+        sha1 = "489654c692616b8aa55b0724fa809bb7db49c5bf";
+      };
+    };
+    "prr-0.0.0" = {
+      name = "prr";
+      packageName = "prr";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz";
+        sha1 = "1a84b85908325501411853d0081ee3fa86e2926a";
+      };
+    };
+    "minimist-0.0.8" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    };
+    "asap-2.0.4" = {
+      name = "asap";
+      packageName = "asap";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asap/-/asap-2.0.4.tgz";
+        sha1 = "b391bf7f6bfbc65706022fec8f49c4b07fecf589";
+      };
+    };
+    "browser-stdout-1.3.0" = {
+      name = "browser-stdout";
+      packageName = "browser-stdout";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz";
+        sha1 = "f351d32969d32fa5d7a5567154263d928ae3bd1f";
+      };
+    };
+    "commander-2.9.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
+        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+      };
+    };
+    "debug-2.2.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz";
+        sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
+      };
+    };
+    "diff-1.4.0" = {
+      name = "diff";
+      packageName = "diff";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz";
+        sha1 = "7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "glob-7.0.5" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz";
+        sha1 = "b4202a69099bbb4d292a7c1b95b6682b67ebdc95";
+      };
+    };
+    "growl-1.9.2" = {
+      name = "growl";
+      packageName = "growl";
+      version = "1.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz";
+        sha1 = "0ea7743715db8d8de2c5ede1775e1b45ac85c02f";
+      };
+    };
+    "json3-3.3.2" = {
+      name = "json3";
+      packageName = "json3";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz";
+        sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+      };
+    };
+    "lodash.create-3.1.1" = {
+      name = "lodash.create";
+      packageName = "lodash.create";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz";
+        sha1 = "d7f2849f0dbda7e04682bb8cd72ab022461debe7";
+      };
+    };
+    "supports-color-3.1.2" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz";
+        sha1 = "72a262894d9d408b956ca05ff37b2ed8a6e2a2d5";
+      };
+    };
+    "graceful-readlink-1.0.1" = {
+      name = "graceful-readlink";
+      packageName = "graceful-readlink";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+      };
+    };
+    "ms-0.7.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz";
+        sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "lodash._baseassign-3.2.0" = {
+      name = "lodash._baseassign";
+      packageName = "lodash._baseassign";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz";
+        sha1 = "8c38a099500f215ad09e59f1722fd0c52bfe0a4e";
+      };
+    };
+    "lodash._basecreate-3.0.3" = {
+      name = "lodash._basecreate";
+      packageName = "lodash._basecreate";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz";
+        sha1 = "1bc661614daa7fc311b7d03bf16806a0213cf821";
+      };
+    };
+    "lodash._isiterateecall-3.0.9" = {
+      name = "lodash._isiterateecall";
+      packageName = "lodash._isiterateecall";
+      version = "3.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz";
+        sha1 = "5203ad7ba425fae842460e696db9cf3e6aac057c";
+      };
+    };
+    "lodash._basecopy-3.0.1" = {
+      name = "lodash._basecopy";
+      packageName = "lodash._basecopy";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz";
+        sha1 = "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36";
+      };
+    };
+    "lodash.keys-3.1.2" = {
+      name = "lodash.keys";
+      packageName = "lodash.keys";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz";
+        sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a";
+      };
+    };
+    "lodash._getnative-3.9.1" = {
+      name = "lodash._getnative";
+      packageName = "lodash._getnative";
+      version = "3.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz";
+        sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5";
+      };
+    };
+    "lodash.isarguments-3.1.0" = {
+      name = "lodash.isarguments";
+      packageName = "lodash.isarguments";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz";
+        sha1 = "2f573d85c6a24289ff00663b491c1d338ff3458a";
+      };
+    };
+    "lodash.isarray-3.0.4" = {
+      name = "lodash.isarray";
+      packageName = "lodash.isarray";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz";
+        sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55";
+      };
+    };
+    "has-flag-1.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz";
+        sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+      };
+    };
+    "phantomjs-1.9.7-15" = {
+      name = "phantomjs";
+      packageName = "phantomjs";
+      version = "1.9.7-15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-15.tgz";
+        sha1 = "0b3a7ce630486a83be91ff4e832eee20e971115b";
+      };
+    };
+    "mocha-phantomjs-core-1.3.1" = {
+      name = "mocha-phantomjs-core";
+      packageName = "mocha-phantomjs-core";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha-phantomjs-core/-/mocha-phantomjs-core-1.3.1.tgz";
+        sha1 = "586538c8d71fa8de90c41a46acc0481c1fb83e18";
+      };
+    };
+    "adm-zip-0.2.1" = {
+      name = "adm-zip";
+      packageName = "adm-zip";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.2.1.tgz";
+        sha1 = "e801cedeb5bd9a4e98d699c5c0f4239e2731dcbf";
+      };
+    };
+    "kew-0.1.7" = {
+      name = "kew";
+      packageName = "kew";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kew/-/kew-0.1.7.tgz";
+        sha1 = "0a32a817ff1a9b3b12b8c9bacf4bc4d679af8e72";
+      };
+    };
+    "ncp-0.4.2" = {
+      name = "ncp";
+      packageName = "ncp";
+      version = "0.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz";
+        sha1 = "abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574";
+      };
+    };
+    "npmconf-0.0.24" = {
+      name = "npmconf";
+      packageName = "npmconf";
+      version = "0.0.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npmconf/-/npmconf-0.0.24.tgz";
+        sha1 = "b78875b088ccc3c0afa3eceb3ce3244b1b52390c";
+      };
+    };
+    "mkdirp-0.3.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
+        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
+      };
+    };
+    "progress-1.1.8" = {
+      name = "progress";
+      packageName = "progress";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
+        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+      };
+    };
+    "request-2.36.0" = {
+      name = "request";
+      packageName = "request";
+      version = "2.36.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.36.0.tgz";
+        sha1 = "28c6c04262c7b9ffdd21b9255374517ee6d943f5";
+      };
+    };
+    "request-progress-0.3.1" = {
+      name = "request-progress";
+      packageName = "request-progress";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz";
+        sha1 = "0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a";
+      };
+    };
+    "rimraf-2.2.8" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
+        sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
+      };
+    };
+    "which-1.0.9" = {
+      name = "which";
+      packageName = "which";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.0.9.tgz";
+        sha1 = "460c1da0f810103d0321a9b633af9e575e64486f";
+      };
+    };
+    "config-chain-1.1.10" = {
+      name = "config-chain";
+      packageName = "config-chain";
+      version = "1.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz";
+        sha1 = "7fc383de0fcc84d711cb465bd176579cad612346";
+      };
+    };
+    "inherits-1.0.2" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz";
+        sha1 = "ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b";
+      };
+    };
+    "once-1.1.1" = {
+      name = "once";
+      packageName = "once";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.1.1.tgz";
+        sha1 = "9db574933ccb08c3a7614d154032c09ea6f339e7";
+      };
+    };
+    "osenv-0.0.3" = {
+      name = "osenv";
+      packageName = "osenv";
+      version = "0.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/osenv/-/osenv-0.0.3.tgz";
+        sha1 = "cd6ad8ddb290915ad9e22765576025d411f29cb6";
+      };
+    };
+    "nopt-2.2.1" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz";
+        sha1 = "2aa09b7d1768487b3b89a9c5aa52335bff0baea7";
+      };
+    };
+    "semver-1.1.4" = {
+      name = "semver";
+      packageName = "semver";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-1.1.4.tgz";
+        sha1 = "2e5a4e72bab03472cc97f72753b4508912ef5540";
+      };
+    };
+    "ini-1.1.0" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz";
+        sha1 = "4e808c2ce144c6c1788918e034d6797bc6cf6281";
+      };
+    };
+    "proto-list-1.2.4" = {
+      name = "proto-list";
+      packageName = "proto-list";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz";
+        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+      };
+    };
+    "ini-1.3.4" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz";
+        sha1 = "0537cb79daf59b59a1a517dff706c86ec039162e";
+      };
+    };
+    "abbrev-1.0.9" = {
+      name = "abbrev";
+      packageName = "abbrev";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz";
+        sha1 = "91b4792588a7738c25f35dd6f63752a2f8776135";
+      };
+    };
+    "qs-0.6.6" = {
+      name = "qs";
+      packageName = "qs";
+      version = "0.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz";
+        sha1 = "6e015098ff51968b8a3c819001d5f2c89bc4b107";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "mime-1.2.11" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.2.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
+        sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
+      };
+    };
+    "forever-agent-0.5.2" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
+        sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130";
+      };
+    };
+    "node-uuid-1.4.7" = {
+      name = "node-uuid";
+      packageName = "node-uuid";
+      version = "1.4.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz";
+        sha1 = "6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f";
+      };
+    };
+    "tough-cookie-2.3.1" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.1.tgz";
+        sha1 = "99c77dfbb7d804249e8a299d4cb0fd81fef083fd";
+      };
+    };
+    "form-data-0.1.4" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
+        sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
+      };
+    };
+    "tunnel-agent-0.4.3" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz";
+        sha1 = "6373db76909fe570e08d73583365ed828a74eeeb";
+      };
+    };
+    "http-signature-0.10.1" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "0.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz";
+        sha1 = "4fbdac132559aa8323121e540779c0a012b27e66";
+      };
+    };
+    "oauth-sign-0.3.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz";
+        sha1 = "cb540f93bb2b22a7d5941691a288d60e8ea9386e";
+      };
+    };
+    "hawk-1.0.0" = {
+      name = "hawk";
+      packageName = "hawk";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz";
+        sha1 = "b90bb169807285411da7ffcb8dd2598502d3b52d";
+      };
+    };
+    "aws-sign2-0.5.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
+        sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
+      };
+    };
+    "combined-stream-0.0.7" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "0.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
+        sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
+      };
+    };
+    "async-0.9.2" = {
+      name = "async";
+      packageName = "async";
+      version = "0.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    };
+    "delayed-stream-0.0.5" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
+        sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+      };
+    };
+    "assert-plus-0.1.5" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
+        sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+      };
+    };
+    "asn1-0.1.11" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
+        sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
+      };
+    };
+    "ctype-0.5.3" = {
+      name = "ctype";
+      packageName = "ctype";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz";
+        sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
+      };
+    };
+    "hoek-0.9.1" = {
+      name = "hoek";
+      packageName = "hoek";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
+        sha1 = "3d322462badf07716ea7eb85baf88079cddce505";
+      };
+    };
+    "boom-0.4.2" = {
+      name = "boom";
+      packageName = "boom";
+      version = "0.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
+        sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b";
+      };
+    };
+    "cryptiles-0.2.2" = {
+      name = "cryptiles";
+      packageName = "cryptiles";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
+        sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c";
+      };
+    };
+    "sntp-0.2.4" = {
+      name = "sntp";
+      packageName = "sntp";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
+        sha1 = "fb885f18b0f3aad189f824862536bceeec750900";
+      };
+    };
+    "throttleit-0.0.2" = {
+      name = "throttleit";
+      packageName = "throttleit";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz";
+        sha1 = "cfedf88e60c00dd9697b61fdd2a8343a9b680eaf";
+      };
+    };
+    "should-equal-1.0.1" = {
+      name = "should-equal";
+      packageName = "should-equal";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-equal/-/should-equal-1.0.1.tgz";
+        sha1 = "0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7";
+      };
+    };
+    "should-format-3.0.1" = {
+      name = "should-format";
+      packageName = "should-format";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-format/-/should-format-3.0.1.tgz";
+        sha1 = "3249b719c0921b4d7b26d347d1b0cc6e232ad324";
+      };
+    };
+    "should-type-1.4.0" = {
+      name = "should-type";
+      packageName = "should-type";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz";
+        sha1 = "0756d8ce846dfd09843a6947719dfa0d4cff5cf3";
+      };
+    };
+    "should-type-adaptors-1.0.0" = {
+      name = "should-type-adaptors";
+      packageName = "should-type-adaptors";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.0.0.tgz";
+        sha1 = "034b2843b8c151bb7b66e6350eba00543e797500";
+      };
+    };
+    "should-util-1.0.0" = {
+      name = "should-util";
+      packageName = "should-util";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/should-util/-/should-util-1.0.0.tgz";
+        sha1 = "c98cda374aa6b190df8ba87c9889c2b4db620063";
+      };
+    };
+    "formatio-1.1.1" = {
+      name = "formatio";
+      packageName = "formatio";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz";
+        sha1 = "5ed3ccd636551097383465d996199100e86161e9";
+      };
+    };
+    "lolex-1.3.2" = {
+      name = "lolex";
+      packageName = "lolex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz";
+        sha1 = "7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31";
+      };
+    };
+    "samsam-1.1.2" = {
+      name = "samsam";
+      packageName = "samsam";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz";
+        sha1 = "bec11fdc83a9fda063401210e40176c3024d1567";
+      };
+    };
+    "cli-1.0.0" = {
+      name = "cli";
+      packageName = "cli";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli/-/cli-1.0.0.tgz";
+        sha1 = "ee07dfc1390e3f2e6a9957cf88e1d4bfa777719d";
+      };
+    };
+    "exit-0.1.2" = {
+      name = "exit";
+      packageName = "exit";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
+        sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+      };
+    };
+    "htmlparser2-3.8.3" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "3.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz";
+        sha1 = "996c28b191516a8be86501a7d79757e5c70c1068";
+      };
+    };
+    "shelljs-0.3.0" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz";
+        sha1 = "3596e6307a781544f591f37da618360f31db57b1";
+      };
+    };
+    "strip-json-comments-1.0.4" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz";
+        sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91";
+      };
+    };
+    "lodash-3.7.0" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz";
+        sha1 = "3678bd8ab995057c07ade836ed2ef087da811d45";
+      };
+    };
+    "glob-7.0.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz";
+        sha1 = "211bafaf49e525b8cd93260d14ab136152b3f57a";
+      };
+    };
+    "domhandler-2.3.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz";
+        sha1 = "2de59a0822d5027fabff6f032c2b25a2a8abe738";
+      };
+    };
+    "domutils-1.5.1" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
+        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+      };
+    };
+    "domelementtype-1.3.0" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz";
+        sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
+      };
+    };
+    "readable-stream-1.1.14" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "1.1.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
+        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+      };
+    };
+    "entities-1.0.0" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz";
+        sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
+      };
+    };
+    "dom-serializer-0.1.0" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz";
+        sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
+      };
+    };
+    "domelementtype-1.1.3" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz";
+        sha1 = "bd28773e2642881aec51544924299c5cd822185b";
+      };
+    };
+    "entities-1.1.1" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz";
+        sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
+      };
+    };
+    "interpret-1.0.1" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz";
+        sha1 = "d579fb7f693b858004947af39fa0db49f795602c";
+      };
+    };
+    "rechoir-0.6.2" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+      };
+    };
+  };
+in
+{
+  marked = nodeEnv.buildNodePackage {
+    name = "marked";
+    packageName = "marked";
+    version = "0.3.6";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz";
+      sha1 = "b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7";
+    };
+    meta = {
+      description = "A markdown parser built for speed";
+      homepage = https://github.com/chjj/marked;
+      license = "MIT";
+    };
+    production = true;
+  };
+  browserify = nodeEnv.buildNodePackage {
+    name = "browserify";
+    packageName = "browserify";
+    version = "13.1.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/browserify/-/browserify-13.1.0.tgz";
+      sha1 = "d81a018e98dd7ca706ec04253d20f8a03b2af8ae";
+    };
+    dependencies = [
+      (sources."JSONStream-1.1.4" // {
+        dependencies = [
+          sources."jsonparse-1.2.0"
+          sources."through-2.3.8"
+        ];
+      })
+      sources."assert-1.3.0"
+      (sources."browser-pack-6.0.1" // {
+        dependencies = [
+          (sources."combine-source-map-0.7.2" // {
+            dependencies = [
+              sources."convert-source-map-1.1.3"
+              sources."inline-source-map-0.6.2"
+              sources."lodash.memoize-3.0.4"
+              sources."source-map-0.5.6"
+            ];
+          })
+          sources."umd-3.0.1"
+        ];
+      })
+      sources."browser-resolve-1.11.2"
+      (sources."browserify-zlib-0.1.4" // {
+        dependencies = [
+          sources."pako-0.2.9"
+        ];
+      })
+      (sources."buffer-4.9.1" // {
+        dependencies = [
+          sources."base64-js-1.1.2"
+          sources."ieee754-1.1.6"
+          sources."isarray-1.0.0"
+        ];
+      })
+      (sources."concat-stream-1.5.2" // {
+        dependencies = [
+          sources."typedarray-0.0.6"
+          (sources."readable-stream-2.0.6" // {
+            dependencies = [
+              sources."core-util-is-1.0.2"
+              sources."isarray-1.0.0"
+              sources."process-nextick-args-1.0.7"
+              sources."util-deprecate-1.0.2"
+            ];
+          })
+        ];
+      })
+      (sources."console-browserify-1.1.0" // {
+        dependencies = [
+          sources."date-now-0.1.4"
+        ];
+      })
+      sources."constants-browserify-1.0.0"
+      (sources."crypto-browserify-3.11.0" // {
+        dependencies = [
+          (sources."browserify-cipher-1.0.0" // {
+            dependencies = [
+              (sources."browserify-aes-1.0.6" // {
+                dependencies = [
+                  sources."buffer-xor-1.0.3"
+                  sources."cipher-base-1.0.2"
+                ];
+              })
+              (sources."browserify-des-1.0.0" // {
+                dependencies = [
+                  sources."cipher-base-1.0.2"
+                  (sources."des.js-1.0.0" // {
+                    dependencies = [
+                      sources."minimalistic-assert-1.0.0"
+                    ];
+                  })
+                ];
+              })
+              sources."evp_bytestokey-1.0.0"
+            ];
+          })
+          (sources."browserify-sign-4.0.0" // {
+            dependencies = [
+              sources."bn.js-4.11.6"
+              sources."browserify-rsa-4.0.1"
+              (sources."elliptic-6.3.1" // {
+                dependencies = [
+                  sources."brorand-1.0.5"
+                  sources."hash.js-1.0.3"
+                ];
+              })
+              (sources."parse-asn1-5.0.0" // {
+                dependencies = [
+                  (sources."asn1.js-4.8.0" // {
+                    dependencies = [
+                      sources."minimalistic-assert-1.0.0"
+                    ];
+                  })
+                  (sources."browserify-aes-1.0.6" // {
+                    dependencies = [
+                      sources."buffer-xor-1.0.3"
+                      sources."cipher-base-1.0.2"
+                    ];
+                  })
+                  sources."evp_bytestokey-1.0.0"
+                ];
+              })
+            ];
+          })
+          (sources."create-ecdh-4.0.0" // {
+            dependencies = [
+              sources."bn.js-4.11.6"
+              (sources."elliptic-6.3.1" // {
+                dependencies = [
+                  sources."brorand-1.0.5"
+                  sources."hash.js-1.0.3"
+                ];
+              })
+            ];
+          })
+          (sources."create-hash-1.1.2" // {
+            dependencies = [
+              sources."cipher-base-1.0.2"
+              sources."ripemd160-1.0.1"
+              sources."sha.js-2.4.5"
+            ];
+          })
+          sources."create-hmac-1.1.4"
+          (sources."diffie-hellman-5.0.2" // {
+            dependencies = [
+              sources."bn.js-4.11.6"
+              (sources."miller-rabin-4.0.0" // {
+                dependencies = [
+                  sources."brorand-1.0.5"
+                ];
+              })
+            ];
+          })
+          sources."pbkdf2-3.0.4"
+          (sources."public-encrypt-4.0.0" // {
+            dependencies = [
+              sources."bn.js-4.11.6"
+              sources."browserify-rsa-4.0.1"
+              (sources."parse-asn1-5.0.0" // {
+                dependencies = [
+                  (sources."asn1.js-4.8.0" // {
+                    dependencies = [
+                      sources."minimalistic-assert-1.0.0"
+                    ];
+                  })
+                  (sources."browserify-aes-1.0.6" // {
+                    dependencies = [
+                      sources."buffer-xor-1.0.3"
+                      sources."cipher-base-1.0.2"
+                    ];
+                  })
+                  sources."evp_bytestokey-1.0.0"
+                ];
+              })
+            ];
+          })
+          sources."randombytes-2.0.3"
+        ];
+      })
+      sources."defined-1.0.0"
+      sources."deps-sort-2.0.0"
+      sources."domain-browser-1.1.7"
+      sources."duplexer2-0.1.4"
+      sources."events-1.1.1"
+      (sources."glob-5.0.15" // {
+        dependencies = [
+          (sources."inflight-1.0.5" // {
+            dependencies = [
+              sources."wrappy-1.0.2"
+            ];
+          })
+          (sources."minimatch-3.0.3" // {
+            dependencies = [
+              (sources."brace-expansion-1.1.6" // {
+                dependencies = [
+                  sources."balanced-match-0.4.2"
+                  sources."concat-map-0.0.1"
+                ];
+              })
+            ];
+          })
+          (sources."once-1.3.3" // {
+            dependencies = [
+              sources."wrappy-1.0.2"
+            ];
+          })
+          sources."path-is-absolute-1.0.0"
+        ];
+      })
+      (sources."has-1.0.1" // {
+        dependencies = [
+          sources."function-bind-1.1.0"
+        ];
+      })
+      sources."htmlescape-1.1.1"
+      sources."https-browserify-0.0.1"
+      sources."inherits-2.0.1"
+      (sources."insert-module-globals-7.0.1" // {
+        dependencies = [
+          (sources."combine-source-map-0.7.2" // {
+            dependencies = [
+              sources."convert-source-map-1.1.3"
+              sources."inline-source-map-0.6.2"
+              sources."lodash.memoize-3.0.4"
+              sources."source-map-0.5.6"
+            ];
+          })
+          sources."is-buffer-1.1.4"
+          (sources."lexical-scope-1.2.0" // {
+            dependencies = [
+              (sources."astw-2.0.0" // {
+                dependencies = [
+                  sources."acorn-1.2.2"
+                ];
+              })
+            ];
+          })
+        ];
+      })
+      (sources."labeled-stream-splicer-2.0.0" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."stream-splicer-2.0.0"
+        ];
+      })
+      (sources."module-deps-4.0.7" // {
+        dependencies = [
+          (sources."detective-4.3.1" // {
+            dependencies = [
+              sources."acorn-1.2.2"
+            ];
+          })
+          sources."stream-combiner2-1.1.1"
+        ];
+      })
+      sources."os-browserify-0.1.2"
+      (sources."parents-1.0.1" // {
+        dependencies = [
+          sources."path-platform-0.11.15"
+        ];
+      })
+      sources."path-browserify-0.0.0"
+      sources."process-0.11.9"
+      sources."punycode-1.4.1"
+      sources."querystring-es3-0.2.1"
+      sources."read-only-stream-2.0.0"
+      (sources."readable-stream-2.1.5" // {
+        dependencies = [
+          sources."buffer-shims-1.0.0"
+          sources."core-util-is-1.0.2"
+          sources."isarray-1.0.0"
+          sources."process-nextick-args-1.0.7"
+          sources."util-deprecate-1.0.2"
+        ];
+      })
+      sources."resolve-1.1.7"
+      (sources."shasum-1.0.2" // {
+        dependencies = [
+          (sources."json-stable-stringify-0.0.1" // {
+            dependencies = [
+              sources."jsonify-0.0.0"
+            ];
+          })
+          sources."sha.js-2.4.5"
+        ];
+      })
+      (sources."shell-quote-1.6.1" // {
+        dependencies = [
+          sources."jsonify-0.0.0"
+          sources."array-filter-0.0.1"
+          sources."array-reduce-0.0.0"
+          sources."array-map-0.0.0"
+        ];
+      })
+      sources."stream-browserify-2.0.1"
+      (sources."stream-http-2.3.1" // {
+        dependencies = [
+          sources."builtin-status-codes-2.0.0"
+          sources."to-arraybuffer-1.0.1"
+        ];
+      })
+      sources."string_decoder-0.10.31"
+      (sources."subarg-1.0.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
+      (sources."syntax-error-1.1.6" // {
+        dependencies = [
+          sources."acorn-2.7.0"
+        ];
+      })
+      (sources."through2-2.0.1" // {
+        dependencies = [
+          (sources."readable-stream-2.0.6" // {
+            dependencies = [
+              sources."core-util-is-1.0.2"
+              sources."isarray-1.0.0"
+              sources."process-nextick-args-1.0.7"
+              sources."util-deprecate-1.0.2"
+            ];
+          })
+        ];
+      })
+      sources."timers-browserify-1.4.2"
+      sources."tty-browserify-0.0.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+          sources."querystring-0.2.0"
+        ];
+      })
+      sources."util-0.10.3"
+      (sources."vm-browserify-0.0.4" // {
+        dependencies = [
+          sources."indexof-0.0.1"
+        ];
+      })
+      sources."xtend-4.0.1"
+    ];
+    meta = {
+      description = "browser-side require() the node way";
+      homepage = "https://github.com/substack/node-browserify#readme";
+      license = "MIT";
+    };
+    production = true;
+  };
+  uglify-js = nodeEnv.buildNodePackage {
+    name = "uglify-js";
+    packageName = "uglify-js";
+    version = "2.7.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.3.tgz";
+      sha1 = "39b3a7329b89f5ec507e344c6e22568698ef4868";
+    };
+    dependencies = [
+      sources."async-0.2.10"
+      sources."source-map-0.5.6"
+      sources."uglify-to-browserify-1.0.2"
+      (sources."yargs-3.10.0" // {
+        dependencies = [
+          sources."camelcase-1.2.1"
+          (sources."cliui-2.1.0" // {
+            dependencies = [
+              (sources."center-align-0.1.3" // {
+                dependencies = [
+                  (sources."align-text-0.1.4" // {
+                    dependencies = [
+                      (sources."kind-of-3.0.4" // {
+                        dependencies = [
+                          sources."is-buffer-1.1.4"
+                        ];
+                      })
+                      sources."longest-1.0.1"
+                      sources."repeat-string-1.5.4"
+                    ];
+                  })
+                  sources."lazy-cache-1.0.4"
+                ];
+              })
+              (sources."right-align-0.1.3" // {
+                dependencies = [
+                  (sources."align-text-0.1.4" // {
+                    dependencies = [
+                      (sources."kind-of-3.0.4" // {
+                        dependencies = [
+                          sources."is-buffer-1.1.4"
+                        ];
+                      })
+                      sources."longest-1.0.1"
+                      sources."repeat-string-1.5.4"
+                    ];
+                  })
+                ];
+              })
+              sources."wordwrap-0.0.2"
+            ];
+          })
+          sources."decamelize-1.2.0"
+          sources."window-size-0.1.0"
+        ];
+      })
+    ];
+    meta = {
+      description = "JavaScript parser, mangler/compressor and beautifier toolkit";
+      homepage = http://lisperator.net/uglifyjs;
+      license = "BSD-2-Clause";
+    };
+    production = true;
+  };
+  less = nodeEnv.buildNodePackage {
+    name = "less";
+    packageName = "less";
+    version = "2.7.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/less/-/less-2.7.1.tgz";
+      sha1 = "6cbfea22b3b830304e9a5fb371d54fa480c9d7cf";
+    };
+    dependencies = [
+      (sources."errno-0.1.4" // {
+        dependencies = [
+          sources."prr-0.0.0"
+        ];
+      })
+      sources."graceful-fs-4.1.6"
+      sources."image-size-0.5.0"
+      sources."mime-1.3.4"
+      (sources."mkdirp-0.5.1" // {
+        dependencies = [
+          sources."minimist-0.0.8"
+        ];
+      })
+      (sources."promise-7.1.1" // {
+        dependencies = [
+          sources."asap-2.0.4"
+        ];
+      })
+      sources."source-map-0.5.6"
+    ];
+    meta = {
+      description = "Leaner CSS";
+      homepage = http://lesscss.org/;
+      license = "Apache-2.0";
+    };
+    production = true;
+  };
+  mocha = nodeEnv.buildNodePackage {
+    name = "mocha";
+    packageName = "mocha";
+    version = "3.0.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mocha/-/mocha-3.0.2.tgz";
+      sha1 = "63a97f3e18f4d3e659d47a617677d089874557f0";
+    };
+    dependencies = [
+      sources."browser-stdout-1.3.0"
+      (sources."commander-2.9.0" // {
+        dependencies = [
+          sources."graceful-readlink-1.0.1"
+        ];
+      })
+      (sources."debug-2.2.0" // {
+        dependencies = [
+          sources."ms-0.7.1"
+        ];
+      })
+      sources."diff-1.4.0"
+      sources."escape-string-regexp-1.0.5"
+      (sources."glob-7.0.5" // {
+        dependencies = [
+          sources."fs.realpath-1.0.0"
+          (sources."inflight-1.0.5" // {
+            dependencies = [
+              sources."wrappy-1.0.2"
+            ];
+          })
+          sources."inherits-2.0.1"
+          (sources."minimatch-3.0.3" // {
+            dependencies = [
+              (sources."brace-expansion-1.1.6" // {
+                dependencies = [
+                  sources."balanced-match-0.4.2"
+                  sources."concat-map-0.0.1"
+                ];
+              })
+            ];
+          })
+          (sources."once-1.3.3" // {
+            dependencies = [
+              sources."wrappy-1.0.2"
+            ];
+          })
+          sources."path-is-absolute-1.0.0"
+        ];
+      })
+      sources."growl-1.9.2"
+      sources."json3-3.3.2"
+      (sources."lodash.create-3.1.1" // {
+        dependencies = [
+          (sources."lodash._baseassign-3.2.0" // {
+            dependencies = [
+              sources."lodash._basecopy-3.0.1"
+              (sources."lodash.keys-3.1.2" // {
+                dependencies = [
+                  sources."lodash._getnative-3.9.1"
+                  sources."lodash.isarguments-3.1.0"
+                  sources."lodash.isarray-3.0.4"
+                ];
+              })
+            ];
+          })
+          sources."lodash._basecreate-3.0.3"
+          sources."lodash._isiterateecall-3.0.9"
+        ];
+      })
+      (sources."mkdirp-0.5.1" // {
+        dependencies = [
+          sources."minimist-0.0.8"
+        ];
+      })
+      (sources."supports-color-3.1.2" // {
+        dependencies = [
+          sources."has-flag-1.0.0"
+        ];
+      })
+    ];
+    meta = {
+      description = "simple, flexible, fun test framework";
+      homepage = https://mochajs.org/;
+      license = "MIT";
+    };
+    production = true;
+  };
+  mocha-phantomjs = nodeEnv.buildNodePackage {
+    name = "mocha-phantomjs";
+    packageName = "mocha-phantomjs";
+    version = "4.1.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mocha-phantomjs/-/mocha-phantomjs-4.1.0.tgz";
+      sha1 = "c75e16612e1a6af0ad8d281e3a2fef49d55e505b";
+    };
+    dependencies = [
+      (sources."phantomjs-1.9.7-15" // {
+        dependencies = [
+          sources."adm-zip-0.2.1"
+          sources."kew-0.1.7"
+          sources."ncp-0.4.2"
+          (sources."npmconf-0.0.24" // {
+            dependencies = [
+              (sources."config-chain-1.1.10" // {
+                dependencies = [
+                  sources."proto-list-1.2.4"
+                  sources."ini-1.3.4"
+                ];
+              })
+              sources."inherits-1.0.2"
+              sources."once-1.1.1"
+              sources."osenv-0.0.3"
+              (sources."nopt-2.2.1" // {
+                dependencies = [
+                  sources."abbrev-1.0.9"
+                ];
+              })
+              sources."semver-1.1.4"
+              sources."ini-1.1.0"
+            ];
+          })
+          sources."mkdirp-0.3.5"
+          sources."progress-1.1.8"
+          (sources."request-2.36.0" // {
+            dependencies = [
+              sources."qs-0.6.6"
+              sources."json-stringify-safe-5.0.1"
+              sources."mime-1.2.11"
+              sources."forever-agent-0.5.2"
+              sources."node-uuid-1.4.7"
+              sources."tough-cookie-2.3.1"
+              (sources."form-data-0.1.4" // {
+                dependencies = [
+                  (sources."combined-stream-0.0.7" // {
+                    dependencies = [
+                      sources."delayed-stream-0.0.5"
+                    ];
+                  })
+                  sources."async-0.9.2"
+                ];
+              })
+              sources."tunnel-agent-0.4.3"
+              (sources."http-signature-0.10.1" // {
+                dependencies = [
+                  sources."assert-plus-0.1.5"
+                  sources."asn1-0.1.11"
+                  sources."ctype-0.5.3"
+                ];
+              })
+              sources."oauth-sign-0.3.0"
+              (sources."hawk-1.0.0" // {
+                dependencies = [
+                  sources."hoek-0.9.1"
+                  sources."boom-0.4.2"
+                  sources."cryptiles-0.2.2"
+                  sources."sntp-0.2.4"
+                ];
+              })
+              sources."aws-sign2-0.5.0"
+            ];
+          })
+          (sources."request-progress-0.3.1" // {
+            dependencies = [
+              sources."throttleit-0.0.2"
+            ];
+          })
+          sources."rimraf-2.2.8"
+          sources."which-1.0.9"
+        ];
+      })
+      sources."mocha-phantomjs-core-1.3.1"
+      (sources."commander-2.9.0" // {
+        dependencies = [
+          sources."graceful-readlink-1.0.1"
+        ];
+      })
+    ];
+    meta = {
+      description = "Run mocha browser tests in phantomjs via the command line";
+      homepage = "https://github.com/nathanboktae/mocha-phantomjs#readme";
+    };
+    production = true;
+  };
+  should = nodeEnv.buildNodePackage {
+    name = "should";
+    packageName = "should";
+    version = "11.1.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/should/-/should-11.1.0.tgz";
+      sha1 = "1d2ee7d3b150e965611ebe37be7dcf0fe2075a8e";
+    };
+    dependencies = [
+      sources."should-equal-1.0.1"
+      sources."should-format-3.0.1"
+      sources."should-type-1.4.0"
+      sources."should-type-adaptors-1.0.0"
+      sources."should-util-1.0.0"
+    ];
+    meta = {
+      description = "test framework agnostic BDD-style assertions";
+      homepage = https://github.com/shouldjs/should.js;
+      license = "MIT";
+    };
+    production = true;
+  };
+  sinon = nodeEnv.buildNodePackage {
+    name = "sinon";
+    packageName = "sinon";
+    version = "1.17.5";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/sinon/-/sinon-1.17.5.tgz";
+      sha1 = "1038cba830e37012e99a64837ecd3b67200c058c";
+    };
+    dependencies = [
+      sources."formatio-1.1.1"
+      (sources."util-0.10.3" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+        ];
+      })
+      sources."lolex-1.3.2"
+      sources."samsam-1.1.2"
+    ];
+    meta = {
+      description = "JavaScript test spies, stubs and mocks.";
+      homepage = http://sinonjs.org/;
+      license = "BSD-3-Clause";
+    };
+    production = true;
+  };
+  jshint = nodeEnv.buildNodePackage {
+    name = "jshint";
+    packageName = "jshint";
+    version = "2.9.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/jshint/-/jshint-2.9.3.tgz";
+      sha1 = "a2e14ff85c2d6bf8c8080e5aa55129ebc6a2d320";
+    };
+    dependencies = [
+      (sources."cli-1.0.0" // {
+        dependencies = [
+          (sources."glob-7.0.6" // {
+            dependencies = [
+              sources."fs.realpath-1.0.0"
+              (sources."inflight-1.0.5" // {
+                dependencies = [
+                  sources."wrappy-1.0.2"
+                ];
+              })
+              sources."inherits-2.0.1"
+              (sources."once-1.3.3" // {
+                dependencies = [
+                  sources."wrappy-1.0.2"
+                ];
+              })
+              sources."path-is-absolute-1.0.0"
+            ];
+          })
+        ];
+      })
+      (sources."console-browserify-1.1.0" // {
+        dependencies = [
+          sources."date-now-0.1.4"
+        ];
+      })
+      sources."exit-0.1.2"
+      (sources."htmlparser2-3.8.3" // {
+        dependencies = [
+          sources."domhandler-2.3.0"
+          (sources."domutils-1.5.1" // {
+            dependencies = [
+              (sources."dom-serializer-0.1.0" // {
+                dependencies = [
+                  sources."domelementtype-1.1.3"
+                  sources."entities-1.1.1"
+                ];
+              })
+            ];
+          })
+          sources."domelementtype-1.3.0"
+          (sources."readable-stream-1.1.14" // {
+            dependencies = [
+              sources."core-util-is-1.0.2"
+              sources."isarray-0.0.1"
+              sources."string_decoder-0.10.31"
+              sources."inherits-2.0.1"
+            ];
+          })
+          sources."entities-1.0.0"
+        ];
+      })
+      (sources."minimatch-3.0.3" // {
+        dependencies = [
+          (sources."brace-expansion-1.1.6" // {
+            dependencies = [
+              sources."balanced-match-0.4.2"
+              sources."concat-map-0.0.1"
+            ];
+          })
+        ];
+      })
+      sources."shelljs-0.3.0"
+      sources."strip-json-comments-1.0.4"
+      sources."lodash-3.7.0"
+    ];
+    meta = {
+      description = "Static analysis tool for JavaScript";
+      homepage = http://jshint.com/;
+      license = "(MIT AND JSON)";
+    };
+    production = true;
+  };
+  shelljs = nodeEnv.buildNodePackage {
+    name = "shelljs";
+    packageName = "shelljs";
+    version = "0.7.4";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/shelljs/-/shelljs-0.7.4.tgz";
+      sha1 = "b8f04b3a74ddfafea22acf98e0be45ded53d59c8";
+    };
+    dependencies = [
+      (sources."glob-7.0.6" // {
+        dependencies = [
+          sources."fs.realpath-1.0.0"
+          (sources."inflight-1.0.5" // {
+            dependencies = [
+              sources."wrappy-1.0.2"
+            ];
+          })
+          sources."inherits-2.0.1"
+          (sources."minimatch-3.0.3" // {
+            dependencies = [
+              (sources."brace-expansion-1.1.6" // {
+                dependencies = [
+                  sources."balanced-match-0.4.2"
+                  sources."concat-map-0.0.1"
+                ];
+              })
+            ];
+          })
+          (sources."once-1.3.3" // {
+            dependencies = [
+              sources."wrappy-1.0.2"
+            ];
+          })
+          sources."path-is-absolute-1.0.0"
+        ];
+      })
+      sources."interpret-1.0.1"
+      (sources."rechoir-0.6.2" // {
+        dependencies = [
+          sources."resolve-1.1.7"
+        ];
+      })
+    ];
+    meta = {
+      description = "Portable Unix shell commands for Node.js";
+      homepage = http://github.com/shelljs/shelljs;
+      license = "BSD-3-Clause";
+    };
+    production = true;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/web/remarkjs/nodepkgs.nix b/pkgs/development/web/remarkjs/nodepkgs.nix
new file mode 100644
index 000000000000..e7a3f74d2b84
--- /dev/null
+++ b/pkgs/development/web/remarkjs/nodepkgs.nix
@@ -0,0 +1,16 @@
+# This file has been generated by node2nix 1.0.1. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs"}:
+
+let
+  nodeEnv = import ../../node-packages/node-env.nix {
+    inherit (pkgs) stdenv python utillinux runCommand writeTextFile;
+    inherit nodejs;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/pkgs/development/web/remarkjs/pkgs.json b/pkgs/development/web/remarkjs/pkgs.json
new file mode 100644
index 000000000000..516bcebc6f48
--- /dev/null
+++ b/pkgs/development/web/remarkjs/pkgs.json
@@ -0,0 +1,12 @@
+[
+  "marked"
+, "browserify"
+, "uglify-js"
+, "less"
+, "mocha"
+, "mocha-phantomjs"
+, "should"
+, "sinon"
+, "jshint"
+, "shelljs"
+]