From 92eb5bc48e8cccabdfc2bd6e75d5261353ca3578 Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Sun, 16 Jan 2022 19:58:00 +0100 Subject: [PATCH] ethercalc: init at latest master (b19627) --- .../from_md/release-notes/rl-2205.section.xml | 7 + .../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 + .../ethercalc/node-packages-generated.nix | 2086 +++++++++++++++++ .../web-apps/ethercalc/node-packages.json | 3 + .../web-apps/ethercalc/node-packages.nix | 17 + pkgs/top-level/all-packages.nix | 2 + 10 files changed, 2223 insertions(+) create mode 100644 nixos/modules/services/web-apps/ethercalc.nix create mode 100644 pkgs/servers/web-apps/ethercalc/default.nix create mode 100755 pkgs/servers/web-apps/ethercalc/generate.sh create mode 100644 pkgs/servers/web-apps/ethercalc/node-packages-generated.nix create mode 100644 pkgs/servers/web-apps/ethercalc/node-packages.json create mode 100644 pkgs/servers/web-apps/ethercalc/node-packages.nix diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index e99f786b33c..0ff607ffb08 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -169,6 +169,13 @@ services.prosody-filer. + + + ethercalc, + an online collaborative spreadsheet. Available as + services.ethercalc. + + timetagger, diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index a8b717c6f84..1cde95a2dc5 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -51,6 +51,9 @@ In addition to numerous new and upgraded packages, this release has the followin - [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). +- [ethercalc](https://github.com/audreyt/ethercalc), an online collaborative + spreadsheet. Available as [services.ethercalc](options.html#opt-services.ethercalc.enable). + - [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). - [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). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index c2b1e886686..643c787aa88 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1005,6 +1005,7 @@ ./services/web-apps/documize.nix ./services/web-apps/dokuwiki.nix ./services/web-apps/engelsystem.nix + ./services/web-apps/ethercalc.nix ./services/web-apps/fluidd.nix ./services/web-apps/galene.nix ./services/web-apps/gerrit.nix diff --git a/nixos/modules/services/web-apps/ethercalc.nix b/nixos/modules/services/web-apps/ethercalc.nix new file mode 100644 index 00000000000..d74def59c6c --- /dev/null +++ b/nixos/modules/services/web-apps/ethercalc.nix @@ -0,0 +1,62 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.ethercalc; +in { + options = { + services.ethercalc = { + enable = mkOption { + default = false; + type = types.bool; + description = '' + ethercalc, an online collaborative spreadsheet server. + + Persistent state will be maintained under + /var/lib/ethercalc. Upstream supports using a + redis server for storage and recommends the redis backend for + intensive use; however, the Nix module doesn't currently support + redis. + + Note that while ethercalc is a good and robust project with an active + issue tracker, there haven't been new commits since the end of 2020. + ''; + }; + + package = mkOption { + default = pkgs.ethercalc; + defaultText = literalExpression "pkgs.ethercalc"; + type = types.package; + description = "Ethercalc package to use."; + }; + + host = mkOption { + type = types.str; + default = "0.0.0.0"; + description = "Address to listen on (use 0.0.0.0 to allow access from any address)."; + }; + + port = mkOption { + type = types.port; + default = 8000; + description = "Port to bind to."; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.ethercalc = { + description = "Ethercalc service"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + DynamicUser = true; + ExecStart = "${cfg.package}/bin/ethercalc --host ${cfg.host} --port ${toString cfg.port}"; + Restart = "always"; + StateDirectory = "ethercalc"; + WorkingDirectory = "/var/lib/ethercalc"; + }; + }; + }; +} diff --git a/pkgs/servers/web-apps/ethercalc/default.nix b/pkgs/servers/web-apps/ethercalc/default.nix new file mode 100644 index 00000000000..270b2e4cff7 --- /dev/null +++ b/pkgs/servers/web-apps/ethercalc/default.nix @@ -0,0 +1,27 @@ +{ stdenv +, pkgs +, lib +, nodejs-14_x +}: + +let + nodejs = nodejs-14_x; + + nodePackages = import ./node-packages.nix { + inherit pkgs nodejs; + inherit (stdenv.hostPlatform) system; + }; + + ethercalc = lib.head (lib.attrValues nodePackages); + + combined = ethercalc.override { + meta = with lib; { + description = "Online collaborative spreadsheet"; + license = with licenses; [ cpal10 artistic2 mit asl20 cc0 mpl20 ]; + homepage = "https://github.com/audreyt/ethercalc"; + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + }; + }; +in + combined diff --git a/pkgs/servers/web-apps/ethercalc/generate.sh b/pkgs/servers/web-apps/ethercalc/generate.sh new file mode 100755 index 00000000000..814a83a033d --- /dev/null +++ b/pkgs/servers/web-apps/ethercalc/generate.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +# Run this script not via `./generate.sh`, but via `$PWD/generate.sh`. +# Else `nix-shell` will not find this script. + +set -euo pipefail + +cd -- "$(dirname -- "$BASH_SOURCE[0]")" + +node2nix \ + --input node-packages.json \ + --output node-packages-generated.nix \ + --composition node-packages.nix \ + --node-env ../../../development/node-packages/node-env.nix diff --git a/pkgs/servers/web-apps/ethercalc/node-packages-generated.nix b/pkgs/servers/web-apps/ethercalc/node-packages-generated.nix new file mode 100644 index 00000000000..97435a5225f --- /dev/null +++ b/pkgs/servers/web-apps/ethercalc/node-packages-generated.nix @@ -0,0 +1,2086 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: + +let + sources = { + "accepts-1.0.7" = { + name = "accepts"; + packageName = "accepts"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz"; + sha1 = "5b501fb4f0704309964ccdb048172541208dab1a"; + }; + }; + "adler-32-1.0.0" = { + name = "adler-32"; + packageName = "adler-32"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/adler-32/-/adler-32-1.0.0.tgz"; + sha1 = "28728a71756f629666dd1653cd80793a9df18651"; + }; + }; + "adler-32-1.2.0" = { + name = "adler-32"; + packageName = "adler-32"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz"; + sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25"; + }; + }; + "adler-32-1.3.0" = { + name = "adler-32"; + packageName = "adler-32"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz"; + sha512 = "f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g=="; + }; + }; + "after-0.8.1" = { + name = "after"; + packageName = "after"; + version = "0.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/after/-/after-0.8.1.tgz"; + sha1 = "ab5d4fb883f596816d3515f8f791c0af486dd627"; + }; + }; + "amdefine-1.0.1" = { + name = "amdefine"; + packageName = "amdefine"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"; + sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5"; + }; + }; + "any-promise-1.3.0" = { + name = "any-promise"; + packageName = "any-promise"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"; + sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f"; + }; + }; + "arraybuffer.slice-0.0.6" = { + name = "arraybuffer.slice"; + packageName = "arraybuffer.slice"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz"; + sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"; + }; + }; + "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"; + }; + }; + "babyparse-0.2.1" = { + name = "babyparse"; + packageName = "babyparse"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babyparse/-/babyparse-0.2.1.tgz"; + sha1 = "069f035df3fdce6f3a455dd5dafc75178dcf3760"; + }; + }; + "balanced-match-1.0.2" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"; + sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; + }; + }; + "base64-arraybuffer-0.1.2" = { + name = "base64-arraybuffer"; + packageName = "base64-arraybuffer"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz"; + sha1 = "474df4a9f2da24e05df3158c3b1db3c3cd46a154"; + }; + }; + "base64-url-1.2.1" = { + name = "base64-url"; + packageName = "base64-url"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz"; + sha1 = "199fd661702a0e7b7dcae6e0698bb089c52f6d78"; + }; + }; + "base64id-0.1.0" = { + name = "base64id"; + packageName = "base64id"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz"; + sha1 = "02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f"; + }; + }; + "basic-auth-1.0.0" = { + name = "basic-auth"; + packageName = "basic-auth"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz"; + sha1 = "111b2d9ff8e4e6d136b8c84ea5e096cb87351637"; + }; + }; + "basic-auth-connect-1.0.0" = { + name = "basic-auth-connect"; + packageName = "basic-auth-connect"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz"; + sha1 = "fdb0b43962ca7b40456a7c2bb48fe173da2d2122"; + }; + }; + "batch-0.5.1" = { + name = "batch"; + packageName = "batch"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz"; + sha1 = "36a4bab594c050fd7b507bca0db30c2d92af4ff2"; + }; + }; + "better-assert-1.0.2" = { + name = "better-assert"; + packageName = "better-assert"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz"; + sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522"; + }; + }; + "blob-0.0.2" = { + name = "blob"; + packageName = "blob"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/blob/-/blob-0.0.2.tgz"; + sha1 = "b89562bd6994af95ba1e812155536333aa23cf24"; + }; + }; + "body-parser-1.6.7" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.6.7"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.6.7.tgz"; + sha1 = "82306becadf44543e826b3907eae93f0237c4e5c"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "buffer-crc32-0.2.3" = { + name = "buffer-crc32"; + packageName = "buffer-crc32"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz"; + sha1 = "bb54519e95d107cbd2400e76d0cab1467336d921"; + }; + }; + "buffer-from-1.1.2" = { + name = "buffer-from"; + packageName = "buffer-from"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"; + sha512 = "E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="; + }; + }; + "bytes-1.0.0" = { + name = "bytes"; + packageName = "bytes"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz"; + sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8"; + }; + }; + "callsite-1.0.0" = { + name = "callsite"; + packageName = "callsite"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz"; + sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20"; + }; + }; + "cfb-0.11.1" = { + name = "cfb"; + packageName = "cfb"; + version = "0.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cfb/-/cfb-0.11.1.tgz"; + sha1 = "a96db8f272a6c3fb99dbbb23ef41223f48be1ea7"; + }; + }; + "cfb-1.2.1" = { + name = "cfb"; + packageName = "cfb"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz"; + sha512 = "wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ=="; + }; + }; + "codepage-1.14.0" = { + name = "codepage"; + packageName = "codepage"; + version = "1.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz"; + sha1 = "8cbe25481323559d7d307571b0fff91e7a1d2f99"; + }; + }; + "codepage-1.8.1" = { + name = "codepage"; + packageName = "codepage"; + version = "1.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/codepage/-/codepage-1.8.1.tgz"; + sha1 = "f1a009d5261dc2754628bacb6fbbf0e6e2abffaa"; + }; + }; + "coffee-css-0.0.5" = { + name = "coffee-css"; + packageName = "coffee-css"; + version = "0.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/coffee-css/-/coffee-css-0.0.5.tgz"; + sha1 = "589a822fba5ae0d4f1a0424b22ba7501683275a4"; + }; + }; + "coffee-script-1.12.7" = { + name = "coffee-script"; + packageName = "coffee-script"; + version = "1.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz"; + sha512 = "fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="; + }; + }; + "coffeecup-0.3.21" = { + name = "coffeecup"; + packageName = "coffeecup"; + version = "0.3.21"; + src = fetchurl { + url = "https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.21.tgz"; + sha1 = "54e714175cb223ddd10568517196e0cd566d198a"; + }; + }; + "colors-0.6.2" = { + name = "colors"; + packageName = "colors"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz"; + sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc"; + }; + }; + "commander-0.6.1" = { + name = "commander"; + packageName = "commander"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz"; + sha1 = "fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06"; + }; + }; + "commander-1.3.2" = { + name = "commander"; + packageName = "commander"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz"; + sha1 = "8a8f30ec670a6fdd64af52f1914b907d79ead5b5"; + }; + }; + "commander-2.14.1" = { + name = "commander"; + packageName = "commander"; + version = "2.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz"; + sha512 = "+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="; + }; + }; + "commander-2.17.1" = { + name = "commander"; + packageName = "commander"; + version = "2.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz"; + sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="; + }; + }; + "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"; + }; + }; + "component-bind-1.0.0" = { + name = "component-bind"; + packageName = "component-bind"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz"; + sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"; + }; + }; + "component-emitter-1.1.2" = { + name = "component-emitter"; + packageName = "component-emitter"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz"; + sha1 = "296594f2753daa63996d2af08d15a95116c9aec3"; + }; + }; + "component-inherit-0.0.3" = { + name = "component-inherit"; + packageName = "component-inherit"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz"; + sha1 = "645fc4adf58b72b649d5cae65135619db26ff143"; + }; + }; + "compressible-1.1.1" = { + name = "compressible"; + packageName = "compressible"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz"; + sha1 = "23b71ea90ea6c6a66289701a918182c24d0729ef"; + }; + }; + "compression-1.0.11" = { + name = "compression"; + packageName = "compression"; + version = "1.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/compression/-/compression-1.0.11.tgz"; + sha1 = "69700cf1ee8963454356ac192a6e5e91e232bffb"; + }; + }; + "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"; + }; + }; + "concat-stream-2.0.0" = { + name = "concat-stream"; + packageName = "concat-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz"; + sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A=="; + }; + }; + "connect-2.25.9" = { + name = "connect"; + packageName = "connect"; + version = "2.25.9"; + src = fetchurl { + url = "https://registry.npmjs.org/connect/-/connect-2.25.9.tgz"; + sha1 = "9680d6f2fb200eadab3d272e419e78e5d87cf31f"; + }; + }; + "connect-timeout-1.2.2" = { + name = "connect-timeout"; + packageName = "connect-timeout"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.2.2.tgz"; + sha1 = "5953602bb66abfd5fa21ae911a7221c5e825a1c0"; + }; + }; + "cookie-0.1.2" = { + name = "cookie"; + packageName = "cookie"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz"; + sha1 = "72fec3d24e48a3432073d90c12642005061004b1"; + }; + }; + "cookie-parser-1.3.2" = { + name = "cookie-parser"; + packageName = "cookie-parser"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.2.tgz"; + sha1 = "52211cc82c955d79ff0c088954407724e19cf562"; + }; + }; + "cookie-signature-1.0.4" = { + name = "cookie-signature"; + packageName = "cookie-signature"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz"; + sha1 = "0edd22286e3a111b9a2a70db363e925e867f6aca"; + }; + }; + "core-util-is-1.0.3" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"; + sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="; + }; + }; + "cors-2.8.5" = { + name = "cors"; + packageName = "cors"; + version = "2.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz"; + sha512 = "KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="; + }; + }; + "crc-32-1.0.2" = { + name = "crc-32"; + packageName = "crc-32"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/crc-32/-/crc-32-1.0.2.tgz"; + sha1 = "09507984ee9bcce3bd1b8861f0de8ab10ae8187d"; + }; + }; + "crc-32-1.2.0" = { + name = "crc-32"; + packageName = "crc-32"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz"; + sha512 = "1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA=="; + }; + }; + "csrf-2.0.7" = { + name = "csrf"; + packageName = "csrf"; + version = "2.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/csrf/-/csrf-2.0.7.tgz"; + sha1 = "d04f52e0f6a28a7e2cfe1e01dd5ebc251b3d4201"; + }; + }; + "cssom-0.2.5" = { + name = "cssom"; + packageName = "cssom"; + version = "0.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz"; + sha1 = "2682709b5902e7212df529116ff788cd5b254894"; + }; + }; + "csurf-1.4.1" = { + name = "csurf"; + packageName = "csurf"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/csurf/-/csurf-1.4.1.tgz"; + sha1 = "0ccaf026992b2d218771d6174f5c6c402a6289fd"; + }; + }; + "csv-parse-0.0.6" = { + name = "csv-parse"; + packageName = "csv-parse"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/csv-parse/-/csv-parse-0.0.6.tgz"; + sha1 = "94610722650feac81cf549c2c9298632d2b6037c"; + }; + }; + "debug-0.6.0" = { + name = "debug"; + packageName = "debug"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-0.6.0.tgz"; + sha1 = "ce9d5d025d5294b3f0748a494bebaf3c9fd8734f"; + }; + }; + "debug-0.7.4" = { + name = "debug"; + packageName = "debug"; + version = "0.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"; + sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39"; + }; + }; + "debug-1.0.4" = { + name = "debug"; + packageName = "debug"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz"; + sha1 = "5b9c256bd54b6ec02283176fa8a0ede6d154cbf8"; + }; + }; + "deep-is-0.1.4" = { + name = "deep-is"; + packageName = "deep-is"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"; + sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="; + }; + }; + "depd-0.4.4" = { + name = "depd"; + packageName = "depd"; + version = "0.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-0.4.4.tgz"; + sha1 = "07091fae75f97828d89b4a02a2d4778f0e7c0662"; + }; + }; + "destroy-1.0.3" = { + name = "destroy"; + packageName = "destroy"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"; + sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9"; + }; + }; + "ee-first-1.0.5" = { + name = "ee-first"; + packageName = "ee-first"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz"; + sha1 = "8c9b212898d8cd9f1a9436650ce7be202c9e9ff0"; + }; + }; + "emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" = { + name = "emitter"; + packageName = "emitter"; + version = "1.0.1"; + src = fetchurl { + name = "emitter-1.0.1.tar.gz"; + url = "https://codeload.github.com/component/emitter/tar.gz/1.0.1"; + sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d"; + }; + }; + "engine.io-1.3.1" = { + name = "engine.io"; + packageName = "engine.io"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/engine.io/-/engine.io-1.3.1.tgz"; + sha1 = "2d968308fffae5d17f5209b6775246e90d8a705e"; + }; + }; + "engine.io-client-1.3.1" = { + name = "engine.io-client"; + packageName = "engine.io-client"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.3.1.tgz"; + sha1 = "1c5a65d5c5af6d04b44c22c3dbcd95c39ed1c989"; + }; + }; + "engine.io-parser-1.0.6" = { + name = "engine.io-parser"; + packageName = "engine.io-parser"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.0.6.tgz"; + sha1 = "d38813143a411cb3b914132ab05bf99e6f7a248e"; + }; + }; + "errorhandler-1.1.1" = { + name = "errorhandler"; + packageName = "errorhandler"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz"; + sha1 = "18defd436d8ca2efe0a2d886c5c4d6ee6d76d691"; + }; + }; + "escape-html-1.0.1" = { + name = "escape-html"; + packageName = "escape-html"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"; + sha1 = "181a286ead397a39a92857cfb1d43052e356bff0"; + }; + }; + "exit-on-epipe-1.0.1" = { + name = "exit-on-epipe"; + packageName = "exit-on-epipe"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz"; + sha512 = "h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="; + }; + }; + "express-3.16.9" = { + name = "express"; + packageName = "express"; + version = "3.16.9"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-3.16.9.tgz"; + sha1 = "993747be5669700280d9682cb61ad138939847fc"; + }; + }; + "express-session-1.7.6" = { + name = "express-session"; + packageName = "express-session"; + version = "1.7.6"; + src = fetchurl { + url = "https://registry.npmjs.org/express-session/-/express-session-1.7.6.tgz"; + sha1 = "e1c369ba2176f7afdb79e77d65dcd8c7c46e48a5"; + }; + }; + "fast-levenshtein-2.0.6" = { + name = "fast-levenshtein"; + packageName = "fast-levenshtein"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; + sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; + }; + }; + "finalhandler-0.1.0" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz"; + sha1 = "da05bbc4f5f4a30c84ce1d91f3c154007c4e9daa"; + }; + }; + "frac-0.3.1" = { + name = "frac"; + packageName = "frac"; + version = "0.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/frac/-/frac-0.3.1.tgz"; + sha1 = "577677b7fdcbe6faf7c461f1801d34137cda4354"; + }; + }; + "frac-1.0.6" = { + name = "frac"; + packageName = "frac"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/frac/-/frac-1.0.6.tgz"; + sha1 = "9a0dfc23956852a8b320623bebcf1be9ea048229"; + }; + }; + "frac-1.1.2" = { + name = "frac"; + packageName = "frac"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz"; + sha512 = "w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="; + }; + }; + "fresh-0.2.2" = { + name = "fresh"; + packageName = "fresh"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz"; + sha1 = "9731dcf5678c7faeb44fb903c4f72df55187fa77"; + }; + }; + "global-https://github.com/component/global/archive/v2.0.1.tar.gz" = { + name = "global"; + packageName = "global"; + version = "2.0.1"; + src = fetchurl { + name = "global-2.0.1.tar.gz"; + url = "https://codeload.github.com/component/global/tar.gz/v2.0.1"; + sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785"; + }; + }; + "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"; + }; + }; + "harb-0.1.1" = { + name = "harb"; + packageName = "harb"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/harb/-/harb-0.1.1.tgz"; + sha1 = "b8239bae2f0724b65aaaf2e74e9eb15a04db50eb"; + }; + }; + "has-binary-data-0.1.1" = { + name = "has-binary-data"; + packageName = "has-binary-data"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-binary-data/-/has-binary-data-0.1.1.tgz"; + sha1 = "e10749fb87828a52df96f4086587eb4a03966439"; + }; + }; + "has-cors-1.0.3" = { + name = "has-cors"; + packageName = "has-cors"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/has-cors/-/has-cors-1.0.3.tgz"; + sha1 = "502acb9b3104dac33dd2630eaf2f888b0baf4cb3"; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "iconv-lite-0.4.4" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz"; + sha1 = "e95f2e41db0735fc21652f7827a5ee32e63c83a8"; + }; + }; + "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"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ipaddr.js-0.1.2" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz"; + sha1 = "6a1fd3d854f5002965c34d7bbcd9b4a8d4b0467e"; + }; + }; + "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"; + }; + }; + "j-0.4.5" = { + name = "j"; + packageName = "j"; + version = "0.4.5"; + src = fetchurl { + url = "https://registry.npmjs.org/j/-/j-0.4.5.tgz"; + sha1 = "02cf29f1ddbe54e527263d0754d6e8d217a6064e"; + }; + }; + "json3-3.2.6" = { + name = "json3"; + packageName = "json3"; + version = "3.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz"; + sha1 = "f6efc93c06a04de9aec53053df2559bb19e2038b"; + }; + }; + "keypress-0.1.0" = { + name = "keypress"; + packageName = "keypress"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz"; + sha1 = "4a3188d4291b66b4f65edb99f806aa9ae293592a"; + }; + }; + "levn-0.3.0" = { + name = "levn"; + packageName = "levn"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"; + sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; + }; + }; + "livescript-1.5.0" = { + name = "livescript"; + packageName = "livescript"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/livescript/-/livescript-1.5.0.tgz"; + sha1 = "4fe7121c41217e4608e334eb9cbe1762e63e5566"; + }; + }; + "media-typer-0.2.0" = { + name = "media-typer"; + packageName = "media-typer"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz"; + sha1 = "d8a065213adfeaa2e76321a2b6dda36ff6335984"; + }; + }; + "merge-descriptors-0.0.2" = { + name = "merge-descriptors"; + packageName = "merge-descriptors"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz"; + sha1 = "c36a52a781437513c57275f39dd9d317514ac8c7"; + }; + }; + "method-override-2.1.3" = { + name = "method-override"; + packageName = "method-override"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/method-override/-/method-override-2.1.3.tgz"; + sha1 = "511f41c4fb1dccdb6ab1844da5dc6ea81b7c1135"; + }; + }; + "methods-1.1.0" = { + name = "methods"; + packageName = "methods"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/methods/-/methods-1.1.0.tgz"; + sha1 = "5dca4ee12df52ff3b056145986a8f01cbc86436f"; + }; + }; + "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"; + }; + }; + "mime-types-1.0.2" = { + name = "mime-types"; + packageName = "mime-types"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz"; + sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce"; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-0.0.10" = { + name = "minimist"; + packageName = "minimist"; + version = "0.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz"; + sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf"; + }; + }; + "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"; + }; + }; + "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"; + }; + }; + "mkdirp-0.5.0" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz"; + sha1 = "1d73076a6df986cd9344e15e71fcc05a4c9abf12"; + }; + }; + "morgan-1.2.3" = { + name = "morgan"; + packageName = "morgan"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/morgan/-/morgan-1.2.3.tgz"; + sha1 = "3b0f1704df90255a542591abacd797891a8c40a1"; + }; + }; + "ms-0.6.2" = { + name = "ms"; + packageName = "ms"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"; + sha1 = "d89c2124c6fdc1353d65a8b77bf1aac4b193708c"; + }; + }; + "multiparty-3.3.2" = { + name = "multiparty"; + packageName = "multiparty"; + version = "3.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz"; + sha1 = "35de6804dc19643e5249f3d3e3bdc6c8ce301d3f"; + }; + }; + "mz-1.3.0" = { + name = "mz"; + packageName = "mz"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mz/-/mz-1.3.0.tgz"; + sha1 = "06f093fdd9956a06d37e1b1e81344e27478c42f0"; + }; + }; + "nan-0.3.2" = { + name = "nan"; + packageName = "nan"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-0.3.2.tgz"; + sha1 = "0df1935cab15369075ef160ad2894107aa14dc2d"; + }; + }; + "native-or-bluebird-1.1.2" = { + name = "native-or-bluebird"; + packageName = "native-or-bluebird"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz"; + sha1 = "3921e110232d1eb790f3dac61bb370531c7d356e"; + }; + }; + "negotiator-0.4.7" = { + name = "negotiator"; + packageName = "negotiator"; + version = "0.4.7"; + src = fetchurl { + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz"; + sha1 = "a4160f7177ec806738631d0d3052325da42abdc8"; + }; + }; + "node-uuid-1.4.1" = { + name = "node-uuid"; + packageName = "node-uuid"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz"; + sha1 = "39aef510e5889a3dca9c895b506c73aae1bac048"; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "object-component-0.0.3" = { + name = "object-component"; + packageName = "object-component"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz"; + sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291"; + }; + }; + "on-finished-2.1.0" = { + name = "on-finished"; + packageName = "on-finished"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz"; + sha1 = "0c539f09291e8ffadde0c8a25850fb2cedc7022d"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "optimist-0.3.7" = { + name = "optimist"; + packageName = "optimist"; + version = "0.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz"; + sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9"; + }; + }; + "optimist-0.6.1" = { + name = "optimist"; + packageName = "optimist"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz"; + sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686"; + }; + }; + "optionator-0.8.3" = { + name = "optionator"; + packageName = "optionator"; + version = "0.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"; + sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="; + }; + }; + "options-0.0.6" = { + name = "options"; + packageName = "options"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/options/-/options-0.0.6.tgz"; + sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f"; + }; + }; + "optparse-1.0.3" = { + name = "optparse"; + packageName = "optparse"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/optparse/-/optparse-1.0.3.tgz"; + sha1 = "2ff49a3d691b90b0b9a1be9117f292373eb1bd66"; + }; + }; + "parsejson-0.0.1" = { + name = "parsejson"; + packageName = "parsejson"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz"; + sha1 = "9b10c6c0d825ab589e685153826de0a3ba278bcc"; + }; + }; + "parseqs-0.0.2" = { + name = "parseqs"; + packageName = "parseqs"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz"; + sha1 = "9dfe70b2cddac388bde4f35b1f240fa58adbe6c7"; + }; + }; + "parseuri-0.0.2" = { + name = "parseuri"; + packageName = "parseuri"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/parseuri/-/parseuri-0.0.2.tgz"; + sha1 = "db41878f2d6964718be870b3140973d8093be156"; + }; + }; + "parseurl-1.3.3" = { + name = "parseurl"; + packageName = "parseurl"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; + }; + }; + "pause-0.0.1" = { + name = "pause"; + packageName = "pause"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz"; + sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"; + }; + }; + "prelude-ls-1.1.2" = { + name = "prelude-ls"; + packageName = "prelude-ls"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"; + sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; + }; + }; + "printj-1.1.2" = { + name = "printj"; + packageName = "printj"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz"; + sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="; + }; + }; + "printj-1.2.3" = { + name = "printj"; + packageName = "printj"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz"; + sha512 = "sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA=="; + }; + }; + "printj-1.3.0" = { + name = "printj"; + packageName = "printj"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/printj/-/printj-1.3.0.tgz"; + sha512 = "017o8YIaz8gLhaNxRB9eBv2mWXI2CtzhPJALnQTP+OPpuUfP0RMWqr/mHCzqVeu1AQxfzSfAtAq66vKB8y7Lzg=="; + }; + }; + "proxy-addr-1.0.1" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz"; + sha1 = "c7c566d5eb4e3fad67eeb9c77c5558ccc39b88a8"; + }; + }; + "qs-2.2.2" = { + name = "qs"; + packageName = "qs"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-2.2.2.tgz"; + sha1 = "dfe783f1854b1ac2b3ade92775ad03e27e03218c"; + }; + }; + "range-parser-1.0.0" = { + name = "range-parser"; + packageName = "range-parser"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz"; + sha1 = "a4b264cfe0be5ce36abe3765ac9c2a248746dbc0"; + }; + }; + "raw-body-1.3.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz"; + sha1 = "978230a156a5548f42eef14de22d0f4f610083d1"; + }; + }; + "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"; + }; + }; + "readable-stream-3.6.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + }; + }; + "redis-0.12.1" = { + name = "redis"; + packageName = "redis"; + version = "0.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz"; + sha1 = "64df76ad0fc8acebaebd2a0645e8a48fac49185e"; + }; + }; + "response-time-2.0.1" = { + name = "response-time"; + packageName = "response-time"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/response-time/-/response-time-2.0.1.tgz"; + sha1 = "c6d2cbadeac4cb251b21016fe182640c02aff343"; + }; + }; + "rndm-1.1.1" = { + name = "rndm"; + packageName = "rndm"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rndm/-/rndm-1.1.1.tgz"; + sha1 = "efcef4374021f78b63de6226b5985120269d64f1"; + }; + }; + "safe-buffer-5.2.1" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"; + sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; + }; + }; + "scmp-1.0.0" = { + name = "scmp"; + packageName = "scmp"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/scmp/-/scmp-1.0.0.tgz"; + sha1 = "a0b272c3fc7292f77115646f00618b0262514e04"; + }; + }; + "send-0.8.3" = { + name = "send"; + packageName = "send"; + version = "0.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.8.3.tgz"; + sha1 = "593886004fcb968a1b5727814a32b388b3b99083"; + }; + }; + "send-0.8.5" = { + name = "send"; + packageName = "send"; + version = "0.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.8.5.tgz"; + sha1 = "37f708216e6f50c175e74c69fec53484e2fd82c7"; + }; + }; + "serve-favicon-2.0.1" = { + name = "serve-favicon"; + packageName = "serve-favicon"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz"; + sha1 = "4826975d9f173ca3a4158e9698161f75dec7afec"; + }; + }; + "serve-index-1.1.6" = { + name = "serve-index"; + packageName = "serve-index"; + version = "1.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz"; + sha1 = "b758318fe781628383f66ac80dd447712ea7781f"; + }; + }; + "serve-static-1.5.4" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.5.4"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.5.4.tgz"; + sha1 = "819fb37ae46bd02dd520b77fcf7fd8f5112f9782"; + }; + }; + "socialcalc-2.3.0" = { + name = "socialcalc"; + packageName = "socialcalc"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/socialcalc/-/socialcalc-2.3.0.tgz"; + sha512 = "hkK5c7eRRGzOiRNPFCQ/kzv2wqOSFaD4AtYag962r0jV0mlyhTQ7xvs3r14MB3Xbo2hAWq5AKYddrtqvuWvDAA=="; + }; + }; + "socket.io-1.0.6" = { + name = "socket.io"; + packageName = "socket.io"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io/-/socket.io-1.0.6.tgz"; + sha1 = "b566532888dae3ac9058a12f294015ebdfa8084a"; + }; + }; + "socket.io-adapter-0.2.0" = { + name = "socket.io-adapter"; + packageName = "socket.io-adapter"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.2.0.tgz"; + sha1 = "bd39329b8961371787e24f345b074ec9cf000e33"; + }; + }; + "socket.io-client-1.0.6" = { + name = "socket.io-client"; + packageName = "socket.io-client"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.0.6.tgz"; + sha1 = "c86cb3e507ab2f96da4500bd34fcf46a1e9dfe5e"; + }; + }; + "socket.io-parser-2.1.2" = { + name = "socket.io-parser"; + packageName = "socket.io-parser"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.1.2.tgz"; + sha1 = "876655b9edd555c5bdf7301cedf30a436c67b8b0"; + }; + }; + "socket.io-parser-2.2.0" = { + name = "socket.io-parser"; + packageName = "socket.io-parser"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.0.tgz"; + sha1 = "2609601f59e6a7fab436a53be3d333fbbfcbd30a"; + }; + }; + "source-map-0.1.34" = { + name = "source-map"; + packageName = "source-map"; + version = "0.1.34"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz"; + sha1 = "a7cfe89aec7b1682c3b198d0acfb47d7d090566b"; + }; + }; + "source-map-0.5.7" = { + name = "source-map"; + packageName = "source-map"; + version = "0.5.7"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + }; + "ssf-0.10.3" = { + name = "ssf"; + packageName = "ssf"; + version = "0.10.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz"; + sha512 = "pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w=="; + }; + }; + "ssf-0.8.2" = { + name = "ssf"; + packageName = "ssf"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ssf/-/ssf-0.8.2.tgz"; + sha1 = "b9d4dc6a1c1bcf76f8abfa96d7d7656fb2abecd6"; + }; + }; + "ssf-0.9.4" = { + name = "ssf"; + packageName = "ssf"; + version = "0.9.4"; + src = fetchurl { + url = "https://registry.npmjs.org/ssf/-/ssf-0.9.4.tgz"; + sha1 = "8e57a98c19dbbf1edd53f0f8c9e7fd524b0f6c9c"; + }; + }; + "stream-counter-0.2.0" = { + name = "stream-counter"; + packageName = "stream-counter"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz"; + sha1 = "ded266556319c8b0e222812b9cf3b26fa7d947de"; + }; + }; + "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"; + }; + }; + "string_decoder-1.3.0" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"; + sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="; + }; + }; + "stylus-0.27.2" = { + name = "stylus"; + packageName = "stylus"; + version = "0.27.2"; + src = fetchurl { + url = "https://registry.npmjs.org/stylus/-/stylus-0.27.2.tgz"; + sha1 = "1121f7f8cd152b0f8a4aa6a24a9adea10c825117"; + }; + }; + "thenify-3.3.1" = { + name = "thenify"; + packageName = "thenify"; + version = "3.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"; + sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="; + }; + }; + "thenify-all-1.6.0" = { + name = "thenify-all"; + packageName = "thenify-all"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"; + sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"; + }; + }; + "tinycolor-0.0.1" = { + name = "tinycolor"; + packageName = "tinycolor"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz"; + sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164"; + }; + }; + "to-array-0.1.3" = { + name = "to-array"; + packageName = "to-array"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz"; + sha1 = "d45dadc6363417f60f28474fea50ecddbb4f4991"; + }; + }; + "type-check-0.3.2" = { + name = "type-check"; + packageName = "type-check"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"; + sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; + }; + }; + "type-is-1.3.2" = { + name = "type-is"; + packageName = "type-is"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz"; + sha1 = "4f2a5dc58775ca1630250afc7186f8b36309d1bb"; + }; + }; + "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"; + }; + }; + "uglify-js-1.2.6" = { + name = "uglify-js"; + packageName = "uglify-js"; + version = "1.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz"; + sha1 = "d354b2d3c1cf10ebc18fa78c11a28bdd9ce1580d"; + }; + }; + "uglify-js-2.4.15" = { + name = "uglify-js"; + packageName = "uglify-js"; + version = "2.4.15"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.15.tgz"; + sha1 = "12bc6d84345fbc306e13f7075d6437a8bf64d7e3"; + }; + }; + "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"; + }; + }; + "uid-safe-1.0.1" = { + name = "uid-safe"; + packageName = "uid-safe"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz"; + sha1 = "5bd148460a2e84f54f193fd20352c8c3d7de6ac8"; + }; + }; + "uid-safe-1.1.0" = { + name = "uid-safe"; + packageName = "uid-safe"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz"; + sha1 = "58d6c5dabf8dfbd8d52834839806c03fd6143232"; + }; + }; + "underscore-1.13.2" = { + name = "underscore"; + packageName = "underscore"; + version = "1.13.2"; + src = fetchurl { + url = "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz"; + sha512 = "ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g=="; + }; + }; + "utf8-2.0.0" = { + name = "utf8"; + packageName = "utf8"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/utf8/-/utf8-2.0.0.tgz"; + sha1 = "79ce59eced874809cab9a71fc7102c7d45d4118d"; + }; + }; + "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"; + }; + }; + "utils-merge-1.0.0" = { + name = "utils-merge"; + packageName = "utils-merge"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"; + sha1 = "0294fb922bb9375153541c4f7096231f287c8af8"; + }; + }; + "uuid-pure-1.0.10" = { + name = "uuid-pure"; + packageName = "uuid-pure"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid-pure/-/uuid-pure-1.0.10.tgz"; + sha1 = "72f231b59cf6c3af5e9f6ba7b963a9186d109b5d"; + }; + }; + "vary-0.1.0" = { + name = "vary"; + packageName = "vary"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-0.1.0.tgz"; + sha1 = "df0945899e93c0cc5bd18cc8321d9d21e74f6176"; + }; + }; + "vary-1.0.1" = { + name = "vary"; + packageName = "vary"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz"; + sha1 = "99e4981566a286118dfb2b817357df7993376d10"; + }; + }; + "vary-1.1.2" = { + name = "vary"; + packageName = "vary"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + }; + "vhost-2.0.0" = { + name = "vhost"; + packageName = "vhost"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz"; + sha1 = "1e26770bd0fce86c40945591e6f284c6891791e2"; + }; + }; + "voc-1.2.0" = { + name = "voc"; + packageName = "voc"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/voc/-/voc-1.2.0.tgz"; + sha512 = "BOuDjFFYvJdZO6e/N65AlaDItXo2TgyLjeyRYcqgAPkXpp5yTJcvkL2n+syO1r9Qc5g96tfBD2tuiMhYDmaGcA=="; + }; + }; + "word-wrap-1.2.3" = { + name = "word-wrap"; + packageName = "word-wrap"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"; + sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; + }; + }; + "wordwrap-0.0.3" = { + name = "wordwrap"; + packageName = "wordwrap"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz"; + sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107"; + }; + }; + "ws-0.4.31" = { + name = "ws"; + packageName = "ws"; + version = "0.4.31"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-0.4.31.tgz"; + sha1 = "5a4849e7a9ccd1ed5a81aeb4847c9fedf3122927"; + }; + }; + "xlsjs-0.7.6" = { + name = "xlsjs"; + packageName = "xlsjs"; + version = "0.7.6"; + src = fetchurl { + url = "https://registry.npmjs.org/xlsjs/-/xlsjs-0.7.6.tgz"; + sha1 = "d88754569aabcf8eea70cc23961b462634a49565"; + }; + }; + "xlsx-0.14.5" = { + name = "xlsx"; + packageName = "xlsx"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/xlsx/-/xlsx-0.14.5.tgz"; + sha512 = "s/5f4/mjeWREmIWZ+HtDfh/rnz51ar+dZ4LWKZU3u9VBx2zLdSIWTdXgoa52/pnZ9Oe/Vu1W1qzcKzLVe+lq4w=="; + }; + }; + "xlsx-0.9.13" = { + name = "xlsx"; + packageName = "xlsx"; + version = "0.9.13"; + src = fetchurl { + url = "https://registry.npmjs.org/xlsx/-/xlsx-0.9.13.tgz"; + sha1 = "5861d11e10a1f99b6f2b491e2d119a7777d066e7"; + }; + }; + "xmlhttprequest-https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz" = { + name = "xmlhttprequest"; + packageName = "xmlhttprequest"; + version = "1.5.0"; + src = fetchurl { + name = "xmlhttprequest-1.5.0.tar.gz"; + url = "https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433"; + sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f"; + }; + }; + "xoauth2-1.2.0" = { + name = "xoauth2"; + packageName = "xoauth2"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/xoauth2/-/xoauth2-1.2.0.tgz"; + sha1 = "f2eefac11472c971ea3bc46e554eb4b1232146e5"; + }; + }; + "zappajs-0.5.0" = { + name = "zappajs"; + packageName = "zappajs"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/zappajs/-/zappajs-0.5.0.tgz"; + sha1 = "1cc786d31c1559ba180f01ca3adf1e13ca02ca5c"; + }; + }; + }; +in +{ + "whitebophir-git+https://github.com/audreyt/ethercalc.git#b196277081d677be991d104e454a52d242ef0189" = nodeEnv.buildNodePackage { + name = "ethercalc"; + packageName = "ethercalc"; + version = "0.20201228.1"; + src = fetchgit { + url = "https://github.com/audreyt/ethercalc.git"; + rev = "b196277081d677be991d104e454a52d242ef0189"; + sha256 = "4494bada571057d86009f27470cc34f1e8a3b2c03b395cdba639c08d502a9bfe"; + }; + dependencies = [ + sources."accepts-1.0.7" + sources."adler-32-1.2.0" + sources."after-0.8.1" + sources."amdefine-1.0.1" + sources."any-promise-1.3.0" + sources."arraybuffer.slice-0.0.6" + sources."async-0.2.10" + sources."babyparse-0.2.1" + sources."balanced-match-1.0.2" + sources."base64-arraybuffer-0.1.2" + sources."base64-url-1.2.1" + sources."base64id-0.1.0" + sources."basic-auth-1.0.0" + sources."basic-auth-connect-1.0.0" + sources."batch-0.5.1" + sources."better-assert-1.0.2" + sources."blob-0.0.2" + (sources."body-parser-1.6.7" // { + dependencies = [ + sources."iconv-lite-0.4.4" + ]; + }) + sources."brace-expansion-1.1.11" + sources."buffer-crc32-0.2.3" + sources."buffer-from-1.1.2" + sources."bytes-1.0.0" + sources."callsite-1.0.0" + (sources."cfb-1.2.1" // { + dependencies = [ + (sources."adler-32-1.3.0" // { + dependencies = [ + sources."printj-1.2.3" + ]; + }) + sources."printj-1.3.0" + ]; + }) + (sources."codepage-1.14.0" // { + dependencies = [ + sources."commander-2.14.1" + ]; + }) + sources."coffee-css-0.0.5" + sources."coffee-script-1.12.7" + (sources."coffeecup-0.3.21" // { + dependencies = [ + sources."uglify-js-1.2.6" + ]; + }) + sources."colors-0.6.2" + sources."commander-2.17.1" + sources."component-bind-1.0.0" + sources."component-emitter-1.1.2" + sources."component-inherit-0.0.3" + sources."compressible-1.1.1" + (sources."compression-1.0.11" // { + dependencies = [ + sources."vary-1.0.1" + ]; + }) + sources."concat-map-0.0.1" + sources."concat-stream-2.0.0" + sources."connect-2.25.9" + sources."connect-timeout-1.2.2" + sources."cookie-0.1.2" + sources."cookie-parser-1.3.2" + sources."cookie-signature-1.0.4" + sources."core-util-is-1.0.3" + sources."cors-2.8.5" + sources."crc-32-1.2.0" + sources."csrf-2.0.7" + sources."cssom-0.2.5" + sources."csurf-1.4.1" + sources."csv-parse-0.0.6" + sources."debug-1.0.4" + sources."deep-is-0.1.4" + sources."depd-0.4.4" + sources."destroy-1.0.3" + sources."ee-first-1.0.5" + sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" + (sources."engine.io-1.3.1" // { + dependencies = [ + sources."debug-0.6.0" + ]; + }) + (sources."engine.io-client-1.3.1" // { + dependencies = [ + sources."debug-0.7.4" + ]; + }) + sources."engine.io-parser-1.0.6" + sources."errorhandler-1.1.1" + sources."escape-html-1.0.1" + sources."exit-on-epipe-1.0.1" + (sources."express-3.16.9" // { + dependencies = [ + sources."commander-1.3.2" + sources."vary-0.1.0" + ]; + }) + (sources."express-session-1.7.6" // { + dependencies = [ + sources."uid-safe-1.0.1" + ]; + }) + sources."fast-levenshtein-2.0.6" + sources."finalhandler-0.1.0" + sources."frac-1.1.2" + sources."fresh-0.2.2" + sources."global-https://github.com/component/global/archive/v2.0.1.tar.gz" + sources."graceful-readlink-1.0.1" + (sources."harb-0.1.1" // { + dependencies = [ + sources."frac-0.3.1" + sources."ssf-0.8.2" + ]; + }) + sources."has-binary-data-0.1.1" + sources."has-cors-1.0.3" + sources."iconv-lite-0.4.24" + sources."indexof-0.0.1" + sources."inherits-2.0.4" + sources."ipaddr.js-0.1.2" + sources."isarray-0.0.1" + (sources."j-0.4.5" // { + dependencies = [ + sources."adler-32-1.0.0" + sources."cfb-0.11.1" + sources."codepage-1.8.1" + sources."crc-32-1.0.2" + sources."frac-1.0.6" + sources."ssf-0.9.4" + (sources."xlsx-0.9.13" // { + dependencies = [ + sources."commander-2.9.0" + ]; + }) + ]; + }) + sources."json3-3.2.6" + sources."keypress-0.1.0" + sources."levn-0.3.0" + sources."livescript-1.5.0" + sources."media-typer-0.2.0" + sources."merge-descriptors-0.0.2" + (sources."method-override-2.1.3" // { + dependencies = [ + sources."vary-1.0.1" + ]; + }) + sources."methods-1.1.0" + sources."mime-1.2.11" + sources."mime-types-1.0.2" + sources."minimatch-3.0.4" + sources."minimist-0.0.10" + (sources."mkdirp-0.5.0" // { + dependencies = [ + sources."minimist-0.0.8" + ]; + }) + sources."morgan-1.2.3" + sources."ms-0.6.2" + (sources."multiparty-3.3.2" // { + dependencies = [ + sources."readable-stream-1.1.14" + sources."string_decoder-0.10.31" + ]; + }) + sources."mz-1.3.0" + sources."nan-0.3.2" + sources."native-or-bluebird-1.1.2" + sources."negotiator-0.4.7" + sources."node-uuid-1.4.1" + sources."object-assign-4.1.1" + sources."object-component-0.0.3" + sources."on-finished-2.1.0" + sources."on-headers-1.0.2" + sources."optimist-0.6.1" + sources."optionator-0.8.3" + sources."options-0.0.6" + sources."optparse-1.0.3" + sources."parsejson-0.0.1" + sources."parseqs-0.0.2" + sources."parseuri-0.0.2" + sources."parseurl-1.3.3" + sources."pause-0.0.1" + sources."prelude-ls-1.1.2" + sources."printj-1.1.2" + sources."proxy-addr-1.0.1" + sources."qs-2.2.2" + sources."range-parser-1.0.0" + (sources."raw-body-1.3.0" // { + dependencies = [ + sources."iconv-lite-0.4.4" + ]; + }) + sources."readable-stream-3.6.0" + sources."redis-0.12.1" + sources."response-time-2.0.1" + sources."rndm-1.1.1" + sources."safe-buffer-5.2.1" + sources."safer-buffer-2.1.2" + sources."scmp-1.0.0" + sources."send-0.8.3" + sources."serve-favicon-2.0.1" + sources."serve-index-1.1.6" + (sources."serve-static-1.5.4" // { + dependencies = [ + sources."send-0.8.5" + ]; + }) + sources."socialcalc-2.3.0" + (sources."socket.io-1.0.6" // { + dependencies = [ + sources."debug-0.7.4" + ]; + }) + (sources."socket.io-adapter-0.2.0" // { + dependencies = [ + sources."debug-0.7.4" + sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" + sources."socket.io-parser-2.1.2" + ]; + }) + (sources."socket.io-client-1.0.6" // { + dependencies = [ + sources."debug-0.7.4" + ]; + }) + (sources."socket.io-parser-2.2.0" // { + dependencies = [ + sources."debug-0.7.4" + ]; + }) + sources."source-map-0.5.7" + sources."ssf-0.10.3" + (sources."stream-counter-0.2.0" // { + dependencies = [ + sources."readable-stream-1.1.14" + sources."string_decoder-0.10.31" + ]; + }) + sources."string_decoder-1.3.0" + (sources."stylus-0.27.2" // { + dependencies = [ + sources."mkdirp-0.3.5" + ]; + }) + sources."thenify-3.3.1" + sources."thenify-all-1.6.0" + sources."tinycolor-0.0.1" + sources."to-array-0.1.3" + sources."type-check-0.3.2" + sources."type-is-1.3.2" + sources."typedarray-0.0.6" + (sources."uglify-js-2.4.15" // { + dependencies = [ + sources."optimist-0.3.7" + sources."source-map-0.1.34" + ]; + }) + sources."uglify-to-browserify-1.0.2" + sources."uid-safe-1.1.0" + sources."underscore-1.13.2" + sources."utf8-2.0.0" + sources."util-deprecate-1.0.2" + sources."utils-merge-1.0.0" + sources."uuid-pure-1.0.10" + sources."vary-1.1.2" + sources."vhost-2.0.0" + sources."voc-1.2.0" + sources."word-wrap-1.2.3" + sources."wordwrap-0.0.3" + (sources."ws-0.4.31" // { + dependencies = [ + sources."commander-0.6.1" + ]; + }) + (sources."xlsjs-0.7.6" // { + dependencies = [ + sources."cfb-0.11.1" + sources."frac-0.3.1" + sources."ssf-0.8.2" + ]; + }) + sources."xlsx-0.14.5" + sources."xmlhttprequest-https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz" + sources."xoauth2-1.2.0" + sources."zappajs-0.5.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "Multi-User Spreadsheet Server"; + homepage = "http://ethercalc.net/"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} diff --git a/pkgs/servers/web-apps/ethercalc/node-packages.json b/pkgs/servers/web-apps/ethercalc/node-packages.json new file mode 100644 index 00000000000..24675d73956 --- /dev/null +++ b/pkgs/servers/web-apps/ethercalc/node-packages.json @@ -0,0 +1,3 @@ +[ + { "whitebophir": "git+https://github.com/audreyt/ethercalc.git#b196277081d677be991d104e454a52d242ef0189" } +] diff --git a/pkgs/servers/web-apps/ethercalc/node-packages.nix b/pkgs/servers/web-apps/ethercalc/node-packages.nix new file mode 100644 index 00000000000..0961603968e --- /dev/null +++ b/pkgs/servers/web-apps/ethercalc/node-packages.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{pkgs ? import { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + +let + nodeEnv = import ../../../development/node-packages/node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages-generated.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 80896900dd1..8ceb622044b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5131,6 +5131,8 @@ with pkgs; electron = electron_14; }; + ethercalc = callPackage ../servers/web-apps/ethercalc { }; + ethtool = callPackage ../tools/misc/ethtool { }; ettercap = callPackage ../applications/networking/sniffers/ettercap { };