tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
haste-server: use buildNpmPackage
Robert Schütz
2 years ago
e21ce4a4
4a31fc57
+12
-2330
5 changed files
expand all
collapse all
unified
split
pkgs
servers
haste-server
default.nix
node-composition.nix
node-deps.nix
node-env.nix
update.sh
+12
-38
pkgs/servers/haste-server/default.nix
···
1
{ lib
2
, nixosTests
3
-
, stdenv
4
, fetchFromGitHub
5
-
, makeWrapper
6
-
, nodejs_18
7
-
, pkgs
8
}:
9
10
-
let
11
-
nodejs = nodejs_18;
12
-
in
13
-
stdenv.mkDerivation rec {
14
pname = "haste-server";
15
-
version = "b52b394bad909ddf151073987671e843540d91d6";
16
17
src = fetchFromGitHub {
18
owner = "toptal";
19
repo = "haste-server";
20
-
rev = version;
21
hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8=";
22
};
23
24
-
nativeBuildInputs = [
25
-
nodejs
26
-
makeWrapper
27
-
];
28
-
29
-
installPhase =
30
-
let
31
-
nodeDependencies = ((import ./node-composition.nix {
32
-
inherit pkgs nodejs;
33
-
inherit (stdenv.hostPlatform) system;
34
-
}).nodeDependencies.override (old: {
35
-
# access to path '/nix/store/...-source' is forbidden in restricted mode
36
-
src = src;
37
-
dontNpmInstall = true;
38
-
}));
39
-
in
40
-
''
41
-
runHook postInstall
42
43
-
mkdir -p $out/share
44
-
cp -ra . $out/share/haste-server
45
-
ln -s ${nodeDependencies}/lib/node_modules $out/share/haste-server/node_modules
46
-
makeWrapper ${nodejs}/bin/node $out/bin/haste-server \
47
-
--add-flags $out/share/haste-server/server.js
48
49
-
runHook postBuild
50
-
'';
0
51
52
passthru = {
53
tests = {
54
inherit (nixosTests) haste-server;
55
};
56
-
updateScript = ./update.sh;
57
};
58
59
meta = with lib; {
60
-
description = "open source pastebin written in node.js";
61
-
homepage = "https://www.toptal.com/developers/hastebin/about.md";
62
license = licenses.mit;
0
63
maintainers = with maintainers; [ mkg20001 ];
64
};
65
}
···
1
{ lib
2
, nixosTests
3
+
, buildNpmPackage
4
, fetchFromGitHub
0
0
0
5
}:
6
7
+
buildNpmPackage rec {
0
0
0
8
pname = "haste-server";
9
+
version = "unstable-2023-03-06";
10
11
src = fetchFromGitHub {
12
owner = "toptal";
13
repo = "haste-server";
14
+
rev = "b52b394bad909ddf151073987671e843540d91d6";
15
hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8=";
16
};
17
18
+
npmDepsHash = "sha256-FEuqKbblAts0WTnGI9H9bRBOwPvkahltra1zl3sMPJs=";
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
20
+
dontNpmBuild = true;
0
0
0
0
21
22
+
postInstall = ''
23
+
install -Dt "$out/share/haste-server" about.md
24
+
'';
25
26
passthru = {
27
tests = {
28
inherit (nixosTests) haste-server;
29
};
0
30
};
31
32
meta = with lib; {
33
+
description = "Open source pastebin written in Node.js";
34
+
homepage = "https://github.com/toptal/haste-server";
35
license = licenses.mit;
36
+
mainProgram = "haste-server";
37
maintainers = with maintainers; [ mkg20001 ];
38
};
39
}
-17
pkgs/servers/haste-server/node-composition.nix
···
1
-
# This file has been generated by node2nix 1.11.1. Do not edit!
2
-
3
-
{pkgs ? import <nixpkgs> {
4
-
inherit system;
5
-
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_14"}:
6
-
7
-
let
8
-
nodeEnv = import ./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-deps.nix {
15
-
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
16
-
inherit nodeEnv;
17
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-1561
pkgs/servers/haste-server/node-deps.nix
···
1
-
# This file has been generated by node2nix 1.11.1. Do not edit!
2
-
3
-
{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
4
-
5
-
let
6
-
sources = {
7
-
"@ungap/promise-all-settled-1.1.2" = {
8
-
name = "_at_ungap_slash_promise-all-settled";
9
-
packageName = "@ungap/promise-all-settled";
10
-
version = "1.1.2";
11
-
src = fetchurl {
12
-
url = "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
13
-
sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==";
14
-
};
15
-
};
16
-
"ansi-colors-4.1.1" = {
17
-
name = "ansi-colors";
18
-
packageName = "ansi-colors";
19
-
version = "4.1.1";
20
-
src = fetchurl {
21
-
url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
22
-
sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
23
-
};
24
-
};
25
-
"ansi-regex-3.0.1" = {
26
-
name = "ansi-regex";
27
-
packageName = "ansi-regex";
28
-
version = "3.0.1";
29
-
src = fetchurl {
30
-
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz";
31
-
sha512 = "+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==";
32
-
};
33
-
};
34
-
"ansi-regex-5.0.1" = {
35
-
name = "ansi-regex";
36
-
packageName = "ansi-regex";
37
-
version = "5.0.1";
38
-
src = fetchurl {
39
-
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
40
-
sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
41
-
};
42
-
};
43
-
"ansi-styles-4.3.0" = {
44
-
name = "ansi-styles";
45
-
packageName = "ansi-styles";
46
-
version = "4.3.0";
47
-
src = fetchurl {
48
-
url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
49
-
sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
50
-
};
51
-
};
52
-
"anymatch-3.1.3" = {
53
-
name = "anymatch";
54
-
packageName = "anymatch";
55
-
version = "3.1.3";
56
-
src = fetchurl {
57
-
url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz";
58
-
sha512 = "KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==";
59
-
};
60
-
};
61
-
"argparse-2.0.1" = {
62
-
name = "argparse";
63
-
packageName = "argparse";
64
-
version = "2.0.1";
65
-
src = fetchurl {
66
-
url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
67
-
sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
68
-
};
69
-
};
70
-
"async-2.6.4" = {
71
-
name = "async";
72
-
packageName = "async";
73
-
version = "2.6.4";
74
-
src = fetchurl {
75
-
url = "https://registry.npmjs.org/async/-/async-2.6.4.tgz";
76
-
sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==";
77
-
};
78
-
};
79
-
"async-cache-1.1.0" = {
80
-
name = "async-cache";
81
-
packageName = "async-cache";
82
-
version = "1.1.0";
83
-
src = fetchurl {
84
-
url = "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz";
85
-
sha512 = "YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g==";
86
-
};
87
-
};
88
-
"balanced-match-1.0.2" = {
89
-
name = "balanced-match";
90
-
packageName = "balanced-match";
91
-
version = "1.0.2";
92
-
src = fetchurl {
93
-
url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
94
-
sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
95
-
};
96
-
};
97
-
"base64-js-1.5.1" = {
98
-
name = "base64-js";
99
-
packageName = "base64-js";
100
-
version = "1.5.1";
101
-
src = fetchurl {
102
-
url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
103
-
sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
104
-
};
105
-
};
106
-
"binary-extensions-2.2.0" = {
107
-
name = "binary-extensions";
108
-
packageName = "binary-extensions";
109
-
version = "2.2.0";
110
-
src = fetchurl {
111
-
url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
112
-
sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
113
-
};
114
-
};
115
-
"bl-4.1.0" = {
116
-
name = "bl";
117
-
packageName = "bl";
118
-
version = "4.1.0";
119
-
src = fetchurl {
120
-
url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
121
-
sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
122
-
};
123
-
};
124
-
"brace-expansion-1.1.11" = {
125
-
name = "brace-expansion";
126
-
packageName = "brace-expansion";
127
-
version = "1.1.11";
128
-
src = fetchurl {
129
-
url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
130
-
sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
131
-
};
132
-
};
133
-
"braces-3.0.2" = {
134
-
name = "braces";
135
-
packageName = "braces";
136
-
version = "3.0.2";
137
-
src = fetchurl {
138
-
url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
139
-
sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
140
-
};
141
-
};
142
-
"browser-stdout-1.3.1" = {
143
-
name = "browser-stdout";
144
-
packageName = "browser-stdout";
145
-
version = "1.3.1";
146
-
src = fetchurl {
147
-
url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
148
-
sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
149
-
};
150
-
};
151
-
"buffer-5.7.1" = {
152
-
name = "buffer";
153
-
packageName = "buffer";
154
-
version = "5.7.1";
155
-
src = fetchurl {
156
-
url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
157
-
sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
158
-
};
159
-
};
160
-
"buffer-writer-2.0.0" = {
161
-
name = "buffer-writer";
162
-
packageName = "buffer-writer";
163
-
version = "2.0.0";
164
-
src = fetchurl {
165
-
url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
166
-
sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
167
-
};
168
-
};
169
-
"busboy-0.2.4" = {
170
-
name = "busboy";
171
-
packageName = "busboy";
172
-
version = "0.2.4";
173
-
src = fetchurl {
174
-
url = "https://registry.npmjs.org/busboy/-/busboy-0.2.4.tgz";
175
-
sha512 = "hm0XN2dlecinlYSaB1TmSmuOaFlf6TKl0ITjqlszN+4O8z2eNwjUX3ak38dIXa7Pi7wme62QE7Wi2lC5L5Pu5A==";
176
-
};
177
-
};
178
-
"camelcase-6.3.0" = {
179
-
name = "camelcase";
180
-
packageName = "camelcase";
181
-
version = "6.3.0";
182
-
src = fetchurl {
183
-
url = "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz";
184
-
sha512 = "Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==";
185
-
};
186
-
};
187
-
"chalk-4.1.2" = {
188
-
name = "chalk";
189
-
packageName = "chalk";
190
-
version = "4.1.2";
191
-
src = fetchurl {
192
-
url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";
193
-
sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
194
-
};
195
-
};
196
-
"chokidar-3.5.1" = {
197
-
name = "chokidar";
198
-
packageName = "chokidar";
199
-
version = "3.5.1";
200
-
src = fetchurl {
201
-
url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz";
202
-
sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
203
-
};
204
-
};
205
-
"cliui-7.0.4" = {
206
-
name = "cliui";
207
-
packageName = "cliui";
208
-
version = "7.0.4";
209
-
src = fetchurl {
210
-
url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz";
211
-
sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
212
-
};
213
-
};
214
-
"color-convert-2.0.1" = {
215
-
name = "color-convert";
216
-
packageName = "color-convert";
217
-
version = "2.0.1";
218
-
src = fetchurl {
219
-
url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
220
-
sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
221
-
};
222
-
};
223
-
"color-name-1.1.4" = {
224
-
name = "color-name";
225
-
packageName = "color-name";
226
-
version = "1.1.4";
227
-
src = fetchurl {
228
-
url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
229
-
sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
230
-
};
231
-
};
232
-
"colors-1.0.3" = {
233
-
name = "colors";
234
-
packageName = "colors";
235
-
version = "1.0.3";
236
-
src = fetchurl {
237
-
url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
238
-
sha512 = "pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==";
239
-
};
240
-
};
241
-
"commander-2.11.0" = {
242
-
name = "commander";
243
-
packageName = "commander";
244
-
version = "2.11.0";
245
-
src = fetchurl {
246
-
url = "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz";
247
-
sha512 = "b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==";
248
-
};
249
-
};
250
-
"concat-map-0.0.1" = {
251
-
name = "concat-map";
252
-
packageName = "concat-map";
253
-
version = "0.0.1";
254
-
src = fetchurl {
255
-
url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
256
-
sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==";
257
-
};
258
-
};
259
-
"connect-3.7.0" = {
260
-
name = "connect";
261
-
packageName = "connect";
262
-
version = "3.7.0";
263
-
src = fetchurl {
264
-
url = "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz";
265
-
sha512 = "ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==";
266
-
};
267
-
};
268
-
"connect-ratelimit-0.0.7" = {
269
-
name = "connect-ratelimit";
270
-
packageName = "connect-ratelimit";
271
-
version = "0.0.7";
272
-
src = fetchurl {
273
-
url = "https://registry.npmjs.org/connect-ratelimit/-/connect-ratelimit-0.0.7.tgz";
274
-
sha512 = "jFZp1le7Wow92pe6RU6GvyYp3PrXUEyVJxYyzYuf0tpmvpBnTAkARQL39IbSRoioRzQUBhxqEwvSQ7ClYSfGIQ==";
275
-
};
276
-
};
277
-
"connect-route-0.1.5" = {
278
-
name = "connect-route";
279
-
packageName = "connect-route";
280
-
version = "0.1.5";
281
-
src = fetchurl {
282
-
url = "https://registry.npmjs.org/connect-route/-/connect-route-0.1.5.tgz";
283
-
sha512 = "6OZGYeoKS7zzhCAGP+Du7WYjP4geK3ii0sZlS+Oqx+ANFPcS5t/jDJr9BuhgN9qPz1ld8iahiPxNrgJyHeZ3cw==";
284
-
};
285
-
};
286
-
"core-util-is-1.0.3" = {
287
-
name = "core-util-is";
288
-
packageName = "core-util-is";
289
-
version = "1.0.3";
290
-
src = fetchurl {
291
-
url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
292
-
sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
293
-
};
294
-
};
295
-
"cycle-1.0.3" = {
296
-
name = "cycle";
297
-
packageName = "cycle";
298
-
version = "1.0.3";
299
-
src = fetchurl {
300
-
url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
301
-
sha512 = "TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==";
302
-
};
303
-
};
304
-
"debug-2.6.9" = {
305
-
name = "debug";
306
-
packageName = "debug";
307
-
version = "2.6.9";
308
-
src = fetchurl {
309
-
url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
310
-
sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
311
-
};
312
-
};
313
-
"debug-4.3.1" = {
314
-
name = "debug";
315
-
packageName = "debug";
316
-
version = "4.3.1";
317
-
src = fetchurl {
318
-
url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz";
319
-
sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
320
-
};
321
-
};
322
-
"decamelize-4.0.0" = {
323
-
name = "decamelize";
324
-
packageName = "decamelize";
325
-
version = "4.0.0";
326
-
src = fetchurl {
327
-
url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz";
328
-
sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==";
329
-
};
330
-
};
331
-
"dicer-0.2.3" = {
332
-
name = "dicer";
333
-
packageName = "dicer";
334
-
version = "0.2.3";
335
-
src = fetchurl {
336
-
url = "https://registry.npmjs.org/dicer/-/dicer-0.2.3.tgz";
337
-
sha512 = "QcKKVGYt+ZKHOoX/Ph26ua7vVMlFtPjAejtktv9/IDsfm9x3+5sVZ+H6SIS+ACWoIaJ8cPm4W4ibhiwdLDqhIA==";
338
-
};
339
-
};
340
-
"diff-5.0.0" = {
341
-
name = "diff";
342
-
packageName = "diff";
343
-
version = "5.0.0";
344
-
src = fetchurl {
345
-
url = "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz";
346
-
sha512 = "/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==";
347
-
};
348
-
};
349
-
"ee-first-1.1.1" = {
350
-
name = "ee-first";
351
-
packageName = "ee-first";
352
-
version = "1.1.1";
353
-
src = fetchurl {
354
-
url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
355
-
sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==";
356
-
};
357
-
};
358
-
"emoji-regex-8.0.0" = {
359
-
name = "emoji-regex";
360
-
packageName = "emoji-regex";
361
-
version = "8.0.0";
362
-
src = fetchurl {
363
-
url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
364
-
sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
365
-
};
366
-
};
367
-
"encodeurl-1.0.2" = {
368
-
name = "encodeurl";
369
-
packageName = "encodeurl";
370
-
version = "1.0.2";
371
-
src = fetchurl {
372
-
url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
373
-
sha512 = "TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==";
374
-
};
375
-
};
376
-
"escalade-3.1.1" = {
377
-
name = "escalade";
378
-
packageName = "escalade";
379
-
version = "3.1.1";
380
-
src = fetchurl {
381
-
url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
382
-
sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
383
-
};
384
-
};
385
-
"escape-html-1.0.3" = {
386
-
name = "escape-html";
387
-
packageName = "escape-html";
388
-
version = "1.0.3";
389
-
src = fetchurl {
390
-
url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
391
-
sha512 = "NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==";
392
-
};
393
-
};
394
-
"escape-string-regexp-4.0.0" = {
395
-
name = "escape-string-regexp";
396
-
packageName = "escape-string-regexp";
397
-
version = "4.0.0";
398
-
src = fetchurl {
399
-
url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
400
-
sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
401
-
};
402
-
};
403
-
"eyes-0.1.8" = {
404
-
name = "eyes";
405
-
packageName = "eyes";
406
-
version = "0.1.8";
407
-
src = fetchurl {
408
-
url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
409
-
sha512 = "GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==";
410
-
};
411
-
};
412
-
"fd-0.0.3" = {
413
-
name = "fd";
414
-
packageName = "fd";
415
-
version = "0.0.3";
416
-
src = fetchurl {
417
-
url = "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz";
418
-
sha512 = "iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==";
419
-
};
420
-
};
421
-
"fill-range-7.0.1" = {
422
-
name = "fill-range";
423
-
packageName = "fill-range";
424
-
version = "7.0.1";
425
-
src = fetchurl {
426
-
url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
427
-
sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
428
-
};
429
-
};
430
-
"finalhandler-1.1.2" = {
431
-
name = "finalhandler";
432
-
packageName = "finalhandler";
433
-
version = "1.1.2";
434
-
src = fetchurl {
435
-
url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
436
-
sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
437
-
};
438
-
};
439
-
"find-up-5.0.0" = {
440
-
name = "find-up";
441
-
packageName = "find-up";
442
-
version = "5.0.0";
443
-
src = fetchurl {
444
-
url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz";
445
-
sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
446
-
};
447
-
};
448
-
"flat-5.0.2" = {
449
-
name = "flat";
450
-
packageName = "flat";
451
-
version = "5.0.2";
452
-
src = fetchurl {
453
-
url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz";
454
-
sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
455
-
};
456
-
};
457
-
"fs.realpath-1.0.0" = {
458
-
name = "fs.realpath";
459
-
packageName = "fs.realpath";
460
-
version = "1.0.0";
461
-
src = fetchurl {
462
-
url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
463
-
sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
464
-
};
465
-
};
466
-
"fsevents-2.3.2" = {
467
-
name = "fsevents";
468
-
packageName = "fsevents";
469
-
version = "2.3.2";
470
-
src = fetchurl {
471
-
url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz";
472
-
sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==";
473
-
};
474
-
};
475
-
"get-caller-file-2.0.5" = {
476
-
name = "get-caller-file";
477
-
packageName = "get-caller-file";
478
-
version = "2.0.5";
479
-
src = fetchurl {
480
-
url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
481
-
sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
482
-
};
483
-
};
484
-
"glob-7.1.6" = {
485
-
name = "glob";
486
-
packageName = "glob";
487
-
version = "7.1.6";
488
-
src = fetchurl {
489
-
url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
490
-
sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
491
-
};
492
-
};
493
-
"glob-parent-5.1.2" = {
494
-
name = "glob-parent";
495
-
packageName = "glob-parent";
496
-
version = "5.1.2";
497
-
src = fetchurl {
498
-
url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
499
-
sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
500
-
};
501
-
};
502
-
"graceful-fs-4.2.10" = {
503
-
name = "graceful-fs";
504
-
packageName = "graceful-fs";
505
-
version = "4.2.10";
506
-
src = fetchurl {
507
-
url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
508
-
sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
509
-
};
510
-
};
511
-
"growl-1.10.5" = {
512
-
name = "growl";
513
-
packageName = "growl";
514
-
version = "1.10.5";
515
-
src = fetchurl {
516
-
url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
517
-
sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
518
-
};
519
-
};
520
-
"has-flag-4.0.0" = {
521
-
name = "has-flag";
522
-
packageName = "has-flag";
523
-
version = "4.0.0";
524
-
src = fetchurl {
525
-
url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
526
-
sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
527
-
};
528
-
};
529
-
"he-1.2.0" = {
530
-
name = "he";
531
-
packageName = "he";
532
-
version = "1.2.0";
533
-
src = fetchurl {
534
-
url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
535
-
sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
536
-
};
537
-
};
538
-
"ieee754-1.2.1" = {
539
-
name = "ieee754";
540
-
packageName = "ieee754";
541
-
version = "1.2.1";
542
-
src = fetchurl {
543
-
url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
544
-
sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
545
-
};
546
-
};
547
-
"inflight-1.0.6" = {
548
-
name = "inflight";
549
-
packageName = "inflight";
550
-
version = "1.0.6";
551
-
src = fetchurl {
552
-
url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
553
-
sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==";
554
-
};
555
-
};
556
-
"inherits-2.0.4" = {
557
-
name = "inherits";
558
-
packageName = "inherits";
559
-
version = "2.0.4";
560
-
src = fetchurl {
561
-
url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
562
-
sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
563
-
};
564
-
};
565
-
"is-binary-path-2.1.0" = {
566
-
name = "is-binary-path";
567
-
packageName = "is-binary-path";
568
-
version = "2.1.0";
569
-
src = fetchurl {
570
-
url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
571
-
sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
572
-
};
573
-
};
574
-
"is-extglob-2.1.1" = {
575
-
name = "is-extglob";
576
-
packageName = "is-extglob";
577
-
version = "2.1.1";
578
-
src = fetchurl {
579
-
url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
580
-
sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==";
581
-
};
582
-
};
583
-
"is-fullwidth-code-point-2.0.0" = {
584
-
name = "is-fullwidth-code-point";
585
-
packageName = "is-fullwidth-code-point";
586
-
version = "2.0.0";
587
-
src = fetchurl {
588
-
url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
589
-
sha512 = "VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==";
590
-
};
591
-
};
592
-
"is-fullwidth-code-point-3.0.0" = {
593
-
name = "is-fullwidth-code-point";
594
-
packageName = "is-fullwidth-code-point";
595
-
version = "3.0.0";
596
-
src = fetchurl {
597
-
url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
598
-
sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
599
-
};
600
-
};
601
-
"is-glob-4.0.3" = {
602
-
name = "is-glob";
603
-
packageName = "is-glob";
604
-
version = "4.0.3";
605
-
src = fetchurl {
606
-
url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz";
607
-
sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
608
-
};
609
-
};
610
-
"is-number-7.0.0" = {
611
-
name = "is-number";
612
-
packageName = "is-number";
613
-
version = "7.0.0";
614
-
src = fetchurl {
615
-
url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
616
-
sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
617
-
};
618
-
};
619
-
"is-plain-obj-2.1.0" = {
620
-
name = "is-plain-obj";
621
-
packageName = "is-plain-obj";
622
-
version = "2.1.0";
623
-
src = fetchurl {
624
-
url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
625
-
sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
626
-
};
627
-
};
628
-
"isarray-0.0.1" = {
629
-
name = "isarray";
630
-
packageName = "isarray";
631
-
version = "0.0.1";
632
-
src = fetchurl {
633
-
url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
634
-
sha512 = "D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==";
635
-
};
636
-
};
637
-
"isexe-2.0.0" = {
638
-
name = "isexe";
639
-
packageName = "isexe";
640
-
version = "2.0.0";
641
-
src = fetchurl {
642
-
url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
643
-
sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==";
644
-
};
645
-
};
646
-
"isstream-0.1.2" = {
647
-
name = "isstream";
648
-
packageName = "isstream";
649
-
version = "0.1.2";
650
-
src = fetchurl {
651
-
url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
652
-
sha512 = "Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==";
653
-
};
654
-
};
655
-
"js-yaml-4.0.0" = {
656
-
name = "js-yaml";
657
-
packageName = "js-yaml";
658
-
version = "4.0.0";
659
-
src = fetchurl {
660
-
url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz";
661
-
sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
662
-
};
663
-
};
664
-
"locate-path-6.0.0" = {
665
-
name = "locate-path";
666
-
packageName = "locate-path";
667
-
version = "6.0.0";
668
-
src = fetchurl {
669
-
url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz";
670
-
sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
671
-
};
672
-
};
673
-
"lodash-4.17.21" = {
674
-
name = "lodash";
675
-
packageName = "lodash";
676
-
version = "4.17.21";
677
-
src = fetchurl {
678
-
url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
679
-
sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
680
-
};
681
-
};
682
-
"log-symbols-4.0.0" = {
683
-
name = "log-symbols";
684
-
packageName = "log-symbols";
685
-
version = "4.0.0";
686
-
src = fetchurl {
687
-
url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz";
688
-
sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
689
-
};
690
-
};
691
-
"lru-cache-4.1.5" = {
692
-
name = "lru-cache";
693
-
packageName = "lru-cache";
694
-
version = "4.1.5";
695
-
src = fetchurl {
696
-
url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
697
-
sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
698
-
};
699
-
};
700
-
"mime-2.6.0" = {
701
-
name = "mime";
702
-
packageName = "mime";
703
-
version = "2.6.0";
704
-
src = fetchurl {
705
-
url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz";
706
-
sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==";
707
-
};
708
-
};
709
-
"minimatch-3.0.4" = {
710
-
name = "minimatch";
711
-
packageName = "minimatch";
712
-
version = "3.0.4";
713
-
src = fetchurl {
714
-
url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
715
-
sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
716
-
};
717
-
};
718
-
"mocha-8.4.0" = {
719
-
name = "mocha";
720
-
packageName = "mocha";
721
-
version = "8.4.0";
722
-
src = fetchurl {
723
-
url = "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz";
724
-
sha512 = "hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==";
725
-
};
726
-
};
727
-
"ms-2.0.0" = {
728
-
name = "ms";
729
-
packageName = "ms";
730
-
version = "2.0.0";
731
-
src = fetchurl {
732
-
url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
733
-
sha512 = "Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==";
734
-
};
735
-
};
736
-
"ms-2.1.2" = {
737
-
name = "ms";
738
-
packageName = "ms";
739
-
version = "2.1.2";
740
-
src = fetchurl {
741
-
url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
742
-
sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
743
-
};
744
-
};
745
-
"ms-2.1.3" = {
746
-
name = "ms";
747
-
packageName = "ms";
748
-
version = "2.1.3";
749
-
src = fetchurl {
750
-
url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
751
-
sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
752
-
};
753
-
};
754
-
"nanoid-3.1.20" = {
755
-
name = "nanoid";
756
-
packageName = "nanoid";
757
-
version = "3.1.20";
758
-
src = fetchurl {
759
-
url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz";
760
-
sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==";
761
-
};
762
-
};
763
-
"negotiator-0.6.3" = {
764
-
name = "negotiator";
765
-
packageName = "negotiator";
766
-
version = "0.6.3";
767
-
src = fetchurl {
768
-
url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz";
769
-
sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==";
770
-
};
771
-
};
772
-
"normalize-path-3.0.0" = {
773
-
name = "normalize-path";
774
-
packageName = "normalize-path";
775
-
version = "3.0.0";
776
-
src = fetchurl {
777
-
url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
778
-
sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
779
-
};
780
-
};
781
-
"on-finished-2.3.0" = {
782
-
name = "on-finished";
783
-
packageName = "on-finished";
784
-
version = "2.3.0";
785
-
src = fetchurl {
786
-
url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
787
-
sha512 = "ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==";
788
-
};
789
-
};
790
-
"once-1.4.0" = {
791
-
name = "once";
792
-
packageName = "once";
793
-
version = "1.4.0";
794
-
src = fetchurl {
795
-
url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
796
-
sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==";
797
-
};
798
-
};
799
-
"p-limit-3.1.0" = {
800
-
name = "p-limit";
801
-
packageName = "p-limit";
802
-
version = "3.1.0";
803
-
src = fetchurl {
804
-
url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz";
805
-
sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==";
806
-
};
807
-
};
808
-
"p-locate-5.0.0" = {
809
-
name = "p-locate";
810
-
packageName = "p-locate";
811
-
version = "5.0.0";
812
-
src = fetchurl {
813
-
url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz";
814
-
sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
815
-
};
816
-
};
817
-
"packet-reader-1.0.0" = {
818
-
name = "packet-reader";
819
-
packageName = "packet-reader";
820
-
version = "1.0.0";
821
-
src = fetchurl {
822
-
url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
823
-
sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
824
-
};
825
-
};
826
-
"parseurl-1.3.3" = {
827
-
name = "parseurl";
828
-
packageName = "parseurl";
829
-
version = "1.3.3";
830
-
src = fetchurl {
831
-
url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
832
-
sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
833
-
};
834
-
};
835
-
"path-exists-4.0.0" = {
836
-
name = "path-exists";
837
-
packageName = "path-exists";
838
-
version = "4.0.0";
839
-
src = fetchurl {
840
-
url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
841
-
sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
842
-
};
843
-
};
844
-
"path-is-absolute-1.0.1" = {
845
-
name = "path-is-absolute";
846
-
packageName = "path-is-absolute";
847
-
version = "1.0.1";
848
-
src = fetchurl {
849
-
url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
850
-
sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
851
-
};
852
-
};
853
-
"pg-8.10.0" = {
854
-
name = "pg";
855
-
packageName = "pg";
856
-
version = "8.10.0";
857
-
src = fetchurl {
858
-
url = "https://registry.npmjs.org/pg/-/pg-8.10.0.tgz";
859
-
sha512 = "ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ==";
860
-
};
861
-
};
862
-
"pg-connection-string-2.5.0" = {
863
-
name = "pg-connection-string";
864
-
packageName = "pg-connection-string";
865
-
version = "2.5.0";
866
-
src = fetchurl {
867
-
url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
868
-
sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==";
869
-
};
870
-
};
871
-
"pg-int8-1.0.1" = {
872
-
name = "pg-int8";
873
-
packageName = "pg-int8";
874
-
version = "1.0.1";
875
-
src = fetchurl {
876
-
url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
877
-
sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
878
-
};
879
-
};
880
-
"pg-pool-3.6.0" = {
881
-
name = "pg-pool";
882
-
packageName = "pg-pool";
883
-
version = "3.6.0";
884
-
src = fetchurl {
885
-
url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz";
886
-
sha512 = "clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==";
887
-
};
888
-
};
889
-
"pg-protocol-1.6.0" = {
890
-
name = "pg-protocol";
891
-
packageName = "pg-protocol";
892
-
version = "1.6.0";
893
-
src = fetchurl {
894
-
url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz";
895
-
sha512 = "M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==";
896
-
};
897
-
};
898
-
"pg-types-2.2.0" = {
899
-
name = "pg-types";
900
-
packageName = "pg-types";
901
-
version = "2.2.0";
902
-
src = fetchurl {
903
-
url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
904
-
sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
905
-
};
906
-
};
907
-
"pgpass-1.0.5" = {
908
-
name = "pgpass";
909
-
packageName = "pgpass";
910
-
version = "1.0.5";
911
-
src = fetchurl {
912
-
url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz";
913
-
sha512 = "FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==";
914
-
};
915
-
};
916
-
"picomatch-2.3.1" = {
917
-
name = "picomatch";
918
-
packageName = "picomatch";
919
-
version = "2.3.1";
920
-
src = fetchurl {
921
-
url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz";
922
-
sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==";
923
-
};
924
-
};
925
-
"postgres-array-2.0.0" = {
926
-
name = "postgres-array";
927
-
packageName = "postgres-array";
928
-
version = "2.0.0";
929
-
src = fetchurl {
930
-
url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
931
-
sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
932
-
};
933
-
};
934
-
"postgres-bytea-1.0.0" = {
935
-
name = "postgres-bytea";
936
-
packageName = "postgres-bytea";
937
-
version = "1.0.0";
938
-
src = fetchurl {
939
-
url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
940
-
sha512 = "xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==";
941
-
};
942
-
};
943
-
"postgres-date-1.0.7" = {
944
-
name = "postgres-date";
945
-
packageName = "postgres-date";
946
-
version = "1.0.7";
947
-
src = fetchurl {
948
-
url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
949
-
sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
950
-
};
951
-
};
952
-
"postgres-interval-1.2.0" = {
953
-
name = "postgres-interval";
954
-
packageName = "postgres-interval";
955
-
version = "1.2.0";
956
-
src = fetchurl {
957
-
url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
958
-
sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
959
-
};
960
-
};
961
-
"pseudomap-1.0.2" = {
962
-
name = "pseudomap";
963
-
packageName = "pseudomap";
964
-
version = "1.0.2";
965
-
src = fetchurl {
966
-
url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
967
-
sha512 = "b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==";
968
-
};
969
-
};
970
-
"randombytes-2.1.0" = {
971
-
name = "randombytes";
972
-
packageName = "randombytes";
973
-
version = "2.1.0";
974
-
src = fetchurl {
975
-
url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
976
-
sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
977
-
};
978
-
};
979
-
"readable-stream-1.1.14" = {
980
-
name = "readable-stream";
981
-
packageName = "readable-stream";
982
-
version = "1.1.14";
983
-
src = fetchurl {
984
-
url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
985
-
sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==";
986
-
};
987
-
};
988
-
"readable-stream-3.6.1" = {
989
-
name = "readable-stream";
990
-
packageName = "readable-stream";
991
-
version = "3.6.1";
992
-
src = fetchurl {
993
-
url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz";
994
-
sha512 = "+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==";
995
-
};
996
-
};
997
-
"readdirp-3.5.0" = {
998
-
name = "readdirp";
999
-
packageName = "readdirp";
1000
-
version = "3.5.0";
1001
-
src = fetchurl {
1002
-
url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
1003
-
sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
1004
-
};
1005
-
};
1006
-
"redis-0.8.1" = {
1007
-
name = "redis";
1008
-
packageName = "redis";
1009
-
version = "0.8.1";
1010
-
src = fetchurl {
1011
-
url = "https://registry.npmjs.org/redis/-/redis-0.8.1.tgz";
1012
-
sha512 = "XiXVEcXsJ6N71BAltCQ5vDOPhWeFyIaOqInVpXnRghK0WAc7ZPwXEjX6rkBCrlsnX6gXOPvsUvAzb5KhvajbiQ==";
1013
-
};
1014
-
};
1015
-
"redis-url-0.1.0" = {
1016
-
name = "redis-url";
1017
-
packageName = "redis-url";
1018
-
version = "0.1.0";
1019
-
src = fetchurl {
1020
-
url = "https://registry.npmjs.org/redis-url/-/redis-url-0.1.0.tgz";
1021
-
sha512 = "LVc0kybiwS2FY0uhe7Pjs4hGqHE+ygI3v7WQu+Qmr3acJ5atGid6vc98e2S9FoyIwfAekGWRwBFoRHxJnqW0Qw==";
1022
-
};
1023
-
};
1024
-
"require-directory-2.1.1" = {
1025
-
name = "require-directory";
1026
-
packageName = "require-directory";
1027
-
version = "2.1.1";
1028
-
src = fetchurl {
1029
-
url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
1030
-
sha512 = "fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==";
1031
-
};
1032
-
};
1033
-
"safe-buffer-5.2.1" = {
1034
-
name = "safe-buffer";
1035
-
packageName = "safe-buffer";
1036
-
version = "5.2.1";
1037
-
src = fetchurl {
1038
-
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
1039
-
sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
1040
-
};
1041
-
};
1042
-
"serialize-javascript-5.0.1" = {
1043
-
name = "serialize-javascript";
1044
-
packageName = "serialize-javascript";
1045
-
version = "5.0.1";
1046
-
src = fetchurl {
1047
-
url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
1048
-
sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
1049
-
};
1050
-
};
1051
-
"source-map-0.6.1" = {
1052
-
name = "source-map";
1053
-
packageName = "source-map";
1054
-
version = "0.6.1";
1055
-
src = fetchurl {
1056
-
url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
1057
-
sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
1058
-
};
1059
-
};
1060
-
"split2-4.1.0" = {
1061
-
name = "split2";
1062
-
packageName = "split2";
1063
-
version = "4.1.0";
1064
-
src = fetchurl {
1065
-
url = "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz";
1066
-
sha512 = "VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==";
1067
-
};
1068
-
};
1069
-
"st-2.0.0" = {
1070
-
name = "st";
1071
-
packageName = "st";
1072
-
version = "2.0.0";
1073
-
src = fetchurl {
1074
-
url = "https://registry.npmjs.org/st/-/st-2.0.0.tgz";
1075
-
sha512 = "drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw==";
1076
-
};
1077
-
};
1078
-
"stack-trace-0.0.10" = {
1079
-
name = "stack-trace";
1080
-
packageName = "stack-trace";
1081
-
version = "0.0.10";
1082
-
src = fetchurl {
1083
-
url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
1084
-
sha512 = "KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==";
1085
-
};
1086
-
};
1087
-
"statuses-1.5.0" = {
1088
-
name = "statuses";
1089
-
packageName = "statuses";
1090
-
version = "1.5.0";
1091
-
src = fetchurl {
1092
-
url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
1093
-
sha512 = "OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==";
1094
-
};
1095
-
};
1096
-
"streamsearch-0.1.2" = {
1097
-
name = "streamsearch";
1098
-
packageName = "streamsearch";
1099
-
version = "0.1.2";
1100
-
src = fetchurl {
1101
-
url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz";
1102
-
sha512 = "jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==";
1103
-
};
1104
-
};
1105
-
"string-width-2.1.1" = {
1106
-
name = "string-width";
1107
-
packageName = "string-width";
1108
-
version = "2.1.1";
1109
-
src = fetchurl {
1110
-
url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
1111
-
sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
1112
-
};
1113
-
};
1114
-
"string-width-4.2.3" = {
1115
-
name = "string-width";
1116
-
packageName = "string-width";
1117
-
version = "4.2.3";
1118
-
src = fetchurl {
1119
-
url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
1120
-
sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
1121
-
};
1122
-
};
1123
-
"string_decoder-0.10.31" = {
1124
-
name = "string_decoder";
1125
-
packageName = "string_decoder";
1126
-
version = "0.10.31";
1127
-
src = fetchurl {
1128
-
url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
1129
-
sha512 = "ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==";
1130
-
};
1131
-
};
1132
-
"string_decoder-1.3.0" = {
1133
-
name = "string_decoder";
1134
-
packageName = "string_decoder";
1135
-
version = "1.3.0";
1136
-
src = fetchurl {
1137
-
url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
1138
-
sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
1139
-
};
1140
-
};
1141
-
"strip-ansi-4.0.0" = {
1142
-
name = "strip-ansi";
1143
-
packageName = "strip-ansi";
1144
-
version = "4.0.0";
1145
-
src = fetchurl {
1146
-
url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
1147
-
sha512 = "4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==";
1148
-
};
1149
-
};
1150
-
"strip-ansi-6.0.1" = {
1151
-
name = "strip-ansi";
1152
-
packageName = "strip-ansi";
1153
-
version = "6.0.1";
1154
-
src = fetchurl {
1155
-
url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
1156
-
sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
1157
-
};
1158
-
};
1159
-
"strip-json-comments-3.1.1" = {
1160
-
name = "strip-json-comments";
1161
-
packageName = "strip-json-comments";
1162
-
version = "3.1.1";
1163
-
src = fetchurl {
1164
-
url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
1165
-
sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
1166
-
};
1167
-
};
1168
-
"supports-color-7.2.0" = {
1169
-
name = "supports-color";
1170
-
packageName = "supports-color";
1171
-
version = "7.2.0";
1172
-
src = fetchurl {
1173
-
url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
1174
-
sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
1175
-
};
1176
-
};
1177
-
"supports-color-8.1.1" = {
1178
-
name = "supports-color";
1179
-
packageName = "supports-color";
1180
-
version = "8.1.1";
1181
-
src = fetchurl {
1182
-
url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz";
1183
-
sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
1184
-
};
1185
-
};
1186
-
"to-regex-range-5.0.1" = {
1187
-
name = "to-regex-range";
1188
-
packageName = "to-regex-range";
1189
-
version = "5.0.1";
1190
-
src = fetchurl {
1191
-
url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
1192
-
sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
1193
-
};
1194
-
};
1195
-
"uglify-js-3.1.6" = {
1196
-
name = "uglify-js";
1197
-
packageName = "uglify-js";
1198
-
version = "3.1.6";
1199
-
src = fetchurl {
1200
-
url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.6.tgz";
1201
-
sha512 = "/rseyxEKEVMBo8279lqpoJgD6C/i/CIi+9TJDvWmb+Xo6mqMKwjA8Io3IMHlcXQzj99feR6zrN8m3wqqvm/nYA==";
1202
-
};
1203
-
};
1204
-
"unpipe-1.0.0" = {
1205
-
name = "unpipe";
1206
-
packageName = "unpipe";
1207
-
version = "1.0.0";
1208
-
src = fetchurl {
1209
-
url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
1210
-
sha512 = "pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==";
1211
-
};
1212
-
};
1213
-
"util-deprecate-1.0.2" = {
1214
-
name = "util-deprecate";
1215
-
packageName = "util-deprecate";
1216
-
version = "1.0.2";
1217
-
src = fetchurl {
1218
-
url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
1219
-
sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==";
1220
-
};
1221
-
};
1222
-
"utils-merge-1.0.1" = {
1223
-
name = "utils-merge";
1224
-
packageName = "utils-merge";
1225
-
version = "1.0.1";
1226
-
src = fetchurl {
1227
-
url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
1228
-
sha512 = "pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==";
1229
-
};
1230
-
};
1231
-
"which-2.0.2" = {
1232
-
name = "which";
1233
-
packageName = "which";
1234
-
version = "2.0.2";
1235
-
src = fetchurl {
1236
-
url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
1237
-
sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
1238
-
};
1239
-
};
1240
-
"wide-align-1.1.3" = {
1241
-
name = "wide-align";
1242
-
packageName = "wide-align";
1243
-
version = "1.1.3";
1244
-
src = fetchurl {
1245
-
url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
1246
-
sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
1247
-
};
1248
-
};
1249
-
"winston-2.4.7" = {
1250
-
name = "winston";
1251
-
packageName = "winston";
1252
-
version = "2.4.7";
1253
-
src = fetchurl {
1254
-
url = "https://registry.npmjs.org/winston/-/winston-2.4.7.tgz";
1255
-
sha512 = "vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==";
1256
-
};
1257
-
};
1258
-
"workerpool-6.1.0" = {
1259
-
name = "workerpool";
1260
-
packageName = "workerpool";
1261
-
version = "6.1.0";
1262
-
src = fetchurl {
1263
-
url = "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz";
1264
-
sha512 = "toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==";
1265
-
};
1266
-
};
1267
-
"wrap-ansi-7.0.0" = {
1268
-
name = "wrap-ansi";
1269
-
packageName = "wrap-ansi";
1270
-
version = "7.0.0";
1271
-
src = fetchurl {
1272
-
url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
1273
-
sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
1274
-
};
1275
-
};
1276
-
"wrappy-1.0.2" = {
1277
-
name = "wrappy";
1278
-
packageName = "wrappy";
1279
-
version = "1.0.2";
1280
-
src = fetchurl {
1281
-
url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
1282
-
sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==";
1283
-
};
1284
-
};
1285
-
"xtend-4.0.2" = {
1286
-
name = "xtend";
1287
-
packageName = "xtend";
1288
-
version = "4.0.2";
1289
-
src = fetchurl {
1290
-
url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
1291
-
sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
1292
-
};
1293
-
};
1294
-
"y18n-5.0.8" = {
1295
-
name = "y18n";
1296
-
packageName = "y18n";
1297
-
version = "5.0.8";
1298
-
src = fetchurl {
1299
-
url = "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz";
1300
-
sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==";
1301
-
};
1302
-
};
1303
-
"yallist-2.1.2" = {
1304
-
name = "yallist";
1305
-
packageName = "yallist";
1306
-
version = "2.1.2";
1307
-
src = fetchurl {
1308
-
url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
1309
-
sha512 = "ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==";
1310
-
};
1311
-
};
1312
-
"yargs-16.2.0" = {
1313
-
name = "yargs";
1314
-
packageName = "yargs";
1315
-
version = "16.2.0";
1316
-
src = fetchurl {
1317
-
url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz";
1318
-
sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
1319
-
};
1320
-
};
1321
-
"yargs-parser-20.2.4" = {
1322
-
name = "yargs-parser";
1323
-
packageName = "yargs-parser";
1324
-
version = "20.2.4";
1325
-
src = fetchurl {
1326
-
url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz";
1327
-
sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==";
1328
-
};
1329
-
};
1330
-
"yargs-unparser-2.0.0" = {
1331
-
name = "yargs-unparser";
1332
-
packageName = "yargs-unparser";
1333
-
version = "2.0.0";
1334
-
src = fetchurl {
1335
-
url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
1336
-
sha512 = "7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==";
1337
-
};
1338
-
};
1339
-
"yocto-queue-0.1.0" = {
1340
-
name = "yocto-queue";
1341
-
packageName = "yocto-queue";
1342
-
version = "0.1.0";
1343
-
src = fetchurl {
1344
-
url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz";
1345
-
sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==";
1346
-
};
1347
-
};
1348
-
};
1349
-
args = {
1350
-
name = "haste";
1351
-
packageName = "haste";
1352
-
version = "0.1.0";
1353
-
src = ../../../../../../../../../nix/store/v45nw2igqcjw58j7ns9xrqj6f6n3jafd-source;
1354
-
dependencies = [
1355
-
sources."@ungap/promise-all-settled-1.1.2"
1356
-
sources."ansi-colors-4.1.1"
1357
-
sources."ansi-regex-3.0.1"
1358
-
sources."ansi-styles-4.3.0"
1359
-
sources."anymatch-3.1.3"
1360
-
sources."argparse-2.0.1"
1361
-
sources."async-2.6.4"
1362
-
sources."async-cache-1.1.0"
1363
-
sources."balanced-match-1.0.2"
1364
-
sources."base64-js-1.5.1"
1365
-
sources."binary-extensions-2.2.0"
1366
-
(sources."bl-4.1.0" // {
1367
-
dependencies = [
1368
-
sources."readable-stream-3.6.1"
1369
-
sources."string_decoder-1.3.0"
1370
-
];
1371
-
})
1372
-
sources."brace-expansion-1.1.11"
1373
-
sources."braces-3.0.2"
1374
-
sources."browser-stdout-1.3.1"
1375
-
sources."buffer-5.7.1"
1376
-
sources."buffer-writer-2.0.0"
1377
-
sources."busboy-0.2.4"
1378
-
sources."camelcase-6.3.0"
1379
-
(sources."chalk-4.1.2" // {
1380
-
dependencies = [
1381
-
sources."supports-color-7.2.0"
1382
-
];
1383
-
})
1384
-
sources."chokidar-3.5.1"
1385
-
(sources."cliui-7.0.4" // {
1386
-
dependencies = [
1387
-
sources."ansi-regex-5.0.1"
1388
-
sources."is-fullwidth-code-point-3.0.0"
1389
-
sources."string-width-4.2.3"
1390
-
sources."strip-ansi-6.0.1"
1391
-
];
1392
-
})
1393
-
sources."color-convert-2.0.1"
1394
-
sources."color-name-1.1.4"
1395
-
sources."colors-1.0.3"
1396
-
sources."commander-2.11.0"
1397
-
sources."concat-map-0.0.1"
1398
-
sources."connect-3.7.0"
1399
-
sources."connect-ratelimit-0.0.7"
1400
-
sources."connect-route-0.1.5"
1401
-
sources."core-util-is-1.0.3"
1402
-
sources."cycle-1.0.3"
1403
-
sources."debug-2.6.9"
1404
-
sources."decamelize-4.0.0"
1405
-
sources."dicer-0.2.3"
1406
-
sources."diff-5.0.0"
1407
-
sources."ee-first-1.1.1"
1408
-
sources."emoji-regex-8.0.0"
1409
-
sources."encodeurl-1.0.2"
1410
-
sources."escalade-3.1.1"
1411
-
sources."escape-html-1.0.3"
1412
-
sources."escape-string-regexp-4.0.0"
1413
-
sources."eyes-0.1.8"
1414
-
sources."fd-0.0.3"
1415
-
sources."fill-range-7.0.1"
1416
-
sources."finalhandler-1.1.2"
1417
-
sources."find-up-5.0.0"
1418
-
sources."flat-5.0.2"
1419
-
sources."fs.realpath-1.0.0"
1420
-
sources."fsevents-2.3.2"
1421
-
sources."get-caller-file-2.0.5"
1422
-
sources."glob-7.1.6"
1423
-
sources."glob-parent-5.1.2"
1424
-
sources."graceful-fs-4.2.10"
1425
-
sources."growl-1.10.5"
1426
-
sources."has-flag-4.0.0"
1427
-
sources."he-1.2.0"
1428
-
sources."ieee754-1.2.1"
1429
-
sources."inflight-1.0.6"
1430
-
sources."inherits-2.0.4"
1431
-
sources."is-binary-path-2.1.0"
1432
-
sources."is-extglob-2.1.1"
1433
-
sources."is-fullwidth-code-point-2.0.0"
1434
-
sources."is-glob-4.0.3"
1435
-
sources."is-number-7.0.0"
1436
-
sources."is-plain-obj-2.1.0"
1437
-
sources."isarray-0.0.1"
1438
-
sources."isexe-2.0.0"
1439
-
sources."isstream-0.1.2"
1440
-
sources."js-yaml-4.0.0"
1441
-
sources."locate-path-6.0.0"
1442
-
sources."lodash-4.17.21"
1443
-
sources."log-symbols-4.0.0"
1444
-
sources."lru-cache-4.1.5"
1445
-
sources."mime-2.6.0"
1446
-
sources."minimatch-3.0.4"
1447
-
(sources."mocha-8.4.0" // {
1448
-
dependencies = [
1449
-
(sources."debug-4.3.1" // {
1450
-
dependencies = [
1451
-
sources."ms-2.1.2"
1452
-
];
1453
-
})
1454
-
sources."ms-2.1.3"
1455
-
];
1456
-
})
1457
-
sources."ms-2.0.0"
1458
-
sources."nanoid-3.1.20"
1459
-
sources."negotiator-0.6.3"
1460
-
sources."normalize-path-3.0.0"
1461
-
sources."on-finished-2.3.0"
1462
-
sources."once-1.4.0"
1463
-
sources."p-limit-3.1.0"
1464
-
sources."p-locate-5.0.0"
1465
-
sources."packet-reader-1.0.0"
1466
-
sources."parseurl-1.3.3"
1467
-
sources."path-exists-4.0.0"
1468
-
sources."path-is-absolute-1.0.1"
1469
-
sources."pg-8.10.0"
1470
-
sources."pg-connection-string-2.5.0"
1471
-
sources."pg-int8-1.0.1"
1472
-
sources."pg-pool-3.6.0"
1473
-
sources."pg-protocol-1.6.0"
1474
-
sources."pg-types-2.2.0"
1475
-
sources."pgpass-1.0.5"
1476
-
sources."picomatch-2.3.1"
1477
-
sources."postgres-array-2.0.0"
1478
-
sources."postgres-bytea-1.0.0"
1479
-
sources."postgres-date-1.0.7"
1480
-
sources."postgres-interval-1.2.0"
1481
-
sources."pseudomap-1.0.2"
1482
-
sources."randombytes-2.1.0"
1483
-
sources."readable-stream-1.1.14"
1484
-
sources."readdirp-3.5.0"
1485
-
sources."redis-0.8.1"
1486
-
sources."redis-url-0.1.0"
1487
-
sources."require-directory-2.1.1"
1488
-
sources."safe-buffer-5.2.1"
1489
-
sources."serialize-javascript-5.0.1"
1490
-
sources."source-map-0.6.1"
1491
-
sources."split2-4.1.0"
1492
-
sources."st-2.0.0"
1493
-
sources."stack-trace-0.0.10"
1494
-
sources."statuses-1.5.0"
1495
-
sources."streamsearch-0.1.2"
1496
-
sources."string-width-2.1.1"
1497
-
sources."string_decoder-0.10.31"
1498
-
sources."strip-ansi-4.0.0"
1499
-
sources."strip-json-comments-3.1.1"
1500
-
sources."supports-color-8.1.1"
1501
-
sources."to-regex-range-5.0.1"
1502
-
sources."uglify-js-3.1.6"
1503
-
sources."unpipe-1.0.0"
1504
-
sources."util-deprecate-1.0.2"
1505
-
sources."utils-merge-1.0.1"
1506
-
sources."which-2.0.2"
1507
-
sources."wide-align-1.1.3"
1508
-
sources."winston-2.4.7"
1509
-
sources."workerpool-6.1.0"
1510
-
(sources."wrap-ansi-7.0.0" // {
1511
-
dependencies = [
1512
-
sources."ansi-regex-5.0.1"
1513
-
sources."is-fullwidth-code-point-3.0.0"
1514
-
sources."string-width-4.2.3"
1515
-
sources."strip-ansi-6.0.1"
1516
-
];
1517
-
})
1518
-
sources."wrappy-1.0.2"
1519
-
sources."xtend-4.0.2"
1520
-
sources."y18n-5.0.8"
1521
-
sources."yallist-2.1.2"
1522
-
(sources."yargs-16.2.0" // {
1523
-
dependencies = [
1524
-
sources."ansi-regex-5.0.1"
1525
-
sources."is-fullwidth-code-point-3.0.0"
1526
-
sources."string-width-4.2.3"
1527
-
sources."strip-ansi-6.0.1"
1528
-
];
1529
-
})
1530
-
sources."yargs-parser-20.2.4"
1531
-
sources."yargs-unparser-2.0.0"
1532
-
sources."yocto-queue-0.1.0"
1533
-
];
1534
-
buildInputs = globalBuildInputs;
1535
-
meta = {
1536
-
description = "Private Pastebin Server";
1537
-
};
1538
-
production = false;
1539
-
bypassCache = true;
1540
-
reconstructLock = true;
1541
-
};
1542
-
in
1543
-
{
1544
-
args = args;
1545
-
sources = sources;
1546
-
tarball = nodeEnv.buildNodeSourceDist args;
1547
-
package = nodeEnv.buildNodePackage args;
1548
-
shell = nodeEnv.buildNodeShell args;
1549
-
nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
1550
-
src = stdenv.mkDerivation {
1551
-
name = args.name + "-package-json";
1552
-
src = nix-gitignore.gitignoreSourcePure [
1553
-
"*"
1554
-
"!package.json"
1555
-
"!package-lock.json"
1556
-
] args.src;
1557
-
dontBuild = true;
1558
-
installPhase = "mkdir -p $out; cp -r ./* $out;";
1559
-
};
1560
-
});
1561
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-686
pkgs/servers/haste-server/node-env.nix
···
1
-
# This file originates from node2nix
2
-
3
-
{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
4
-
5
-
let
6
-
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
7
-
utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
8
-
9
-
python = if nodejs ? python then nodejs.python else python2;
10
-
11
-
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
12
-
tarWrapper = runCommand "tarWrapper" {} ''
13
-
mkdir -p $out/bin
14
-
15
-
cat > $out/bin/tar <<EOF
16
-
#! ${stdenv.shell} -e
17
-
$(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
18
-
EOF
19
-
20
-
chmod +x $out/bin/tar
21
-
'';
22
-
23
-
# Function that generates a TGZ file from a NPM project
24
-
buildNodeSourceDist =
25
-
{ name, version, src, ... }:
26
-
27
-
stdenv.mkDerivation {
28
-
name = "node-tarball-${name}-${version}";
29
-
inherit src;
30
-
buildInputs = [ nodejs ];
31
-
buildPhase = ''
32
-
export HOME=$TMPDIR
33
-
tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
34
-
'';
35
-
installPhase = ''
36
-
mkdir -p $out/tarballs
37
-
mv $tgzFile $out/tarballs
38
-
mkdir -p $out/nix-support
39
-
echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
40
-
'';
41
-
};
42
-
43
-
# Common shell logic
44
-
installPackage = writeShellScript "install-package" ''
45
-
installPackage() {
46
-
local packageName=$1 src=$2
47
-
48
-
local strippedName
49
-
50
-
local DIR=$PWD
51
-
cd $TMPDIR
52
-
53
-
unpackFile $src
54
-
55
-
# Make the base dir in which the target dependency resides first
56
-
mkdir -p "$(dirname "$DIR/$packageName")"
57
-
58
-
if [ -f "$src" ]
59
-
then
60
-
# Figure out what directory has been unpacked
61
-
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
62
-
63
-
# Restore write permissions to make building work
64
-
find "$packageDir" -type d -exec chmod u+x {} \;
65
-
chmod -R u+w "$packageDir"
66
-
67
-
# Move the extracted tarball into the output folder
68
-
mv "$packageDir" "$DIR/$packageName"
69
-
elif [ -d "$src" ]
70
-
then
71
-
# Get a stripped name (without hash) of the source directory.
72
-
# On old nixpkgs it's already set internally.
73
-
if [ -z "$strippedName" ]
74
-
then
75
-
strippedName="$(stripHash $src)"
76
-
fi
77
-
78
-
# Restore write permissions to make building work
79
-
chmod -R u+w "$strippedName"
80
-
81
-
# Move the extracted directory into the output folder
82
-
mv "$strippedName" "$DIR/$packageName"
83
-
fi
84
-
85
-
# Change to the package directory to install dependencies
86
-
cd "$DIR/$packageName"
87
-
}
88
-
'';
89
-
90
-
# Bundle the dependencies of the package
91
-
#
92
-
# Only include dependencies if they don't exist. They may also be bundled in the package.
93
-
includeDependencies = {dependencies}:
94
-
lib.optionalString (dependencies != []) (
95
-
''
96
-
mkdir -p node_modules
97
-
cd node_modules
98
-
''
99
-
+ (lib.concatMapStrings (dependency:
100
-
''
101
-
if [ ! -e "${dependency.packageName}" ]; then
102
-
${composePackage dependency}
103
-
fi
104
-
''
105
-
) dependencies)
106
-
+ ''
107
-
cd ..
108
-
''
109
-
);
110
-
111
-
# Recursively composes the dependencies of a package
112
-
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
113
-
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
114
-
installPackage "${packageName}" "${src}"
115
-
${includeDependencies { inherit dependencies; }}
116
-
cd ..
117
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
118
-
'';
119
-
120
-
pinpointDependencies = {dependencies, production}:
121
-
let
122
-
pinpointDependenciesFromPackageJSON = writeTextFile {
123
-
name = "pinpointDependencies.js";
124
-
text = ''
125
-
var fs = require('fs');
126
-
var path = require('path');
127
-
128
-
function resolveDependencyVersion(location, name) {
129
-
if(location == process.env['NIX_STORE']) {
130
-
return null;
131
-
} else {
132
-
var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
133
-
134
-
if(fs.existsSync(dependencyPackageJSON)) {
135
-
var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
136
-
137
-
if(dependencyPackageObj.name == name) {
138
-
return dependencyPackageObj.version;
139
-
}
140
-
} else {
141
-
return resolveDependencyVersion(path.resolve(location, ".."), name);
142
-
}
143
-
}
144
-
}
145
-
146
-
function replaceDependencies(dependencies) {
147
-
if(typeof dependencies == "object" && dependencies !== null) {
148
-
for(var dependency in dependencies) {
149
-
var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
150
-
151
-
if(resolvedVersion === null) {
152
-
process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
153
-
} else {
154
-
dependencies[dependency] = resolvedVersion;
155
-
}
156
-
}
157
-
}
158
-
}
159
-
160
-
/* Read the package.json configuration */
161
-
var packageObj = JSON.parse(fs.readFileSync('./package.json'));
162
-
163
-
/* Pinpoint all dependencies */
164
-
replaceDependencies(packageObj.dependencies);
165
-
if(process.argv[2] == "development") {
166
-
replaceDependencies(packageObj.devDependencies);
167
-
}
168
-
else {
169
-
packageObj.devDependencies = {};
170
-
}
171
-
replaceDependencies(packageObj.optionalDependencies);
172
-
replaceDependencies(packageObj.peerDependencies);
173
-
174
-
/* Write the fixed package.json file */
175
-
fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
176
-
'';
177
-
};
178
-
in
179
-
''
180
-
node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
181
-
182
-
${lib.optionalString (dependencies != [])
183
-
''
184
-
if [ -d node_modules ]
185
-
then
186
-
cd node_modules
187
-
${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
188
-
cd ..
189
-
fi
190
-
''}
191
-
'';
192
-
193
-
# Recursively traverses all dependencies of a package and pinpoints all
194
-
# dependencies in the package.json file to the versions that are actually
195
-
# being used.
196
-
197
-
pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
198
-
''
199
-
if [ -d "${packageName}" ]
200
-
then
201
-
cd "${packageName}"
202
-
${pinpointDependencies { inherit dependencies production; }}
203
-
cd ..
204
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
205
-
fi
206
-
'';
207
-
208
-
# Extract the Node.js source code which is used to compile packages with
209
-
# native bindings
210
-
nodeSources = runCommand "node-sources" {} ''
211
-
tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
212
-
mv node-* $out
213
-
'';
214
-
215
-
# Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
216
-
addIntegrityFieldsScript = writeTextFile {
217
-
name = "addintegrityfields.js";
218
-
text = ''
219
-
var fs = require('fs');
220
-
var path = require('path');
221
-
222
-
function augmentDependencies(baseDir, dependencies) {
223
-
for(var dependencyName in dependencies) {
224
-
var dependency = dependencies[dependencyName];
225
-
226
-
// Open package.json and augment metadata fields
227
-
var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
228
-
var packageJSONPath = path.join(packageJSONDir, "package.json");
229
-
230
-
if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
231
-
console.log("Adding metadata fields to: "+packageJSONPath);
232
-
var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
233
-
234
-
if(dependency.integrity) {
235
-
packageObj["_integrity"] = dependency.integrity;
236
-
} else {
237
-
packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
238
-
}
239
-
240
-
if(dependency.resolved) {
241
-
packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
242
-
} else {
243
-
packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
244
-
}
245
-
246
-
if(dependency.from !== undefined) { // Adopt from property if one has been provided
247
-
packageObj["_from"] = dependency.from;
248
-
}
249
-
250
-
fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
251
-
}
252
-
253
-
// Augment transitive dependencies
254
-
if(dependency.dependencies !== undefined) {
255
-
augmentDependencies(packageJSONDir, dependency.dependencies);
256
-
}
257
-
}
258
-
}
259
-
260
-
if(fs.existsSync("./package-lock.json")) {
261
-
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
262
-
263
-
if(![1, 2].includes(packageLock.lockfileVersion)) {
264
-
process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
265
-
process.exit(1);
266
-
}
267
-
268
-
if(packageLock.dependencies !== undefined) {
269
-
augmentDependencies(".", packageLock.dependencies);
270
-
}
271
-
}
272
-
'';
273
-
};
274
-
275
-
# Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
276
-
reconstructPackageLock = writeTextFile {
277
-
name = "reconstructpackagelock.js";
278
-
text = ''
279
-
var fs = require('fs');
280
-
var path = require('path');
281
-
282
-
var packageObj = JSON.parse(fs.readFileSync("package.json"));
283
-
284
-
var lockObj = {
285
-
name: packageObj.name,
286
-
version: packageObj.version,
287
-
lockfileVersion: 2,
288
-
requires: true,
289
-
packages: {
290
-
"": {
291
-
name: packageObj.name,
292
-
version: packageObj.version,
293
-
license: packageObj.license,
294
-
bin: packageObj.bin,
295
-
dependencies: packageObj.dependencies,
296
-
engines: packageObj.engines,
297
-
optionalDependencies: packageObj.optionalDependencies
298
-
}
299
-
},
300
-
dependencies: {}
301
-
};
302
-
303
-
function augmentPackageJSON(filePath, packages, dependencies) {
304
-
var packageJSON = path.join(filePath, "package.json");
305
-
if(fs.existsSync(packageJSON)) {
306
-
var packageObj = JSON.parse(fs.readFileSync(packageJSON));
307
-
packages[filePath] = {
308
-
version: packageObj.version,
309
-
integrity: "sha1-000000000000000000000000000=",
310
-
dependencies: packageObj.dependencies,
311
-
engines: packageObj.engines,
312
-
optionalDependencies: packageObj.optionalDependencies
313
-
};
314
-
dependencies[packageObj.name] = {
315
-
version: packageObj.version,
316
-
integrity: "sha1-000000000000000000000000000=",
317
-
dependencies: {}
318
-
};
319
-
processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies);
320
-
}
321
-
}
322
-
323
-
function processDependencies(dir, packages, dependencies) {
324
-
if(fs.existsSync(dir)) {
325
-
var files = fs.readdirSync(dir);
326
-
327
-
files.forEach(function(entry) {
328
-
var filePath = path.join(dir, entry);
329
-
var stats = fs.statSync(filePath);
330
-
331
-
if(stats.isDirectory()) {
332
-
if(entry.substr(0, 1) == "@") {
333
-
// When we encounter a namespace folder, augment all packages belonging to the scope
334
-
var pkgFiles = fs.readdirSync(filePath);
335
-
336
-
pkgFiles.forEach(function(entry) {
337
-
if(stats.isDirectory()) {
338
-
var pkgFilePath = path.join(filePath, entry);
339
-
augmentPackageJSON(pkgFilePath, packages, dependencies);
340
-
}
341
-
});
342
-
} else {
343
-
augmentPackageJSON(filePath, packages, dependencies);
344
-
}
345
-
}
346
-
});
347
-
}
348
-
}
349
-
350
-
processDependencies("node_modules", lockObj.packages, lockObj.dependencies);
351
-
352
-
fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
353
-
'';
354
-
};
355
-
356
-
# Script that links bins defined in package.json to the node_modules bin directory
357
-
# NPM does not do this for top-level packages itself anymore as of v7
358
-
linkBinsScript = writeTextFile {
359
-
name = "linkbins.js";
360
-
text = ''
361
-
var fs = require('fs');
362
-
var path = require('path');
363
-
364
-
var packageObj = JSON.parse(fs.readFileSync("package.json"));
365
-
366
-
var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep);
367
-
368
-
if(packageObj.bin !== undefined) {
369
-
fs.mkdirSync(path.join(nodeModules, ".bin"))
370
-
371
-
if(typeof packageObj.bin == "object") {
372
-
Object.keys(packageObj.bin).forEach(function(exe) {
373
-
if(fs.existsSync(packageObj.bin[exe])) {
374
-
console.log("linking bin '" + exe + "'");
375
-
fs.symlinkSync(
376
-
path.join("..", packageObj.name, packageObj.bin[exe]),
377
-
path.join(nodeModules, ".bin", exe)
378
-
);
379
-
}
380
-
else {
381
-
console.log("skipping non-existent bin '" + exe + "'");
382
-
}
383
-
})
384
-
}
385
-
else {
386
-
if(fs.existsSync(packageObj.bin)) {
387
-
console.log("linking bin '" + packageObj.bin + "'");
388
-
fs.symlinkSync(
389
-
path.join("..", packageObj.name, packageObj.bin),
390
-
path.join(nodeModules, ".bin", packageObj.name.split("/").pop())
391
-
);
392
-
}
393
-
else {
394
-
console.log("skipping non-existent bin '" + packageObj.bin + "'");
395
-
}
396
-
}
397
-
}
398
-
else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) {
399
-
fs.mkdirSync(path.join(nodeModules, ".bin"))
400
-
401
-
fs.readdirSync(packageObj.directories.bin).forEach(function(exe) {
402
-
if(fs.existsSync(path.join(packageObj.directories.bin, exe))) {
403
-
console.log("linking bin '" + exe + "'");
404
-
fs.symlinkSync(
405
-
path.join("..", packageObj.name, packageObj.directories.bin, exe),
406
-
path.join(nodeModules, ".bin", exe)
407
-
);
408
-
}
409
-
else {
410
-
console.log("skipping non-existent bin '" + exe + "'");
411
-
}
412
-
})
413
-
}
414
-
'';
415
-
};
416
-
417
-
prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
418
-
let
419
-
forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
420
-
in
421
-
''
422
-
# Pinpoint the versions of all dependencies to the ones that are actually being used
423
-
echo "pinpointing versions of dependencies..."
424
-
source $pinpointDependenciesScriptPath
425
-
426
-
# Patch the shebangs of the bundled modules to prevent them from
427
-
# calling executables outside the Nix store as much as possible
428
-
patchShebangs .
429
-
430
-
# Deploy the Node.js package by running npm install. Since the
431
-
# dependencies have been provided already by ourselves, it should not
432
-
# attempt to install them again, which is good, because we want to make
433
-
# it Nix's responsibility. If it needs to install any dependencies
434
-
# anyway (e.g. because the dependency parameters are
435
-
# incomplete/incorrect), it fails.
436
-
#
437
-
# The other responsibilities of NPM are kept -- version checks, build
438
-
# steps, postprocessing etc.
439
-
440
-
export HOME=$TMPDIR
441
-
cd "${packageName}"
442
-
runHook preRebuild
443
-
444
-
${lib.optionalString bypassCache ''
445
-
${lib.optionalString reconstructLock ''
446
-
if [ -f package-lock.json ]
447
-
then
448
-
echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
449
-
echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
450
-
rm package-lock.json
451
-
else
452
-
echo "No package-lock.json file found, reconstructing..."
453
-
fi
454
-
455
-
node ${reconstructPackageLock}
456
-
''}
457
-
458
-
node ${addIntegrityFieldsScript}
459
-
''}
460
-
461
-
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
462
-
463
-
runHook postRebuild
464
-
465
-
if [ "''${dontNpmInstall-}" != "1" ]
466
-
then
467
-
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
468
-
rm -f npm-shrinkwrap.json
469
-
470
-
npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install
471
-
fi
472
-
473
-
# Link executables defined in package.json
474
-
node ${linkBinsScript}
475
-
'';
476
-
477
-
# Builds and composes an NPM package including all its dependencies
478
-
buildNodePackage =
479
-
{ name
480
-
, packageName
481
-
, version ? null
482
-
, dependencies ? []
483
-
, buildInputs ? []
484
-
, production ? true
485
-
, npmFlags ? ""
486
-
, dontNpmInstall ? false
487
-
, bypassCache ? false
488
-
, reconstructLock ? false
489
-
, preRebuild ? ""
490
-
, dontStrip ? true
491
-
, unpackPhase ? "true"
492
-
, buildPhase ? "true"
493
-
, meta ? {}
494
-
, ... }@args:
495
-
496
-
let
497
-
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
498
-
in
499
-
stdenv.mkDerivation ({
500
-
name = "${name}${if version == null then "" else "-${version}"}";
501
-
buildInputs = [ tarWrapper python nodejs ]
502
-
++ lib.optional (stdenv.isLinux) utillinux
503
-
++ lib.optional (stdenv.isDarwin) libtool
504
-
++ buildInputs;
505
-
506
-
inherit nodejs;
507
-
508
-
inherit dontStrip; # Stripping may fail a build for some package deployments
509
-
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
510
-
511
-
compositionScript = composePackage args;
512
-
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
513
-
514
-
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
515
-
516
-
installPhase = ''
517
-
source ${installPackage}
518
-
519
-
# Create and enter a root node_modules/ folder
520
-
mkdir -p $out/lib/node_modules
521
-
cd $out/lib/node_modules
522
-
523
-
# Compose the package and all its dependencies
524
-
source $compositionScriptPath
525
-
526
-
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
527
-
528
-
# Create symlink to the deployed executable folder, if applicable
529
-
if [ -d "$out/lib/node_modules/.bin" ]
530
-
then
531
-
ln -s $out/lib/node_modules/.bin $out/bin
532
-
533
-
# Patch the shebang lines of all the executables
534
-
ls $out/bin/* | while read i
535
-
do
536
-
file="$(readlink -f "$i")"
537
-
chmod u+rwx "$file"
538
-
patchShebangs "$file"
539
-
done
540
-
fi
541
-
542
-
# Create symlinks to the deployed manual page folders, if applicable
543
-
if [ -d "$out/lib/node_modules/${packageName}/man" ]
544
-
then
545
-
mkdir -p $out/share
546
-
for dir in "$out/lib/node_modules/${packageName}/man/"*
547
-
do
548
-
mkdir -p $out/share/man/$(basename "$dir")
549
-
for page in "$dir"/*
550
-
do
551
-
ln -s $page $out/share/man/$(basename "$dir")
552
-
done
553
-
done
554
-
fi
555
-
556
-
# Run post install hook, if provided
557
-
runHook postInstall
558
-
'';
559
-
560
-
meta = {
561
-
# default to Node.js' platforms
562
-
platforms = nodejs.meta.platforms;
563
-
} // meta;
564
-
} // extraArgs);
565
-
566
-
# Builds a node environment (a node_modules folder and a set of binaries)
567
-
buildNodeDependencies =
568
-
{ name
569
-
, packageName
570
-
, version ? null
571
-
, src
572
-
, dependencies ? []
573
-
, buildInputs ? []
574
-
, production ? true
575
-
, npmFlags ? ""
576
-
, dontNpmInstall ? false
577
-
, bypassCache ? false
578
-
, reconstructLock ? false
579
-
, dontStrip ? true
580
-
, unpackPhase ? "true"
581
-
, buildPhase ? "true"
582
-
, ... }@args:
583
-
584
-
let
585
-
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
586
-
in
587
-
stdenv.mkDerivation ({
588
-
name = "node-dependencies-${name}${if version == null then "" else "-${version}"}";
589
-
590
-
buildInputs = [ tarWrapper python nodejs ]
591
-
++ lib.optional (stdenv.isLinux) utillinux
592
-
++ lib.optional (stdenv.isDarwin) libtool
593
-
++ buildInputs;
594
-
595
-
inherit dontStrip; # Stripping may fail a build for some package deployments
596
-
inherit dontNpmInstall unpackPhase buildPhase;
597
-
598
-
includeScript = includeDependencies { inherit dependencies; };
599
-
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
600
-
601
-
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
602
-
603
-
installPhase = ''
604
-
source ${installPackage}
605
-
606
-
mkdir -p $out/${packageName}
607
-
cd $out/${packageName}
608
-
609
-
source $includeScriptPath
610
-
611
-
# Create fake package.json to make the npm commands work properly
612
-
cp ${src}/package.json .
613
-
chmod 644 package.json
614
-
${lib.optionalString bypassCache ''
615
-
if [ -f ${src}/package-lock.json ]
616
-
then
617
-
cp ${src}/package-lock.json .
618
-
chmod 644 package-lock.json
619
-
fi
620
-
''}
621
-
622
-
# Go to the parent folder to make sure that all packages are pinpointed
623
-
cd ..
624
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
625
-
626
-
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
627
-
628
-
# Expose the executables that were installed
629
-
cd ..
630
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
631
-
632
-
mv ${packageName} lib
633
-
ln -s $out/lib/node_modules/.bin $out/bin
634
-
'';
635
-
} // extraArgs);
636
-
637
-
# Builds a development shell
638
-
buildNodeShell =
639
-
{ name
640
-
, packageName
641
-
, version ? null
642
-
, src
643
-
, dependencies ? []
644
-
, buildInputs ? []
645
-
, production ? true
646
-
, npmFlags ? ""
647
-
, dontNpmInstall ? false
648
-
, bypassCache ? false
649
-
, reconstructLock ? false
650
-
, dontStrip ? true
651
-
, unpackPhase ? "true"
652
-
, buildPhase ? "true"
653
-
, ... }@args:
654
-
655
-
let
656
-
nodeDependencies = buildNodeDependencies args;
657
-
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ];
658
-
in
659
-
stdenv.mkDerivation ({
660
-
name = "node-shell-${name}${if version == null then "" else "-${version}"}";
661
-
662
-
buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
663
-
buildCommand = ''
664
-
mkdir -p $out/bin
665
-
cat > $out/bin/shell <<EOF
666
-
#! ${stdenv.shell} -e
667
-
$shellHook
668
-
exec ${stdenv.shell}
669
-
EOF
670
-
chmod +x $out/bin/shell
671
-
'';
672
-
673
-
# Provide the dependencies in a development shell through the NODE_PATH environment variable
674
-
inherit nodeDependencies;
675
-
shellHook = lib.optionalString (dependencies != []) ''
676
-
export NODE_PATH=${nodeDependencies}/lib/node_modules
677
-
export PATH="${nodeDependencies}/bin:$PATH"
678
-
'';
679
-
} // extraArgs);
680
-
in
681
-
{
682
-
buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
683
-
buildNodePackage = lib.makeOverridable buildNodePackage;
684
-
buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
685
-
buildNodeShell = lib.makeOverridable buildNodeShell;
686
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-28
pkgs/servers/haste-server/update.sh
···
1
-
#!/usr/bin/env nix-shell
2
-
#!nix-shell -i bash -p curl common-updater-scripts nodePackages.node2nix gnused nix coreutils jq
3
-
4
-
set -euo pipefail
5
-
6
-
latestVersion="$(curl -s "https://api.github.com/repos/toptal/haste-server/commits?per_page=1" | jq -r ".[0].sha")"
7
-
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; haste-server.version or (lib.getVersion haste-server)" | tr -d '"')
8
-
9
-
if [[ "$currentVersion" == "$latestVersion" ]]; then
10
-
echo "haste-server is up-to-date: $currentVersion"
11
-
exit 0
12
-
fi
13
-
14
-
update-source-version haste-server 0 sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
15
-
update-source-version haste-server "$latestVersion"
16
-
17
-
# use patched source
18
-
store_src="$(nix-build . -A haste-server.src --no-out-link)"
19
-
20
-
cd "$(dirname "${BASH_SOURCE[0]}")"
21
-
22
-
node2nix \
23
-
--nodejs-14 \
24
-
--development \
25
-
--node-env ./node-env.nix \
26
-
--output ./node-deps.nix \
27
-
--input "$store_src/package.json" \
28
-
--composition ./node-composition.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0