git.iko.soy/typeable/nixpkgs
on master help sign in
ethercalc: init at latest master (b19627)
commit92eb5bc48e8cccabdfc2bd6e75d5261353ca3578 authorIngo Blechschmidt <iblech@web.de> dateSun 16 Jan 2022, 19:58 (5 years ago) parent927839f
10 files changed+2223
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml+7 nixos/doc/manual/release-notes/rl-2205.section.md+3 nixos/modules/module-list.nix+1 nixos/modules/services/web-apps/ethercalc.nix+62 pkgs/servers/web-apps/ethercalc/default.nix+27 pkgs/servers/web-apps/ethercalc/generate.sh+15 pkgs/servers/web-apps/ethercalc/node-packages-generated.nix+2086 pkgs/servers/web-apps/ethercalc/node-packages.json+3 pkgs/servers/web-apps/ethercalc/node-packages.nix+17 pkgs/top-level/all-packages.nix+2
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml+7
@@ -169,6 +169,13 @@
169169 <link linkend="opt-services.prosody-filer.enable">services.prosody-filer</link>.
170170 </para>
171171 </listitem>
172+ <listitem>
173+ <para>
174+ <link xlink:href="https://github.com/audreyt/ethercalc">ethercalc</link>,
175+ an online collaborative spreadsheet. Available as
176+ <link xlink:href="options.html#opt-services.ethercalc.enable">services.ethercalc</link>.
177+ </para>
178+ </listitem>
172179 <listitem>
173180 <para>
174181 <link xlink:href="https://timetagger.app">timetagger</link>,
nixos/doc/manual/release-notes/rl-2205.section.md+3
@@ -51,6 +51,9 @@ In addition to numerous new and upgraded packages, this release has the followin
5151
5252- [prosody-filer](https://github.com/ThomasLeister/prosody-filer), a server for handling XMPP HTTP Upload requests. Available at [services.prosody-filer](#opt-services.prosody-filer.enable).
5353
54+- [ethercalc](https://github.com/audreyt/ethercalc), an online collaborative
55+ spreadsheet. Available as [services.ethercalc](options.html#opt-services.ethercalc.enable).
56+
5457- [timetagger](https://timetagger.app), an open source time-tracker with an intuitive user experience and powerful reporting. [services.timetagger](options.html#opt-services.timetagger.enable).
5558
5659- [rstudio-server](https://www.rstudio.com/products/rstudio/#rstudio-server), a browser-based version of the RStudio IDE for the R programming language. Available as [services.rstudio-server](options.html#opt-services.rstudio-server.enable).
nixos/modules/module-list.nix+1
@@ -1005,6 +1005,7 @@
10051005 ./services/web-apps/documize.nix
10061006 ./services/web-apps/dokuwiki.nix
10071007 ./services/web-apps/engelsystem.nix
1008+ ./services/web-apps/ethercalc.nix
10081009 ./services/web-apps/fluidd.nix
10091010 ./services/web-apps/galene.nix
10101011 ./services/web-apps/gerrit.nix
nixos/modules/services/web-apps/ethercalc.nixnew file+62
@@ -0,0 +1,62 @@
1+{ config, lib, pkgs, ... }:
2+
3+with lib;
4+
5+let
6+ cfg = config.services.ethercalc;
7+in {
8+ options = {
9+ services.ethercalc = {
10+ enable = mkOption {
11+ default = false;
12+ type = types.bool;
13+ description = ''
14+ ethercalc, an online collaborative spreadsheet server.
15+
16+ Persistent state will be maintained under
17+ <filename>/var/lib/ethercalc</filename>. Upstream supports using a
18+ redis server for storage and recommends the redis backend for
19+ intensive use; however, the Nix module doesn't currently support
20+ redis.
21+
22+ Note that while ethercalc is a good and robust project with an active
23+ issue tracker, there haven't been new commits since the end of 2020.
24+ '';
25+ };
26+
27+ package = mkOption {
28+ default = pkgs.ethercalc;
29+ defaultText = literalExpression "pkgs.ethercalc";
30+ type = types.package;
31+ description = "Ethercalc package to use.";
32+ };
33+
34+ host = mkOption {
35+ type = types.str;
36+ default = "0.0.0.0";
37+ description = "Address to listen on (use 0.0.0.0 to allow access from any address).";
38+ };
39+
40+ port = mkOption {
41+ type = types.port;
42+ default = 8000;
43+ description = "Port to bind to.";
44+ };
45+ };
46+ };
47+
48+ config = mkIf cfg.enable {
49+ systemd.services.ethercalc = {
50+ description = "Ethercalc service";
51+ wantedBy = [ "multi-user.target" ];
52+ after = [ "network.target" ];
53+ serviceConfig = {
54+ DynamicUser = true;
55+ ExecStart = "${cfg.package}/bin/ethercalc --host ${cfg.host} --port ${toString cfg.port}";
56+ Restart = "always";
57+ StateDirectory = "ethercalc";
58+ WorkingDirectory = "/var/lib/ethercalc";
59+ };
60+ };
61+ };
62+}
pkgs/servers/web-apps/ethercalc/default.nixnew file+27
@@ -0,0 +1,27 @@
1+{ stdenv
2+, pkgs
3+, lib
4+, nodejs-14_x
5+}:
6+
7+let
8+ nodejs = nodejs-14_x;
9+
10+ nodePackages = import ./node-packages.nix {
11+ inherit pkgs nodejs;
12+ inherit (stdenv.hostPlatform) system;
13+ };
14+
15+ ethercalc = lib.head (lib.attrValues nodePackages);
16+
17+ combined = ethercalc.override {
18+ meta = with lib; {
19+ description = "Online collaborative spreadsheet";
20+ license = with licenses; [ cpal10 artistic2 mit asl20 cc0 mpl20 ];
21+ homepage = "https://github.com/audreyt/ethercalc";
22+ maintainers = with maintainers; [ iblech ];
23+ platforms = platforms.unix;
24+ };
25+ };
26+in
27+ combined
pkgs/servers/web-apps/ethercalc/generate.shnew file+15
@@ -0,0 +1,15 @@
1+#!/usr/bin/env nix-shell
2+#! nix-shell -i bash -p nodePackages.node2nix
3+
4+# Run this script not via `./generate.sh`, but via `$PWD/generate.sh`.
5+# Else `nix-shell` will not find this script.
6+
7+set -euo pipefail
8+
9+cd -- "$(dirname -- "$BASH_SOURCE[0]")"
10+
11+node2nix \
12+ --input node-packages.json \
13+ --output node-packages-generated.nix \
14+ --composition node-packages.nix \
15+ --node-env ../../../development/node-packages/node-env.nix
pkgs/servers/web-apps/ethercalc/node-packages-generated.nixnew file+2086
@@ -0,0 +1,2086 @@
1+# This file has been generated by node2nix 1.9.0. Do not edit!
2+
3+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
4+
5+let
6+ sources = {
7+ "accepts-1.0.7" = {
8+ name = "accepts";
9+ packageName = "accepts";
10+ version = "1.0.7";
11+ src = fetchurl {
12+ url = "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz";
13+ sha1 = "5b501fb4f0704309964ccdb048172541208dab1a";
14+ };
15+ };
16+ "adler-32-1.0.0" = {
17+ name = "adler-32";
18+ packageName = "adler-32";
19+ version = "1.0.0";
20+ src = fetchurl {
21+ url = "https://registry.npmjs.org/adler-32/-/adler-32-1.0.0.tgz";
22+ sha1 = "28728a71756f629666dd1653cd80793a9df18651";
23+ };
24+ };
25+ "adler-32-1.2.0" = {
26+ name = "adler-32";
27+ packageName = "adler-32";
28+ version = "1.2.0";
29+ src = fetchurl {
30+ url = "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz";
31+ sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25";
32+ };
33+ };
34+ "adler-32-1.3.0" = {
35+ name = "adler-32";
36+ packageName = "adler-32";
37+ version = "1.3.0";
38+ src = fetchurl {
39+ url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz";
40+ sha512 = "f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==";
41+ };
42+ };
43+ "after-0.8.1" = {
44+ name = "after";
45+ packageName = "after";
46+ version = "0.8.1";
47+ src = fetchurl {
48+ url = "https://registry.npmjs.org/after/-/after-0.8.1.tgz";
49+ sha1 = "ab5d4fb883f596816d3515f8f791c0af486dd627";
50+ };
51+ };
52+ "amdefine-1.0.1" = {
53+ name = "amdefine";
54+ packageName = "amdefine";
55+ version = "1.0.1";
56+ src = fetchurl {
57+ url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
58+ sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
59+ };
60+ };
61+ "any-promise-1.3.0" = {
62+ name = "any-promise";
63+ packageName = "any-promise";
64+ version = "1.3.0";
65+ src = fetchurl {
66+ url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
67+ sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
68+ };
69+ };
70+ "arraybuffer.slice-0.0.6" = {
71+ name = "arraybuffer.slice";
72+ packageName = "arraybuffer.slice";
73+ version = "0.0.6";
74+ src = fetchurl {
75+ url = "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz";
76+ sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca";
77+ };
78+ };
79+ "async-0.2.10" = {
80+ name = "async";
81+ packageName = "async";
82+ version = "0.2.10";
83+ src = fetchurl {
84+ url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
85+ sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
86+ };
87+ };
88+ "babyparse-0.2.1" = {
89+ name = "babyparse";
90+ packageName = "babyparse";
91+ version = "0.2.1";
92+ src = fetchurl {
93+ url = "https://registry.npmjs.org/babyparse/-/babyparse-0.2.1.tgz";
94+ sha1 = "069f035df3fdce6f3a455dd5dafc75178dcf3760";
95+ };
96+ };
97+ "balanced-match-1.0.2" = {
98+ name = "balanced-match";
99+ packageName = "balanced-match";
100+ version = "1.0.2";
101+ src = fetchurl {
102+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
103+ sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
104+ };
105+ };
106+ "base64-arraybuffer-0.1.2" = {
107+ name = "base64-arraybuffer";
108+ packageName = "base64-arraybuffer";
109+ version = "0.1.2";
110+ src = fetchurl {
111+ url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz";
112+ sha1 = "474df4a9f2da24e05df3158c3b1db3c3cd46a154";
113+ };
114+ };
115+ "base64-url-1.2.1" = {
116+ name = "base64-url";
117+ packageName = "base64-url";
118+ version = "1.2.1";
119+ src = fetchurl {
120+ url = "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz";
121+ sha1 = "199fd661702a0e7b7dcae6e0698bb089c52f6d78";
122+ };
123+ };
124+ "base64id-0.1.0" = {
125+ name = "base64id";
126+ packageName = "base64id";
127+ version = "0.1.0";
128+ src = fetchurl {
129+ url = "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz";
130+ sha1 = "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f";
131+ };
132+ };
133+ "basic-auth-1.0.0" = {
134+ name = "basic-auth";
135+ packageName = "basic-auth";
136+ version = "1.0.0";
137+ src = fetchurl {
138+ url = "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz";
139+ sha1 = "111b2d9ff8e4e6d136b8c84ea5e096cb87351637";
140+ };
141+ };
142+ "basic-auth-connect-1.0.0" = {
143+ name = "basic-auth-connect";
144+ packageName = "basic-auth-connect";
145+ version = "1.0.0";
146+ src = fetchurl {
147+ url = "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz";
148+ sha1 = "fdb0b43962ca7b40456a7c2bb48fe173da2d2122";
149+ };
150+ };
151+ "batch-0.5.1" = {
152+ name = "batch";
153+ packageName = "batch";
154+ version = "0.5.1";
155+ src = fetchurl {
156+ url = "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz";
157+ sha1 = "36a4bab594c050fd7b507bca0db30c2d92af4ff2";
158+ };
159+ };
160+ "better-assert-1.0.2" = {
161+ name = "better-assert";
162+ packageName = "better-assert";
163+ version = "1.0.2";
164+ src = fetchurl {
165+ url = "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz";
166+ sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
167+ };
168+ };
169+ "blob-0.0.2" = {
170+ name = "blob";
171+ packageName = "blob";
172+ version = "0.0.2";
173+ src = fetchurl {
174+ url = "https://registry.npmjs.org/blob/-/blob-0.0.2.tgz";
175+ sha1 = "b89562bd6994af95ba1e812155536333aa23cf24";
176+ };
177+ };
178+ "body-parser-1.6.7" = {
179+ name = "body-parser";
180+ packageName = "body-parser";
181+ version = "1.6.7";
182+ src = fetchurl {
183+ url = "https://registry.npmjs.org/body-parser/-/body-parser-1.6.7.tgz";
184+ sha1 = "82306becadf44543e826b3907eae93f0237c4e5c";
185+ };
186+ };
187+ "brace-expansion-1.1.11" = {
188+ name = "brace-expansion";
189+ packageName = "brace-expansion";
190+ version = "1.1.11";
191+ src = fetchurl {
192+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
193+ sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
194+ };
195+ };
196+ "buffer-crc32-0.2.3" = {
197+ name = "buffer-crc32";
198+ packageName = "buffer-crc32";
199+ version = "0.2.3";
200+ src = fetchurl {
201+ url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz";
202+ sha1 = "bb54519e95d107cbd2400e76d0cab1467336d921";
203+ };
204+ };
205+ "buffer-from-1.1.2" = {
206+ name = "buffer-from";
207+ packageName = "buffer-from";
208+ version = "1.1.2";
209+ src = fetchurl {
210+ url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz";
211+ sha512 = "E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==";
212+ };
213+ };
214+ "bytes-1.0.0" = {
215+ name = "bytes";
216+ packageName = "bytes";
217+ version = "1.0.0";
218+ src = fetchurl {
219+ url = "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz";
220+ sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8";
221+ };
222+ };
223+ "callsite-1.0.0" = {
224+ name = "callsite";
225+ packageName = "callsite";
226+ version = "1.0.0";
227+ src = fetchurl {
228+ url = "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz";
229+ sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
230+ };
231+ };
232+ "cfb-0.11.1" = {
233+ name = "cfb";
234+ packageName = "cfb";
235+ version = "0.11.1";
236+ src = fetchurl {
237+ url = "https://registry.npmjs.org/cfb/-/cfb-0.11.1.tgz";
238+ sha1 = "a96db8f272a6c3fb99dbbb23ef41223f48be1ea7";
239+ };
240+ };
241+ "cfb-1.2.1" = {
242+ name = "cfb";
243+ packageName = "cfb";
244+ version = "1.2.1";
245+ src = fetchurl {
246+ url = "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz";
247+ sha512 = "wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==";
248+ };
249+ };
250+ "codepage-1.14.0" = {
251+ name = "codepage";
252+ packageName = "codepage";
253+ version = "1.14.0";
254+ src = fetchurl {
255+ url = "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz";
256+ sha1 = "8cbe25481323559d7d307571b0fff91e7a1d2f99";
257+ };
258+ };
259+ "codepage-1.8.1" = {
260+ name = "codepage";
261+ packageName = "codepage";
262+ version = "1.8.1";
263+ src = fetchurl {
264+ url = "https://registry.npmjs.org/codepage/-/codepage-1.8.1.tgz";
265+ sha1 = "f1a009d5261dc2754628bacb6fbbf0e6e2abffaa";
266+ };
267+ };
268+ "coffee-css-0.0.5" = {
269+ name = "coffee-css";
270+ packageName = "coffee-css";
271+ version = "0.0.5";
272+ src = fetchurl {
273+ url = "https://registry.npmjs.org/coffee-css/-/coffee-css-0.0.5.tgz";
274+ sha1 = "589a822fba5ae0d4f1a0424b22ba7501683275a4";
275+ };
276+ };
277+ "coffee-script-1.12.7" = {
278+ name = "coffee-script";
279+ packageName = "coffee-script";
280+ version = "1.12.7";
281+ src = fetchurl {
282+ url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz";
283+ sha512 = "fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==";
284+ };
285+ };
286+ "coffeecup-0.3.21" = {
287+ name = "coffeecup";
288+ packageName = "coffeecup";
289+ version = "0.3.21";
290+ src = fetchurl {
291+ url = "https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.21.tgz";
292+ sha1 = "54e714175cb223ddd10568517196e0cd566d198a";
293+ };
294+ };
295+ "colors-0.6.2" = {
296+ name = "colors";
297+ packageName = "colors";
298+ version = "0.6.2";
299+ src = fetchurl {
300+ url = "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
301+ sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
302+ };
303+ };
304+ "commander-0.6.1" = {
305+ name = "commander";
306+ packageName = "commander";
307+ version = "0.6.1";
308+ src = fetchurl {
309+ url = "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz";
310+ sha1 = "fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06";
311+ };
312+ };
313+ "commander-1.3.2" = {
314+ name = "commander";
315+ packageName = "commander";
316+ version = "1.3.2";
317+ src = fetchurl {
318+ url = "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz";
319+ sha1 = "8a8f30ec670a6fdd64af52f1914b907d79ead5b5";
320+ };
321+ };
322+ "commander-2.14.1" = {
323+ name = "commander";
324+ packageName = "commander";
325+ version = "2.14.1";
326+ src = fetchurl {
327+ url = "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz";
328+ sha512 = "+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==";
329+ };
330+ };
331+ "commander-2.17.1" = {
332+ name = "commander";
333+ packageName = "commander";
334+ version = "2.17.1";
335+ src = fetchurl {
336+ url = "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz";
337+ sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==";
338+ };
339+ };
340+ "commander-2.9.0" = {
341+ name = "commander";
342+ packageName = "commander";
343+ version = "2.9.0";
344+ src = fetchurl {
345+ url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
346+ sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
347+ };
348+ };
349+ "component-bind-1.0.0" = {
350+ name = "component-bind";
351+ packageName = "component-bind";
352+ version = "1.0.0";
353+ src = fetchurl {
354+ url = "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz";
355+ sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
356+ };
357+ };
358+ "component-emitter-1.1.2" = {
359+ name = "component-emitter";
360+ packageName = "component-emitter";
361+ version = "1.1.2";
362+ src = fetchurl {
363+ url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz";
364+ sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
365+ };
366+ };
367+ "component-inherit-0.0.3" = {
368+ name = "component-inherit";
369+ packageName = "component-inherit";
370+ version = "0.0.3";
371+ src = fetchurl {
372+ url = "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz";
373+ sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
374+ };
375+ };
376+ "compressible-1.1.1" = {
377+ name = "compressible";
378+ packageName = "compressible";
379+ version = "1.1.1";
380+ src = fetchurl {
381+ url = "https://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz";
382+ sha1 = "23b71ea90ea6c6a66289701a918182c24d0729ef";
383+ };
384+ };
385+ "compression-1.0.11" = {
386+ name = "compression";
387+ packageName = "compression";
388+ version = "1.0.11";
389+ src = fetchurl {
390+ url = "https://registry.npmjs.org/compression/-/compression-1.0.11.tgz";
391+ sha1 = "69700cf1ee8963454356ac192a6e5e91e232bffb";
392+ };
393+ };
394+ "concat-map-0.0.1" = {
395+ name = "concat-map";
396+ packageName = "concat-map";
397+ version = "0.0.1";
398+ src = fetchurl {
399+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
400+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
401+ };
402+ };
403+ "concat-stream-2.0.0" = {
404+ name = "concat-stream";
405+ packageName = "concat-stream";
406+ version = "2.0.0";
407+ src = fetchurl {
408+ url = "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz";
409+ sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
410+ };
411+ };
412+ "connect-2.25.9" = {
413+ name = "connect";
414+ packageName = "connect";
415+ version = "2.25.9";
416+ src = fetchurl {
417+ url = "https://registry.npmjs.org/connect/-/connect-2.25.9.tgz";
418+ sha1 = "9680d6f2fb200eadab3d272e419e78e5d87cf31f";
419+ };
420+ };
421+ "connect-timeout-1.2.2" = {
422+ name = "connect-timeout";
423+ packageName = "connect-timeout";
424+ version = "1.2.2";
425+ src = fetchurl {
426+ url = "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.2.2.tgz";
427+ sha1 = "5953602bb66abfd5fa21ae911a7221c5e825a1c0";
428+ };
429+ };
430+ "cookie-0.1.2" = {
431+ name = "cookie";
432+ packageName = "cookie";
433+ version = "0.1.2";
434+ src = fetchurl {
435+ url = "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
436+ sha1 = "72fec3d24e48a3432073d90c12642005061004b1";
437+ };
438+ };
439+ "cookie-parser-1.3.2" = {
440+ name = "cookie-parser";
441+ packageName = "cookie-parser";
442+ version = "1.3.2";
443+ src = fetchurl {
444+ url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.2.tgz";
445+ sha1 = "52211cc82c955d79ff0c088954407724e19cf562";
446+ };
447+ };
448+ "cookie-signature-1.0.4" = {
449+ name = "cookie-signature";
450+ packageName = "cookie-signature";
451+ version = "1.0.4";
452+ src = fetchurl {
453+ url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz";
454+ sha1 = "0edd22286e3a111b9a2a70db363e925e867f6aca";
455+ };
456+ };
457+ "core-util-is-1.0.3" = {
458+ name = "core-util-is";
459+ packageName = "core-util-is";
460+ version = "1.0.3";
461+ src = fetchurl {
462+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
463+ sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
464+ };
465+ };
466+ "cors-2.8.5" = {
467+ name = "cors";
468+ packageName = "cors";
469+ version = "2.8.5";
470+ src = fetchurl {
471+ url = "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz";
472+ sha512 = "KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==";
473+ };
474+ };
475+ "crc-32-1.0.2" = {
476+ name = "crc-32";
477+ packageName = "crc-32";
478+ version = "1.0.2";
479+ src = fetchurl {
480+ url = "https://registry.npmjs.org/crc-32/-/crc-32-1.0.2.tgz";
481+ sha1 = "09507984ee9bcce3bd1b8861f0de8ab10ae8187d";
482+ };
483+ };
484+ "crc-32-1.2.0" = {
485+ name = "crc-32";
486+ packageName = "crc-32";
487+ version = "1.2.0";
488+ src = fetchurl {
489+ url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz";
490+ sha512 = "1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==";
491+ };
492+ };
493+ "csrf-2.0.7" = {
494+ name = "csrf";
495+ packageName = "csrf";
496+ version = "2.0.7";
497+ src = fetchurl {
498+ url = "https://registry.npmjs.org/csrf/-/csrf-2.0.7.tgz";
499+ sha1 = "d04f52e0f6a28a7e2cfe1e01dd5ebc251b3d4201";
500+ };
501+ };
502+ "cssom-0.2.5" = {
503+ name = "cssom";
504+ packageName = "cssom";
505+ version = "0.2.5";
506+ src = fetchurl {
507+ url = "https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz";
508+ sha1 = "2682709b5902e7212df529116ff788cd5b254894";
509+ };
510+ };
511+ "csurf-1.4.1" = {
512+ name = "csurf";
513+ packageName = "csurf";
514+ version = "1.4.1";
515+ src = fetchurl {
516+ url = "https://registry.npmjs.org/csurf/-/csurf-1.4.1.tgz";
517+ sha1 = "0ccaf026992b2d218771d6174f5c6c402a6289fd";
518+ };
519+ };
520+ "csv-parse-0.0.6" = {
521+ name = "csv-parse";
522+ packageName = "csv-parse";
523+ version = "0.0.6";
524+ src = fetchurl {
525+ url = "https://registry.npmjs.org/csv-parse/-/csv-parse-0.0.6.tgz";
526+ sha1 = "94610722650feac81cf549c2c9298632d2b6037c";
527+ };
528+ };
529+ "debug-0.6.0" = {
530+ name = "debug";
531+ packageName = "debug";
532+ version = "0.6.0";
533+ src = fetchurl {
534+ url = "https://registry.npmjs.org/debug/-/debug-0.6.0.tgz";
535+ sha1 = "ce9d5d025d5294b3f0748a494bebaf3c9fd8734f";
536+ };
537+ };
538+ "debug-0.7.4" = {
539+ name = "debug";
540+ packageName = "debug";
541+ version = "0.7.4";
542+ src = fetchurl {
543+ url = "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz";
544+ sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
545+ };
546+ };
547+ "debug-1.0.4" = {
548+ name = "debug";
549+ packageName = "debug";
550+ version = "1.0.4";
551+ src = fetchurl {
552+ url = "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz";
553+ sha1 = "5b9c256bd54b6ec02283176fa8a0ede6d154cbf8";
554+ };
555+ };
556+ "deep-is-0.1.4" = {
557+ name = "deep-is";
558+ packageName = "deep-is";
559+ version = "0.1.4";
560+ src = fetchurl {
561+ url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz";
562+ sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==";
563+ };
564+ };
565+ "depd-0.4.4" = {
566+ name = "depd";
567+ packageName = "depd";
568+ version = "0.4.4";
569+ src = fetchurl {
570+ url = "https://registry.npmjs.org/depd/-/depd-0.4.4.tgz";
571+ sha1 = "07091fae75f97828d89b4a02a2d4778f0e7c0662";
572+ };
573+ };
574+ "destroy-1.0.3" = {
575+ name = "destroy";
576+ packageName = "destroy";
577+ version = "1.0.3";
578+ src = fetchurl {
579+ url = "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
580+ sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
581+ };
582+ };
583+ "ee-first-1.0.5" = {
584+ name = "ee-first";
585+ packageName = "ee-first";
586+ version = "1.0.5";
587+ src = fetchurl {
588+ url = "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz";
589+ sha1 = "8c9b212898d8cd9f1a9436650ce7be202c9e9ff0";
590+ };
591+ };
592+ "emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" = {
593+ name = "emitter";
594+ packageName = "emitter";
595+ version = "1.0.1";
596+ src = fetchurl {
597+ name = "emitter-1.0.1.tar.gz";
598+ url = "https://codeload.github.com/component/emitter/tar.gz/1.0.1";
599+ sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d";
600+ };
601+ };
602+ "engine.io-1.3.1" = {
603+ name = "engine.io";
604+ packageName = "engine.io";
605+ version = "1.3.1";
606+ src = fetchurl {
607+ url = "https://registry.npmjs.org/engine.io/-/engine.io-1.3.1.tgz";
608+ sha1 = "2d968308fffae5d17f5209b6775246e90d8a705e";
609+ };
610+ };
611+ "engine.io-client-1.3.1" = {
612+ name = "engine.io-client";
613+ packageName = "engine.io-client";
614+ version = "1.3.1";
615+ src = fetchurl {
616+ url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.3.1.tgz";
617+ sha1 = "1c5a65d5c5af6d04b44c22c3dbcd95c39ed1c989";
618+ };
619+ };
620+ "engine.io-parser-1.0.6" = {
621+ name = "engine.io-parser";
622+ packageName = "engine.io-parser";
623+ version = "1.0.6";
624+ src = fetchurl {
625+ url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.6.tgz";
626+ sha1 = "d38813143a411cb3b914132ab05bf99e6f7a248e";
627+ };
628+ };
629+ "errorhandler-1.1.1" = {
630+ name = "errorhandler";
631+ packageName = "errorhandler";
632+ version = "1.1.1";
633+ src = fetchurl {
634+ url = "https://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz";
635+ sha1 = "18defd436d8ca2efe0a2d886c5c4d6ee6d76d691";
636+ };
637+ };
638+ "escape-html-1.0.1" = {
639+ name = "escape-html";
640+ packageName = "escape-html";
641+ version = "1.0.1";
642+ src = fetchurl {
643+ url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz";
644+ sha1 = "181a286ead397a39a92857cfb1d43052e356bff0";
645+ };
646+ };
647+ "exit-on-epipe-1.0.1" = {
648+ name = "exit-on-epipe";
649+ packageName = "exit-on-epipe";
650+ version = "1.0.1";
651+ src = fetchurl {
652+ url = "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz";
653+ sha512 = "h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==";
654+ };
655+ };
656+ "express-3.16.9" = {
657+ name = "express";
658+ packageName = "express";
659+ version = "3.16.9";
660+ src = fetchurl {
661+ url = "https://registry.npmjs.org/express/-/express-3.16.9.tgz";
662+ sha1 = "993747be5669700280d9682cb61ad138939847fc";
663+ };
664+ };
665+ "express-session-1.7.6" = {
666+ name = "express-session";
667+ packageName = "express-session";
668+ version = "1.7.6";
669+ src = fetchurl {
670+ url = "https://registry.npmjs.org/express-session/-/express-session-1.7.6.tgz";
671+ sha1 = "e1c369ba2176f7afdb79e77d65dcd8c7c46e48a5";
672+ };
673+ };
674+ "fast-levenshtein-2.0.6" = {
675+ name = "fast-levenshtein";
676+ packageName = "fast-levenshtein";
677+ version = "2.0.6";
678+ src = fetchurl {
679+ url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
680+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
681+ };
682+ };
683+ "finalhandler-0.1.0" = {
684+ name = "finalhandler";
685+ packageName = "finalhandler";
686+ version = "0.1.0";
687+ src = fetchurl {
688+ url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz";
689+ sha1 = "da05bbc4f5f4a30c84ce1d91f3c154007c4e9daa";
690+ };
691+ };
692+ "frac-0.3.1" = {
693+ name = "frac";
694+ packageName = "frac";
695+ version = "0.3.1";
696+ src = fetchurl {
697+ url = "https://registry.npmjs.org/frac/-/frac-0.3.1.tgz";
698+ sha1 = "577677b7fdcbe6faf7c461f1801d34137cda4354";
699+ };
700+ };
701+ "frac-1.0.6" = {
702+ name = "frac";
703+ packageName = "frac";
704+ version = "1.0.6";
705+ src = fetchurl {
706+ url = "https://registry.npmjs.org/frac/-/frac-1.0.6.tgz";
707+ sha1 = "9a0dfc23956852a8b320623bebcf1be9ea048229";
708+ };
709+ };
710+ "frac-1.1.2" = {
711+ name = "frac";
712+ packageName = "frac";
713+ version = "1.1.2";
714+ src = fetchurl {
715+ url = "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz";
716+ sha512 = "w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==";
717+ };
718+ };
719+ "fresh-0.2.2" = {
720+ name = "fresh";
721+ packageName = "fresh";
722+ version = "0.2.2";
723+ src = fetchurl {
724+ url = "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz";
725+ sha1 = "9731dcf5678c7faeb44fb903c4f72df55187fa77";
726+ };
727+ };
728+ "global-https://github.com/component/global/archive/v2.0.1.tar.gz" = {
729+ name = "global";
730+ packageName = "global";
731+ version = "2.0.1";
732+ src = fetchurl {
733+ name = "global-2.0.1.tar.gz";
734+ url = "https://codeload.github.com/component/global/tar.gz/v2.0.1";
735+ sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785";
736+ };
737+ };
738+ "graceful-readlink-1.0.1" = {
739+ name = "graceful-readlink";
740+ packageName = "graceful-readlink";
741+ version = "1.0.1";
742+ src = fetchurl {
743+ url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
744+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
745+ };
746+ };
747+ "harb-0.1.1" = {
748+ name = "harb";
749+ packageName = "harb";
750+ version = "0.1.1";
751+ src = fetchurl {
752+ url = "https://registry.npmjs.org/harb/-/harb-0.1.1.tgz";
753+ sha1 = "b8239bae2f0724b65aaaf2e74e9eb15a04db50eb";
754+ };
755+ };
756+ "has-binary-data-0.1.1" = {
757+ name = "has-binary-data";
758+ packageName = "has-binary-data";
759+ version = "0.1.1";
760+ src = fetchurl {
761+ url = "https://registry.npmjs.org/has-binary-data/-/has-binary-data-0.1.1.tgz";
762+ sha1 = "e10749fb87828a52df96f4086587eb4a03966439";
763+ };
764+ };
765+ "has-cors-1.0.3" = {
766+ name = "has-cors";
767+ packageName = "has-cors";
768+ version = "1.0.3";
769+ src = fetchurl {
770+ url = "https://registry.npmjs.org/has-cors/-/has-cors-1.0.3.tgz";
771+ sha1 = "502acb9b3104dac33dd2630eaf2f888b0baf4cb3";
772+ };
773+ };
774+ "iconv-lite-0.4.24" = {
775+ name = "iconv-lite";
776+ packageName = "iconv-lite";
777+ version = "0.4.24";
778+ src = fetchurl {
779+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
780+ sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
781+ };
782+ };
783+ "iconv-lite-0.4.4" = {
784+ name = "iconv-lite";
785+ packageName = "iconv-lite";
786+ version = "0.4.4";
787+ src = fetchurl {
788+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz";
789+ sha1 = "e95f2e41db0735fc21652f7827a5ee32e63c83a8";
790+ };
791+ };
792+ "indexof-0.0.1" = {
793+ name = "indexof";
794+ packageName = "indexof";
795+ version = "0.0.1";
796+ src = fetchurl {
797+ url = "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz";
798+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
799+ };
800+ };
801+ "inherits-2.0.4" = {
802+ name = "inherits";
803+ packageName = "inherits";
804+ version = "2.0.4";
805+ src = fetchurl {
806+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
807+ sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
808+ };
809+ };
810+ "ipaddr.js-0.1.2" = {
811+ name = "ipaddr.js";
812+ packageName = "ipaddr.js";
813+ version = "0.1.2";
814+ src = fetchurl {
815+ url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz";
816+ sha1 = "6a1fd3d854f5002965c34d7bbcd9b4a8d4b0467e";
817+ };
818+ };
819+ "isarray-0.0.1" = {
820+ name = "isarray";
821+ packageName = "isarray";
822+ version = "0.0.1";
823+ src = fetchurl {
824+ url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
825+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
826+ };
827+ };
828+ "j-0.4.5" = {
829+ name = "j";
830+ packageName = "j";
831+ version = "0.4.5";
832+ src = fetchurl {
833+ url = "https://registry.npmjs.org/j/-/j-0.4.5.tgz";
834+ sha1 = "02cf29f1ddbe54e527263d0754d6e8d217a6064e";
835+ };
836+ };
837+ "json3-3.2.6" = {
838+ name = "json3";
839+ packageName = "json3";
840+ version = "3.2.6";
841+ src = fetchurl {
842+ url = "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz";
843+ sha1 = "f6efc93c06a04de9aec53053df2559bb19e2038b";
844+ };
845+ };
846+ "keypress-0.1.0" = {
847+ name = "keypress";
848+ packageName = "keypress";
849+ version = "0.1.0";
850+ src = fetchurl {
851+ url = "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz";
852+ sha1 = "4a3188d4291b66b4f65edb99f806aa9ae293592a";
853+ };
854+ };
855+ "levn-0.3.0" = {
856+ name = "levn";
857+ packageName = "levn";
858+ version = "0.3.0";
859+ src = fetchurl {
860+ url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
861+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
862+ };
863+ };
864+ "livescript-1.5.0" = {
865+ name = "livescript";
866+ packageName = "livescript";
867+ version = "1.5.0";
868+ src = fetchurl {
869+ url = "https://registry.npmjs.org/livescript/-/livescript-1.5.0.tgz";
870+ sha1 = "4fe7121c41217e4608e334eb9cbe1762e63e5566";
871+ };
872+ };
873+ "media-typer-0.2.0" = {
874+ name = "media-typer";
875+ packageName = "media-typer";
876+ version = "0.2.0";
877+ src = fetchurl {
878+ url = "https://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz";
879+ sha1 = "d8a065213adfeaa2e76321a2b6dda36ff6335984";
880+ };
881+ };
882+ "merge-descriptors-0.0.2" = {
883+ name = "merge-descriptors";
884+ packageName = "merge-descriptors";
885+ version = "0.0.2";
886+ src = fetchurl {
887+ url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz";
888+ sha1 = "c36a52a781437513c57275f39dd9d317514ac8c7";
889+ };
890+ };
891+ "method-override-2.1.3" = {
892+ name = "method-override";
893+ packageName = "method-override";
894+ version = "2.1.3";
895+ src = fetchurl {
896+ url = "https://registry.npmjs.org/method-override/-/method-override-2.1.3.tgz";
897+ sha1 = "511f41c4fb1dccdb6ab1844da5dc6ea81b7c1135";
898+ };
899+ };
900+ "methods-1.1.0" = {
901+ name = "methods";
902+ packageName = "methods";
903+ version = "1.1.0";
904+ src = fetchurl {
905+ url = "https://registry.npmjs.org/methods/-/methods-1.1.0.tgz";
906+ sha1 = "5dca4ee12df52ff3b056145986a8f01cbc86436f";
907+ };
908+ };
909+ "mime-1.2.11" = {
910+ name = "mime";
911+ packageName = "mime";
912+ version = "1.2.11";
913+ src = fetchurl {
914+ url = "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
915+ sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
916+ };
917+ };
918+ "mime-types-1.0.2" = {
919+ name = "mime-types";
920+ packageName = "mime-types";
921+ version = "1.0.2";
922+ src = fetchurl {
923+ url = "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
924+ sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce";
925+ };
926+ };
927+ "minimatch-3.0.4" = {
928+ name = "minimatch";
929+ packageName = "minimatch";
930+ version = "3.0.4";
931+ src = fetchurl {
932+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
933+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
934+ };
935+ };
936+ "minimist-0.0.10" = {
937+ name = "minimist";
938+ packageName = "minimist";
939+ version = "0.0.10";
940+ src = fetchurl {
941+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz";
942+ sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
943+ };
944+ };
945+ "minimist-0.0.8" = {
946+ name = "minimist";
947+ packageName = "minimist";
948+ version = "0.0.8";
949+ src = fetchurl {
950+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
951+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
952+ };
953+ };
954+ "mkdirp-0.3.5" = {
955+ name = "mkdirp";
956+ packageName = "mkdirp";
957+ version = "0.3.5";
958+ src = fetchurl {
959+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
960+ sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
961+ };
962+ };
963+ "mkdirp-0.5.0" = {
964+ name = "mkdirp";
965+ packageName = "mkdirp";
966+ version = "0.5.0";
967+ src = fetchurl {
968+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz";
969+ sha1 = "1d73076a6df986cd9344e15e71fcc05a4c9abf12";
970+ };
971+ };
972+ "morgan-1.2.3" = {
973+ name = "morgan";
974+ packageName = "morgan";
975+ version = "1.2.3";
976+ src = fetchurl {
977+ url = "https://registry.npmjs.org/morgan/-/morgan-1.2.3.tgz";
978+ sha1 = "3b0f1704df90255a542591abacd797891a8c40a1";
979+ };
980+ };
981+ "ms-0.6.2" = {
982+ name = "ms";
983+ packageName = "ms";
984+ version = "0.6.2";
985+ src = fetchurl {
986+ url = "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz";
987+ sha1 = "d89c2124c6fdc1353d65a8b77bf1aac4b193708c";
988+ };
989+ };
990+ "multiparty-3.3.2" = {
991+ name = "multiparty";
992+ packageName = "multiparty";
993+ version = "3.3.2";
994+ src = fetchurl {
995+ url = "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz";
996+ sha1 = "35de6804dc19643e5249f3d3e3bdc6c8ce301d3f";
997+ };
998+ };
999+ "mz-1.3.0" = {
1000+ name = "mz";
1001+ packageName = "mz";
1002+ version = "1.3.0";
1003+ src = fetchurl {
1004+ url = "https://registry.npmjs.org/mz/-/mz-1.3.0.tgz";
1005+ sha1 = "06f093fdd9956a06d37e1b1e81344e27478c42f0";
1006+ };
1007+ };
1008+ "nan-0.3.2" = {
1009+ name = "nan";
1010+ packageName = "nan";
1011+ version = "0.3.2";
1012+ src = fetchurl {
1013+ url = "https://registry.npmjs.org/nan/-/nan-0.3.2.tgz";
1014+ sha1 = "0df1935cab15369075ef160ad2894107aa14dc2d";
1015+ };
1016+ };
1017+ "native-or-bluebird-1.1.2" = {
1018+ name = "native-or-bluebird";
1019+ packageName = "native-or-bluebird";
1020+ version = "1.1.2";
1021+ src = fetchurl {
1022+ url = "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz";
1023+ sha1 = "3921e110232d1eb790f3dac61bb370531c7d356e";
1024+ };
1025+ };
1026+ "negotiator-0.4.7" = {
1027+ name = "negotiator";
1028+ packageName = "negotiator";
1029+ version = "0.4.7";
1030+ src = fetchurl {
1031+ url = "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz";
1032+ sha1 = "a4160f7177ec806738631d0d3052325da42abdc8";
1033+ };
1034+ };
1035+ "node-uuid-1.4.1" = {
1036+ name = "node-uuid";
1037+ packageName = "node-uuid";
1038+ version = "1.4.1";
1039+ src = fetchurl {
1040+ url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz";
1041+ sha1 = "39aef510e5889a3dca9c895b506c73aae1bac048";
1042+ };
1043+ };
1044+ "object-assign-4.1.1" = {
1045+ name = "object-assign";
1046+ packageName = "object-assign";
1047+ version = "4.1.1";
1048+ src = fetchurl {
1049+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
1050+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
1051+ };
1052+ };
1053+ "object-component-0.0.3" = {
1054+ name = "object-component";
1055+ packageName = "object-component";
1056+ version = "0.0.3";
1057+ src = fetchurl {
1058+ url = "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz";
1059+ sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
1060+ };
1061+ };
1062+ "on-finished-2.1.0" = {
1063+ name = "on-finished";
1064+ packageName = "on-finished";
1065+ version = "2.1.0";
1066+ src = fetchurl {
1067+ url = "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz";
1068+ sha1 = "0c539f09291e8ffadde0c8a25850fb2cedc7022d";
1069+ };
1070+ };
1071+ "on-headers-1.0.2" = {
1072+ name = "on-headers";
1073+ packageName = "on-headers";
1074+ version = "1.0.2";
1075+ src = fetchurl {
1076+ url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
1077+ sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
1078+ };
1079+ };
1080+ "optimist-0.3.7" = {
1081+ name = "optimist";
1082+ packageName = "optimist";
1083+ version = "0.3.7";
1084+ src = fetchurl {
1085+ url = "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
1086+ sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
1087+ };
1088+ };
1089+ "optimist-0.6.1" = {
1090+ name = "optimist";
1091+ packageName = "optimist";
1092+ version = "0.6.1";
1093+ src = fetchurl {
1094+ url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz";
1095+ sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
1096+ };
1097+ };
1098+ "optionator-0.8.3" = {
1099+ name = "optionator";
1100+ packageName = "optionator";
1101+ version = "0.8.3";
1102+ src = fetchurl {
1103+ url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
1104+ sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
1105+ };
1106+ };
1107+ "options-0.0.6" = {
1108+ name = "options";
1109+ packageName = "options";
1110+ version = "0.0.6";
1111+ src = fetchurl {
1112+ url = "https://registry.npmjs.org/options/-/options-0.0.6.tgz";
1113+ sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
1114+ };
1115+ };
1116+ "optparse-1.0.3" = {
1117+ name = "optparse";
1118+ packageName = "optparse";
1119+ version = "1.0.3";
1120+ src = fetchurl {
1121+ url = "https://registry.npmjs.org/optparse/-/optparse-1.0.3.tgz";
1122+ sha1 = "2ff49a3d691b90b0b9a1be9117f292373eb1bd66";
1123+ };
1124+ };
1125+ "parsejson-0.0.1" = {
1126+ name = "parsejson";
1127+ packageName = "parsejson";
1128+ version = "0.0.1";
1129+ src = fetchurl {
1130+ url = "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz";
1131+ sha1 = "9b10c6c0d825ab589e685153826de0a3ba278bcc";
1132+ };
1133+ };
1134+ "parseqs-0.0.2" = {
1135+ name = "parseqs";
1136+ packageName = "parseqs";
1137+ version = "0.0.2";
1138+ src = fetchurl {
1139+ url = "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz";
1140+ sha1 = "9dfe70b2cddac388bde4f35b1f240fa58adbe6c7";
1141+ };
1142+ };
1143+ "parseuri-0.0.2" = {
1144+ name = "parseuri";
1145+ packageName = "parseuri";
1146+ version = "0.0.2";
1147+ src = fetchurl {
1148+ url = "https://registry.npmjs.org/parseuri/-/parseuri-0.0.2.tgz";
1149+ sha1 = "db41878f2d6964718be870b3140973d8093be156";
1150+ };
1151+ };
1152+ "parseurl-1.3.3" = {
1153+ name = "parseurl";
1154+ packageName = "parseurl";
1155+ version = "1.3.3";
1156+ src = fetchurl {
1157+ url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
1158+ sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
1159+ };
1160+ };
1161+ "pause-0.0.1" = {
1162+ name = "pause";
1163+ packageName = "pause";
1164+ version = "0.0.1";
1165+ src = fetchurl {
1166+ url = "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz";
1167+ sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d";
1168+ };
1169+ };
1170+ "prelude-ls-1.1.2" = {
1171+ name = "prelude-ls";
1172+ packageName = "prelude-ls";
1173+ version = "1.1.2";
1174+ src = fetchurl {
1175+ url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
1176+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
1177+ };
1178+ };
1179+ "printj-1.1.2" = {
1180+ name = "printj";
1181+ packageName = "printj";
1182+ version = "1.1.2";
1183+ src = fetchurl {
1184+ url = "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz";
1185+ sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==";
1186+ };
1187+ };
1188+ "printj-1.2.3" = {
1189+ name = "printj";
1190+ packageName = "printj";
1191+ version = "1.2.3";
1192+ src = fetchurl {
1193+ url = "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz";
1194+ sha512 = "sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==";
1195+ };
1196+ };
1197+ "printj-1.3.0" = {
1198+ name = "printj";
1199+ packageName = "printj";
1200+ version = "1.3.0";
1201+ src = fetchurl {
1202+ url = "https://registry.npmjs.org/printj/-/printj-1.3.0.tgz";
1203+ sha512 = "017o8YIaz8gLhaNxRB9eBv2mWXI2CtzhPJALnQTP+OPpuUfP0RMWqr/mHCzqVeu1AQxfzSfAtAq66vKB8y7Lzg==";
1204+ };
1205+ };
1206+ "proxy-addr-1.0.1" = {
1207+ name = "proxy-addr";
1208+ packageName = "proxy-addr";
1209+ version = "1.0.1";
1210+ src = fetchurl {
1211+ url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz";
1212+ sha1 = "c7c566d5eb4e3fad67eeb9c77c5558ccc39b88a8";
1213+ };
1214+ };
1215+ "qs-2.2.2" = {
1216+ name = "qs";
1217+ packageName = "qs";
1218+ version = "2.2.2";
1219+ src = fetchurl {
1220+ url = "https://registry.npmjs.org/qs/-/qs-2.2.2.tgz";
1221+ sha1 = "dfe783f1854b1ac2b3ade92775ad03e27e03218c";
1222+ };
1223+ };
1224+ "range-parser-1.0.0" = {
1225+ name = "range-parser";
1226+ packageName = "range-parser";
1227+ version = "1.0.0";
1228+ src = fetchurl {
1229+ url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz";
1230+ sha1 = "a4b264cfe0be5ce36abe3765ac9c2a248746dbc0";
1231+ };
1232+ };
1233+ "raw-body-1.3.0" = {
1234+ name = "raw-body";
1235+ packageName = "raw-body";
1236+ version = "1.3.0";
1237+ src = fetchurl {
1238+ url = "https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz";
1239+ sha1 = "978230a156a5548f42eef14de22d0f4f610083d1";
1240+ };
1241+ };
1242+ "readable-stream-1.1.14" = {
1243+ name = "readable-stream";
1244+ packageName = "readable-stream";
1245+ version = "1.1.14";
1246+ src = fetchurl {
1247+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
1248+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
1249+ };
1250+ };
1251+ "readable-stream-3.6.0" = {
1252+ name = "readable-stream";
1253+ packageName = "readable-stream";
1254+ version = "3.6.0";
1255+ src = fetchurl {
1256+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
1257+ sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
1258+ };
1259+ };
1260+ "redis-0.12.1" = {
1261+ name = "redis";
1262+ packageName = "redis";
1263+ version = "0.12.1";
1264+ src = fetchurl {
1265+ url = "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz";
1266+ sha1 = "64df76ad0fc8acebaebd2a0645e8a48fac49185e";
1267+ };
1268+ };
1269+ "response-time-2.0.1" = {
1270+ name = "response-time";
1271+ packageName = "response-time";
1272+ version = "2.0.1";
1273+ src = fetchurl {
1274+ url = "https://registry.npmjs.org/response-time/-/response-time-2.0.1.tgz";
1275+ sha1 = "c6d2cbadeac4cb251b21016fe182640c02aff343";
1276+ };
1277+ };
1278+ "rndm-1.1.1" = {
1279+ name = "rndm";
1280+ packageName = "rndm";
1281+ version = "1.1.1";
1282+ src = fetchurl {
1283+ url = "https://registry.npmjs.org/rndm/-/rndm-1.1.1.tgz";
1284+ sha1 = "efcef4374021f78b63de6226b5985120269d64f1";
1285+ };
1286+ };
1287+ "safe-buffer-5.2.1" = {
1288+ name = "safe-buffer";
1289+ packageName = "safe-buffer";
1290+ version = "5.2.1";
1291+ src = fetchurl {
1292+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
1293+ sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
1294+ };
1295+ };
1296+ "safer-buffer-2.1.2" = {
1297+ name = "safer-buffer";
1298+ packageName = "safer-buffer";
1299+ version = "2.1.2";
1300+ src = fetchurl {
1301+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
1302+ sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
1303+ };
1304+ };
1305+ "scmp-1.0.0" = {
1306+ name = "scmp";
1307+ packageName = "scmp";
1308+ version = "1.0.0";
1309+ src = fetchurl {
1310+ url = "https://registry.npmjs.org/scmp/-/scmp-1.0.0.tgz";
1311+ sha1 = "a0b272c3fc7292f77115646f00618b0262514e04";
1312+ };
1313+ };
1314+ "send-0.8.3" = {
1315+ name = "send";
1316+ packageName = "send";
1317+ version = "0.8.3";
1318+ src = fetchurl {
1319+ url = "https://registry.npmjs.org/send/-/send-0.8.3.tgz";
1320+ sha1 = "593886004fcb968a1b5727814a32b388b3b99083";
1321+ };
1322+ };
1323+ "send-0.8.5" = {
1324+ name = "send";
1325+ packageName = "send";
1326+ version = "0.8.5";
1327+ src = fetchurl {
1328+ url = "https://registry.npmjs.org/send/-/send-0.8.5.tgz";
1329+ sha1 = "37f708216e6f50c175e74c69fec53484e2fd82c7";
1330+ };
1331+ };
1332+ "serve-favicon-2.0.1" = {
1333+ name = "serve-favicon";
1334+ packageName = "serve-favicon";
1335+ version = "2.0.1";
1336+ src = fetchurl {
1337+ url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz";
1338+ sha1 = "4826975d9f173ca3a4158e9698161f75dec7afec";
1339+ };
1340+ };
1341+ "serve-index-1.1.6" = {
1342+ name = "serve-index";
1343+ packageName = "serve-index";
1344+ version = "1.1.6";
1345+ src = fetchurl {
1346+ url = "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz";
1347+ sha1 = "b758318fe781628383f66ac80dd447712ea7781f";
1348+ };
1349+ };
1350+ "serve-static-1.5.4" = {
1351+ name = "serve-static";
1352+ packageName = "serve-static";
1353+ version = "1.5.4";
1354+ src = fetchurl {
1355+ url = "https://registry.npmjs.org/serve-static/-/serve-static-1.5.4.tgz";
1356+ sha1 = "819fb37ae46bd02dd520b77fcf7fd8f5112f9782";
1357+ };
1358+ };
1359+ "socialcalc-2.3.0" = {
1360+ name = "socialcalc";
1361+ packageName = "socialcalc";
1362+ version = "2.3.0";
1363+ src = fetchurl {
1364+ url = "https://registry.npmjs.org/socialcalc/-/socialcalc-2.3.0.tgz";
1365+ sha512 = "hkK5c7eRRGzOiRNPFCQ/kzv2wqOSFaD4AtYag962r0jV0mlyhTQ7xvs3r14MB3Xbo2hAWq5AKYddrtqvuWvDAA==";
1366+ };
1367+ };
1368+ "socket.io-1.0.6" = {
1369+ name = "socket.io";
1370+ packageName = "socket.io";
1371+ version = "1.0.6";
1372+ src = fetchurl {
1373+ url = "https://registry.npmjs.org/socket.io/-/socket.io-1.0.6.tgz";
1374+ sha1 = "b566532888dae3ac9058a12f294015ebdfa8084a";
1375+ };
1376+ };
1377+ "socket.io-adapter-0.2.0" = {
1378+ name = "socket.io-adapter";
1379+ packageName = "socket.io-adapter";
1380+ version = "0.2.0";
1381+ src = fetchurl {
1382+ url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.2.0.tgz";
1383+ sha1 = "bd39329b8961371787e24f345b074ec9cf000e33";
1384+ };
1385+ };
1386+ "socket.io-client-1.0.6" = {
1387+ name = "socket.io-client";
1388+ packageName = "socket.io-client";
1389+ version = "1.0.6";
1390+ src = fetchurl {
1391+ url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.6.tgz";
1392+ sha1 = "c86cb3e507ab2f96da4500bd34fcf46a1e9dfe5e";
1393+ };
1394+ };
1395+ "socket.io-parser-2.1.2" = {
1396+ name = "socket.io-parser";
1397+ packageName = "socket.io-parser";
1398+ version = "2.1.2";
1399+ src = fetchurl {
1400+ url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.2.tgz";
1401+ sha1 = "876655b9edd555c5bdf7301cedf30a436c67b8b0";
1402+ };
1403+ };
1404+ "socket.io-parser-2.2.0" = {
1405+ name = "socket.io-parser";
1406+ packageName = "socket.io-parser";
1407+ version = "2.2.0";
1408+ src = fetchurl {
1409+ url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.0.tgz";
1410+ sha1 = "2609601f59e6a7fab436a53be3d333fbbfcbd30a";
1411+ };
1412+ };
1413+ "source-map-0.1.34" = {
1414+ name = "source-map";
1415+ packageName = "source-map";
1416+ version = "0.1.34";
1417+ src = fetchurl {
1418+ url = "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz";
1419+ sha1 = "a7cfe89aec7b1682c3b198d0acfb47d7d090566b";
1420+ };
1421+ };
1422+ "source-map-0.5.7" = {
1423+ name = "source-map";
1424+ packageName = "source-map";
1425+ version = "0.5.7";
1426+ src = fetchurl {
1427+ url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
1428+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
1429+ };
1430+ };
1431+ "ssf-0.10.3" = {
1432+ name = "ssf";
1433+ packageName = "ssf";
1434+ version = "0.10.3";
1435+ src = fetchurl {
1436+ url = "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz";
1437+ sha512 = "pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==";
1438+ };
1439+ };
1440+ "ssf-0.8.2" = {
1441+ name = "ssf";
1442+ packageName = "ssf";
1443+ version = "0.8.2";
1444+ src = fetchurl {
1445+ url = "https://registry.npmjs.org/ssf/-/ssf-0.8.2.tgz";
1446+ sha1 = "b9d4dc6a1c1bcf76f8abfa96d7d7656fb2abecd6";
1447+ };
1448+ };
1449+ "ssf-0.9.4" = {
1450+ name = "ssf";
1451+ packageName = "ssf";
1452+ version = "0.9.4";
1453+ src = fetchurl {
1454+ url = "https://registry.npmjs.org/ssf/-/ssf-0.9.4.tgz";
1455+ sha1 = "8e57a98c19dbbf1edd53f0f8c9e7fd524b0f6c9c";
1456+ };
1457+ };
1458+ "stream-counter-0.2.0" = {
1459+ name = "stream-counter";
1460+ packageName = "stream-counter";
1461+ version = "0.2.0";
1462+ src = fetchurl {
1463+ url = "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz";
1464+ sha1 = "ded266556319c8b0e222812b9cf3b26fa7d947de";
1465+ };
1466+ };
1467+ "string_decoder-0.10.31" = {
1468+ name = "string_decoder";
1469+ packageName = "string_decoder";
1470+ version = "0.10.31";
1471+ src = fetchurl {
1472+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
1473+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
1474+ };
1475+ };
1476+ "string_decoder-1.3.0" = {
1477+ name = "string_decoder";
1478+ packageName = "string_decoder";
1479+ version = "1.3.0";
1480+ src = fetchurl {
1481+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
1482+ sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
1483+ };
1484+ };
1485+ "stylus-0.27.2" = {
1486+ name = "stylus";
1487+ packageName = "stylus";
1488+ version = "0.27.2";
1489+ src = fetchurl {
1490+ url = "https://registry.npmjs.org/stylus/-/stylus-0.27.2.tgz";
1491+ sha1 = "1121f7f8cd152b0f8a4aa6a24a9adea10c825117";
1492+ };
1493+ };
1494+ "thenify-3.3.1" = {
1495+ name = "thenify";
1496+ packageName = "thenify";
1497+ version = "3.3.1";
1498+ src = fetchurl {
1499+ url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
1500+ sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
1501+ };
1502+ };
1503+ "thenify-all-1.6.0" = {
1504+ name = "thenify-all";
1505+ packageName = "thenify-all";
1506+ version = "1.6.0";
1507+ src = fetchurl {
1508+ url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
1509+ sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
1510+ };
1511+ };
1512+ "tinycolor-0.0.1" = {
1513+ name = "tinycolor";
1514+ packageName = "tinycolor";
1515+ version = "0.0.1";
1516+ src = fetchurl {
1517+ url = "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz";
1518+ sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
1519+ };
1520+ };
1521+ "to-array-0.1.3" = {
1522+ name = "to-array";
1523+ packageName = "to-array";
1524+ version = "0.1.3";
1525+ src = fetchurl {
1526+ url = "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz";
1527+ sha1 = "d45dadc6363417f60f28474fea50ecddbb4f4991";
1528+ };
1529+ };
1530+ "type-check-0.3.2" = {
1531+ name = "type-check";
1532+ packageName = "type-check";
1533+ version = "0.3.2";
1534+ src = fetchurl {
1535+ url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
1536+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
1537+ };
1538+ };
1539+ "type-is-1.3.2" = {
1540+ name = "type-is";
1541+ packageName = "type-is";
1542+ version = "1.3.2";
1543+ src = fetchurl {
1544+ url = "https://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz";
1545+ sha1 = "4f2a5dc58775ca1630250afc7186f8b36309d1bb";
1546+ };
1547+ };
1548+ "typedarray-0.0.6" = {
1549+ name = "typedarray";
1550+ packageName = "typedarray";
1551+ version = "0.0.6";
1552+ src = fetchurl {
1553+ url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
1554+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
1555+ };
1556+ };
1557+ "uglify-js-1.2.6" = {
1558+ name = "uglify-js";
1559+ packageName = "uglify-js";
1560+ version = "1.2.6";
1561+ src = fetchurl {
1562+ url = "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz";
1563+ sha1 = "d354b2d3c1cf10ebc18fa78c11a28bdd9ce1580d";
1564+ };
1565+ };
1566+ "uglify-js-2.4.15" = {
1567+ name = "uglify-js";
1568+ packageName = "uglify-js";
1569+ version = "2.4.15";
1570+ src = fetchurl {
1571+ url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.15.tgz";
1572+ sha1 = "12bc6d84345fbc306e13f7075d6437a8bf64d7e3";
1573+ };
1574+ };
1575+ "uglify-to-browserify-1.0.2" = {
1576+ name = "uglify-to-browserify";
1577+ packageName = "uglify-to-browserify";
1578+ version = "1.0.2";
1579+ src = fetchurl {
1580+ url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
1581+ sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
1582+ };
1583+ };
1584+ "uid-safe-1.0.1" = {
1585+ name = "uid-safe";
1586+ packageName = "uid-safe";
1587+ version = "1.0.1";
1588+ src = fetchurl {
1589+ url = "https://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz";
1590+ sha1 = "5bd148460a2e84f54f193fd20352c8c3d7de6ac8";
1591+ };
1592+ };
1593+ "uid-safe-1.1.0" = {
1594+ name = "uid-safe";
1595+ packageName = "uid-safe";
1596+ version = "1.1.0";
1597+ src = fetchurl {
1598+ url = "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz";
1599+ sha1 = "58d6c5dabf8dfbd8d52834839806c03fd6143232";
1600+ };
1601+ };
1602+ "underscore-1.13.2" = {
1603+ name = "underscore";
1604+ packageName = "underscore";
1605+ version = "1.13.2";
1606+ src = fetchurl {
1607+ url = "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz";
1608+ sha512 = "ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==";
1609+ };
1610+ };
1611+ "utf8-2.0.0" = {
1612+ name = "utf8";
1613+ packageName = "utf8";
1614+ version = "2.0.0";
1615+ src = fetchurl {
1616+ url = "https://registry.npmjs.org/utf8/-/utf8-2.0.0.tgz";
1617+ sha1 = "79ce59eced874809cab9a71fc7102c7d45d4118d";
1618+ };
1619+ };
1620+ "util-deprecate-1.0.2" = {
1621+ name = "util-deprecate";
1622+ packageName = "util-deprecate";
1623+ version = "1.0.2";
1624+ src = fetchurl {
1625+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
1626+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
1627+ };
1628+ };
1629+ "utils-merge-1.0.0" = {
1630+ name = "utils-merge";
1631+ packageName = "utils-merge";
1632+ version = "1.0.0";
1633+ src = fetchurl {
1634+ url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
1635+ sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
1636+ };
1637+ };
1638+ "uuid-pure-1.0.10" = {
1639+ name = "uuid-pure";
1640+ packageName = "uuid-pure";
1641+ version = "1.0.10";
1642+ src = fetchurl {
1643+ url = "https://registry.npmjs.org/uuid-pure/-/uuid-pure-1.0.10.tgz";
1644+ sha1 = "72f231b59cf6c3af5e9f6ba7b963a9186d109b5d";
1645+ };
1646+ };
1647+ "vary-0.1.0" = {
1648+ name = "vary";
1649+ packageName = "vary";
1650+ version = "0.1.0";
1651+ src = fetchurl {
1652+ url = "https://registry.npmjs.org/vary/-/vary-0.1.0.tgz";
1653+ sha1 = "df0945899e93c0cc5bd18cc8321d9d21e74f6176";
1654+ };
1655+ };
1656+ "vary-1.0.1" = {
1657+ name = "vary";
1658+ packageName = "vary";
1659+ version = "1.0.1";
1660+ src = fetchurl {
1661+ url = "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz";
1662+ sha1 = "99e4981566a286118dfb2b817357df7993376d10";
1663+ };
1664+ };
1665+ "vary-1.1.2" = {
1666+ name = "vary";
1667+ packageName = "vary";
1668+ version = "1.1.2";
1669+ src = fetchurl {
1670+ url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
1671+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
1672+ };
1673+ };
1674+ "vhost-2.0.0" = {
1675+ name = "vhost";
1676+ packageName = "vhost";
1677+ version = "2.0.0";
1678+ src = fetchurl {
1679+ url = "https://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz";
1680+ sha1 = "1e26770bd0fce86c40945591e6f284c6891791e2";
1681+ };
1682+ };
1683+ "voc-1.2.0" = {
1684+ name = "voc";
1685+ packageName = "voc";
1686+ version = "1.2.0";
1687+ src = fetchurl {
1688+ url = "https://registry.npmjs.org/voc/-/voc-1.2.0.tgz";
1689+ sha512 = "BOuDjFFYvJdZO6e/N65AlaDItXo2TgyLjeyRYcqgAPkXpp5yTJcvkL2n+syO1r9Qc5g96tfBD2tuiMhYDmaGcA==";
1690+ };
1691+ };
1692+ "word-wrap-1.2.3" = {
1693+ name = "word-wrap";
1694+ packageName = "word-wrap";
1695+ version = "1.2.3";
1696+ src = fetchurl {
1697+ url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
1698+ sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
1699+ };
1700+ };
1701+ "wordwrap-0.0.3" = {
1702+ name = "wordwrap";
1703+ packageName = "wordwrap";
1704+ version = "0.0.3";
1705+ src = fetchurl {
1706+ url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz";
1707+ sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
1708+ };
1709+ };
1710+ "ws-0.4.31" = {
1711+ name = "ws";
1712+ packageName = "ws";
1713+ version = "0.4.31";
1714+ src = fetchurl {
1715+ url = "https://registry.npmjs.org/ws/-/ws-0.4.31.tgz";
1716+ sha1 = "5a4849e7a9ccd1ed5a81aeb4847c9fedf3122927";
1717+ };
1718+ };
1719+ "xlsjs-0.7.6" = {
1720+ name = "xlsjs";
1721+ packageName = "xlsjs";
1722+ version = "0.7.6";
1723+ src = fetchurl {
1724+ url = "https://registry.npmjs.org/xlsjs/-/xlsjs-0.7.6.tgz";
1725+ sha1 = "d88754569aabcf8eea70cc23961b462634a49565";
1726+ };
1727+ };
1728+ "xlsx-0.14.5" = {
1729+ name = "xlsx";
1730+ packageName = "xlsx";
1731+ version = "0.14.5";
1732+ src = fetchurl {
1733+ url = "https://registry.npmjs.org/xlsx/-/xlsx-0.14.5.tgz";
1734+ sha512 = "s/5f4/mjeWREmIWZ+HtDfh/rnz51ar+dZ4LWKZU3u9VBx2zLdSIWTdXgoa52/pnZ9Oe/Vu1W1qzcKzLVe+lq4w==";
1735+ };
1736+ };
1737+ "xlsx-0.9.13" = {
1738+ name = "xlsx";
1739+ packageName = "xlsx";
1740+ version = "0.9.13";
1741+ src = fetchurl {
1742+ url = "https://registry.npmjs.org/xlsx/-/xlsx-0.9.13.tgz";
1743+ sha1 = "5861d11e10a1f99b6f2b491e2d119a7777d066e7";
1744+ };
1745+ };
1746+ "xmlhttprequest-https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz" = {
1747+ name = "xmlhttprequest";
1748+ packageName = "xmlhttprequest";
1749+ version = "1.5.0";
1750+ src = fetchurl {
1751+ name = "xmlhttprequest-1.5.0.tar.gz";
1752+ url = "https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433";
1753+ sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f";
1754+ };
1755+ };
1756+ "xoauth2-1.2.0" = {
1757+ name = "xoauth2";
1758+ packageName = "xoauth2";
1759+ version = "1.2.0";
1760+ src = fetchurl {
1761+ url = "https://registry.npmjs.org/xoauth2/-/xoauth2-1.2.0.tgz";
1762+ sha1 = "f2eefac11472c971ea3bc46e554eb4b1232146e5";
1763+ };
1764+ };
1765+ "zappajs-0.5.0" = {
1766+ name = "zappajs";
1767+ packageName = "zappajs";
1768+ version = "0.5.0";
1769+ src = fetchurl {
1770+ url = "https://registry.npmjs.org/zappajs/-/zappajs-0.5.0.tgz";
1771+ sha1 = "1cc786d31c1559ba180f01ca3adf1e13ca02ca5c";
1772+ };
1773+ };
1774+ };
1775+in
1776+{
1777+ "whitebophir-git+https://github.com/audreyt/ethercalc.git#b196277081d677be991d104e454a52d242ef0189" = nodeEnv.buildNodePackage {
1778+ name = "ethercalc";
1779+ packageName = "ethercalc";
1780+ version = "0.20201228.1";
1781+ src = fetchgit {
1782+ url = "https://github.com/audreyt/ethercalc.git";
1783+ rev = "b196277081d677be991d104e454a52d242ef0189";
1784+ sha256 = "4494bada571057d86009f27470cc34f1e8a3b2c03b395cdba639c08d502a9bfe";
1785+ };
1786+ dependencies = [
1787+ sources."accepts-1.0.7"
1788+ sources."adler-32-1.2.0"
1789+ sources."after-0.8.1"
1790+ sources."amdefine-1.0.1"
1791+ sources."any-promise-1.3.0"
1792+ sources."arraybuffer.slice-0.0.6"
1793+ sources."async-0.2.10"
1794+ sources."babyparse-0.2.1"
1795+ sources."balanced-match-1.0.2"
1796+ sources."base64-arraybuffer-0.1.2"
1797+ sources."base64-url-1.2.1"
1798+ sources."base64id-0.1.0"
1799+ sources."basic-auth-1.0.0"
1800+ sources."basic-auth-connect-1.0.0"
1801+ sources."batch-0.5.1"
1802+ sources."better-assert-1.0.2"
1803+ sources."blob-0.0.2"
1804+ (sources."body-parser-1.6.7" // {
1805+ dependencies = [
1806+ sources."iconv-lite-0.4.4"
1807+ ];
1808+ })
1809+ sources."brace-expansion-1.1.11"
1810+ sources."buffer-crc32-0.2.3"
1811+ sources."buffer-from-1.1.2"
1812+ sources."bytes-1.0.0"
1813+ sources."callsite-1.0.0"
1814+ (sources."cfb-1.2.1" // {
1815+ dependencies = [
1816+ (sources."adler-32-1.3.0" // {
1817+ dependencies = [
1818+ sources."printj-1.2.3"
1819+ ];
1820+ })
1821+ sources."printj-1.3.0"
1822+ ];
1823+ })
1824+ (sources."codepage-1.14.0" // {
1825+ dependencies = [
1826+ sources."commander-2.14.1"
1827+ ];
1828+ })
1829+ sources."coffee-css-0.0.5"
1830+ sources."coffee-script-1.12.7"
1831+ (sources."coffeecup-0.3.21" // {
1832+ dependencies = [
1833+ sources."uglify-js-1.2.6"
1834+ ];
1835+ })
1836+ sources."colors-0.6.2"
1837+ sources."commander-2.17.1"
1838+ sources."component-bind-1.0.0"
1839+ sources."component-emitter-1.1.2"
1840+ sources."component-inherit-0.0.3"
1841+ sources."compressible-1.1.1"
1842+ (sources."compression-1.0.11" // {
1843+ dependencies = [
1844+ sources."vary-1.0.1"
1845+ ];
1846+ })
1847+ sources."concat-map-0.0.1"
1848+ sources."concat-stream-2.0.0"
1849+ sources."connect-2.25.9"
1850+ sources."connect-timeout-1.2.2"
1851+ sources."cookie-0.1.2"
1852+ sources."cookie-parser-1.3.2"
1853+ sources."cookie-signature-1.0.4"
1854+ sources."core-util-is-1.0.3"
1855+ sources."cors-2.8.5"
1856+ sources."crc-32-1.2.0"
1857+ sources."csrf-2.0.7"
1858+ sources."cssom-0.2.5"
1859+ sources."csurf-1.4.1"
1860+ sources."csv-parse-0.0.6"
1861+ sources."debug-1.0.4"
1862+ sources."deep-is-0.1.4"
1863+ sources."depd-0.4.4"
1864+ sources."destroy-1.0.3"
1865+ sources."ee-first-1.0.5"
1866+ sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
1867+ (sources."engine.io-1.3.1" // {
1868+ dependencies = [
1869+ sources."debug-0.6.0"
1870+ ];
1871+ })
1872+ (sources."engine.io-client-1.3.1" // {
1873+ dependencies = [
1874+ sources."debug-0.7.4"
1875+ ];
1876+ })
1877+ sources."engine.io-parser-1.0.6"
1878+ sources."errorhandler-1.1.1"
1879+ sources."escape-html-1.0.1"
1880+ sources."exit-on-epipe-1.0.1"
1881+ (sources."express-3.16.9" // {
1882+ dependencies = [
1883+ sources."commander-1.3.2"
1884+ sources."vary-0.1.0"
1885+ ];
1886+ })
1887+ (sources."express-session-1.7.6" // {
1888+ dependencies = [
1889+ sources."uid-safe-1.0.1"
1890+ ];
1891+ })
1892+ sources."fast-levenshtein-2.0.6"
1893+ sources."finalhandler-0.1.0"
1894+ sources."frac-1.1.2"
1895+ sources."fresh-0.2.2"
1896+ sources."global-https://github.com/component/global/archive/v2.0.1.tar.gz"
1897+ sources."graceful-readlink-1.0.1"
1898+ (sources."harb-0.1.1" // {
1899+ dependencies = [
1900+ sources."frac-0.3.1"
1901+ sources."ssf-0.8.2"
1902+ ];
1903+ })
1904+ sources."has-binary-data-0.1.1"
1905+ sources."has-cors-1.0.3"
1906+ sources."iconv-lite-0.4.24"
1907+ sources."indexof-0.0.1"
1908+ sources."inherits-2.0.4"
1909+ sources."ipaddr.js-0.1.2"
1910+ sources."isarray-0.0.1"
1911+ (sources."j-0.4.5" // {
1912+ dependencies = [
1913+ sources."adler-32-1.0.0"
1914+ sources."cfb-0.11.1"
1915+ sources."codepage-1.8.1"
1916+ sources."crc-32-1.0.2"
1917+ sources."frac-1.0.6"
1918+ sources."ssf-0.9.4"
1919+ (sources."xlsx-0.9.13" // {
1920+ dependencies = [
1921+ sources."commander-2.9.0"
1922+ ];
1923+ })
1924+ ];
1925+ })
1926+ sources."json3-3.2.6"
1927+ sources."keypress-0.1.0"
1928+ sources."levn-0.3.0"
1929+ sources."livescript-1.5.0"
1930+ sources."media-typer-0.2.0"
1931+ sources."merge-descriptors-0.0.2"
1932+ (sources."method-override-2.1.3" // {
1933+ dependencies = [
1934+ sources."vary-1.0.1"
1935+ ];
1936+ })
1937+ sources."methods-1.1.0"
1938+ sources."mime-1.2.11"
1939+ sources."mime-types-1.0.2"
1940+ sources."minimatch-3.0.4"
1941+ sources."minimist-0.0.10"
1942+ (sources."mkdirp-0.5.0" // {
1943+ dependencies = [
1944+ sources."minimist-0.0.8"
1945+ ];
1946+ })
1947+ sources."morgan-1.2.3"
1948+ sources."ms-0.6.2"
1949+ (sources."multiparty-3.3.2" // {
1950+ dependencies = [
1951+ sources."readable-stream-1.1.14"
1952+ sources."string_decoder-0.10.31"
1953+ ];
1954+ })
1955+ sources."mz-1.3.0"
1956+ sources."nan-0.3.2"
1957+ sources."native-or-bluebird-1.1.2"
1958+ sources."negotiator-0.4.7"
1959+ sources."node-uuid-1.4.1"
1960+ sources."object-assign-4.1.1"
1961+ sources."object-component-0.0.3"
1962+ sources."on-finished-2.1.0"
1963+ sources."on-headers-1.0.2"
1964+ sources."optimist-0.6.1"
1965+ sources."optionator-0.8.3"
1966+ sources."options-0.0.6"
1967+ sources."optparse-1.0.3"
1968+ sources."parsejson-0.0.1"
1969+ sources."parseqs-0.0.2"
1970+ sources."parseuri-0.0.2"
1971+ sources."parseurl-1.3.3"
1972+ sources."pause-0.0.1"
1973+ sources."prelude-ls-1.1.2"
1974+ sources."printj-1.1.2"
1975+ sources."proxy-addr-1.0.1"
1976+ sources."qs-2.2.2"
1977+ sources."range-parser-1.0.0"
1978+ (sources."raw-body-1.3.0" // {
1979+ dependencies = [
1980+ sources."iconv-lite-0.4.4"
1981+ ];
1982+ })
1983+ sources."readable-stream-3.6.0"
1984+ sources."redis-0.12.1"
1985+ sources."response-time-2.0.1"
1986+ sources."rndm-1.1.1"
1987+ sources."safe-buffer-5.2.1"
1988+ sources."safer-buffer-2.1.2"
1989+ sources."scmp-1.0.0"
1990+ sources."send-0.8.3"
1991+ sources."serve-favicon-2.0.1"
1992+ sources."serve-index-1.1.6"
1993+ (sources."serve-static-1.5.4" // {
1994+ dependencies = [
1995+ sources."send-0.8.5"
1996+ ];
1997+ })
1998+ sources."socialcalc-2.3.0"
1999+ (sources."socket.io-1.0.6" // {
2000+ dependencies = [
2001+ sources."debug-0.7.4"
2002+ ];
2003+ })
2004+ (sources."socket.io-adapter-0.2.0" // {
2005+ dependencies = [
2006+ sources."debug-0.7.4"
2007+ sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
2008+ sources."socket.io-parser-2.1.2"
2009+ ];
2010+ })
2011+ (sources."socket.io-client-1.0.6" // {
2012+ dependencies = [
2013+ sources."debug-0.7.4"
2014+ ];
2015+ })
2016+ (sources."socket.io-parser-2.2.0" // {
2017+ dependencies = [
2018+ sources."debug-0.7.4"
2019+ ];
2020+ })
2021+ sources."source-map-0.5.7"
2022+ sources."ssf-0.10.3"
2023+ (sources."stream-counter-0.2.0" // {
2024+ dependencies = [
2025+ sources."readable-stream-1.1.14"
2026+ sources."string_decoder-0.10.31"
2027+ ];
2028+ })
2029+ sources."string_decoder-1.3.0"
2030+ (sources."stylus-0.27.2" // {
2031+ dependencies = [
2032+ sources."mkdirp-0.3.5"
2033+ ];
2034+ })
2035+ sources."thenify-3.3.1"
2036+ sources."thenify-all-1.6.0"
2037+ sources."tinycolor-0.0.1"
2038+ sources."to-array-0.1.3"
2039+ sources."type-check-0.3.2"
2040+ sources."type-is-1.3.2"
2041+ sources."typedarray-0.0.6"
2042+ (sources."uglify-js-2.4.15" // {
2043+ dependencies = [
2044+ sources."optimist-0.3.7"
2045+ sources."source-map-0.1.34"
2046+ ];
2047+ })
2048+ sources."uglify-to-browserify-1.0.2"
2049+ sources."uid-safe-1.1.0"
2050+ sources."underscore-1.13.2"
2051+ sources."utf8-2.0.0"
2052+ sources."util-deprecate-1.0.2"
2053+ sources."utils-merge-1.0.0"
2054+ sources."uuid-pure-1.0.10"
2055+ sources."vary-1.1.2"
2056+ sources."vhost-2.0.0"
2057+ sources."voc-1.2.0"
2058+ sources."word-wrap-1.2.3"
2059+ sources."wordwrap-0.0.3"
2060+ (sources."ws-0.4.31" // {
2061+ dependencies = [
2062+ sources."commander-0.6.1"
2063+ ];
2064+ })
2065+ (sources."xlsjs-0.7.6" // {
2066+ dependencies = [
2067+ sources."cfb-0.11.1"
2068+ sources."frac-0.3.1"
2069+ sources."ssf-0.8.2"
2070+ ];
2071+ })
2072+ sources."xlsx-0.14.5"
2073+ sources."xmlhttprequest-https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz"
2074+ sources."xoauth2-1.2.0"
2075+ sources."zappajs-0.5.0"
2076+ ];
2077+ buildInputs = globalBuildInputs;
2078+ meta = {
2079+ description = "Multi-User Spreadsheet Server";
2080+ homepage = "http://ethercalc.net/";
2081+ };
2082+ production = true;
2083+ bypassCache = true;
2084+ reconstructLock = true;
2085+ };
2086+}
pkgs/servers/web-apps/ethercalc/node-packages.jsonnew file+3
@@ -0,0 +1,3 @@
1+[
2+ { "whitebophir": "git+https://github.com/audreyt/ethercalc.git#b196277081d677be991d104e454a52d242ef0189" }
3+]
pkgs/servers/web-apps/ethercalc/node-packages.nixnew file+17
@@ -0,0 +1,17 @@
1+# This file has been generated by node2nix 1.9.0. Do not edit!
2+
3+{pkgs ? import <nixpkgs> {
4+ inherit system;
5+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
6+
7+let
8+ nodeEnv = import ../../../development/node-packages/node-env.nix {
9+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
10+ inherit pkgs nodejs;
11+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
12+ };
13+in
14+import ./node-packages-generated.nix {
15+ inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
16+ inherit nodeEnv;
17+}
pkgs/top-level/all-packages.nix+2
@@ -5131,6 +5131,8 @@ with pkgs;
51315131 electron = electron_14;
51325132 };
51335133
5134+ ethercalc = callPackage ../servers/web-apps/ethercalc { };
5135+
51345136 ethtool = callPackage ../tools/misc/ethtool { };
51355137
51365138 ettercap = callPackage ../applications/networking/sniffers/ettercap { };