diff options
Diffstat (limited to 'modules')
306 files changed, 0 insertions, 75788 deletions
diff --git a/modules/default.nix b/modules/default.nix deleted file mode 100644 index 2f06eb1..0000000 --- a/modules/default.nix +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | let | ||
2 | flakeCompat = import ../lib/flake-compat.nix; | ||
3 | flakeLib = (flakeCompat ../flakes/lib).lib; | ||
4 | in | ||
5 | { | ||
6 | myids = (flakeCompat ../flakes/myuids).nixosModule; | ||
7 | secrets = flakeLib.withNarKeyCompat flakeCompat ../flakes/secrets "nixosModule"; | ||
8 | filesWatcher = flakeLib.withNarKeyCompat flakeCompat ../flakes/files-watcher "nixosModule"; | ||
9 | |||
10 | webstats = ./webapps/webstats; | ||
11 | diaspora = ./webapps/diaspora.nix; | ||
12 | etherpad-lite = ./webapps/etherpad-lite.nix; | ||
13 | mastodon = ./webapps/mastodon.nix; | ||
14 | mediagoblin = ./webapps/mediagoblin.nix; | ||
15 | peertube = (flakeCompat ../flakes/peertube).nixosModule; | ||
16 | fiche = flakeLib.withNarKeyCompat flakeCompat ../flakes/fiche "nixosModule"; | ||
17 | paste = flakeLib.withNarKeyCompat flakeCompat ../flakes/paste "nixosModule"; | ||
18 | |||
19 | opendmarc = flakeLib.withNarKeyCompat flakeCompat ../flakes/opendmarc "nixosModule"; | ||
20 | openarc = flakeLib.withNarKeyCompat flakeCompat ../flakes/openarc "nixosModule"; | ||
21 | |||
22 | duplyBackup = ./duply_backup; | ||
23 | rsyncBackup = flakeLib.withNarKeyCompat flakeCompat ../flakes/rsync_backup "nixosModule"; | ||
24 | naemon = ./naemon; | ||
25 | |||
26 | php-application = ./websites/php-application.nix; | ||
27 | zrepl = ./zrepl.nix; | ||
28 | websites = ./websites; | ||
29 | } // (if builtins.pathExists ./private then import ./private else {}) | ||
diff --git a/modules/duply_backup/default.nix b/modules/duply_backup/default.nix deleted file mode 100644 index 846b1d4..0000000 --- a/modules/duply_backup/default.nix +++ /dev/null | |||
@@ -1,124 +0,0 @@ | |||
1 | { lib, pkgs, config, name, ... }: | ||
2 | |||
3 | let | ||
4 | cfg = config.myEnv.backup; | ||
5 | varDir = "/var/lib/duply"; | ||
6 | duplyProfile = profile: remote: prefix: '' | ||
7 | GPG_PW="${cfg.password}" | ||
8 | TARGET="${cfg.remotes.${remote}.remote profile.bucket}${prefix}" | ||
9 | export AWS_ACCESS_KEY_ID="${cfg.remotes.${remote}.accessKeyId}" | ||
10 | export AWS_SECRET_ACCESS_KEY="${cfg.remotes.${remote}.secretAccessKey}" | ||
11 | SOURCE="${profile.rootDir}" | ||
12 | FILENAME=".duplicity-ignore" | ||
13 | DUPL_PARAMS="$DUPL_PARAMS --exclude-if-present '$FILENAME'" | ||
14 | VERBOSITY=4 | ||
15 | ARCH_DIR="${varDir}/caches" | ||
16 | |||
17 | # Do a full backup after 1 month | ||
18 | MAX_FULLBKP_AGE=1M | ||
19 | DUPL_PARAMS="$DUPL_PARAMS --allow-source-mismatch --exclude-other-filesystems --full-if-older-than $MAX_FULLBKP_AGE " | ||
20 | # Backups older than 2months are deleted | ||
21 | MAX_AGE=2M | ||
22 | # Keep 2 full backups | ||
23 | MAX_FULL_BACKUPS=2 | ||
24 | MAX_FULLS_WITH_INCRS=2 | ||
25 | ''; | ||
26 | action = "bkp_purge_purgeFull_purgeIncr"; | ||
27 | varName = k: remoteName: | ||
28 | if remoteName == "eriomem" then k else remoteName + "_" + k; | ||
29 | in | ||
30 | { | ||
31 | options = { | ||
32 | services.duplyBackup.enable = lib.mkOption { | ||
33 | type = lib.types.bool; | ||
34 | default = false; | ||
35 | description = '' | ||
36 | Whether to enable remote backups. | ||
37 | ''; | ||
38 | }; | ||
39 | services.duplyBackup.profiles = lib.mkOption { | ||
40 | type = lib.types.attrsOf (lib.types.submodule { | ||
41 | options = { | ||
42 | rootDir = lib.mkOption { | ||
43 | type = lib.types.path; | ||
44 | description = '' | ||
45 | Path to backup | ||
46 | ''; | ||
47 | }; | ||
48 | bucket = lib.mkOption { | ||
49 | type = lib.types.str; | ||
50 | default = "immae-${name}"; | ||
51 | description = '' | ||
52 | Bucket to use | ||
53 | ''; | ||
54 | }; | ||
55 | remotes = lib.mkOption { | ||
56 | type = lib.types.listOf lib.types.str; | ||
57 | default = ["eriomem"]; | ||
58 | description = '' | ||
59 | Remotes to use for backup | ||
60 | ''; | ||
61 | }; | ||
62 | excludeFile = lib.mkOption { | ||
63 | type = lib.types.lines; | ||
64 | default = ""; | ||
65 | description = '' | ||
66 | Content to put in exclude file | ||
67 | ''; | ||
68 | }; | ||
69 | }; | ||
70 | }); | ||
71 | }; | ||
72 | }; | ||
73 | |||
74 | config = lib.mkIf config.services.duplyBackup.enable { | ||
75 | system.activationScripts.backup = '' | ||
76 | install -m 0700 -o root -g root -d ${varDir} ${varDir}/caches | ||
77 | ''; | ||
78 | secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (k: v: | ||
79 | map (remote: [ | ||
80 | (lib.nameValuePair "backup/${varName k remote}/conf" { | ||
81 | permissions = "0400"; | ||
82 | text = duplyProfile v remote "${k}/"; | ||
83 | }) | ||
84 | (lib.nameValuePair "backup/${varName k remote}/exclude" { | ||
85 | permissions = "0400"; | ||
86 | text = v.excludeFile; | ||
87 | }) | ||
88 | (lib.nameValuePair "backup/${varName k remote}" { | ||
89 | permissions = "0500"; | ||
90 | isDir = true; | ||
91 | }) | ||
92 | ]) v.remotes) config.services.duplyBackup.profiles)); | ||
93 | |||
94 | services.cron = { | ||
95 | enable = true; | ||
96 | systemCronJobs = let | ||
97 | backups = pkgs.writeScript "backups" '' | ||
98 | #!${pkgs.stdenv.shell} | ||
99 | |||
100 | ${builtins.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList (k: v: | ||
101 | map (remote: [ | ||
102 | '' | ||
103 | touch ${varDir}/${varName k remote}.log | ||
104 | ${pkgs.duply}/bin/duply ${config.secrets.fullPaths."backup/${varName k remote}"}/ ${action} --force >> ${varDir}/${varName k remote}.log | ||
105 | [[ $? = 0 ]] || echo -e "Error when doing backup for ${varName k remote}, see above\n---------------------------------------" >&2 | ||
106 | '' | ||
107 | ]) v.remotes | ||
108 | ) config.services.duplyBackup.profiles))} | ||
109 | ''; | ||
110 | in | ||
111 | [ | ||
112 | "0 2 * * * root ${backups}" | ||
113 | ]; | ||
114 | |||
115 | }; | ||
116 | |||
117 | security.pki.certificateFiles = [ | ||
118 | (pkgs.fetchurl { | ||
119 | url = "http://downloads.e.eriomem.net/eriomemca.pem"; | ||
120 | sha256 = "1ixx4c6j3m26j8dp9a3dkvxc80v1nr5aqgmawwgs06bskasqkvvh"; | ||
121 | }) | ||
122 | ]; | ||
123 | }; | ||
124 | } | ||
diff --git a/modules/naemon/default.nix b/modules/naemon/default.nix deleted file mode 100644 index 60a75b3..0000000 --- a/modules/naemon/default.nix +++ /dev/null | |||
@@ -1,183 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | |||
3 | with lib; | ||
4 | |||
5 | let | ||
6 | cfg = config.services.naemon; | ||
7 | |||
8 | naemonConfig = pkgs.runCommand "naemon-config" { | ||
9 | objectsFile = pkgs.writeText "naemon_objects.cfg" cfg.objectDefs; | ||
10 | resourceFile = config.secrets.fullPaths."naemon/resources.cfg"; | ||
11 | extraConfig = pkgs.writeText "extra.cfg" cfg.extraConfig; | ||
12 | inherit (cfg) logDir varDir runDir cacheDir; | ||
13 | } '' | ||
14 | substituteAll ${./naemon.cfg} $out | ||
15 | cat $extraConfig >> $out | ||
16 | ''; | ||
17 | in | ||
18 | { | ||
19 | options = { | ||
20 | services.naemon = { | ||
21 | enable = mkOption { | ||
22 | default = false; | ||
23 | description = " | ||
24 | Whether to use <link | ||
25 | xlink:href='http://www.naemon.org/'>Naemon</link> to monitor | ||
26 | your system or network. | ||
27 | "; | ||
28 | }; | ||
29 | |||
30 | objectDefs = mkOption { | ||
31 | type = types.lines; | ||
32 | default = ""; | ||
33 | description = " | ||
34 | A list of Naemon object configuration that must define | ||
35 | the hosts, host groups, services and contacts for the | ||
36 | network that you want Naemon to monitor. | ||
37 | "; | ||
38 | }; | ||
39 | |||
40 | extraResource = mkOption { | ||
41 | type = types.lines; | ||
42 | default = ""; | ||
43 | example = '' | ||
44 | # Sets $USER2$ to be the path to event handlers | ||
45 | #$USER2$=/usr/lib/monitoring-plugins/eventhandlers | ||
46 | |||
47 | # Store some usernames and passwords (hidden from the CGIs) | ||
48 | #$USER3$=someuser | ||
49 | #$USER4$=somepassword | ||
50 | ''; | ||
51 | description = " | ||
52 | Lines to add to the resource file | ||
53 | # You can define $USERx$ macros in this file, which can in turn be used | ||
54 | # in command definitions in your host config file(s). $USERx$ macros are | ||
55 | # useful for storing sensitive information such as usernames, passwords, | ||
56 | # etc. They are also handy for specifying the path to plugins and | ||
57 | # event handlers - if you decide to move the plugins or event handlers to | ||
58 | # a different directory in the future, you can just update one or two | ||
59 | # $USERx$ macros, instead of modifying a lot of command definitions. | ||
60 | # | ||
61 | # Naemon supports up to 256 $USERx$ macros ($USER1$ through $USER256$) | ||
62 | # | ||
63 | # Resource files may also be used to store configuration directives for | ||
64 | # external data sources like MySQL... | ||
65 | # | ||
66 | "; | ||
67 | }; | ||
68 | |||
69 | extraConfig = mkOption { | ||
70 | type = types.lines; | ||
71 | default = ""; | ||
72 | description = " | ||
73 | Extra config to append to main config | ||
74 | "; | ||
75 | }; | ||
76 | |||
77 | user = mkOption { | ||
78 | type = types.str; | ||
79 | default = "naemon"; | ||
80 | description = "User for naemon"; | ||
81 | }; | ||
82 | |||
83 | group = mkOption { | ||
84 | type = types.str; | ||
85 | default = "naemon"; | ||
86 | description = "Group for naemon"; | ||
87 | }; | ||
88 | |||
89 | varDir = mkOption { | ||
90 | type = types.path; | ||
91 | default = "/var/lib/naemon"; | ||
92 | description = "The directory where naemon stores its data"; | ||
93 | }; | ||
94 | |||
95 | cacheDir = mkOption { | ||
96 | type = types.path; | ||
97 | default = "/var/cache/naemon"; | ||
98 | description = "The directory where naemon stores its cache"; | ||
99 | }; | ||
100 | |||
101 | runDir = mkOption { | ||
102 | type = types.path; | ||
103 | default = "/run/naemon"; | ||
104 | description = "The directory where naemon stores its runtime files"; | ||
105 | }; | ||
106 | |||
107 | logDir = mkOption { | ||
108 | type = types.path; | ||
109 | default = "/var/log/naemon"; | ||
110 | description = "The directory where naemon stores its log files"; | ||
111 | }; | ||
112 | |||
113 | package = mkOption { | ||
114 | type = types.package; | ||
115 | default = pkgs.naemon.override { | ||
116 | inherit (cfg) varDir cacheDir logDir runDir user group; | ||
117 | }; | ||
118 | description = '' | ||
119 | Naemon package to use | ||
120 | ''; | ||
121 | }; | ||
122 | }; | ||
123 | }; | ||
124 | |||
125 | |||
126 | config = mkIf cfg.enable { | ||
127 | secrets.keys = { | ||
128 | "naemon/resources.cfg" = { | ||
129 | user = cfg.user; | ||
130 | group = cfg.group; | ||
131 | permissions = "0400"; | ||
132 | text = '' | ||
133 | $USER1$=${pkgs.monitoring-plugins}/libexec | ||
134 | ${cfg.extraResource} | ||
135 | ''; | ||
136 | }; | ||
137 | }; | ||
138 | |||
139 | users.users = optionalAttrs (cfg.user == "naemon") { | ||
140 | naemon = { | ||
141 | group = cfg.group; | ||
142 | uid = config.ids.uids.nagios; | ||
143 | extraGroups = [ "keys" ]; | ||
144 | }; | ||
145 | }; | ||
146 | users.groups = optionalAttrs (cfg.user == "naemon") { | ||
147 | naemon = { | ||
148 | gid = config.ids.gids.nagios; | ||
149 | }; | ||
150 | }; | ||
151 | |||
152 | services.filesWatcher.naemon = { | ||
153 | paths = [ config.secrets.fullPaths."naemon/resources.cfg" ]; | ||
154 | }; | ||
155 | systemd.services.naemon = { | ||
156 | description = "Naemon monitoring daemon"; | ||
157 | path = [ cfg.package pkgs.monitoring-plugins ]; | ||
158 | wantedBy = [ "multi-user.target" ]; | ||
159 | after = [ "network.target" ]; | ||
160 | |||
161 | preStart = "${cfg.package}/bin/naemon -vp ${naemonConfig}"; | ||
162 | script = "${cfg.package}/bin/naemon --daemon ${naemonConfig}"; | ||
163 | reload = "${pkgs.utillinux}/bin/kill -HUP $MAINPID"; | ||
164 | serviceConfig = { | ||
165 | User = cfg.user; | ||
166 | Restart = "always"; | ||
167 | RestartSec = 2; | ||
168 | StandardOutput = "journal"; | ||
169 | StandardError = "inherit"; | ||
170 | PIDFile = "${cfg.runDir}/naemon.pid"; | ||
171 | LogsDirectory = assert lib.strings.hasPrefix "/var/log/" cfg.logDir; | ||
172 | lib.strings.removePrefix "/var/log/" cfg.logDir; | ||
173 | CacheDirectory = assert lib.strings.hasPrefix "/var/cache/" cfg.cacheDir; | ||
174 | let unprefixed = lib.strings.removePrefix "/var/cache/" cfg.cacheDir; | ||
175 | in [ unprefixed "${unprefixed}/checkresults" ]; | ||
176 | StateDirectory = assert lib.strings.hasPrefix "/var/lib/" cfg.varDir; | ||
177 | lib.strings.removePrefix "/var/lib/" cfg.varDir; | ||
178 | RuntimeDirectory = assert lib.strings.hasPrefix "/run/" cfg.runDir; | ||
179 | lib.strings.removePrefix "/run/" cfg.runDir; | ||
180 | }; | ||
181 | }; | ||
182 | }; | ||
183 | } | ||
diff --git a/modules/naemon/naemon.cfg b/modules/naemon/naemon.cfg deleted file mode 100644 index 792e03b..0000000 --- a/modules/naemon/naemon.cfg +++ /dev/null | |||
@@ -1,1059 +0,0 @@ | |||
1 | ############################################################################## | ||
2 | # | ||
3 | # naemon.cfg - Sample Main Config File for Naemon 1.0.10.gc2a87305.dirty.20190703.source | ||
4 | # | ||
5 | # Read the documentation for more information on this configuration | ||
6 | # file. I've provided some comments here, but things may not be so | ||
7 | # clear without further explanation. | ||
8 | # | ||
9 | # | ||
10 | ############################################################################## | ||
11 | |||
12 | |||
13 | # LOG FILE | ||
14 | # This is the main log file where service and host events are logged | ||
15 | # for historical purposes. This should be the first option specified | ||
16 | # in the config file!!! | ||
17 | |||
18 | log_file=@logDir@/naemon.log | ||
19 | |||
20 | |||
21 | |||
22 | # OBJECT CONFIGURATION FILE(S) | ||
23 | # These are the object configuration files in which you define hosts, | ||
24 | # host groups, contacts, contact groups, services, etc. | ||
25 | # You can split your object definitions across several config files | ||
26 | # if you wish (as shown below), or keep them all in a single config file. | ||
27 | |||
28 | # You can specify individual object config files as shown below: | ||
29 | #cfg_file=/etc/naemon/objects/commands.cfg | ||
30 | #cfg_file=/etc/naemon/objects/contacts.cfg | ||
31 | #cfg_file=/etc/naemon/objects/timeperiods.cfg | ||
32 | #cfg_file=/etc/naemon/objects/templates.cfg | ||
33 | cfg_file=@objectsFile@ | ||
34 | |||
35 | |||
36 | # You can also tell naemon to process all config files (with a .cfg | ||
37 | # extension) in a particular directory by using the cfg_dir | ||
38 | # directive as shown below: | ||
39 | #cfg_dir=/etc/naemon/conf.d | ||
40 | |||
41 | |||
42 | |||
43 | |||
44 | # OBJECT CACHE FILE | ||
45 | # This option determines where object definitions are cached when | ||
46 | # naemon starts/restarts. The CGIs read object definitions from | ||
47 | # this cache file (rather than looking at the object config files | ||
48 | # directly) in order to prevent inconsistencies that can occur | ||
49 | # when the config files are modified after naemon starts. | ||
50 | |||
51 | object_cache_file=@varDir@/objects.cache | ||
52 | |||
53 | |||
54 | |||
55 | # PRE-CACHED OBJECT FILE | ||
56 | # This options determines the location of the precached object file. | ||
57 | # If you run naemon with the -p command line option, it will preprocess | ||
58 | # your object configuration file(s) and write the cached config to this | ||
59 | # file. You can then start naemon with the -u option to have it read | ||
60 | # object definitions from this precached file, rather than the standard | ||
61 | # object configuration files (see the cfg_file and cfg_dir options above). | ||
62 | # Using a precached object file can speed up the time needed to (re)start | ||
63 | # the naemon process if you've got a large and/or complex configuration. | ||
64 | # Read the documentation section on optimizing naemon to find our more | ||
65 | # about how this feature works. | ||
66 | |||
67 | precached_object_file=@varDir@/objects.precache | ||
68 | |||
69 | |||
70 | |||
71 | # RESOURCE FILE | ||
72 | # This is an optional resource file that contains $USERx$ macro | ||
73 | # definitions. Multiple resource files can be specified by using | ||
74 | # multiple resource_file definitions. The CGIs will not attempt to | ||
75 | # read the contents of resource files, so information that is | ||
76 | # considered to be sensitive (usernames, passwords, etc) can be | ||
77 | # defined as macros in this file and restrictive permissions (600) | ||
78 | # can be placed on this file. | ||
79 | |||
80 | resource_file=@resourceFile@ | ||
81 | |||
82 | |||
83 | |||
84 | # STATUS FILE | ||
85 | # This is where the current status of all monitored services and | ||
86 | # hosts is stored. Its contents are read and processed by the CGIs. | ||
87 | # The contents of the status file are deleted every time naemon | ||
88 | # restarts. | ||
89 | |||
90 | status_file=@varDir@/status.dat | ||
91 | |||
92 | |||
93 | |||
94 | # STATUS FILE UPDATE INTERVAL | ||
95 | # This option determines the frequency (in seconds) that | ||
96 | # naemon will periodically dump program, host, and | ||
97 | # service status data. Set it to 0 to disable updates. | ||
98 | |||
99 | status_update_interval=10 | ||
100 | |||
101 | |||
102 | |||
103 | # EXTERNAL COMMAND OPTION | ||
104 | # This option allows you to specify whether or not Naemon should check | ||
105 | # for external commands (in the command file defined below). By default | ||
106 | # Naemon will *not* check for external commands, just to be on the | ||
107 | # cautious side. If you want to be able to use the CGI command interface | ||
108 | # you will have to enable this. | ||
109 | # Values: 0 = disable commands, 1 = enable commands | ||
110 | |||
111 | check_external_commands=1 | ||
112 | |||
113 | |||
114 | |||
115 | # EXTERNAL COMMAND FILE | ||
116 | # This is the file that Naemon checks for external command requests. | ||
117 | # It is also where the command CGI will write commands that are submitted | ||
118 | # by users, so it must be writeable by the user that the web server | ||
119 | # is running as (usually 'nobody'). Permissions should be set at the | ||
120 | # directory level instead of on the file, as the file is deleted every | ||
121 | # time its contents are processed. | ||
122 | |||
123 | command_file=@runDir@/naemon.cmd | ||
124 | |||
125 | |||
126 | |||
127 | # QUERY HANDLER INTERFACE | ||
128 | # This is the socket that is created for the Query Handler interface | ||
129 | |||
130 | query_socket=@runDir@/naemon.qh | ||
131 | |||
132 | |||
133 | |||
134 | # LOCK FILE | ||
135 | # This is the lockfile that Naemon will use to store its PID number | ||
136 | # in when it is running in daemon mode. | ||
137 | |||
138 | lock_file=@runDir@/naemon.pid | ||
139 | |||
140 | |||
141 | |||
142 | # TEMP FILE | ||
143 | # This is a temporary file that is used as scratch space when Naemon | ||
144 | # updates the status log, cleans the comment file, etc. This file | ||
145 | # is created, used, and deleted throughout the time that Naemon is | ||
146 | # running. | ||
147 | |||
148 | temp_file=@cacheDir@/naemon.tmp | ||
149 | |||
150 | |||
151 | |||
152 | # TEMP PATH | ||
153 | # This is path where Naemon can create temp files for service and | ||
154 | # host check results, etc. | ||
155 | |||
156 | temp_path=@cacheDir@ | ||
157 | |||
158 | |||
159 | |||
160 | # EVENT BROKER OPTIONS | ||
161 | # Controls what (if any) data gets sent to the event broker. | ||
162 | # Values: 0 = Broker nothing | ||
163 | # -1 = Broker everything | ||
164 | # <other> = See documentation | ||
165 | |||
166 | event_broker_options=-1 | ||
167 | |||
168 | |||
169 | |||
170 | # EVENT BROKER MODULE(S) | ||
171 | # This directive is used to specify an event broker module that should | ||
172 | # be loaded by Naemon at startup. Use multiple directives if you want | ||
173 | # to load more than one module. Arguments that should be passed to | ||
174 | # the module at startup are seperated from the module path by a space. | ||
175 | # | ||
176 | # Example: | ||
177 | # | ||
178 | # broker_module=<modulepath> [moduleargs] | ||
179 | |||
180 | #broker_module=/usr/lib/naemon/naemon-livestatus/livestatus.so @cacheDir@/live | ||
181 | #broker_module=/somewhere/module1.o | ||
182 | #broker_module=/somewhere/module2.o arg1 arg2=3 debug=0 | ||
183 | |||
184 | # In order to provide drop-in support for new modules, you can also make use of | ||
185 | # the include_dir directive. The include_dir directive causes Naemon to parse | ||
186 | # any configuration (not just object configuration, as with cfg_dir) as if the | ||
187 | # contents of the files in the pointed-to directory was included on this line. | ||
188 | # The path to the directory is relative to the path of the main naemon.cfg | ||
189 | # file. | ||
190 | #include_dir=module-conf.d | ||
191 | |||
192 | # LOG ARCHIVE PATH | ||
193 | # This is the directory where archived (rotated) log files are placed by the | ||
194 | # logrotate daemon. It is used by out of core add-ons to discover the logfiles. | ||
195 | |||
196 | log_archive_path=@logDir@/archives | ||
197 | |||
198 | |||
199 | |||
200 | # LOGGING OPTIONS | ||
201 | # If you want messages logged to the syslog facility, as well as the | ||
202 | # Naemon log file set this option to 1. If not, set it to 0. | ||
203 | |||
204 | use_syslog=0 | ||
205 | |||
206 | # NOTIFICATION LOGGING OPTION | ||
207 | # If you don't want notifications to be logged, set this value to 0. | ||
208 | # If notifications should be logged, set the value to 1. | ||
209 | |||
210 | log_notifications=1 | ||
211 | |||
212 | # Notification suppression reason (NSR) logging causes the reason for a | ||
213 | # notification suppression to be logged, when it occurs. This can potentially | ||
214 | # add some noise to your log file, but is highly useful when troubleshooting | ||
215 | # missing notifications. | ||
216 | |||
217 | enable_notification_suppression_reason_logging=1 | ||
218 | |||
219 | |||
220 | # SERVICE RETRY LOGGING OPTION | ||
221 | # If you don't want service check retries to be logged, set this value | ||
222 | # to 0. If retries should be logged, set the value to 1. | ||
223 | |||
224 | log_service_retries=1 | ||
225 | |||
226 | |||
227 | |||
228 | # HOST RETRY LOGGING OPTION | ||
229 | # If you don't want host check retries to be logged, set this value to | ||
230 | # 0. If retries should be logged, set the value to 1. | ||
231 | |||
232 | log_host_retries=1 | ||
233 | |||
234 | |||
235 | |||
236 | # EVENT HANDLER LOGGING OPTION | ||
237 | # If you don't want host and service event handlers to be logged, set | ||
238 | # this value to 0. If event handlers should be logged, set the value | ||
239 | # to 1. | ||
240 | |||
241 | log_event_handlers=1 | ||
242 | |||
243 | |||
244 | |||
245 | # INITIAL STATES LOGGING OPTION | ||
246 | # If you want Naemon to log all initial host and service states to | ||
247 | # the main log file (the first time the service or host is checked) | ||
248 | # you can enable this option by setting this value to 1. If you | ||
249 | # are not using an external application that does long term state | ||
250 | # statistics reporting, you do not need to enable this option. In | ||
251 | # this case, set the value to 0. | ||
252 | |||
253 | log_initial_states=0 | ||
254 | |||
255 | |||
256 | |||
257 | # CURRENT STATES LOGGING OPTION | ||
258 | # If you don't want Naemon to log all current host and service states | ||
259 | # after log has been rotated to the main log file, you can disable this | ||
260 | # option by setting this value to 0. Default value is 1. | ||
261 | |||
262 | log_current_states=1 | ||
263 | |||
264 | |||
265 | |||
266 | # EXTERNAL COMMANDS LOGGING OPTION | ||
267 | # If you don't want Naemon to log external commands, set this value | ||
268 | # to 0. If external commands should be logged, set this value to 1. | ||
269 | # Note: This option does not include logging of passive service | ||
270 | # checks - see the option below for controlling whether or not | ||
271 | # passive checks are logged. | ||
272 | |||
273 | log_external_commands=1 | ||
274 | |||
275 | |||
276 | |||
277 | # PASSIVE CHECKS LOGGING OPTION | ||
278 | # If you don't want Naemon to log passive host and service checks, set | ||
279 | # this value to 0. If passive checks should be logged, set | ||
280 | # this value to 1. | ||
281 | |||
282 | log_passive_checks=1 | ||
283 | |||
284 | |||
285 | |||
286 | # GLOBAL HOST AND SERVICE EVENT HANDLERS | ||
287 | # These options allow you to specify a host and service event handler | ||
288 | # command that is to be run for every host or service state change. | ||
289 | # The global event handler is executed immediately prior to the event | ||
290 | # handler that you have optionally specified in each host or | ||
291 | # service definition. The command argument is the short name of a | ||
292 | # command definition that you define in your host configuration file. | ||
293 | # Read the HTML docs for more information. | ||
294 | |||
295 | #global_host_event_handler=somecommand | ||
296 | #global_service_event_handler=somecommand | ||
297 | |||
298 | |||
299 | |||
300 | # MAXIMUM CONCURRENT SERVICE CHECKS | ||
301 | # This option allows you to specify the maximum number of | ||
302 | # service checks that can be run in parallel at any given time. | ||
303 | # Specifying a value of 1 for this variable essentially prevents | ||
304 | # any service checks from being parallelized. A value of 0 | ||
305 | # will not restrict the number of concurrent checks that are | ||
306 | # being executed. | ||
307 | |||
308 | max_concurrent_checks=0 | ||
309 | |||
310 | |||
311 | # CHECK RESULT PATH | ||
312 | # This is directory where Naemon reads check results of host and | ||
313 | # service checks to further process them. | ||
314 | # | ||
315 | # Note: Naemon does not require this folder internally but it still | ||
316 | # can be used to pass check results to Naemon. | ||
317 | |||
318 | check_result_path=@cacheDir@/checkresults | ||
319 | |||
320 | |||
321 | # CACHED HOST CHECK HORIZON | ||
322 | # This option determines the maximum amount of time (in seconds) | ||
323 | # that the state of a previous host check is considered current. | ||
324 | # Cached host states (from host checks that were performed more | ||
325 | # recently that the timeframe specified by this value) can immensely | ||
326 | # improve performance in regards to the host check logic. | ||
327 | # Too high of a value for this option may result in inaccurate host | ||
328 | # states being used by Naemon, while a lower value may result in a | ||
329 | # performance hit for host checks. Use a value of 0 to disable host | ||
330 | # check caching. | ||
331 | |||
332 | cached_host_check_horizon=15 | ||
333 | |||
334 | |||
335 | |||
336 | # CACHED SERVICE CHECK HORIZON | ||
337 | # This option determines the maximum amount of time (in seconds) | ||
338 | # that the state of a previous service check is considered current. | ||
339 | # Cached service states (from service checks that were performed more | ||
340 | # recently that the timeframe specified by this value) can immensely | ||
341 | # improve performance in regards to predictive dependency checks. | ||
342 | # Use a value of 0 to disable service check caching. | ||
343 | |||
344 | cached_service_check_horizon=15 | ||
345 | |||
346 | |||
347 | |||
348 | # ENABLE PREDICTIVE HOST DEPENDENCY CHECKS | ||
349 | # This option determines whether or not Naemon will attempt to execute | ||
350 | # checks of hosts when it predicts that future dependency logic test | ||
351 | # may be needed. These predictive checks can help ensure that your | ||
352 | # host dependency logic works well. | ||
353 | # Values: | ||
354 | # 0 = Disable predictive checks | ||
355 | # 1 = Enable predictive checks (default) | ||
356 | |||
357 | enable_predictive_host_dependency_checks=1 | ||
358 | |||
359 | |||
360 | |||
361 | # ENABLE PREDICTIVE SERVICE DEPENDENCY CHECKS | ||
362 | # This option determines whether or not Naemon will attempt to execute | ||
363 | # checks of service when it predicts that future dependency logic test | ||
364 | # may be needed. These predictive checks can help ensure that your | ||
365 | # service dependency logic works well. | ||
366 | # Values: | ||
367 | # 0 = Disable predictive checks | ||
368 | # 1 = Enable predictive checks (default) | ||
369 | |||
370 | enable_predictive_service_dependency_checks=1 | ||
371 | |||
372 | |||
373 | |||
374 | # SOFT STATE DEPENDENCIES | ||
375 | # This option determines whether or not Naemon will use soft state | ||
376 | # information when checking host and service dependencies. Normally | ||
377 | # Naemon will only use the latest hard host or service state when | ||
378 | # checking dependencies. If you want it to use the latest state (regardless | ||
379 | # of whether its a soft or hard state type), enable this option. | ||
380 | # Values: | ||
381 | # 0 = Don't use soft state dependencies (default) | ||
382 | # 1 = Use soft state dependencies | ||
383 | |||
384 | soft_state_dependencies=0 | ||
385 | |||
386 | |||
387 | |||
388 | # TIME CHANGE ADJUSTMENT THRESHOLDS | ||
389 | # These options determine when Naemon will react to detected changes | ||
390 | # in system time (either forward or backwards). | ||
391 | |||
392 | #time_change_threshold=900 | ||
393 | |||
394 | |||
395 | |||
396 | # TIMEOUT VALUES | ||
397 | # These options control how much time Naemon will allow various | ||
398 | # types of commands to execute before killing them off. Options | ||
399 | # are available for controlling maximum time allotted for | ||
400 | # service checks, host checks, event handlers, notifications, the | ||
401 | # ocsp command, and performance data commands. All values are in | ||
402 | # seconds. | ||
403 | |||
404 | service_check_timeout=60 | ||
405 | host_check_timeout=30 | ||
406 | event_handler_timeout=30 | ||
407 | notification_timeout=30 | ||
408 | ocsp_timeout=5 | ||
409 | perfdata_timeout=5 | ||
410 | |||
411 | |||
412 | |||
413 | # RETAIN STATE INFORMATION | ||
414 | # This setting determines whether or not Naemon will save state | ||
415 | # information for services and hosts before it shuts down. Upon | ||
416 | # startup Naemon will reload all saved service and host state | ||
417 | # information before starting to monitor. This is useful for | ||
418 | # maintaining long-term data on state statistics, etc, but will | ||
419 | # slow Naemon down a bit when it (re)starts. Since its only | ||
420 | # a one-time penalty, I think its well worth the additional | ||
421 | # startup delay. | ||
422 | |||
423 | retain_state_information=1 | ||
424 | |||
425 | |||
426 | |||
427 | # STATE RETENTION FILE | ||
428 | # This is the file that Naemon should use to store host and | ||
429 | # service state information before it shuts down. The state | ||
430 | # information in this file is also read immediately prior to | ||
431 | # starting to monitor the network when Naemon is restarted. | ||
432 | # This file is used only if the retain_state_information | ||
433 | # variable is set to 1. | ||
434 | |||
435 | state_retention_file=@varDir@/retention.dat | ||
436 | |||
437 | |||
438 | |||
439 | # RETENTION DATA UPDATE INTERVAL | ||
440 | # This setting determines how often (in minutes) that Naemon | ||
441 | # will automatically save retention data during normal operation. | ||
442 | # If you set this value to 0, Naemon will not save retention | ||
443 | # data at regular interval, but it will still save retention | ||
444 | # data before shutting down or restarting. If you have disabled | ||
445 | # state retention, this option has no effect. | ||
446 | |||
447 | retention_update_interval=60 | ||
448 | |||
449 | |||
450 | |||
451 | # USE RETAINED PROGRAM STATE | ||
452 | # This setting determines whether or not Naemon will set | ||
453 | # program status variables based on the values saved in the | ||
454 | # retention file. If you want to use retained program status | ||
455 | # information, set this value to 1. If not, set this value | ||
456 | # to 0. | ||
457 | |||
458 | use_retained_program_state=1 | ||
459 | |||
460 | |||
461 | |||
462 | # USE RETAINED SCHEDULING INFO | ||
463 | # This setting determines whether or not Naemon will retain | ||
464 | # the scheduling info (next check time) for hosts and services | ||
465 | # based on the values saved in the retention file. If you | ||
466 | # If you want to use retained scheduling info, set this | ||
467 | # value to 1. If not, set this value to 0. | ||
468 | |||
469 | use_retained_scheduling_info=1 | ||
470 | |||
471 | |||
472 | # RETAINED_SCHEDULING_RANDOMIZE_WINDOW | ||
473 | # If use_retained_scheduling info is enabled, this setting | ||
474 | # sets the window (in seconds), in which checks that were | ||
475 | # supposed to executed during a restart, is rescheduled. | ||
476 | # That is, if set to 60 seconds, then all checks that were | ||
477 | # missed due to a restart will be scheduled randomly to be | ||
478 | # executed in the first 60 seconds after a restart. | ||
479 | # If the retained_scheduling_randomize_window is larger than | ||
480 | # the objects check_interval, the check_interval is used | ||
481 | # instead. | ||
482 | |||
483 | retained_scheduling_randomize_window=60 | ||
484 | |||
485 | |||
486 | # RETAINED ATTRIBUTE MASKS (ADVANCED FEATURE) | ||
487 | # The following variables are used to specify specific host and | ||
488 | # service attributes that should *not* be retained by Naemon during | ||
489 | # program restarts. | ||
490 | # | ||
491 | # The values of the masks are bitwise ANDs of values specified | ||
492 | # by the "MODATTR_" definitions found in include/common.h. | ||
493 | # For example, if you do not want the current enabled/disabled state | ||
494 | # of flap detection and event handlers for hosts to be retained, you | ||
495 | # would use a value of 24 for the host attribute mask... | ||
496 | # MODATTR_EVENT_HANDLER_ENABLED (8) + MODATTR_FLAP_DETECTION_ENABLED (16) = 24 | ||
497 | |||
498 | # This mask determines what host attributes are not retained | ||
499 | retained_host_attribute_mask=0 | ||
500 | |||
501 | # This mask determines what service attributes are not retained | ||
502 | retained_service_attribute_mask=0 | ||
503 | |||
504 | # These two masks determine what process attributes are not retained. | ||
505 | # There are two masks, because some process attributes have host and service | ||
506 | # options. For example, you can disable active host checks, but leave active | ||
507 | # service checks enabled. | ||
508 | retained_process_host_attribute_mask=0 | ||
509 | retained_process_service_attribute_mask=0 | ||
510 | |||
511 | # These two masks determine what contact attributes are not retained. | ||
512 | # There are two masks, because some contact attributes have host and | ||
513 | # service options. For example, you can disable host notifications for | ||
514 | # a contact, but leave service notifications enabled for them. | ||
515 | retained_contact_host_attribute_mask=0 | ||
516 | retained_contact_service_attribute_mask=0 | ||
517 | |||
518 | |||
519 | |||
520 | # INTERVAL LENGTH | ||
521 | # This is the seconds per unit interval as used in the | ||
522 | # host/contact/service configuration files. Setting this to 60 means | ||
523 | # that each interval is one minute long (60 seconds). Other settings | ||
524 | # have not been tested much, so your mileage is likely to vary... | ||
525 | |||
526 | interval_length=60 | ||
527 | |||
528 | |||
529 | |||
530 | # AGGRESSIVE HOST CHECKING OPTION | ||
531 | # If you don't want to turn on aggressive host checking features, set | ||
532 | # this value to 0 (the default). Otherwise set this value to 1 to | ||
533 | # enable the aggressive check option. Read the docs for more info | ||
534 | # on what aggressive host check is or check out the source code in | ||
535 | # base/checks.c | ||
536 | |||
537 | use_aggressive_host_checking=0 | ||
538 | |||
539 | |||
540 | |||
541 | # SERVICE CHECK EXECUTION OPTION | ||
542 | # This determines whether or not Naemon will actively execute | ||
543 | # service checks when it initially starts. If this option is | ||
544 | # disabled, checks are not actively made, but Naemon can still | ||
545 | # receive and process passive check results that come in. Unless | ||
546 | # you're implementing redundant hosts or have a special need for | ||
547 | # disabling the execution of service checks, leave this enabled! | ||
548 | # Values: 1 = enable checks, 0 = disable checks | ||
549 | |||
550 | execute_service_checks=1 | ||
551 | |||
552 | |||
553 | |||
554 | # PASSIVE SERVICE CHECK ACCEPTANCE OPTION | ||
555 | # This determines whether or not Naemon will accept passive | ||
556 | # service checks results when it initially (re)starts. | ||
557 | # Values: 1 = accept passive checks, 0 = reject passive checks | ||
558 | |||
559 | accept_passive_service_checks=1 | ||
560 | |||
561 | |||
562 | |||
563 | # HOST CHECK EXECUTION OPTION | ||
564 | # This determines whether or not Naemon will actively execute | ||
565 | # host checks when it initially starts. If this option is | ||
566 | # disabled, checks are not actively made, but Naemon can still | ||
567 | # receive and process passive check results that come in. Unless | ||
568 | # you're implementing redundant hosts or have a special need for | ||
569 | # disabling the execution of host checks, leave this enabled! | ||
570 | # Values: 1 = enable checks, 0 = disable checks | ||
571 | |||
572 | execute_host_checks=1 | ||
573 | |||
574 | |||
575 | |||
576 | # PASSIVE HOST CHECK ACCEPTANCE OPTION | ||
577 | # This determines whether or not Naemon will accept passive | ||
578 | # host checks results when it initially (re)starts. | ||
579 | # Values: 1 = accept passive checks, 0 = reject passive checks | ||
580 | |||
581 | accept_passive_host_checks=1 | ||
582 | |||
583 | |||
584 | |||
585 | # NOTIFICATIONS OPTION | ||
586 | # This determines whether or not Naemon will sent out any host or | ||
587 | # service notifications when it is initially (re)started. | ||
588 | # Values: 1 = enable notifications, 0 = disable notifications | ||
589 | |||
590 | enable_notifications=1 | ||
591 | |||
592 | |||
593 | |||
594 | # EVENT HANDLER USE OPTION | ||
595 | # This determines whether or not Naemon will run any host or | ||
596 | # service event handlers when it is initially (re)started. Unless | ||
597 | # you're implementing redundant hosts, leave this option enabled. | ||
598 | # Values: 1 = enable event handlers, 0 = disable event handlers | ||
599 | |||
600 | enable_event_handlers=1 | ||
601 | |||
602 | |||
603 | |||
604 | # PROCESS PERFORMANCE DATA OPTION | ||
605 | # This determines whether or not Naemon will process performance | ||
606 | # data returned from service and host checks. If this option is | ||
607 | # enabled, host performance data will be processed using the | ||
608 | # host_perfdata_command (defined below) and service performance | ||
609 | # data will be processed using the service_perfdata_command (also | ||
610 | # defined below). Read the HTML docs for more information on | ||
611 | # performance data. | ||
612 | # Values: 1 = process performance data, 0 = do not process performance data | ||
613 | |||
614 | process_performance_data=0 | ||
615 | |||
616 | |||
617 | |||
618 | # HOST AND SERVICE PERFORMANCE DATA PROCESSING COMMANDS | ||
619 | # These commands are run after every host and service check is | ||
620 | # performed. These commands are executed only if the | ||
621 | # enable_performance_data option (above) is set to 1. The command | ||
622 | # argument is the short name of a command definition that you | ||
623 | # define in your host configuration file. Read the HTML docs for | ||
624 | # more information on performance data. | ||
625 | |||
626 | #host_perfdata_command=process-host-perfdata | ||
627 | #service_perfdata_command=process-service-perfdata | ||
628 | |||
629 | |||
630 | |||
631 | # HOST AND SERVICE PERFORMANCE DATA FILES | ||
632 | # These files are used to store host and service performance data. | ||
633 | # Performance data is only written to these files if the | ||
634 | # enable_performance_data option (above) is set to 1. | ||
635 | |||
636 | #host_perfdata_file=@varDir@/host-perfdata | ||
637 | #service_perfdata_file=@varDir@/service-perfdata | ||
638 | |||
639 | |||
640 | |||
641 | # HOST AND SERVICE PERFORMANCE DATA FILE TEMPLATES | ||
642 | # These options determine what data is written (and how) to the | ||
643 | # performance data files. The templates may contain macros, special | ||
644 | # characters (\t for tab, \r for carriage return, \n for newline) | ||
645 | # and plain text. A newline is automatically added after each write | ||
646 | # to the performance data file. Some examples of what you can do are | ||
647 | # shown below. | ||
648 | |||
649 | #host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$ | ||
650 | #service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$ | ||
651 | |||
652 | |||
653 | |||
654 | # HOST AND SERVICE PERFORMANCE DATA FILE MODES | ||
655 | # This option determines whether or not the host and service | ||
656 | # performance data files are opened in write ("w") or append ("a") | ||
657 | # mode. If you want to use named pipes, you should use the special | ||
658 | # pipe ("p") mode which avoid blocking at startup, otherwise you will | ||
659 | # likely want the defult append ("a") mode. | ||
660 | |||
661 | #host_perfdata_file_mode=a | ||
662 | #service_perfdata_file_mode=a | ||
663 | |||
664 | |||
665 | |||
666 | # HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING INTERVAL | ||
667 | # These options determine how often (in seconds) the host and service | ||
668 | # performance data files are processed using the commands defined | ||
669 | # below. A value of 0 indicates the files should not be periodically | ||
670 | # processed. | ||
671 | |||
672 | #host_perfdata_file_processing_interval=0 | ||
673 | #service_perfdata_file_processing_interval=0 | ||
674 | |||
675 | |||
676 | |||
677 | # HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING COMMANDS | ||
678 | # These commands are used to periodically process the host and | ||
679 | # service performance data files. The interval at which the | ||
680 | # processing occurs is determined by the options above. | ||
681 | |||
682 | #host_perfdata_file_processing_command=process-host-perfdata-file | ||
683 | #service_perfdata_file_processing_command=process-service-perfdata-file | ||
684 | |||
685 | |||
686 | |||
687 | # HOST AND SERVICE PERFORMANCE DATA PROCESS EMPTY RESULTS | ||
688 | # These options determine wether the core will process empty perfdata | ||
689 | # results or not. This is needed for distributed monitoring, and intentionally | ||
690 | # turned on by default. | ||
691 | # If you don't require empty perfdata - saving some cpu cycles | ||
692 | # on unwanted macro calculation - you can turn that off. Be careful! | ||
693 | # Values: 1 = enable, 0 = disable | ||
694 | |||
695 | #host_perfdata_process_empty_results=1 | ||
696 | #service_perfdata_process_empty_results=1 | ||
697 | |||
698 | |||
699 | # OBSESS OVER SERVICE CHECKS OPTION | ||
700 | # This determines whether or not Naemon will obsess over service | ||
701 | # checks and run the ocsp_command defined below. Unless you're | ||
702 | # planning on implementing distributed monitoring, do not enable | ||
703 | # this option. Read the HTML docs for more information on | ||
704 | # implementing distributed monitoring. | ||
705 | # Values: 1 = obsess over services, 0 = do not obsess (default) | ||
706 | |||
707 | obsess_over_services=0 | ||
708 | |||
709 | |||
710 | |||
711 | # OBSESSIVE COMPULSIVE SERVICE PROCESSOR COMMAND | ||
712 | # This is the command that is run for every service check that is | ||
713 | # processed by Naemon. This command is executed only if the | ||
714 | # obsess_over_services option (above) is set to 1. The command | ||
715 | # argument is the short name of a command definition that you | ||
716 | # define in your host configuration file. Read the HTML docs for | ||
717 | # more information on implementing distributed monitoring. | ||
718 | |||
719 | #ocsp_command=somecommand | ||
720 | |||
721 | |||
722 | |||
723 | # OBSESS OVER HOST CHECKS OPTION | ||
724 | # This determines whether or not Naemon will obsess over host | ||
725 | # checks and run the ochp_command defined below. Unless you're | ||
726 | # planning on implementing distributed monitoring, do not enable | ||
727 | # this option. Read the HTML docs for more information on | ||
728 | # implementing distributed monitoring. | ||
729 | # Values: 1 = obsess over hosts, 0 = do not obsess (default) | ||
730 | |||
731 | obsess_over_hosts=0 | ||
732 | |||
733 | |||
734 | |||
735 | # OBSESSIVE COMPULSIVE HOST PROCESSOR COMMAND | ||
736 | # This is the command that is run for every host check that is | ||
737 | # processed by Naemon. This command is executed only if the | ||
738 | # obsess_over_hosts option (above) is set to 1. The command | ||
739 | # argument is the short name of a command definition that you | ||
740 | # define in your host configuration file. Read the HTML docs for | ||
741 | # more information on implementing distributed monitoring. | ||
742 | |||
743 | #ochp_command=somecommand | ||
744 | |||
745 | |||
746 | |||
747 | # TRANSLATE PASSIVE HOST CHECKS OPTION | ||
748 | # This determines whether or not Naemon will translate | ||
749 | # DOWN/UNREACHABLE passive host check results into their proper | ||
750 | # state for this instance of Naemon. This option is useful | ||
751 | # if you have distributed or failover monitoring setup. In | ||
752 | # these cases your other Naemon servers probably have a different | ||
753 | # "view" of the network, with regards to the parent/child relationship | ||
754 | # of hosts. If a distributed monitoring server thinks a host | ||
755 | # is DOWN, it may actually be UNREACHABLE from the point of | ||
756 | # this Naemon instance. Enabling this option will tell Naemon | ||
757 | # to translate any DOWN or UNREACHABLE host states it receives | ||
758 | # passively into the correct state from the view of this server. | ||
759 | # Values: 1 = perform translation, 0 = do not translate (default) | ||
760 | |||
761 | translate_passive_host_checks=0 | ||
762 | |||
763 | |||
764 | |||
765 | # PASSIVE HOST CHECKS ARE SOFT OPTION | ||
766 | # This determines whether or not Naemon will treat passive host | ||
767 | # checks as being HARD or SOFT. By default, a passive host check | ||
768 | # result will put a host into a HARD state type. This can be changed | ||
769 | # by enabling this option. | ||
770 | # Values: 0 = passive checks are HARD, 1 = passive checks are SOFT | ||
771 | |||
772 | passive_host_checks_are_soft=0 | ||
773 | |||
774 | |||
775 | |||
776 | # ORPHANED HOST/SERVICE CHECK OPTIONS | ||
777 | # These options determine whether or not Naemon will periodically | ||
778 | # check for orphaned host service checks. Since service checks are | ||
779 | # not rescheduled until the results of their previous execution | ||
780 | # instance are processed, there exists a possibility that some | ||
781 | # checks may never get rescheduled. A similar situation exists for | ||
782 | # host checks, although the exact scheduling details differ a bit | ||
783 | # from service checks. Orphaned checks seem to be a rare | ||
784 | # problem and should not happen under normal circumstances. | ||
785 | # If you have problems with service checks never getting | ||
786 | # rescheduled, make sure you have orphaned service checks enabled. | ||
787 | # Values: 1 = enable checks, 0 = disable checks | ||
788 | |||
789 | check_for_orphaned_services=1 | ||
790 | check_for_orphaned_hosts=1 | ||
791 | |||
792 | |||
793 | |||
794 | # SERVICE FRESHNESS CHECK OPTION | ||
795 | # This option determines whether or not Naemon will periodically | ||
796 | # check the "freshness" of service results. Enabling this option | ||
797 | # is useful for ensuring passive checks are received in a timely | ||
798 | # manner. | ||
799 | # Values: 1 = enabled freshness checking, 0 = disable freshness checking | ||
800 | |||
801 | check_service_freshness=1 | ||
802 | |||
803 | |||
804 | |||
805 | # SERVICE FRESHNESS CHECK INTERVAL | ||
806 | # This setting determines how often (in seconds) Naemon will | ||
807 | # check the "freshness" of service check results. If you have | ||
808 | # disabled service freshness checking, this option has no effect. | ||
809 | |||
810 | service_freshness_check_interval=60 | ||
811 | |||
812 | |||
813 | |||
814 | # SERVICE CHECK TIMEOUT STATE | ||
815 | # This setting determines the state Naemon will report when a | ||
816 | # service check times out - that is does not respond within | ||
817 | # service_check_timeout seconds. This can be useful if a | ||
818 | # machine is running at too high a load and you do not want | ||
819 | # to consider a failed service check to be critical (the default). | ||
820 | # Valid settings are: | ||
821 | # c - Critical (default) | ||
822 | # u - Unknown | ||
823 | # w - Warning | ||
824 | # o - OK | ||
825 | |||
826 | service_check_timeout_state=c | ||
827 | |||
828 | |||
829 | |||
830 | # HOST FRESHNESS CHECK OPTION | ||
831 | # This option determines whether or not Naemon will periodically | ||
832 | # check the "freshness" of host results. Enabling this option | ||
833 | # is useful for ensuring passive checks are received in a timely | ||
834 | # manner. | ||
835 | # Values: 1 = enabled freshness checking, 0 = disable freshness checking | ||
836 | |||
837 | check_host_freshness=0 | ||
838 | |||
839 | |||
840 | |||
841 | # HOST FRESHNESS CHECK INTERVAL | ||
842 | # This setting determines how often (in seconds) Naemon will | ||
843 | # check the "freshness" of host check results. If you have | ||
844 | # disabled host freshness checking, this option has no effect. | ||
845 | |||
846 | host_freshness_check_interval=60 | ||
847 | |||
848 | |||
849 | |||
850 | |||
851 | # ADDITIONAL FRESHNESS THRESHOLD LATENCY | ||
852 | # This setting determines the number of seconds that Naemon | ||
853 | # will add to any host and service freshness thresholds that | ||
854 | # it calculates (those not explicitly specified by the user). | ||
855 | |||
856 | additional_freshness_latency=15 | ||
857 | |||
858 | |||
859 | |||
860 | |||
861 | # FLAP DETECTION OPTION | ||
862 | # This option determines whether or not Naemon will try | ||
863 | # and detect hosts and services that are "flapping". | ||
864 | # Flapping occurs when a host or service changes between | ||
865 | # states too frequently. When Naemon detects that a | ||
866 | # host or service is flapping, it will temporarily suppress | ||
867 | # notifications for that host/service until it stops | ||
868 | # flapping. Flap detection is very experimental, so read | ||
869 | # the HTML documentation before enabling this feature! | ||
870 | # Values: 1 = enable flap detection | ||
871 | # 0 = disable flap detection (default) | ||
872 | |||
873 | enable_flap_detection=1 | ||
874 | |||
875 | |||
876 | |||
877 | # FLAP DETECTION THRESHOLDS FOR HOSTS AND SERVICES | ||
878 | # Read the HTML documentation on flap detection for | ||
879 | # an explanation of what this option does. This option | ||
880 | # has no effect if flap detection is disabled. | ||
881 | |||
882 | low_service_flap_threshold=5.0 | ||
883 | high_service_flap_threshold=20.0 | ||
884 | low_host_flap_threshold=5.0 | ||
885 | high_host_flap_threshold=20.0 | ||
886 | |||
887 | |||
888 | |||
889 | # DATE FORMAT OPTION | ||
890 | # This option determines how short dates are displayed. Valid options | ||
891 | # include: | ||
892 | # us (MM-DD-YYYY HH:MM:SS) | ||
893 | # euro (DD-MM-YYYY HH:MM:SS) | ||
894 | # iso8601 (YYYY-MM-DD HH:MM:SS) | ||
895 | # strict-iso8601 (YYYY-MM-DDTHH:MM:SS) | ||
896 | # | ||
897 | |||
898 | date_format=us | ||
899 | |||
900 | |||
901 | |||
902 | |||
903 | # TIMEZONE OFFSET | ||
904 | # This option is used to override the default timezone that this | ||
905 | # instance of Naemon runs in. If not specified, Naemon will use | ||
906 | # the system configured timezone. | ||
907 | |||
908 | #use_timezone=US/Mountain | ||
909 | #use_timezone=Australia/Brisbane | ||
910 | |||
911 | |||
912 | |||
913 | # ILLEGAL OBJECT NAME CHARACTERS | ||
914 | # This option allows you to specify illegal characters that cannot | ||
915 | # be used in host names, service descriptions, or names of other | ||
916 | # object types. | ||
917 | |||
918 | illegal_object_name_chars=`~!$%^&*|'"<>?,()= | ||
919 | |||
920 | |||
921 | |||
922 | # ILLEGAL MACRO OUTPUT CHARACTERS | ||
923 | # This option allows you to specify illegal characters that are | ||
924 | # stripped from macros before being used in notifications, event | ||
925 | # handlers, etc. This DOES NOT affect macros used in service or | ||
926 | # host check commands. | ||
927 | # The following macros are stripped of the characters you specify: | ||
928 | # $HOSTOUTPUT$ | ||
929 | # $HOSTPERFDATA$ | ||
930 | # $HOSTACKAUTHOR$ | ||
931 | # $HOSTACKCOMMENT$ | ||
932 | # $SERVICEOUTPUT$ | ||
933 | # $SERVICEPERFDATA$ | ||
934 | # $SERVICEACKAUTHOR$ | ||
935 | # $SERVICEACKCOMMENT$ | ||
936 | |||
937 | illegal_macro_output_chars=`~$&|'"<> | ||
938 | |||
939 | |||
940 | |||
941 | # REGULAR EXPRESSION MATCHING | ||
942 | # This option controls whether or not regular expression matching | ||
943 | # takes place in the object config files. Regular expression | ||
944 | # matching is used to match host, hostgroup, service, and service | ||
945 | # group names/descriptions in some fields of various object types. | ||
946 | # Values: 1 = enable regexp matching, 0 = disable regexp matching | ||
947 | |||
948 | use_regexp_matching=0 | ||
949 | |||
950 | |||
951 | |||
952 | # "TRUE" REGULAR EXPRESSION MATCHING | ||
953 | # This option controls whether or not "true" regular expression | ||
954 | # matching takes place in the object config files. This option | ||
955 | # only has an effect if regular expression matching is enabled | ||
956 | # (see above). If this option is DISABLED, regular expression | ||
957 | # matching only occurs if a string contains wildcard characters | ||
958 | # (* and ?). If the option is ENABLED, regexp matching occurs | ||
959 | # all the time (which can be annoying). | ||
960 | # Values: 1 = enable true matching, 0 = disable true matching | ||
961 | |||
962 | use_true_regexp_matching=0 | ||
963 | |||
964 | |||
965 | |||
966 | # ADMINISTRATOR EMAIL/PAGER ADDRESSES | ||
967 | # The email and pager address of a global administrator (likely you). | ||
968 | # Naemon never uses these values itself, but you can access them by | ||
969 | # using the $ADMINEMAIL$ and $ADMINPAGER$ macros in your notification | ||
970 | # commands. | ||
971 | |||
972 | admin_email=naemon@localhost | ||
973 | admin_pager=pagenaemon@localhost | ||
974 | |||
975 | |||
976 | |||
977 | # DEBUG LEVEL | ||
978 | # This option determines how much (if any) debugging information will | ||
979 | # be written to the debug file. OR values together to log multiple | ||
980 | # types of information. | ||
981 | # Values: | ||
982 | # -1 = Everything | ||
983 | # 0 = Nothing | ||
984 | # 1 = Functions | ||
985 | # 2 = Configuration | ||
986 | # 4 = Process information | ||
987 | # 8 = Scheduled events | ||
988 | # 16 = Host/service checks | ||
989 | # 32 = Notifications | ||
990 | # 64 = Event broker | ||
991 | # 128 = External commands | ||
992 | # 256 = Commands | ||
993 | # 512 = Scheduled downtime | ||
994 | # 1024 = Comments | ||
995 | # 2048 = Macros | ||
996 | |||
997 | debug_level=0 | ||
998 | |||
999 | |||
1000 | |||
1001 | # DEBUG VERBOSITY | ||
1002 | # This option determines how verbose the debug log out will be. | ||
1003 | # Values: 0 = Brief output | ||
1004 | # 1 = More detailed | ||
1005 | # 2 = Very detailed | ||
1006 | |||
1007 | debug_verbosity=1 | ||
1008 | |||
1009 | |||
1010 | |||
1011 | # DEBUG FILE | ||
1012 | # This option determines where Naemon should write debugging information. | ||
1013 | |||
1014 | debug_file=@cacheDir@/naemon.debug | ||
1015 | |||
1016 | |||
1017 | |||
1018 | # MAX DEBUG FILE SIZE | ||
1019 | # This option determines the maximum size (in bytes) of the debug file. If | ||
1020 | # the file grows larger than this size, it will be renamed with a .old | ||
1021 | # extension. If a file already exists with a .old extension it will | ||
1022 | # automatically be deleted. This helps ensure your disk space usage doesn't | ||
1023 | # get out of control when debugging Naemon. | ||
1024 | |||
1025 | max_debug_file_size=1000000 | ||
1026 | |||
1027 | |||
1028 | |||
1029 | # Should we allow hostgroups to have no hosts, we default this to off since | ||
1030 | # that was the old behavior | ||
1031 | |||
1032 | allow_empty_hostgroup_assignment=0 | ||
1033 | |||
1034 | |||
1035 | |||
1036 | # Normally worker count is dynamically allocated based on 1.5 * number of cpu's | ||
1037 | # with a minimum of 4 workers. This value will override the defaults | ||
1038 | |||
1039 | #check_workers=3 | ||
1040 | |||
1041 | |||
1042 | # DISABLE SERVICE CHECKS WHEN HOST DOWN | ||
1043 | # This option will disable all service checks if the host is not in an UP state | ||
1044 | # | ||
1045 | # While desirable in some environments, enabling this value can distort report | ||
1046 | # values as the expected quantity of checks will not have been performed | ||
1047 | |||
1048 | #host_down_disable_service_checks=0 | ||
1049 | |||
1050 | |||
1051 | # CIRCULAR DEPENDENCIES (EXPERIMENTAL) | ||
1052 | # Allow for circular dependencies in naemon's host graph. | ||
1053 | # Enabaling this will cause propagation the following to stop working: | ||
1054 | # * scheduling downtime | ||
1055 | # * enabling notification | ||
1056 | # * disabling notification | ||
1057 | # This feature is experimental and bugs might occur. | ||
1058 | |||
1059 | allow_circular_dependencies=0 | ||
diff --git a/modules/private/buildbot/common/build_helpers.py b/modules/private/buildbot/common/build_helpers.py deleted file mode 100644 index acea905..0000000 --- a/modules/private/buildbot/common/build_helpers.py +++ /dev/null | |||
@@ -1,277 +0,0 @@ | |||
1 | from buildbot.plugins import util, steps, schedulers | ||
2 | from buildbot_buildslist import BuildsList | ||
3 | from shutil import which | ||
4 | |||
5 | __all__ = [ | ||
6 | "force_scheduler", "deploy_scheduler", "hook_scheduler", | ||
7 | "clean_branch", "package_and_upload", "SlackStatusPush", | ||
8 | "XMPPStatusPush", "NixShellCommand" | ||
9 | ] | ||
10 | |||
11 | # Small helpers" | ||
12 | @util.renderer | ||
13 | def clean_branch(props): | ||
14 | if props.hasProperty("branch") and len(props["branch"]) > 0: | ||
15 | return props["branch"].replace("/", "_") | ||
16 | else: | ||
17 | return "HEAD" | ||
18 | |||
19 | def package_and_upload(package, package_dest, package_url): | ||
20 | return [ | ||
21 | steps.ShellCommand(name="build package", | ||
22 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
23 | command=["git", "archive", "HEAD", "-o", package]), | ||
24 | |||
25 | steps.FileUpload(name="upload package", workersrc=package, | ||
26 | workdir="source", masterdest=package_dest, | ||
27 | url=package_url, mode=0o644), | ||
28 | |||
29 | steps.ShellCommand(name="cleanup package", logEnviron=False, | ||
30 | haltOnFailure=True, workdir="source", alwaysRun=True, | ||
31 | command=["rm", "-f", package]), | ||
32 | ] | ||
33 | |||
34 | # Steps | ||
35 | class NixShellCommand(steps.ShellCommand): | ||
36 | def __init__(self, command=None, pure=True, nixfile=None, **kwargs): | ||
37 | assert(isinstance(command, str)) | ||
38 | oldpath = kwargs.get("env", {}).get("PATH", None) | ||
39 | if which("nix-shell", path=oldpath) is None: | ||
40 | kwargs["env"] = kwargs.get("env", {}) | ||
41 | if isinstance(oldpath, str): | ||
42 | kwargs["env"]["PATH"] = "/run/current-system/sw/bin:" + oldpath | ||
43 | elif isinstance(oldpath, list): | ||
44 | kwargs["env"]["PATH"] = ["/run/current-system/sw/bin"] + oldpath | ||
45 | nixcommand = ["nix-shell"] | ||
46 | if pure: | ||
47 | nixcommand.append("--pure") | ||
48 | nixcommand.append("--run") | ||
49 | nixcommand.append(command) | ||
50 | if nixfile is not None: | ||
51 | nixcommand.append(nixfile) | ||
52 | super().__init__(command=nixcommand, **kwargs) | ||
53 | |||
54 | # Schedulers | ||
55 | def force_scheduler(name, builders): | ||
56 | return schedulers.ForceScheduler(name=name, | ||
57 | label="Force build", buttonName="Force build", | ||
58 | reason=util.StringParameter(name="reason", label="Reason", default="Force build"), | ||
59 | codebases=[ | ||
60 | util.CodebaseParameter("", | ||
61 | branch=util.StringParameter( | ||
62 | name="branch", label="Git reference (tag, branch)", required=True), | ||
63 | revision=util.FixedParameter(name="revision", default=""), | ||
64 | repository=util.FixedParameter(name="repository", default=""), | ||
65 | project=util.FixedParameter(name="project", default=""), | ||
66 | ), | ||
67 | ], | ||
68 | username=util.FixedParameter(name="username", default="Web button"), | ||
69 | builderNames=builders) | ||
70 | |||
71 | def deploy_scheduler(name, builders): | ||
72 | return schedulers.ForceScheduler(name=name, | ||
73 | builderNames=builders, | ||
74 | label="Deploy built package", buttonName="Deploy", | ||
75 | username=util.FixedParameter(name="username", default="Web button"), | ||
76 | codebases=[ | ||
77 | util.CodebaseParameter(codebase="", | ||
78 | branch=util.FixedParameter(name="branch", default=""), | ||
79 | revision=util.FixedParameter(name="revision", default=""), | ||
80 | repository=util.FixedParameter(name="repository", default=""), | ||
81 | project=util.FixedParameter(name="project", default=""))], | ||
82 | reason=util.FixedParameter(name="reason", default="Deploy"), | ||
83 | properties=[ | ||
84 | util.ChoiceStringParameter(label="Environment", | ||
85 | name="environment", default="integration", | ||
86 | choices=["integration", "production"]), | ||
87 | BuildsList(label="Build to deploy", name="build"), | ||
88 | ] | ||
89 | ) | ||
90 | |||
91 | def hook_scheduler(project, timer=10): | ||
92 | return schedulers.AnyBranchScheduler( | ||
93 | change_filter=util.ChangeFilter(category="hooks", project=project), | ||
94 | name=project, treeStableTimer=timer, builderNames=["{}_build".format(project)]) | ||
95 | |||
96 | # Slack/XMPP status push | ||
97 | from buildbot.reporters.http import HttpStatusPushBase | ||
98 | from twisted.internet import defer | ||
99 | from twisted.python import log | ||
100 | from buildbot.util import httpclientservice | ||
101 | from buildbot.reporters import utils | ||
102 | from buildbot.process import results | ||
103 | from twisted.words.protocols.jabber.jid import JID | ||
104 | from wokkel import client, xmppim | ||
105 | from functools import partial | ||
106 | |||
107 | class SlackStatusPush(HttpStatusPushBase): | ||
108 | name = "SlackStatusPush" | ||
109 | |||
110 | @defer.inlineCallbacks | ||
111 | def reconfigService(self, serverUrl, **kwargs): | ||
112 | yield HttpStatusPushBase.reconfigService(self, **kwargs) | ||
113 | self._http = yield httpclientservice.HTTPClientService.getService( | ||
114 | self.master, serverUrl) | ||
115 | |||
116 | @defer.inlineCallbacks | ||
117 | def send(self, build): | ||
118 | yield utils.getDetailsForBuild(self.master, build, wantProperties=True) | ||
119 | response = yield self._http.post("", json=self.format(build)) | ||
120 | if response.code != 200: | ||
121 | log.msg("%s: unable to upload status: %s" % | ||
122 | (response.code, response.content)) | ||
123 | |||
124 | def format(self, build): | ||
125 | colors = [ | ||
126 | "#36A64F", # success | ||
127 | "#F1E903", # warnings | ||
128 | "#DA0505", # failure | ||
129 | "#FFFFFF", # skipped | ||
130 | "#000000", # exception | ||
131 | "#FFFFFF", # retry | ||
132 | "#D02CA9", # cancelled | ||
133 | ] | ||
134 | |||
135 | if "environment" in build["properties"]: | ||
136 | msg = "{} environment".format(build["properties"]["environment"][0]) | ||
137 | if "build" in build["properties"]: | ||
138 | msg = "of archive {} in ".format(build["properties"]["build"][0]) + msg | ||
139 | elif len(build["buildset"]["sourcestamps"][0]["branch"] or []) > 0: | ||
140 | msg = "revision {}".format(build["buildset"]["sourcestamps"][0]["branch"]) | ||
141 | else: | ||
142 | msg = "build" | ||
143 | |||
144 | if build["complete"]: | ||
145 | timedelta = int((build["complete_at"] - build["started_at"]).total_seconds()) | ||
146 | hours, rest = divmod(timedelta, 3600) | ||
147 | minutes, seconds = divmod(rest, 60) | ||
148 | if hours > 0: | ||
149 | duration = "{}h {}min {}s".format(hours, minutes, seconds) | ||
150 | elif minutes > 0: | ||
151 | duration = "{}min {}s".format(minutes, seconds) | ||
152 | else: | ||
153 | duration = "{}s".format(seconds) | ||
154 | |||
155 | text = "Build <{}|{}> of {}'s {} was {} in {}.".format( | ||
156 | build["url"], build["buildid"], | ||
157 | build["builder"]["name"], | ||
158 | msg, | ||
159 | results.Results[build["results"]], | ||
160 | duration, | ||
161 | ) | ||
162 | fields = [ | ||
163 | { | ||
164 | "title": "Build", | ||
165 | "value": "<{}|{}>".format(build["url"], build["buildid"]), | ||
166 | "short": True, | ||
167 | }, | ||
168 | { | ||
169 | "title": "Project", | ||
170 | "value": build["builder"]["name"], | ||
171 | "short": True, | ||
172 | }, | ||
173 | { | ||
174 | "title": "Build status", | ||
175 | "value": results.Results[build["results"]], | ||
176 | "short": True, | ||
177 | }, | ||
178 | { | ||
179 | "title": "Build duration", | ||
180 | "value": duration, | ||
181 | "short": True, | ||
182 | }, | ||
183 | ] | ||
184 | if "environment" in build["properties"]: | ||
185 | fields.append({ | ||
186 | "title": "Environment", | ||
187 | "value": build["properties"]["environment"][0], | ||
188 | "short": True, | ||
189 | }) | ||
190 | if "build" in build["properties"]: | ||
191 | fields.append({ | ||
192 | "title": "Archive", | ||
193 | "value": build["properties"]["build"][0], | ||
194 | "short": True, | ||
195 | }) | ||
196 | attachments = [{ | ||
197 | "fallback": "", | ||
198 | "color": colors[build["results"]], | ||
199 | "fields": fields | ||
200 | }] | ||
201 | else: | ||
202 | text = "Build <{}|{}> of {}'s {} started.".format( | ||
203 | build["url"], build["buildid"], | ||
204 | build["builder"]["name"], | ||
205 | msg, | ||
206 | ) | ||
207 | attachments = [] | ||
208 | |||
209 | return { | ||
210 | "username": "Buildbot", | ||
211 | "icon_url": "http://docs.buildbot.net/current/_static/icon.png", | ||
212 | "text": text, | ||
213 | "attachments": attachments, | ||
214 | } | ||
215 | |||
216 | class XMPPStatusPush(HttpStatusPushBase): | ||
217 | name = "XMPPStatusPush" | ||
218 | |||
219 | @defer.inlineCallbacks | ||
220 | def reconfigService(self, password, recipients, **kwargs): | ||
221 | yield HttpStatusPushBase.reconfigService(self, **kwargs) | ||
222 | self.password = password | ||
223 | self.recipients = recipients | ||
224 | |||
225 | @defer.inlineCallbacks | ||
226 | def send(self, build): | ||
227 | yield utils.getDetailsForBuild(self.master, build, wantProperties=True) | ||
228 | body = self.format(build) | ||
229 | factory = client.DeferredClientFactory(JID("notify_bot@immae.fr/buildbot"), self.password) | ||
230 | d = client.clientCreator(factory) | ||
231 | def send_message(recipient, stream): | ||
232 | message = xmppim.Message(recipient=JID(recipient), body=body) | ||
233 | message.stanzaType = 'chat' | ||
234 | stream.send(message.toElement()) | ||
235 | # To allow chaining | ||
236 | return stream | ||
237 | for recipient in self.recipients: | ||
238 | d.addCallback(partial(send_message, recipient)) | ||
239 | d.addCallback(lambda _: factory.streamManager.xmlstream.sendFooter()) | ||
240 | d.addErrback(log.err) | ||
241 | |||
242 | def format(self, build): | ||
243 | if "environment" in build["properties"]: | ||
244 | msg = "{} environment".format(build["properties"]["environment"][0]) | ||
245 | if "build" in build["properties"]: | ||
246 | msg = "of archive {} in ".format(build["properties"]["build"][0]) + msg | ||
247 | elif len(build["buildset"]["sourcestamps"][0]["branch"] or []) > 0: | ||
248 | msg = "revision {}".format(build["buildset"]["sourcestamps"][0]["branch"]) | ||
249 | else: | ||
250 | msg = "build" | ||
251 | |||
252 | if build["complete"]: | ||
253 | timedelta = int((build["complete_at"] - build["started_at"]).total_seconds()) | ||
254 | hours, rest = divmod(timedelta, 3600) | ||
255 | minutes, seconds = divmod(rest, 60) | ||
256 | if hours > 0: | ||
257 | duration = "{}h {}min {}s".format(hours, minutes, seconds) | ||
258 | elif minutes > 0: | ||
259 | duration = "{}min {}s".format(minutes, seconds) | ||
260 | else: | ||
261 | duration = "{}s".format(seconds) | ||
262 | |||
263 | text = "Build {} ( {} ) of {}'s {} was {} in {}.".format( | ||
264 | build["buildid"], build["url"], | ||
265 | build["builder"]["name"], | ||
266 | msg, | ||
267 | results.Results[build["results"]], | ||
268 | duration, | ||
269 | ) | ||
270 | else: | ||
271 | text = "Build {} ( {} ) of {}'s {} started.".format( | ||
272 | build["buildid"], build["url"], | ||
273 | build["builder"]["name"], | ||
274 | msg, | ||
275 | ) | ||
276 | |||
277 | return text | ||
diff --git a/modules/private/buildbot/common/libvirt.py b/modules/private/buildbot/common/libvirt.py deleted file mode 100644 index e250627..0000000 --- a/modules/private/buildbot/common/libvirt.py +++ /dev/null | |||
@@ -1,318 +0,0 @@ | |||
1 | # This file was part of Buildbot. Buildbot is free software: you can | ||
2 | # redistribute it and/or modify it under the terms of the GNU General Public | ||
3 | # License as published by the Free Software Foundation, version 2. | ||
4 | # | ||
5 | # This program is distributed in the hope that it will be useful, but WITHOUT | ||
6 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||
7 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | ||
8 | # details. | ||
9 | # | ||
10 | # You should have received a copy of the GNU General Public License along with | ||
11 | # this program; if not, write to the Free Software Foundation, Inc., 51 | ||
12 | # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
13 | # | ||
14 | # Portions Copyright Buildbot Team Members | ||
15 | # Portions Copyright 2010 Isotoma Limited | ||
16 | |||
17 | |||
18 | import os | ||
19 | |||
20 | from twisted.internet import defer | ||
21 | from twisted.internet import threads | ||
22 | from twisted.internet import utils | ||
23 | from twisted.python import failure | ||
24 | from twisted.python import log | ||
25 | |||
26 | from buildbot import config | ||
27 | from buildbot.util.eventual import eventually | ||
28 | from buildbot.worker import AbstractLatentWorker | ||
29 | |||
30 | try: | ||
31 | import libvirt | ||
32 | except ImportError: | ||
33 | libvirt = None | ||
34 | |||
35 | import random | ||
36 | import string | ||
37 | |||
38 | def random_string_generator(): | ||
39 | chars = string.ascii_letters | ||
40 | return ''.join(random.choice(chars) for x in range(6)) | ||
41 | |||
42 | class WorkQueue: | ||
43 | |||
44 | """ | ||
45 | I am a class that turns parallel access into serial access. | ||
46 | |||
47 | I exist because we want to run libvirt access in threads as we don't | ||
48 | trust calls not to block, but under load libvirt doesn't seem to like | ||
49 | this kind of threaded use. | ||
50 | """ | ||
51 | |||
52 | def __init__(self): | ||
53 | self.queue = [] | ||
54 | |||
55 | def _process(self): | ||
56 | log.msg("Looking to start a piece of work now...") | ||
57 | |||
58 | # Is there anything to do? | ||
59 | if not self.queue: | ||
60 | log.msg("_process called when there is no work") | ||
61 | return | ||
62 | |||
63 | # Peek at the top of the stack - get a function to call and | ||
64 | # a deferred to fire when its all over | ||
65 | d, next_operation, args, kwargs = self.queue[0] | ||
66 | |||
67 | # Start doing some work - expects a deferred | ||
68 | try: | ||
69 | d2 = next_operation(*args, **kwargs) | ||
70 | except Exception: | ||
71 | d2 = defer.fail() | ||
72 | |||
73 | # Whenever a piece of work is done, whether it worked or not | ||
74 | # call this to schedule the next piece of work | ||
75 | @d2.addBoth | ||
76 | def _work_done(res): | ||
77 | log.msg("Completed a piece of work") | ||
78 | self.queue.pop(0) | ||
79 | if self.queue: | ||
80 | log.msg("Preparing next piece of work") | ||
81 | eventually(self._process) | ||
82 | return res | ||
83 | |||
84 | # When the work is done, trigger d | ||
85 | d2.chainDeferred(d) | ||
86 | |||
87 | def execute(self, cb, *args, **kwargs): | ||
88 | kickstart_processing = not self.queue | ||
89 | d = defer.Deferred() | ||
90 | self.queue.append((d, cb, args, kwargs)) | ||
91 | if kickstart_processing: | ||
92 | self._process() | ||
93 | return d | ||
94 | |||
95 | def executeInThread(self, cb, *args, **kwargs): | ||
96 | return self.execute(threads.deferToThread, cb, *args, **kwargs) | ||
97 | |||
98 | |||
99 | # A module is effectively a singleton class, so this is OK | ||
100 | queue = WorkQueue() | ||
101 | |||
102 | |||
103 | class Domain: | ||
104 | |||
105 | """ | ||
106 | I am a wrapper around a libvirt Domain object | ||
107 | """ | ||
108 | |||
109 | def __init__(self, connection, domain): | ||
110 | self.connection = connection | ||
111 | self.domain = domain | ||
112 | |||
113 | def name(self): | ||
114 | return queue.executeInThread(self.domain.name) | ||
115 | |||
116 | def create(self): | ||
117 | return queue.executeInThread(self.domain.create) | ||
118 | |||
119 | def shutdown(self): | ||
120 | return queue.executeInThread(self.domain.shutdown) | ||
121 | |||
122 | def destroy(self): | ||
123 | return queue.executeInThread(self.domain.destroy) | ||
124 | |||
125 | class Volume: | ||
126 | def __init__(self, connection, volume): | ||
127 | self.connection = connection | ||
128 | self.volume = volume | ||
129 | |||
130 | @defer.inlineCallbacks | ||
131 | def destroy(self): | ||
132 | yield queue.executeInThread(self.volume.wipe) | ||
133 | yield queue.executeInThread(self.volume.delete) | ||
134 | |||
135 | class Pool: | ||
136 | VolumeClass = Volume | ||
137 | def __init__(self, connection, pool): | ||
138 | self.connection = connection | ||
139 | self.pool = pool | ||
140 | |||
141 | @defer.inlineCallbacks | ||
142 | def create_volume(self, xml): | ||
143 | res = yield queue.executeInThread(self.pool.createXML, xml) | ||
144 | return self.VolumeClass(self.connection, res) | ||
145 | |||
146 | class Connection: | ||
147 | |||
148 | """ | ||
149 | I am a wrapper around a libvirt Connection object. | ||
150 | """ | ||
151 | |||
152 | DomainClass = Domain | ||
153 | PoolClass = Pool | ||
154 | |||
155 | def __init__(self, uri): | ||
156 | self.uri = uri | ||
157 | self._connection = None | ||
158 | |||
159 | @property | ||
160 | def connection(self): | ||
161 | if self._connection is not None: | ||
162 | try: | ||
163 | if not self._connection.isAlive(): | ||
164 | self._connection = None | ||
165 | except: | ||
166 | self._connection = None | ||
167 | if self._connection is None: | ||
168 | self._connection = libvirt.open(self.uri) | ||
169 | return self._connection | ||
170 | |||
171 | @defer.inlineCallbacks | ||
172 | def create(self, xml): | ||
173 | """ I take libvirt XML and start a new VM """ | ||
174 | res = yield queue.executeInThread(self.connection.createXML, xml, 0) | ||
175 | return self.DomainClass(self, res) | ||
176 | |||
177 | @defer.inlineCallbacks | ||
178 | def lookup_pool(self, name): | ||
179 | res = yield queue.executeInThread(self.connection.storagePoolLookupByName, name) | ||
180 | return self.PoolClass(self, res) | ||
181 | |||
182 | class LibVirtWorker(AbstractLatentWorker): | ||
183 | |||
184 | def __init__(self, name, password, connection, master_url, base_image=None, **kwargs): | ||
185 | super().__init__(name, password, **kwargs) | ||
186 | if not libvirt: | ||
187 | config.error( | ||
188 | "The python module 'libvirt' is needed to use a LibVirtWorker") | ||
189 | |||
190 | self.master_url = master_url | ||
191 | self.random_name = random_string_generator() | ||
192 | self.connection = connection | ||
193 | self.base_image = base_image | ||
194 | |||
195 | self.domain = None | ||
196 | self.domain_name = "buildbot-" + self.workername + "-" + self.random_name | ||
197 | self.volume = None | ||
198 | self.volume_name = "buildbot-" + self.workername + "-" + self.random_name | ||
199 | self.pool_name = "buildbot-disks" | ||
200 | |||
201 | def reconfigService(self, *args, **kwargs): | ||
202 | if 'build_wait_timeout' not in kwargs: | ||
203 | kwargs['build_wait_timeout'] = 0 | ||
204 | return super().reconfigService(*args, **kwargs) | ||
205 | |||
206 | def canStartBuild(self): | ||
207 | if self.domain and not self.isConnected(): | ||
208 | log.msg( | ||
209 | "Not accepting builds as existing domain but worker not connected") | ||
210 | return False | ||
211 | |||
212 | return super().canStartBuild() | ||
213 | |||
214 | @defer.inlineCallbacks | ||
215 | def _prepare_image(self): | ||
216 | log.msg("Creating temporary image {}".format(self.volume_name)) | ||
217 | pool = yield self.connection.lookup_pool(self.pool_name) | ||
218 | vol_xml = """ | ||
219 | <volume type='file'> | ||
220 | <name>{vol_name}</name> | ||
221 | <capacity unit='G'>10</capacity> | ||
222 | <target> | ||
223 | <format type='qcow2'/> | ||
224 | <permissions> | ||
225 | <mode>0600</mode> | ||
226 | <owner>0</owner> | ||
227 | <group>0</group> | ||
228 | </permissions> | ||
229 | </target> | ||
230 | <backingStore> | ||
231 | <path>/etc/libvirtd/base-images/buildbot.qcow2</path> | ||
232 | <format type='qcow2'/> | ||
233 | </backingStore> | ||
234 | </volume> | ||
235 | """.format(vol_name = self.volume_name) | ||
236 | self.volume = yield pool.create_volume(vol_xml) | ||
237 | |||
238 | @defer.inlineCallbacks | ||
239 | def start_instance(self, build): | ||
240 | """ | ||
241 | I start a new instance of a VM. | ||
242 | |||
243 | If a base_image is specified, I will make a clone of that otherwise i will | ||
244 | use image directly. | ||
245 | |||
246 | If i'm not given libvirt domain definition XML, I will look for my name | ||
247 | in the list of defined virtual machines and start that. | ||
248 | """ | ||
249 | domain_xml = """ | ||
250 | <domain type="kvm"> | ||
251 | <name>{domain_name}</name> | ||
252 | <memory unit="GiB">2</memory> | ||
253 | <vcpu>1</vcpu> | ||
254 | <sysinfo type='smbios'> | ||
255 | <oemStrings> | ||
256 | <entry>buildbot_master_url={master_url}</entry> | ||
257 | <entry>buildbot_worker_name={worker_name}</entry> | ||
258 | </oemStrings> | ||
259 | </sysinfo> | ||
260 | <os> | ||
261 | <type arch="x86_64">hvm</type> | ||
262 | <smbios mode='sysinfo'/> | ||
263 | </os> | ||
264 | <devices> | ||
265 | <emulator>/run/current-system/sw/bin/qemu-system-x86_64</emulator> | ||
266 | <disk type="volume" device="disk"> | ||
267 | <driver name='qemu' type='qcow2' /> | ||
268 | <source type="volume" pool="{pool_name}" volume="{volume_name}" /> | ||
269 | <backingStore type='volume'> | ||
270 | <format type='qcow2'/> | ||
271 | <source type="volume" pool="niximages" volume="buildbot.qcow2" /> | ||
272 | </backingStore> | ||
273 | <target dev="vda" bus="virtio"/> | ||
274 | </disk> | ||
275 | <input type="keyboard" bus="usb"/> | ||
276 | <graphics type="vnc" port="-1" autoport="yes"/> | ||
277 | <interface type="network"> | ||
278 | <source network="immae" /> | ||
279 | </interface> | ||
280 | </devices> | ||
281 | </domain> | ||
282 | """.format(volume_name = self.volume_name, master_url = self.master_url, pool_name = | ||
283 | self.pool_name, domain_name = self.domain_name, worker_name = self.workername) | ||
284 | |||
285 | yield self._prepare_image() | ||
286 | |||
287 | try: | ||
288 | self.domain = yield self.connection.create(domain_xml) | ||
289 | except Exception: | ||
290 | log.err(failure.Failure(), | ||
291 | ("Cannot start a VM ({}), failing gracefully and triggering" | ||
292 | "a new build check").format(self.workername)) | ||
293 | self.domain = None | ||
294 | return False | ||
295 | |||
296 | return [self.domain_name] | ||
297 | |||
298 | def stop_instance(self, fast=False): | ||
299 | """ | ||
300 | I attempt to stop a running VM. | ||
301 | I make sure any connection to the worker is removed. | ||
302 | If the VM was using a cloned image, I remove the clone | ||
303 | When everything is tidied up, I ask that bbot looks for work to do | ||
304 | """ | ||
305 | |||
306 | log.msg("Attempting to stop '{}'".format(self.workername)) | ||
307 | if self.domain is None: | ||
308 | log.msg("I don't think that domain is even running, aborting") | ||
309 | return defer.succeed(None) | ||
310 | |||
311 | domain = self.domain | ||
312 | self.domain = None | ||
313 | |||
314 | d = domain.destroy() | ||
315 | if self.volume is not None: | ||
316 | self.volume.destroy() | ||
317 | |||
318 | return d | ||
diff --git a/modules/private/buildbot/common/master.cfg b/modules/private/buildbot/common/master.cfg deleted file mode 100644 index abe08e0..0000000 --- a/modules/private/buildbot/common/master.cfg +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | # -*- python -*- | ||
2 | # ex: set filetype=python: | ||
3 | |||
4 | from buildbot.plugins import secrets, util, webhooks | ||
5 | from buildbot.util import bytes2unicode | ||
6 | import re | ||
7 | import os | ||
8 | from buildbot_config import E, configure | ||
9 | import json | ||
10 | |||
11 | class CustomBase(webhooks.base): | ||
12 | def getChanges(self, request): | ||
13 | try: | ||
14 | content = request.content.read() | ||
15 | args = json.loads(bytes2unicode(content)) | ||
16 | except Exception as e: | ||
17 | raise ValueError("Error loading JSON: " + str(e)) | ||
18 | |||
19 | args.setdefault("comments", "") | ||
20 | args.setdefault("repository", "") | ||
21 | args.setdefault("author", args.get("who")) | ||
22 | |||
23 | return ([args], None) | ||
24 | |||
25 | userInfoProvider = util.LdapUserInfo( | ||
26 | uri=E.LDAP_URL, | ||
27 | bindUser=E.LDAP_ADMIN_USER, | ||
28 | bindPw=open(E.SECRETS_FILE + "/ldap", "r").read().rstrip(), | ||
29 | accountBase=E.LDAP_BASE, | ||
30 | accountPattern=E.LDAP_PATTERN, | ||
31 | accountFullName='cn', | ||
32 | accountEmail='mail', | ||
33 | avatarData="jpegPhoto", | ||
34 | groupBase=E.LDAP_BASE, | ||
35 | groupName="cn", | ||
36 | groupMemberPattern=E.LDAP_GROUP_PATTERN, | ||
37 | ) | ||
38 | |||
39 | c = BuildmasterConfig = { | ||
40 | "title": E.TITLE, | ||
41 | "titleURL": E.TITLE_URL, | ||
42 | "db": { | ||
43 | "db_url": "sqlite:///state.sqlite" | ||
44 | }, | ||
45 | "protocols": { "pb": { "port": E.PB_SOCKET } }, | ||
46 | "workers": [], | ||
47 | "change_source": [], | ||
48 | "schedulers": [], | ||
49 | "builders": [], | ||
50 | "services": [], | ||
51 | "secretsProviders": [ | ||
52 | secrets.SecretInAFile(E.SECRETS_FILE), | ||
53 | ], | ||
54 | "www": { | ||
55 | "change_hook_dialects": { "base": { "custom_class": CustomBase } }, | ||
56 | "plugins": { | ||
57 | "waterfall_view": {}, | ||
58 | "console_view": {}, | ||
59 | "grid_view": {}, | ||
60 | "buildslist": {}, | ||
61 | }, | ||
62 | "auth": util.RemoteUserAuth( | ||
63 | header=b"X-Remote-User", | ||
64 | userInfoProvider=userInfoProvider, | ||
65 | headerRegex=re.compile(br"(?P<username>[^ @]+)")), | ||
66 | } | ||
67 | } | ||
68 | |||
69 | configure(c) | ||
diff --git a/modules/private/buildbot/default.nix b/modules/private/buildbot/default.nix deleted file mode 100644 index ec28b63..0000000 --- a/modules/private/buildbot/default.nix +++ /dev/null | |||
@@ -1,244 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | varDir = "/var/lib/buildbot"; | ||
4 | buildbot_common = pkgs.python3Packages.buildPythonPackage rec { | ||
5 | name = "buildbot_common"; | ||
6 | src = ./common; | ||
7 | format = "other"; | ||
8 | installPhase = '' | ||
9 | mkdir -p $out/${pkgs.python3.pythonForBuild.sitePackages} | ||
10 | cp -a $src $out/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_common | ||
11 | ''; | ||
12 | }; | ||
13 | buildbot = pkgs.python3Packages.buildbot-full; | ||
14 | in | ||
15 | { | ||
16 | options = { | ||
17 | myServices.buildbot.enable = lib.mkOption { | ||
18 | type = lib.types.bool; | ||
19 | default = false; | ||
20 | description = '' | ||
21 | Whether to enable buildbot. | ||
22 | ''; | ||
23 | }; | ||
24 | }; | ||
25 | |||
26 | config = lib.mkIf config.myServices.buildbot.enable { | ||
27 | ids.uids.buildbot = config.myEnv.buildbot.user.uid; | ||
28 | ids.gids.buildbot = config.myEnv.buildbot.user.gid; | ||
29 | |||
30 | users.groups.buildbot.gid = config.ids.gids.buildbot; | ||
31 | users.users.buildbot = { | ||
32 | name = "buildbot"; | ||
33 | uid = config.ids.uids.buildbot; | ||
34 | group = "buildbot"; | ||
35 | description = "Buildbot user"; | ||
36 | home = varDir; | ||
37 | extraGroups = [ "keys" ]; | ||
38 | }; | ||
39 | |||
40 | services.websites.env.tools.watchPaths = lib.attrsets.mapAttrsToList | ||
41 | (k: project: config.secrets.fullPaths."buildbot/${project.name}/webhook-httpd-include") | ||
42 | config.myEnv.buildbot.projects; | ||
43 | |||
44 | services.websites.env.tools.vhostConfs.git.extraConfig = lib.attrsets.mapAttrsToList (k: project: '' | ||
45 | RedirectMatch permanent "^/buildbot/${project.name}$" "/buildbot/${project.name}/" | ||
46 | RewriteEngine On | ||
47 | RewriteRule ^/buildbot/${project.name}/ws(.*)$ unix:///run/buildbot/${project.name}.sock|ws://git.immae.eu/ws$1 [P,NE,QSA,L] | ||
48 | ProxyPass /buildbot/${project.name}/ unix:///run/buildbot/${project.name}.sock|http://${project.name}-git.immae.eu/ | ||
49 | ProxyPassReverse /buildbot/${project.name}/ unix:///run/buildbot/${project.name}.sock|http://${project.name}-git.immae.eu/ | ||
50 | <Location /buildbot/${project.name}/> | ||
51 | Use LDAPConnect | ||
52 | Require ldap-group cn=users,ou=${project.name},cn=buildbot,ou=services,dc=immae,dc=eu | ||
53 | |||
54 | SetEnvIf X-Url-Scheme https HTTPS=1 | ||
55 | ProxyPreserveHost On | ||
56 | </Location> | ||
57 | <Location /buildbot/${project.name}/change_hook/base> | ||
58 | <RequireAny> | ||
59 | Require local | ||
60 | Require ldap-group cn=users,ou=${project.name},cn=buildbot,ou=services,dc=immae,dc=eu | ||
61 | Include ${config.secrets.fullPaths."buildbot/${project.name}/webhook-httpd-include"} | ||
62 | </RequireAny> | ||
63 | </Location> | ||
64 | '') config.myEnv.buildbot.projects; | ||
65 | |||
66 | system.activationScripts = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" { | ||
67 | deps = [ "users" "wrappers" ]; | ||
68 | text = '' | ||
69 | install -m 755 -o buildbot -g buildbot -d ${varDir}/${project.name} | ||
70 | |||
71 | ${project.activationScript} | ||
72 | ''; | ||
73 | }) config.myEnv.buildbot.projects; | ||
74 | |||
75 | secrets.keys = lib.listToAttrs ( | ||
76 | lib.lists.flatten ( | ||
77 | lib.attrsets.mapAttrsToList (k: project: | ||
78 | lib.attrsets.mapAttrsToList (k: v: | ||
79 | (lib.nameValuePair "buildbot/${project.name}/${k}" { | ||
80 | permissions = "0600"; | ||
81 | user = "buildbot"; | ||
82 | group = "buildbot"; | ||
83 | text = v; | ||
84 | }) | ||
85 | ) project.secrets | ||
86 | ++ [ | ||
87 | (lib.nameValuePair "buildbot/${project.name}/webhook-httpd-include" { | ||
88 | permissions = "0600"; | ||
89 | user = "wwwrun"; | ||
90 | group = "wwwrun"; | ||
91 | text = lib.optionalString (project.webhookTokens != null) '' | ||
92 | Require expr "req('Access-Key') in { ${builtins.concatStringsSep ", " (map (x: "'${x}'") project.webhookTokens)} }" | ||
93 | ''; | ||
94 | }) | ||
95 | (lib.nameValuePair "buildbot/${project.name}/environment_file" { | ||
96 | permissions = "0600"; | ||
97 | user = "buildbot"; | ||
98 | group = "buildbot"; | ||
99 | text = let | ||
100 | project_env = with lib.attrsets; | ||
101 | mapAttrs' (k: v: nameValuePair "BUILDBOT_${k}" v) project.environment // | ||
102 | mapAttrs' (k: v: nameValuePair "BUILDBOT_PATH_${k}" (v pkgs)) (attrByPath ["builderPaths"] {} project) // | ||
103 | { | ||
104 | BUILDBOT_PROJECT_DIR = ./projects + "/${project.name}"; | ||
105 | BUILDBOT_WORKER_PORT = builtins.toString project.workerPort; | ||
106 | BUILDBOT_HOST = config.hostEnv.fqdn; | ||
107 | BUILDBOT_VIRT_URL = "qemu+ssh://libvirt@dilion.immae.eu/system"; | ||
108 | }; | ||
109 | in builtins.concatStringsSep "\n" | ||
110 | (lib.mapAttrsToList (envK: envV: "${envK}=${envV}") project_env); | ||
111 | }) | ||
112 | ] | ||
113 | ) config.myEnv.buildbot.projects | ||
114 | ) | ||
115 | ) // { | ||
116 | "buildbot/ldap" = { | ||
117 | permissions = "0600"; | ||
118 | user = "buildbot"; | ||
119 | group = "buildbot"; | ||
120 | text = config.myEnv.buildbot.ldap.password; | ||
121 | }; | ||
122 | "buildbot/worker_password" = { | ||
123 | permissions = "0600"; | ||
124 | user = "buildbot"; | ||
125 | group = "buildbot"; | ||
126 | text = config.myEnv.buildbot.workerPassword; | ||
127 | }; | ||
128 | "buildbot/ssh_key" = { | ||
129 | permissions = "0600"; | ||
130 | user = "buildbot"; | ||
131 | group = "buildbot"; | ||
132 | text = config.myEnv.buildbot.ssh_key.private; | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | services.filesWatcher = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" { | ||
137 | restart = true; | ||
138 | paths = [ | ||
139 | config.secrets.fullPaths."buildbot/ldap" | ||
140 | config.secrets.fullPaths."buildbot/worker_password" | ||
141 | config.secrets.fullPaths."buildbot/ssh_key" | ||
142 | config.secrets.fullPaths."buildbot/${project.name}/environment_file" | ||
143 | ] ++ lib.attrsets.mapAttrsToList (k: v: config.secrets.fullPaths."buildbot/${project.name}/${k}") project.secrets; | ||
144 | }) config.myEnv.buildbot.projects; | ||
145 | |||
146 | systemd.slices.buildbot = { | ||
147 | description = "buildbot slice"; | ||
148 | }; | ||
149 | |||
150 | networking.firewall.allowedTCPPorts = lib.attrsets.mapAttrsToList (k: v: v.workerPort) config.myEnv.buildbot.projects; | ||
151 | systemd.services = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" { | ||
152 | description = "Buildbot Continuous Integration Server ${project.name}."; | ||
153 | after = [ "network-online.target" ]; | ||
154 | wantedBy = [ "multi-user.target" ]; | ||
155 | path = project.packages pkgs ++ (project.pythonPackages buildbot.pythonModule pkgs); | ||
156 | preStart = let | ||
157 | master-cfg = "${buildbot_common}/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_common/master.cfg"; | ||
158 | tac_file = pkgs.writeText "buildbot.tac" '' | ||
159 | import os | ||
160 | |||
161 | from twisted.application import service | ||
162 | from buildbot.master import BuildMaster | ||
163 | |||
164 | basedir = '${varDir}/${project.name}' | ||
165 | rotateLength = 10000000 | ||
166 | maxRotatedFiles = 10 | ||
167 | configfile = '${master-cfg}' | ||
168 | |||
169 | # Default umask for server | ||
170 | umask = None | ||
171 | |||
172 | # if this is a relocatable tac file, get the directory containing the TAC | ||
173 | if basedir == '.': | ||
174 | import os | ||
175 | basedir = os.path.abspath(os.path.dirname(__file__)) | ||
176 | |||
177 | # note: this line is matched against to check that this is a buildmaster | ||
178 | # directory; do not edit it. | ||
179 | application = service.Application('buildmaster') | ||
180 | from twisted.python.logfile import LogFile | ||
181 | from twisted.python.log import ILogObserver, FileLogObserver | ||
182 | logfile = LogFile.fromFullPath(os.path.join(basedir, "twistd.log"), rotateLength=rotateLength, | ||
183 | maxRotatedFiles=maxRotatedFiles) | ||
184 | application.setComponent(ILogObserver, FileLogObserver(logfile).emit) | ||
185 | |||
186 | m = BuildMaster(basedir, configfile, umask) | ||
187 | m.setServiceParent(application) | ||
188 | m.log_rotation.rotateLength = rotateLength | ||
189 | m.log_rotation.maxRotatedFiles = maxRotatedFiles | ||
190 | ''; | ||
191 | in '' | ||
192 | if [ ! -f ${varDir}/${project.name}/buildbot.tac ]; then | ||
193 | ${buildbot}/bin/buildbot create-master -c "${master-cfg}" "${varDir}/${project.name}" | ||
194 | rm -f ${varDir}/${project.name}/master.cfg.sample | ||
195 | rm -f ${varDir}/${project.name}/buildbot.tac | ||
196 | fi | ||
197 | ln -sf ${tac_file} ${varDir}/${project.name}/buildbot.tac | ||
198 | # different buildbots may be trying that simultaneously, add the || true to avoid complaining in case of race | ||
199 | install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/ssh_key"} ${varDir}/buildbot_key || true | ||
200 | buildbot_secrets=${varDir}/${project.name}/secrets | ||
201 | install -m 0700 -o buildbot -g buildbot -d $buildbot_secrets | ||
202 | install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/ldap"} $buildbot_secrets/ldap | ||
203 | install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/worker_password"} $buildbot_secrets/worker_password | ||
204 | ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList | ||
205 | (k: v: "install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/${project.name}/${k}"} $buildbot_secrets/${k}") project.secrets | ||
206 | )} | ||
207 | ${buildbot}/bin/buildbot upgrade-master ${varDir}/${project.name} | ||
208 | ''; | ||
209 | environment = let | ||
210 | buildbot_config = pkgs.python3Packages.buildPythonPackage (rec { | ||
211 | name = "buildbot_config-${project.name}"; | ||
212 | src = ./projects + "/${project.name}"; | ||
213 | format = "other"; | ||
214 | installPhase = '' | ||
215 | mkdir -p $out/${pkgs.python3.pythonForBuild.sitePackages} | ||
216 | cp -a $src $out/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_config | ||
217 | ''; | ||
218 | }); | ||
219 | HOME = "${varDir}/${project.name}"; | ||
220 | PYTHONPATH = "${buildbot.pythonModule.withPackages (self: project.pythonPackages self pkgs ++ [ | ||
221 | pkgs.python3Packages.libvirt | ||
222 | pkgs.python3Packages.wokkel | ||
223 | pkgs.python3Packages.treq pkgs.python3Packages.ldap3 buildbot | ||
224 | pkgs.python3Packages.buildbot-worker | ||
225 | buildbot_common buildbot_config | ||
226 | ])}/${buildbot.pythonModule.sitePackages}${if project.pythonPathHome then ":${varDir}/${project.name}/.local/${pkgs.python3.pythonForBuild.sitePackages}" else ""}"; | ||
227 | in { inherit PYTHONPATH HOME; }; | ||
228 | |||
229 | serviceConfig = { | ||
230 | Slice = "buildbot.slice"; | ||
231 | Type = "forking"; | ||
232 | User = "buildbot"; | ||
233 | Group = "buildbot"; | ||
234 | RuntimeDirectory = "buildbot"; | ||
235 | RuntimeDirectoryPreserve = "yes"; | ||
236 | StateDirectory = "buildbot"; | ||
237 | SupplementaryGroups = "keys"; | ||
238 | WorkingDirectory = "${varDir}/${project.name}"; | ||
239 | ExecStart = "${buildbot}/bin/buildbot start"; | ||
240 | EnvironmentFile = config.secrets.fullPaths."buildbot/${project.name}/environment_file"; | ||
241 | }; | ||
242 | }) config.myEnv.buildbot.projects; | ||
243 | }; | ||
244 | } | ||
diff --git a/modules/private/buildbot/projects/caldance/__init__.py b/modules/private/buildbot/projects/caldance/__init__.py deleted file mode 100644 index 2074d9e..0000000 --- a/modules/private/buildbot/projects/caldance/__init__.py +++ /dev/null | |||
@@ -1,198 +0,0 @@ | |||
1 | from buildbot.plugins import * | ||
2 | from buildbot_common.build_helpers import * | ||
3 | import os | ||
4 | from buildbot.util import bytes2unicode | ||
5 | import json | ||
6 | |||
7 | __all__ = [ "configure", "E" ] | ||
8 | |||
9 | class E(): | ||
10 | PROJECT = "caldance" | ||
11 | BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT) | ||
12 | SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT) | ||
13 | PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT) | ||
14 | RELEASE_PATH = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT) | ||
15 | RELEASE_URL = "https://release.immae.eu/{}".format(PROJECT) | ||
16 | GIT_URL = "gitolite@git.immae.eu:perso/simon_descarpentries/www.cal-dance.com" | ||
17 | SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key" | ||
18 | SSH_HOST_KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFbhFTl2A2RJn5L51yxJM4XfCS2ZaiSX/jo9jFSdghF" | ||
19 | LDAP_HOST = "ldap.immae.eu" | ||
20 | LDAP_DN = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
21 | LDAP_ROLES_BASE = "ou=roles,ou=hosts,dc=immae,dc=eu" | ||
22 | XMPP_RECIPIENTS = os.environ["BUILDBOT_XMPP_RECIPIENTS"].split(" ") | ||
23 | |||
24 | PUPPET_HOST = { | ||
25 | "integration": [ "-p8022", "root@caldance.cs.immae.dev"], | ||
26 | } | ||
27 | |||
28 | # master.cfg | ||
29 | SECRETS_FILE = os.getcwd() + "/secrets" | ||
30 | LDAP_URL = "ldaps://ldap.immae.eu:636" | ||
31 | LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
32 | LDAP_BASE = "dc=immae,dc=eu" | ||
33 | LDAP_PATTERN = "(uid=%(username)s)" | ||
34 | LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=caldance,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))" | ||
35 | TITLE_URL = "https://caldance.cs.immae.dev" | ||
36 | TITLE = "Caldance" | ||
37 | |||
38 | class CustomBase(webhooks.base): | ||
39 | def getChanges(self, request): | ||
40 | try: | ||
41 | content = request.content.read() | ||
42 | args = json.loads(bytes2unicode(content)) | ||
43 | except Exception as e: | ||
44 | raise ValueError("Error loading JSON: " + str(e)) | ||
45 | |||
46 | args.setdefault("comments", "") | ||
47 | args.setdefault("repository", "") | ||
48 | args.setdefault("author", args.get("who", "unknown")) | ||
49 | |||
50 | if args["category"] == "deploy_webhook": | ||
51 | args = { | ||
52 | "category": "deploy_webhook", | ||
53 | "comments": "", | ||
54 | "repository": "", | ||
55 | "author": "webhook", | ||
56 | "project": "Caldance", | ||
57 | "properties": { | ||
58 | "environment": args.get("environment", "integration"), | ||
59 | "build": "caldance_{}.tar.gz".format(args.get("build", "master")) | ||
60 | } | ||
61 | } | ||
62 | |||
63 | return ([args], None) | ||
64 | |||
65 | def deploy_hook_scheduler(project, timer=1): | ||
66 | return schedulers.AnyBranchScheduler( | ||
67 | change_filter=util.ChangeFilter(category="deploy_webhook", project=project), | ||
68 | name="{}_deploy".format(project), treeStableTimer=timer, builderNames=["{}_deploy".format(project)]) | ||
69 | |||
70 | def configure(c): | ||
71 | c["buildbotURL"] = E.BUILDBOT_URL | ||
72 | c["www"]["port"] = E.SOCKET | ||
73 | |||
74 | c["www"]["change_hook_dialects"]["base"] = { | ||
75 | "custom_class": CustomBase | ||
76 | } | ||
77 | c['workers'].append(worker.LocalWorker("generic-worker")) | ||
78 | c['workers'].append(worker.LocalWorker("deploy-worker")) | ||
79 | |||
80 | db_lock = util.MasterLock("deploy_after_build") | ||
81 | |||
82 | c['schedulers'].append(hook_scheduler("Caldance", timer=1)) | ||
83 | c['schedulers'].append(force_scheduler("force_caldance", ["Caldance_build"])) | ||
84 | c['schedulers'].append(deploy_scheduler("deploy_caldance", ["Caldance_deploy"])) | ||
85 | c['schedulers'].append(deploy_hook_scheduler("Caldance", timer=1)) | ||
86 | |||
87 | c['builders'].append(factory("caldance", locks=[db_lock.access('exclusive')])) | ||
88 | |||
89 | c['builders'].append(deploy_factory("caldance", locks=[db_lock.access('exclusive')])) | ||
90 | |||
91 | c['services'].append(SlackStatusPush( | ||
92 | name="slack_status_caldance", | ||
93 | builders=["Caldance_build", "Caldance_deploy"], | ||
94 | serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip())) | ||
95 | c['services'].append(XMPPStatusPush( | ||
96 | name="xmpp_status_caldance", | ||
97 | builders=["Caldance_build", "Caldance_deploy"], | ||
98 | recipients=E.XMPP_RECIPIENTS, | ||
99 | password=open(E.SECRETS_FILE + "/notify_xmpp_password", "r").read().rstrip())) | ||
100 | |||
101 | def factory(project, locks=[], ignore_fails=False): | ||
102 | release_file = "{1}/{0}_%(kw:clean_branch)s.tar.gz" | ||
103 | |||
104 | package = util.Interpolate("{0}_%(kw:clean_branch)s.tar.gz".format(project), clean_branch=clean_branch) | ||
105 | package_dest = util.Interpolate(release_file.format(project, E.RELEASE_PATH), clean_branch=clean_branch) | ||
106 | package_url = util.Interpolate(release_file.format(project, E.RELEASE_URL), clean_branch=clean_branch) | ||
107 | |||
108 | factory = util.BuildFactory() | ||
109 | factory.addStep(steps.Git(logEnviron=False, repourl=E.GIT_URL, | ||
110 | sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
111 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
112 | factory.addSteps(package_and_upload(package, package_dest, package_url)) | ||
113 | |||
114 | return util.BuilderConfig( | ||
115 | name="{}_build".format(project.capitalize()), | ||
116 | locks=locks, | ||
117 | workernames=["generic-worker"], factory=factory) | ||
118 | |||
119 | def compute_build_infos(project): | ||
120 | @util.renderer | ||
121 | def compute(props): | ||
122 | import re, hashlib | ||
123 | build_file = props.getProperty("build") | ||
124 | package_dest = "{1}/{0}".format(build_file, E.RELEASE_PATH) | ||
125 | version = re.match(r"{0}_(.*).tar.gz".format(project), build_file).group(1) | ||
126 | with open(package_dest, "rb") as f: | ||
127 | sha = hashlib.sha256(f.read()).hexdigest() | ||
128 | return { | ||
129 | "build_version": version, | ||
130 | "build_hash": sha, | ||
131 | } | ||
132 | return compute | ||
133 | |||
134 | @util.renderer | ||
135 | def puppet_ssh_command(props): | ||
136 | environment = props["environment"] if props.hasProperty("environment") else "integration" | ||
137 | ssh_command = [ | ||
138 | "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", | ||
139 | "-i", E.SSH_KEY_PATH ] | ||
140 | return ssh_command + E.PUPPET_HOST.get(environment, ["host.invalid"]) | ||
141 | |||
142 | def deploy_factory(project, locks=[]): | ||
143 | package_dest = util.Interpolate("{0}/%(prop:build)s".format(E.RELEASE_PATH)) | ||
144 | |||
145 | factory = util.BuildFactory() | ||
146 | factory.addStep(steps.MasterShellCommand(command=["test", "-f", package_dest])) | ||
147 | factory.addStep(steps.SetProperties(properties=compute_build_infos(project))) | ||
148 | factory.addStep(LdapPush(environment=util.Property("environment"), | ||
149 | project=project, build_version=util.Property("build_version"), | ||
150 | build_hash=util.Property("build_hash"), ldap_password=util.Secret("ldap"))) | ||
151 | factory.addStep(steps.MasterShellCommand(command=puppet_ssh_command)) | ||
152 | return util.BuilderConfig( | ||
153 | name="{}_deploy".format(project.capitalize()), | ||
154 | locks=locks, | ||
155 | workernames=["deploy-worker"], factory=factory) | ||
156 | |||
157 | from twisted.internet import defer | ||
158 | from buildbot.process.buildstep import FAILURE | ||
159 | from buildbot.process.buildstep import SUCCESS | ||
160 | from buildbot.process.buildstep import BuildStep | ||
161 | |||
162 | class LdapPush(BuildStep): | ||
163 | name = "LdapPush" | ||
164 | renderables = ["environment", "project", "build_version", "build_hash", "ldap_password"] | ||
165 | |||
166 | def __init__(self, **kwargs): | ||
167 | self.environment = kwargs.pop("environment") | ||
168 | self.project = kwargs.pop("project") | ||
169 | self.build_version = kwargs.pop("build_version") | ||
170 | self.build_hash = kwargs.pop("build_hash") | ||
171 | self.ldap_password = kwargs.pop("ldap_password") | ||
172 | self.ldap_host = kwargs.pop("ldap_host", E.LDAP_HOST) | ||
173 | super().__init__(**kwargs) | ||
174 | |||
175 | def run(self): | ||
176 | import json | ||
177 | from ldap3 import Reader, Writer, Server, Connection, ObjectDef | ||
178 | server = Server(self.ldap_host) | ||
179 | conn = Connection(server, | ||
180 | user=E.LDAP_DN, | ||
181 | password=self.ldap_password) | ||
182 | conn.bind() | ||
183 | obj = ObjectDef("immaePuppetClass", conn) | ||
184 | r = Reader(conn, obj, | ||
185 | "cn=caldance.{},{}".format(self.environment, E.LDAP_ROLES_BASE)) | ||
186 | r.search() | ||
187 | if len(r) > 0: | ||
188 | w = Writer.from_cursor(r) | ||
189 | for value in w[0].immaePuppetJson.values: | ||
190 | config = json.loads(value) | ||
191 | if "role::caldance::{}_version".format(self.project) in config: | ||
192 | config["role::caldance::{}_version".format(self.project)] = self.build_version | ||
193 | config["role::caldance::{}_sha256".format(self.project)] = self.build_hash | ||
194 | w[0].immaePuppetJson -= value | ||
195 | w[0].immaePuppetJson += json.dumps(config, indent=" ") | ||
196 | w.commit() | ||
197 | return defer.succeed(SUCCESS) | ||
198 | return defer.succeed(FAILURE) | ||
diff --git a/modules/private/buildbot/projects/cryptoportfolio/__init__.py b/modules/private/buildbot/projects/cryptoportfolio/__init__.py deleted file mode 100644 index 5d70f95..0000000 --- a/modules/private/buildbot/projects/cryptoportfolio/__init__.py +++ /dev/null | |||
@@ -1,169 +0,0 @@ | |||
1 | from buildbot.plugins import * | ||
2 | from buildbot_common.build_helpers import * | ||
3 | import os | ||
4 | |||
5 | __all__ = [ "configure", "E" ] | ||
6 | |||
7 | class E(): | ||
8 | PROJECT = "cryptoportfolio" | ||
9 | BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT) | ||
10 | SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT) | ||
11 | PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT) | ||
12 | RELEASE_PATH = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT) | ||
13 | RELEASE_URL = "https://release.immae.eu/{}".format(PROJECT) | ||
14 | GIT_URL = "https://git.immae.eu/perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/{0}.git" | ||
15 | SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key" | ||
16 | LDAP_HOST = "ldap.immae.eu" | ||
17 | LDAP_DN = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
18 | LDAP_ROLES_BASE = "ou=roles,ou=hosts,dc=immae,dc=eu" | ||
19 | |||
20 | PUPPET_HOST = { | ||
21 | "production": "root@cryptoportfolio.immae.eu", | ||
22 | "integration": "root@cryptoportfolio-dev.immae.eu" | ||
23 | } | ||
24 | |||
25 | # master.cfg | ||
26 | SECRETS_FILE = os.getcwd() + "/secrets" | ||
27 | LDAP_URL = "ldaps://ldap.immae.eu:636" | ||
28 | LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
29 | LDAP_BASE = "dc=immae,dc=eu" | ||
30 | LDAP_PATTERN = "(uid=%(username)s)" | ||
31 | LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=cryptoportfolio,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))" | ||
32 | TITLE_URL = "https://git.immae.eu" | ||
33 | TITLE = "Cryptoportfolio" | ||
34 | |||
35 | # eval .. dans .zshrc_local | ||
36 | # mkdir -p $BUILD/go | ||
37 | # export GOPATH=$BUILD/go | ||
38 | # go get -u github.com/golang/dep/cmd/dep | ||
39 | # export PATH=$PATH:$BUILD/go/bin | ||
40 | # go get git.immae.eu/Cryptoportfolio/Front.git | ||
41 | # cd $BUILD/go/src/git.immae.eu/Cryptoportfolio/Front.git | ||
42 | # git checkout dev | ||
43 | # dep ensure | ||
44 | def configure(c): | ||
45 | c["buildbotURL"] = E.BUILDBOT_URL | ||
46 | c["www"]["port"] = E.SOCKET | ||
47 | |||
48 | c['workers'].append(worker.LocalWorker("generic-worker")) | ||
49 | c['workers'].append(worker.LocalWorker("deploy-worker")) | ||
50 | |||
51 | c['schedulers'].append(hook_scheduler("Trader")) | ||
52 | c['schedulers'].append(hook_scheduler("Front")) | ||
53 | c['schedulers'].append(force_scheduler( | ||
54 | "force_cryptoportfolio", ["Trader_build", "Front_build"])) | ||
55 | c['schedulers'].append(deploy_scheduler("deploy_cryptoportfolio", | ||
56 | ["Trader_deploy", "Front_deploy"])) | ||
57 | |||
58 | c['builders'].append(factory("trader")) | ||
59 | c['builders'].append(factory("front", ignore_fails=True)) | ||
60 | |||
61 | c['builders'].append(deploy_factory("trader")) | ||
62 | c['builders'].append(deploy_factory("front")) | ||
63 | |||
64 | c['services'].append(SlackStatusPush( | ||
65 | name="slack_status_cryptoportfolio", | ||
66 | builders=["Front_build", "Trader_build", "Front_deploy", "Trader_deploy"], | ||
67 | serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip())) | ||
68 | |||
69 | def factory(project, ignore_fails=False): | ||
70 | release_file = "{1}/{0}/{0}_%(kw:clean_branch)s.tar.gz" | ||
71 | |||
72 | url = E.GIT_URL.format(project.capitalize()) | ||
73 | |||
74 | package = util.Interpolate("{0}_%(kw:clean_branch)s.tar.gz".format(project), clean_branch=clean_branch) | ||
75 | package_dest = util.Interpolate(release_file.format(project, E.RELEASE_PATH), clean_branch=clean_branch) | ||
76 | package_url = util.Interpolate(release_file.format(project, E.RELEASE_URL), clean_branch=clean_branch) | ||
77 | |||
78 | factory = util.BuildFactory() | ||
79 | factory.addStep(steps.Git(logEnviron=False, repourl=url, | ||
80 | mode="full", method="copy")) | ||
81 | factory.addStep(steps.ShellCommand(name="make install", | ||
82 | logEnviron=False, haltOnFailure=(not ignore_fails), | ||
83 | warnOnFailure=ignore_fails, flunkOnFailure=(not ignore_fails), | ||
84 | command=["make", "install"])) | ||
85 | factory.addStep(steps.ShellCommand(name="make test", | ||
86 | logEnviron=False, haltOnFailure=(not ignore_fails), | ||
87 | warnOnFailure=ignore_fails, flunkOnFailure=(not ignore_fails), | ||
88 | command=["make", "test"])) | ||
89 | factory.addSteps(package_and_upload(package, package_dest, package_url)) | ||
90 | |||
91 | return util.BuilderConfig( | ||
92 | name="{}_build".format(project.capitalize()), | ||
93 | workernames=["generic-worker"], factory=factory) | ||
94 | |||
95 | def compute_build_infos(project): | ||
96 | @util.renderer | ||
97 | def compute(props): | ||
98 | import re, hashlib | ||
99 | build_file = props.getProperty("build") | ||
100 | package_dest = "{2}/{0}/{1}".format(project, build_file, E.RELEASE_PATH) | ||
101 | version = re.match(r"{0}_(.*).tar.gz".format(project), build_file).group(1) | ||
102 | with open(package_dest, "rb") as f: | ||
103 | sha = hashlib.sha256(f.read()).hexdigest() | ||
104 | return { | ||
105 | "build_version": version, | ||
106 | "build_hash": sha, | ||
107 | } | ||
108 | return compute | ||
109 | |||
110 | @util.renderer | ||
111 | def puppet_host(props): | ||
112 | environment = props["environment"] if props.hasProperty("environment") else "integration" | ||
113 | return E.PUPPET_HOST.get(environment, "host.invalid") | ||
114 | |||
115 | def deploy_factory(project): | ||
116 | package_dest = util.Interpolate("{1}/{0}/%(prop:build)s".format(project, E.RELEASE_PATH)) | ||
117 | |||
118 | factory = util.BuildFactory() | ||
119 | factory.addStep(steps.MasterShellCommand(command=["test", "-f", package_dest])) | ||
120 | factory.addStep(steps.SetProperties(properties=compute_build_infos(project))) | ||
121 | factory.addStep(LdapPush(environment=util.Property("environment"), | ||
122 | project=project, build_version=util.Property("build_version"), | ||
123 | build_hash=util.Property("build_hash"), ldap_password=util.Secret("ldap"))) | ||
124 | factory.addStep(steps.MasterShellCommand(command=[ | ||
125 | "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", "-i", E.SSH_KEY_PATH, puppet_host])) | ||
126 | return util.BuilderConfig(name="{}_deploy".format(project.capitalize()), workernames=["deploy-worker"], factory=factory) | ||
127 | |||
128 | from twisted.internet import defer | ||
129 | from buildbot.process.buildstep import FAILURE | ||
130 | from buildbot.process.buildstep import SUCCESS | ||
131 | from buildbot.process.buildstep import BuildStep | ||
132 | |||
133 | class LdapPush(BuildStep): | ||
134 | name = "LdapPush" | ||
135 | renderables = ["environment", "project", "build_version", "build_hash", "ldap_password"] | ||
136 | |||
137 | def __init__(self, **kwargs): | ||
138 | self.environment = kwargs.pop("environment") | ||
139 | self.project = kwargs.pop("project") | ||
140 | self.build_version = kwargs.pop("build_version") | ||
141 | self.build_hash = kwargs.pop("build_hash") | ||
142 | self.ldap_password = kwargs.pop("ldap_password") | ||
143 | self.ldap_host = kwargs.pop("ldap_host", E.LDAP_HOST) | ||
144 | super().__init__(**kwargs) | ||
145 | |||
146 | def run(self): | ||
147 | import json | ||
148 | from ldap3 import Reader, Writer, Server, Connection, ObjectDef | ||
149 | server = Server(self.ldap_host) | ||
150 | conn = Connection(server, | ||
151 | user=E.LDAP_DN, | ||
152 | password=self.ldap_password) | ||
153 | conn.bind() | ||
154 | obj = ObjectDef("immaePuppetClass", conn) | ||
155 | r = Reader(conn, obj, | ||
156 | "cn=cryptoportfolio.{},{}".format(self.environment, E.LDAP_ROLES_BASE)) | ||
157 | r.search() | ||
158 | if len(r) > 0: | ||
159 | w = Writer.from_cursor(r) | ||
160 | for value in w[0].immaePuppetJson.values: | ||
161 | config = json.loads(value) | ||
162 | if "role::cryptoportfolio::{}_version".format(self.project) in config: | ||
163 | config["role::cryptoportfolio::{}_version".format(self.project)] = self.build_version | ||
164 | config["role::cryptoportfolio::{}_sha256".format(self.project)] = self.build_hash | ||
165 | w[0].immaePuppetJson -= value | ||
166 | w[0].immaePuppetJson += json.dumps(config, indent=" ") | ||
167 | w.commit() | ||
168 | return defer.succeed(SUCCESS) | ||
169 | return defer.succeed(FAILURE) | ||
diff --git a/modules/private/buildbot/projects/denise/__init__.py b/modules/private/buildbot/projects/denise/__init__.py deleted file mode 100644 index abeba3c..0000000 --- a/modules/private/buildbot/projects/denise/__init__.py +++ /dev/null | |||
@@ -1,186 +0,0 @@ | |||
1 | from buildbot.plugins import * | ||
2 | from buildbot_common.build_helpers import * | ||
3 | import os | ||
4 | from buildbot.util import bytes2unicode | ||
5 | import json | ||
6 | |||
7 | __all__ = [ "configure", "E" ] | ||
8 | |||
9 | class E(): | ||
10 | PROJECT = "denise" | ||
11 | BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT) | ||
12 | SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT) | ||
13 | PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT) | ||
14 | SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key" | ||
15 | SSH_HOST_KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFbhFTl2A2RJn5L51yxJM4XfCS2ZaiSX/jo9jFSdghF" | ||
16 | |||
17 | BINGO_RELEASE_PATH = "/var/lib/buildbot/outputs/denise/bingo" | ||
18 | BINGO_BETA_PATH = "/var/lib/buildbot/outputs/denise/bingo_beta" | ||
19 | BINGO_GIT_URL = "gitolite@git.immae.eu:perso/Denise/bingo" | ||
20 | |||
21 | OMS_RELEASE_PATH = "/var/lib/buildbot/outputs/denise/oms" | ||
22 | OMS_BETA_PATH = "/var/lib/buildbot/outputs/denise/oms_beta" | ||
23 | OMS_GIT_URL = "gitolite@git.immae.eu:perso/Denise/oms" | ||
24 | |||
25 | AVENTURIERS_RELEASE_PATH = "/var/lib/buildbot/outputs/denise/aventuriers" | ||
26 | AVENTURIERS_GIT_URL = "https://git.immae.eu/perso/Denise/aventuriers.git" | ||
27 | |||
28 | # master.cfg | ||
29 | SECRETS_FILE = os.getcwd() + "/secrets" | ||
30 | LDAP_URL = "ldaps://ldap.immae.eu:636" | ||
31 | LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
32 | LDAP_BASE = "dc=immae,dc=eu" | ||
33 | LDAP_PATTERN = "(uid=%(username)s)" | ||
34 | LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=denise,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))" | ||
35 | TITLE_URL = "https://oms.syanni.eu" | ||
36 | TITLE = "Syanni website" | ||
37 | |||
38 | class CustomBase(webhooks.base): | ||
39 | def getChanges(self, request): | ||
40 | try: | ||
41 | content = request.content.read() | ||
42 | args = json.loads(bytes2unicode(content)) | ||
43 | except Exception as e: | ||
44 | raise ValueError("Error loading JSON: " + str(e)) | ||
45 | |||
46 | args.setdefault("comments", "") | ||
47 | args.setdefault("repository", "") | ||
48 | args.setdefault("author", args.get("who", "unknown")) | ||
49 | |||
50 | return ([args], None) | ||
51 | |||
52 | def configure(c): | ||
53 | c["buildbotURL"] = E.BUILDBOT_URL | ||
54 | c["www"]["port"] = E.SOCKET | ||
55 | |||
56 | c["www"]["change_hook_dialects"]["base"] = { | ||
57 | "custom_class": CustomBase | ||
58 | } | ||
59 | c['workers'].append(worker.LocalWorker("generic-worker-denise")) | ||
60 | |||
61 | c['schedulers'].append(hook_scheduler("DeniseBingo", timer=1)) | ||
62 | c['schedulers'].append(hook_scheduler("DeniseOMS", timer=1)) | ||
63 | c['schedulers'].append(hook_scheduler("DeniseAventuriers", timer=1)) | ||
64 | c['schedulers'].append(force_scheduler("force_denise", [ | ||
65 | "DeniseBingo_build", "DeniseOMS_build", "DeniseAventuriers_build" | ||
66 | ])) | ||
67 | |||
68 | c['builders'].append(denise_oms_factory()) | ||
69 | c['builders'].append(denise_bingo_factory()) | ||
70 | c['builders'].append(denise_aventuriers_factory()) | ||
71 | |||
72 | def denise_bingo_factory(): | ||
73 | @util.renderer | ||
74 | def bingo_run_path(props): | ||
75 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
76 | return "/run/denise_bingo/gunicorn.pid" | ||
77 | else: | ||
78 | return "/run/denise_bingo_beta/gunicorn.pid" | ||
79 | |||
80 | @util.renderer | ||
81 | def bingo_systemd_service(props): | ||
82 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
83 | return "denise-bingo" | ||
84 | else: | ||
85 | return "denise-bingo-beta" | ||
86 | |||
87 | @util.renderer | ||
88 | def bingo_url(props): | ||
89 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
90 | return "https://bingo.syanni.eu" | ||
91 | else: | ||
92 | return "https://beta.bingo.syanni.eu" | ||
93 | |||
94 | @util.renderer | ||
95 | def bingo_path(props): | ||
96 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
97 | return E.BINGO_RELEASE_PATH | ||
98 | else: | ||
99 | return E.BINGO_BETA_PATH | ||
100 | |||
101 | factory = util.BuildFactory() | ||
102 | factory.addStep(steps.Git(logEnviron=False, repourl=E.BINGO_GIT_URL, | ||
103 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
104 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
105 | factory.addStep(steps.MasterShellCommand(command=util.Interpolate("rm -rf %(kw:bingo_path)s", bingo_path=bingo_path))) | ||
106 | factory.addStep(steps.DirectoryUpload(workersrc="../source", | ||
107 | masterdest=bingo_path, | ||
108 | url=bingo_url)) | ||
109 | factory.addStep(steps.MasterShellCommand(command=util.Interpolate("chmod -R a+rX %(kw:bingo_path)s", bingo_path=bingo_path))) | ||
110 | factory.addStep(steps.MasterShellCommand(command=util.Interpolate("/run/wrappers/bin/sudo systemctl restart %(kw:bingo_service)s.service", bingo_service=bingo_systemd_service))) | ||
111 | |||
112 | return util.BuilderConfig(name="DeniseBingo_build", workernames=["generic-worker-denise"], factory=factory) | ||
113 | |||
114 | def denise_oms_factory(): | ||
115 | @util.renderer | ||
116 | def oms_run_path(props): | ||
117 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
118 | return "/run/denise_oms/gunicorn.pid" | ||
119 | else: | ||
120 | return "/run/denise_oms_beta/gunicorn.pid" | ||
121 | |||
122 | @util.renderer | ||
123 | def oms_systemd_service(props): | ||
124 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
125 | return "denise-oms" | ||
126 | else: | ||
127 | return "denise-oms-beta" | ||
128 | |||
129 | @util.renderer | ||
130 | def oms_url(props): | ||
131 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
132 | return "https://oms.syanni.eu" | ||
133 | else: | ||
134 | return "https://beta.oms.syanni.eu" | ||
135 | |||
136 | @util.renderer | ||
137 | def oms_path(props): | ||
138 | if props.hasProperty("branch") and len(props["branch"]) > 0 and props["branch"] == "master": | ||
139 | return E.OMS_RELEASE_PATH | ||
140 | else: | ||
141 | return E.OMS_BETA_PATH | ||
142 | |||
143 | factory = util.BuildFactory() | ||
144 | factory.addStep(steps.Git(logEnviron=False, repourl=E.OMS_GIT_URL, | ||
145 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
146 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
147 | factory.addStep(steps.MasterShellCommand(command=util.Interpolate("rm -rf %(kw:oms_path)s", oms_path=oms_path))) | ||
148 | factory.addStep(steps.DirectoryUpload(workersrc="../source", | ||
149 | masterdest=oms_path, | ||
150 | url=oms_url)) | ||
151 | factory.addStep(steps.MasterShellCommand(command=util.Interpolate("chmod -R a+rX %(kw:oms_path)s", oms_path=oms_path))) | ||
152 | factory.addStep(steps.MasterShellCommand(command=util.Interpolate("/run/wrappers/bin/sudo systemctl restart %(kw:oms_service)s.service", oms_service=oms_systemd_service))) | ||
153 | |||
154 | return util.BuilderConfig(name="DeniseOMS_build", workernames=["generic-worker-denise"], factory=factory) | ||
155 | |||
156 | def denise_aventuriers_factory(): | ||
157 | path_env = { | ||
158 | "PATH": os.environ["BUILDBOT_PATH_Aventuriers"] + ":${PATH}", | ||
159 | "TZ": "Europe/Paris", | ||
160 | } | ||
161 | |||
162 | factory = util.BuildFactory() | ||
163 | factory.addStep(steps.Git(logEnviron=False, repourl=E.AVENTURIERS_GIT_URL, | ||
164 | submodules=True, mode="full", method="fresh")) | ||
165 | factory.addStep(steps.ShellCommand(name="build files", | ||
166 | logEnviron=False, haltOnFailure=True, workdir="build", | ||
167 | env=path_env, command=["make", "tout", "encyclo"])) | ||
168 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.AVENTURIERS_RELEASE_PATH))) | ||
169 | factory.addStep(steps.DirectoryUpload(workersrc="../build/html", | ||
170 | masterdest=E.AVENTURIERS_RELEASE_PATH, | ||
171 | url="https://aventuriers.syanni.eu")) | ||
172 | factory.addStep(steps.FileUpload(name="upload epub file", workersrc="aventuriers.epub", | ||
173 | workdir="build", masterdest=E.AVENTURIERS_RELEASE_PATH + "/aventuriers.epub", | ||
174 | url="https://aventuriers.syanni.eu/aventuriers.epub", mode=0o644)) | ||
175 | factory.addStep(steps.FileUpload(name="upload mobi file", workersrc="aventuriers.mobi", | ||
176 | workdir="build", masterdest=E.AVENTURIERS_RELEASE_PATH + "/aventuriers.mobi", | ||
177 | url="https://aventuriers.syanni.eu/aventuriers.mobi", mode=0o644)) | ||
178 | factory.addStep(steps.FileUpload(name="upload pdf file", workersrc="aventuriers.pdf", | ||
179 | workdir="build", masterdest=E.AVENTURIERS_RELEASE_PATH + "/aventuriers.pdf", | ||
180 | url="https://aventuriers.syanni.eu/aventuriers.pdf", mode=0o644)) | ||
181 | factory.addStep(steps.FileUpload(name="upload encyclo pdf file", workersrc="encyclo.pdf", | ||
182 | workdir="build", masterdest=E.AVENTURIERS_RELEASE_PATH + "/encyclo.pdf", | ||
183 | url="https://aventuriers.syanni.eu/encyclo.pdf", mode=0o644)) | ||
184 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.AVENTURIERS_RELEASE_PATH))) | ||
185 | |||
186 | return util.BuilderConfig(name="DeniseAventuriers_build", workernames=["generic-worker-denise"], factory=factory) | ||
diff --git a/modules/private/buildbot/projects/immaeEu/__init__.py b/modules/private/buildbot/projects/immaeEu/__init__.py deleted file mode 100644 index 83265cd..0000000 --- a/modules/private/buildbot/projects/immaeEu/__init__.py +++ /dev/null | |||
@@ -1,314 +0,0 @@ | |||
1 | from buildbot.plugins import * | ||
2 | from buildbot_common.build_helpers import * | ||
3 | import os | ||
4 | from buildbot.util import bytes2unicode | ||
5 | import json | ||
6 | |||
7 | __all__ = [ "configure", "E" ] | ||
8 | |||
9 | class E(): | ||
10 | PROJECT = "immaeEu" | ||
11 | BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT) | ||
12 | SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT) | ||
13 | PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT) | ||
14 | SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key" | ||
15 | SSH_HOST_KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFbhFTl2A2RJn5L51yxJM4XfCS2ZaiSX/jo9jFSdghF" | ||
16 | XMPP_RECIPIENTS = os.environ["BUILDBOT_XMPP_RECIPIENTS"].split(" ") | ||
17 | |||
18 | BIP39_GIT_URL = "https://git.immae.eu/perso/Immae/Projets/Cryptomonnaies/BIP39.git" | ||
19 | IMMAE_EU_GIT_URL = "gitolite@git.immae.eu:perso/Immae/Sites/Blog" | ||
20 | HISTORY_GIT_URL = "gitolite@git.immae.eu:perso/Immae/Sites/History" | ||
21 | RECETTES_GIT_URL = "gitolite@git.immae.eu:perso/Immae/Sites/Recettes" | ||
22 | COURS_GIT_URL = "gitolite@git.immae.eu:perso/Immae/Sites/Cours" | ||
23 | DOCS_GIT_URL = "gitolite@git.immae.eu:perso/Immae/Sites/Docs" | ||
24 | NORMALESUP_GIT_URL = "gitolite@git.immae.eu:perso/Immae/Projets/Sites/Normalesup" | ||
25 | |||
26 | COURS_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/cours" | ||
27 | COURS_TARBALL_PATH = "/var/lib/ftp/release.immae.eu/cours" | ||
28 | COURS_TARBALL_URL = "https://release.immae.eu/cours" | ||
29 | BIP39_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/bip39" | ||
30 | HISTORY_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/history" | ||
31 | IMMAE_EU_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/blog" | ||
32 | DOCS_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/docs" | ||
33 | RECETTES_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/recettes" | ||
34 | NORMALESUP_RELEASE_PATH = "/var/lib/buildbot/outputs/immae/recherche" | ||
35 | GSMCELLS_RELEASE_PATH = "/var/lib/ftp/release.immae.eu/gsm_cells" | ||
36 | GSMCELLS_RELEASE_URL = "https://release.immae.eu/gsm_cells" | ||
37 | |||
38 | # master.cfg | ||
39 | SECRETS_FILE = os.getcwd() + "/secrets" | ||
40 | LDAP_URL = "ldaps://ldap.immae.eu:636" | ||
41 | LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
42 | LDAP_BASE = "dc=immae,dc=eu" | ||
43 | LDAP_PATTERN = "(uid=%(username)s)" | ||
44 | LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=immaeEu,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))" | ||
45 | TITLE_URL = "https://www.immae.eu" | ||
46 | TITLE = "Immae website" | ||
47 | |||
48 | class CustomBase(webhooks.base): | ||
49 | def getChanges(self, request): | ||
50 | try: | ||
51 | content = request.content.read() | ||
52 | args = json.loads(bytes2unicode(content)) | ||
53 | except Exception as e: | ||
54 | raise ValueError("Error loading JSON: " + str(e)) | ||
55 | |||
56 | args.setdefault("comments", "") | ||
57 | args.setdefault("repository", "") | ||
58 | args.setdefault("author", args.get("who", "unknown")) | ||
59 | |||
60 | return ([args], None) | ||
61 | |||
62 | def configure(c): | ||
63 | c["buildbotURL"] = E.BUILDBOT_URL | ||
64 | c["www"]["port"] = E.SOCKET | ||
65 | |||
66 | c["www"]["change_hook_dialects"]["base"] = { | ||
67 | "custom_class": CustomBase | ||
68 | } | ||
69 | c['workers'].append(worker.LocalWorker("generic-worker-immae-eu")) | ||
70 | |||
71 | c['schedulers'].append(hook_scheduler("ImmaeEu", timer=1)) | ||
72 | c['schedulers'].append(hook_scheduler("Normalesup", timer=1)) | ||
73 | c['schedulers'].append(hook_scheduler("Cours", timer=1)) | ||
74 | c['schedulers'].append(hook_scheduler("Recettes", timer=1)) | ||
75 | c['schedulers'].append(hook_scheduler("Docs", timer=1)) | ||
76 | c['schedulers'].append(hook_scheduler("History", timer=1)) | ||
77 | c['schedulers'].append(hook_scheduler("BIP39", timer=1)) | ||
78 | c['schedulers'].append(schedulers.Nightly(name="GSMCells-weekly", | ||
79 | builderNames=["GSMCells_build"], dayOfWeek=6, hour=3)) | ||
80 | c['schedulers'].append(force_scheduler("force_immae_eu", [ | ||
81 | "ImmaeEu_build", "Normalesup_build", "Cours_build", "Docs_build", | ||
82 | "Recettes_build", "History_build", "BIP39_build" | ||
83 | ])) | ||
84 | c['schedulers'].append(schedulers.ForceScheduler( | ||
85 | name="GSMCells-force", label="Force build", | ||
86 | buttonName="Force build", | ||
87 | reason=util.StringParameter(name="reason", label="Reason", default="Force build"), | ||
88 | codebases=[ | ||
89 | util.CodebaseParameter("", | ||
90 | branch=util.FixedParameter(name="branch", default=""), | ||
91 | revision=util.FixedParameter(name="revision", default=""), | ||
92 | repository=util.FixedParameter(name="repository", default=""), | ||
93 | project=util.FixedParameter(name="project", default=""), | ||
94 | ), | ||
95 | ], | ||
96 | username=util.FixedParameter(name="username", default="Web button"), | ||
97 | builderNames=["GSMCells_build"] | ||
98 | )) | ||
99 | |||
100 | c['builders'].append(immae_eu_factory()) | ||
101 | c['builders'].append(normalesup_factory()) | ||
102 | c['builders'].append(cours_factory()) | ||
103 | c['builders'].append(gsm_cells_factory()) | ||
104 | c['builders'].append(recettes_factory()) | ||
105 | c['builders'].append(docs_factory()) | ||
106 | c['builders'].append(history_factory()) | ||
107 | c['builders'].append(bip39_factory()) | ||
108 | |||
109 | c['services'].append(SlackStatusPush( | ||
110 | name="slack_status_immae_eu_project", | ||
111 | builders=[ | ||
112 | "ImmaeEu_build", "Normalesup_build", "Cours_build", "Docs_build", | ||
113 | "GSMCells_build", "Recettes_build", "History_build", | ||
114 | "BIP39_build" | ||
115 | ], | ||
116 | serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip())) | ||
117 | c['services'].append(XMPPStatusPush( | ||
118 | name="xmpp_status_immae_eu_project", | ||
119 | builders=[ | ||
120 | "ImmaeEu_build", "Normalesup_build", "Cours_build", "Docs_build", | ||
121 | "GSMCells_build", "Recettes_build", "History_build", | ||
122 | "BIP39_build" | ||
123 | ], | ||
124 | recipients=E.XMPP_RECIPIENTS, | ||
125 | password=open(E.SECRETS_FILE + "/notify_xmpp_password", "r").read().rstrip())) | ||
126 | |||
127 | def history_factory(): | ||
128 | path_env = { | ||
129 | "PATH": os.environ["BUILDBOT_PATH_History"] + ":${PATH}" | ||
130 | } | ||
131 | factory = util.BuildFactory() | ||
132 | factory.addStep(steps.Git(logEnviron=False, repourl=E.HISTORY_GIT_URL, | ||
133 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
134 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
135 | factory.addStep(steps.ShellCommand(name="build website", | ||
136 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
137 | env=path_env, command=["jekyll", "build"])) | ||
138 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.HISTORY_RELEASE_PATH))) | ||
139 | factory.addStep(steps.DirectoryUpload(workersrc="../source/_site", | ||
140 | masterdest=E.HISTORY_RELEASE_PATH, | ||
141 | url="https://www.immae.eu/history")) | ||
142 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.HISTORY_RELEASE_PATH))) | ||
143 | |||
144 | return util.BuilderConfig(name="History_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
145 | |||
146 | def docs_factory(): | ||
147 | path_env = { | ||
148 | "PATH": os.environ["BUILDBOT_PATH_Docs"] + ":${PATH}" | ||
149 | } | ||
150 | factory = util.BuildFactory() | ||
151 | factory.addStep(steps.Git(logEnviron=False, repourl=E.DOCS_GIT_URL, | ||
152 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
153 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
154 | factory.addStep(steps.ShellCommand(name="build website", | ||
155 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
156 | env=path_env, command=["make", "clean", "html"])) | ||
157 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.DOCS_RELEASE_PATH))) | ||
158 | factory.addStep(steps.DirectoryUpload(workersrc="../source/_build/html", | ||
159 | masterdest=E.DOCS_RELEASE_PATH, | ||
160 | url="https://www.immae.eu/docs")) | ||
161 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.DOCS_RELEASE_PATH))) | ||
162 | |||
163 | return util.BuilderConfig(name="Docs_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
164 | |||
165 | def recettes_factory(): | ||
166 | path_env = { | ||
167 | "PATH": os.environ["BUILDBOT_PATH_Recettes"] + ":${PATH}" | ||
168 | } | ||
169 | factory = util.BuildFactory() | ||
170 | factory.addStep(steps.Git(logEnviron=False, repourl=E.RECETTES_GIT_URL, | ||
171 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
172 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
173 | factory.addStep(NixShellCommand(name="build website", | ||
174 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
175 | env=path_env, command="jekyll build --trace --baseurl /recettes")) | ||
176 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.RECETTES_RELEASE_PATH))) | ||
177 | factory.addStep(steps.DirectoryUpload(workersrc="../source/_site", | ||
178 | masterdest=E.RECETTES_RELEASE_PATH, | ||
179 | url="https://www.immae.eu/recettes")) | ||
180 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.RECETTES_RELEASE_PATH))) | ||
181 | |||
182 | return util.BuilderConfig(name="Recettes_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
183 | |||
184 | def bip39_factory(): | ||
185 | path_env = { | ||
186 | "PATH": os.environ["BUILDBOT_PATH_BIP39"] + ":${PATH}" | ||
187 | } | ||
188 | factory = util.BuildFactory() | ||
189 | factory.addStep(steps.Git(logEnviron=False, repourl=E.BIP39_GIT_URL, | ||
190 | submodules=True, mode="full", method="copy")) | ||
191 | factory.addStep(steps.ShellCommand(name="build file", | ||
192 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
193 | env=path_env, command=["python", "compile.py"])) | ||
194 | factory.addStep(steps.FileUpload(name="upload file", workersrc="bip39-standalone.html", | ||
195 | workdir="source", masterdest=E.BIP39_RELEASE_PATH + "/index.html", | ||
196 | url="https://tools.immae.eu/BIP39", mode=0o644)) | ||
197 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.BIP39_RELEASE_PATH))) | ||
198 | |||
199 | return util.BuilderConfig(name="BIP39_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
200 | |||
201 | def immae_eu_factory(): | ||
202 | path_env = { | ||
203 | "PATH": os.environ["BUILDBOT_PATH_ImmaeEu"] + ":${PATH}" | ||
204 | } | ||
205 | factory = util.BuildFactory() | ||
206 | factory.addStep(steps.Git(logEnviron=False, repourl=E.IMMAE_EU_GIT_URL, | ||
207 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
208 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
209 | factory.addStep(steps.ShellCommand(name="build website", | ||
210 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
211 | env=path_env, command=["make", "html"])) | ||
212 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.IMMAE_EU_RELEASE_PATH))) | ||
213 | factory.addStep(steps.DirectoryUpload(workersrc="../source/output", | ||
214 | masterdest=E.IMMAE_EU_RELEASE_PATH, | ||
215 | url="https://www.immae.eu")) | ||
216 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.IMMAE_EU_RELEASE_PATH))) | ||
217 | |||
218 | return util.BuilderConfig(name="ImmaeEu_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
219 | |||
220 | def cours_factory(): | ||
221 | path_env = { | ||
222 | "PATH": os.environ["BUILDBOT_PATH_Cours"] + ":${PATH}", | ||
223 | "CI": "yes" | ||
224 | } | ||
225 | factory = util.BuildFactory() | ||
226 | factory.addStep(steps.Git(logEnviron=False, repourl=E.COURS_GIT_URL, | ||
227 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
228 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
229 | factory.addStep(steps.ShellCommand(name="build website", | ||
230 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
231 | command=["make", "build"], env=path_env)) | ||
232 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.COURS_RELEASE_PATH))) | ||
233 | factory.addStep(steps.DirectoryUpload(workersrc="../source/build", | ||
234 | masterdest=E.COURS_RELEASE_PATH, | ||
235 | url="https://www.immae.eu/cours")) | ||
236 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.COURS_RELEASE_PATH))) | ||
237 | |||
238 | factory.addStep(steps.ShellCommand(name="build pdfs", | ||
239 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
240 | command=["make", "pdfs"], env=path_env)) | ||
241 | |||
242 | package = util.Interpolate("cours_%(kw:clean_branch)s.tar.gz", clean_branch=clean_branch) | ||
243 | release_file = "{0}/cours_%(kw:clean_branch)s.tar.gz" | ||
244 | package_dest = util.Interpolate(release_file.format(E.COURS_TARBALL_PATH), clean_branch=clean_branch) | ||
245 | package_url = util.Interpolate(release_file.format(E.COURS_TARBALL_URL), clean_branch=clean_branch) | ||
246 | factory.addStep(steps.ShellCommand(name="build pdf tarball", | ||
247 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
248 | command=["tar", "-cvf", package, "-C", "pdfs", "mp", "mpsi"], env=path_env)) | ||
249 | factory.addStep(steps.FileUpload(name="upload package", workersrc=package, | ||
250 | workdir="source", masterdest=package_dest, | ||
251 | url=package_url, mode=0o644)) | ||
252 | |||
253 | return util.BuilderConfig(name="Cours_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
254 | |||
255 | def normalesup_factory(): | ||
256 | path_env = { | ||
257 | "PATH": os.environ["BUILDBOT_PATH_Normalesup"] + ":${PATH}" | ||
258 | } | ||
259 | factory = util.BuildFactory() | ||
260 | factory.addStep(steps.Git(logEnviron=False, repourl=E.NORMALESUP_GIT_URL, | ||
261 | submodules=True, sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(), | ||
262 | sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy")) | ||
263 | factory.addStep(steps.ShellCommand(name="build website", | ||
264 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
265 | command=["make", "build"], env=path_env)) | ||
266 | factory.addStep(steps.ShellCommand(name="give read access to all files", | ||
267 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
268 | command="chmod -R a+rX build", env=path_env)) | ||
269 | factory.addStep(steps.ShellCommand(name="synchronize with phare", | ||
270 | logEnviron=False, haltOnFailure=True, workdir="source", | ||
271 | env=path_env, command=[ | ||
272 | "rsync", "-av", "--delete", | ||
273 | "-e", "ssh -i {} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o CheckHostIP=no".format(E.SSH_KEY_PATH), | ||
274 | "build/", | ||
275 | os.environ["BUILDBOT_NORMALESUP_HOST"] | ||
276 | ])) | ||
277 | factory.addStep(steps.MasterShellCommand(command="rm -rf {}".format(E.NORMALESUP_RELEASE_PATH))) | ||
278 | factory.addStep(steps.DirectoryUpload(workersrc="../source/build", masterdest=E.NORMALESUP_RELEASE_PATH, | ||
279 | url="https://www.immae.eu/recherche")) | ||
280 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.NORMALESUP_RELEASE_PATH))) | ||
281 | |||
282 | return util.BuilderConfig(name="Normalesup_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
283 | |||
284 | def gsm_cells_factory(): | ||
285 | path_env = { | ||
286 | "PATH": os.environ["BUILDBOT_PATH_GSMCells"] + ":${PATH}", | ||
287 | "IN_BUILDBOT": "yes", | ||
288 | } | ||
289 | master_env = { | ||
290 | "HTACCESS": ''' | ||
291 | Options +FollowSymLinks | ||
292 | IndexIgnore * | ||
293 | ''' | ||
294 | } | ||
295 | for k, v in os.environ.items(): | ||
296 | if k.startswith("BUILDBOT_GSM_CELLS_"): | ||
297 | path_env[k[len("BUILDBOT_GSM_CELLS_"):]] = v | ||
298 | |||
299 | script = os.environ["BUILDBOT_PROJECT_DIR"] + "/scripts/lacells_download" | ||
300 | factory = util.BuildFactory() | ||
301 | factory.addStep(steps.ShellCommand(name="download files", | ||
302 | logEnviron=False, haltOnFailure=True, command=[script], env=path_env)) | ||
303 | factory.addStep(steps.ShellCommand(name="give read access to all files", | ||
304 | logEnviron=False, haltOnFailure=True, | ||
305 | command="chmod a+r lacells.db", env=path_env)) | ||
306 | factory.addStep(steps.FileUpload(workersrc="lacells.db", | ||
307 | masterdest=(E.GSMCELLS_RELEASE_PATH+"/lacells.db"), url=(E.GSMCELLS_RELEASE_URL+"/lacells.db"))) | ||
308 | factory.addStep(steps.MasterShellCommand(command="touch {}/.duplicity-ignore".format(E.GSMCELLS_RELEASE_PATH))) | ||
309 | factory.addStep(steps.MasterShellCommand(command='echo "$HTACCESS" > {}/.htaccess'.format(E.GSMCELLS_RELEASE_PATH), | ||
310 | env=master_env)) | ||
311 | factory.addStep(steps.MasterShellCommand(command="ln -sf lacells.db {}/lacells.db.new".format(E.GSMCELLS_RELEASE_PATH))) | ||
312 | factory.addStep(steps.MasterShellCommand(command="chmod -R a+rX {}".format(E.GSMCELLS_RELEASE_PATH))) | ||
313 | |||
314 | return util.BuilderConfig(name="GSMCells_build", workernames=["generic-worker-immae-eu"], factory=factory) | ||
diff --git a/modules/private/buildbot/projects/immaeEu/scripts/lacells_download b/modules/private/buildbot/projects/immaeEu/scripts/lacells_download deleted file mode 100755 index 1193cf3..0000000 --- a/modules/private/buildbot/projects/immaeEu/scripts/lacells_download +++ /dev/null | |||
@@ -1,163 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | # FLG - Fast Lacells.db Generator | ||
4 | # | ||
5 | # Simple script to quickly download and generate lacells.db for LocalGSMBackend by n76 | ||
6 | # https://github.com/n76/Local-GSM-Backend | ||
7 | # Uses Mozilla Location Service, OpenCellID and radiocells.org databases as source | ||
8 | # Based on lacells-creator by wvengen and n76 | ||
9 | # | ||
10 | # Licensed under GPLv3 or later | ||
11 | # (C)2016 Sebastian Obrusiewicz | ||
12 | # sobrus@o2.pl | ||
13 | |||
14 | if [ -z "$IN_BUILDBOT" ]; then | ||
15 | #DEFAULT_CONFIG_BEGIN | ||
16 | ENABLE_OCI=1 #enable OpenCellID data source | ||
17 | ENABLE_MOZ=1 #enable Mozilla Location Services (MLS) data source | ||
18 | ENABLE_RCO=0 #enable radiocells.org data source (it can be quite slow) | ||
19 | |||
20 | # See https://en.wikipedia.org/wiki/Mobile_country_code | ||
21 | # 208 France | ||
22 | MCC="" #contry codes separated with "|", for example "260|262". Leave dot+asterisk ".*" for all countries | ||
23 | RCO_SRC_FILE="fr.sqlite" #radiocells.org source database file, set "openbmap.sqlite" for entire world database, see https://radiocells.org/downloads for smaller country specific files, for example "pl.sqlite" for Poland | ||
24 | RADIO="" #you can remove LTE if your phone does not support it | ||
25 | TOKEN="" #your OCID token, required to download from OpenCellID. Get your free token at https://opencellid.org/ | ||
26 | fi | ||
27 | TMPDIR='.' #for temporary files only, use disk if you don't have enough RAM, AND remember to have enough disk space in /var/tmp for sqlite temporary files | ||
28 | KEEP_FILES=1 #whether to keep (1) or delete (0) the CSV files after processing | ||
29 | |||
30 | #do not edit following variables, unless you know what you're doing | ||
31 | EMPTY=',,,,,,,,,,,,,' #dummy empty file for disabled sources | ||
32 | OCI_FILE=$TMPDIR"/ocid.csv" #opencellid temporary file | ||
33 | MOZ_FILE=$TMPDIR"/mozilla.csv" #mozilla temporary file | ||
34 | RCO_FILE=$TMPDIR"/rco.csv" #radiocells.org temporary file | ||
35 | #DEFAULT_CONFIG_END | ||
36 | |||
37 | #USER_CONFIG_BEGIN | ||
38 | BINDIR=$( dirname "$(readlink -f "$0")" ) #" | ||
39 | if [[ -f "${BINDIR}/config" ]]; then | ||
40 | . "${BINDIR}/config" | ||
41 | fi | ||
42 | #USER_CONFIG_END | ||
43 | |||
44 | function manage_backup | ||
45 | { | ||
46 | file=$1 | ||
47 | if [ -s $file ] | ||
48 | then | ||
49 | if [ $KEEP_FILES == "1" ] | ||
50 | then | ||
51 | gzip -kf $file | ||
52 | fi | ||
53 | elif [ -s $file".gz" ] && [ "${file##*.}" == "csv" ] | ||
54 | then | ||
55 | echo "Using" $file".gz backup file" | ||
56 | gzip -dkf $file".gz" | ||
57 | fi | ||
58 | } | ||
59 | |||
60 | |||
61 | function download_ocid | ||
62 | { | ||
63 | URL="https://opencellid.org/ocid/downloads?token=${TOKEN}&type=full&file=cell_towers.csv.gz" | ||
64 | if [ $ENABLE_OCI == "1" ] | ||
65 | then | ||
66 | wget -qO- "$URL" | gunzip | egrep "^($RADIO),($MCC)," > $OCI_FILE | ||
67 | manage_backup $OCI_FILE | ||
68 | else | ||
69 | echo $EMPTY > $OCI_FILE | ||
70 | fi | ||
71 | } | ||
72 | |||
73 | function download_mozilla | ||
74 | { | ||
75 | if [ $ENABLE_MOZ == "1" ] | ||
76 | then | ||
77 | NW=`date -u "+%Y-%m-%d"` | ||
78 | wget -qO- "https://d17pt8qph6ncyq.cloudfront.net/export/MLS-full-cell-export-${NW}T000000.csv.gz" | gunzip | egrep "^($RADIO),($MCC)," > $MOZ_FILE | ||
79 | manage_backup $MOZ_FILE | ||
80 | else | ||
81 | echo $EMPTY > $MOZ_FILE | ||
82 | fi | ||
83 | } | ||
84 | |||
85 | function download_radiocells | ||
86 | { | ||
87 | if [ $ENABLE_RCO == "1" ] | ||
88 | then | ||
89 | RCO_SELECT="SELECT technology, mcc, mnc, area, cid, NULL, longitude, latitude, 1000 accuracy, measurements, NULL, NULL, NULL, NULL FROM cell_zone;" | ||
90 | wget -qO- "https://cdn.radiocells.org/"$RCO_SRC_FILE > $TMPDIR"/"$RCO_SRC_FILE | ||
91 | sqlite3 -header -csv $TMPDIR"/"$RCO_SRC_FILE "$RCO_SELECT" | egrep "^($RADIO),($MCC)," > $RCO_FILE | ||
92 | rm $TMPDIR"/"$RCO_SRC_FILE | ||
93 | manage_backup $RCO_FILE | ||
94 | else | ||
95 | echo $EMPTY > $RCO_FILE | ||
96 | fi | ||
97 | } | ||
98 | |||
99 | echo "Downloading data" | ||
100 | |||
101 | download_ocid & | ||
102 | OP=$! | ||
103 | download_mozilla & | ||
104 | MO=$! | ||
105 | download_radiocells & | ||
106 | RO=$! | ||
107 | |||
108 | wait $OP | ||
109 | wait $MO | ||
110 | wait $RO | ||
111 | |||
112 | if [ -s $MOZ_FILE ] && [ -s $OCI_FILE ] && [ -s $RCO_FILE ] | ||
113 | then | ||
114 | |||
115 | manage_backup lacells.db | ||
116 | rm lacells.db | ||
117 | |||
118 | echo "Generating database" | ||
119 | |||
120 | sqlite3 lacells.db <<-SQL | ||
121 | PRAGMA synchronous = OFF; | ||
122 | PRAGMA journal_mode = OFF; | ||
123 | |||
124 | CREATE TEMP TABLE cells_import (radio TEXT,mcc INTEGER,mnc INTEGER,lac INTEGER,cid INTEGER,unit STRING,longitude NUMERIC,latitude NUMERIC,accuracy INTEGER,samples INTEGER,changeable BOOLEAN,created INTEGER,updated INTEGER, avgSignal INTEGER); | ||
125 | CREATE TABLE cells (mcc INTEGER,mnc INTEGER,lac INTEGER,cid INTEGER,longitude REAL,latitude REAL,altitude REAL,accuracy REAL,samples INTEGER); | ||
126 | |||
127 | .header on | ||
128 | .mode csv | ||
129 | |||
130 | .import "$OCI_FILE" cells_import | ||
131 | .import "$MOZ_FILE" cells_import | ||
132 | .import "$RCO_FILE" cells_import | ||
133 | |||
134 | UPDATE cells_import SET samples=1 WHERE samples IS NULL OR samples < 1; | ||
135 | |||
136 | INSERT INTO cells | ||
137 | SELECT mcc, mnc, lac, cid, | ||
138 | sum(longitude * samples) / sum(samples) as longitude, | ||
139 | sum(latitude * samples) / sum(samples) as latitude, | ||
140 | -1 as altitude, | ||
141 | sum(accuracy * samples) / sum(samples) as accuracy, | ||
142 | sum(samples) as samples | ||
143 | FROM cells_import | ||
144 | GROUP BY mcc, mnc, lac, cid; | ||
145 | |||
146 | DROP TABLE cells_import; | ||
147 | |||
148 | UPDATE cells SET accuracy=500 WHERE accuracy < 500; | ||
149 | UPDATE cells SET accuracy=100000 WHERE accuracy > 100000; | ||
150 | |||
151 | CREATE INDEX _idx1 ON cells (mcc, mnc, lac, cid); | ||
152 | CREATE INDEX _idx2 ON cells (lac, cid); | ||
153 | |||
154 | VACUUM; | ||
155 | SQL | ||
156 | |||
157 | else | ||
158 | echo "Download error" | ||
159 | fi | ||
160 | |||
161 | rm $OCI_FILE | ||
162 | rm $MOZ_FILE | ||
163 | rm $RCO_FILE | ||
diff --git a/modules/private/buildbot/projects/test/__init__.py b/modules/private/buildbot/projects/test/__init__.py deleted file mode 100644 index e2f6f82..0000000 --- a/modules/private/buildbot/projects/test/__init__.py +++ /dev/null | |||
@@ -1,197 +0,0 @@ | |||
1 | from buildbot.plugins import * | ||
2 | from buildbot_common.build_helpers import * | ||
3 | import buildbot_common.libvirt as ilibvirt | ||
4 | import os | ||
5 | from buildbot.util import bytes2unicode | ||
6 | import json | ||
7 | |||
8 | __all__ = [ "configure", "E" ] | ||
9 | |||
10 | class E(): | ||
11 | PROJECT = "test" | ||
12 | BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT) | ||
13 | SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT) | ||
14 | PB_SOCKET = os.environ["BUILDBOT_WORKER_PORT"] | ||
15 | WORKER_HOST = "{}:{}".format(os.environ["BUILDBOT_HOST"], PB_SOCKET) | ||
16 | RELEASE_PATH = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT) | ||
17 | RELEASE_URL = "https://release.immae.eu/{}".format(PROJECT) | ||
18 | GIT_URL = "https://git.immae.eu/perso/Immae/TestProject.git" | ||
19 | SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key" | ||
20 | LIBVIRT_URL = os.environ["BUILDBOT_VIRT_URL"] + "?keyfile=" + SSH_KEY_PATH | ||
21 | PUPPET_HOST = "root@backup-1.v.immae.eu" | ||
22 | LDAP_HOST = "ldap.immae.eu" | ||
23 | LDAP_DN = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
24 | LDAP_ROLES_BASE = "ou=roles,ou=hosts,dc=immae,dc=eu" | ||
25 | XMPP_RECIPIENTS = os.environ["BUILDBOT_XMPP_RECIPIENTS"].split(" ") | ||
26 | |||
27 | # master.cfg | ||
28 | SECRETS_FILE = os.getcwd() + "/secrets" | ||
29 | LDAP_URL = "ldaps://ldap.immae.eu:636" | ||
30 | LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu" | ||
31 | LDAP_BASE = "dc=immae,dc=eu" | ||
32 | LDAP_PATTERN = "(uid=%(username)s)" | ||
33 | LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=test,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))" | ||
34 | TITLE_URL = "https://git.immae.eu/?p=perso/Immae/TestProject.git;a=summary" | ||
35 | TITLE = "Test project" | ||
36 | |||
37 | class CustomBase(webhooks.base): | ||
38 | def getChanges(self, request): | ||
39 | try: | ||
40 | content = request.content.read() | ||
41 | args = json.loads(bytes2unicode(content)) | ||
42 | except Exception as e: | ||
43 | raise ValueError("Error loading JSON: " + str(e)) | ||
44 | |||
45 | args.setdefault("comments", "") | ||
46 | args.setdefault("repository", "") | ||
47 | args.setdefault("author", args.get("who", "unknown")) | ||
48 | |||
49 | if args["category"] == "deploy_webhook": | ||
50 | args = { | ||
51 | "category": "deploy_webhook", | ||
52 | "comments": "", | ||
53 | "repository": "", | ||
54 | "author": "unknown", | ||
55 | "project": "TestProject", | ||
56 | "properties": { | ||
57 | "environment": args.get("environment", "integration"), | ||
58 | "build": "test_{}.tar.gz".format(args.get("branch", "master")) | ||
59 | } | ||
60 | } | ||
61 | |||
62 | return ([args], None) | ||
63 | |||
64 | def deploy_hook_scheduler(project, timer=1): | ||
65 | return schedulers.AnyBranchScheduler( | ||
66 | change_filter=util.ChangeFilter(category="deploy_webhook", project=project), | ||
67 | name="{}_deploy".format(project), treeStableTimer=timer, builderNames=["{}_deploy".format(project)]) | ||
68 | |||
69 | def configure(c): | ||
70 | c["buildbotURL"] = E.BUILDBOT_URL | ||
71 | c["www"]["port"] = E.SOCKET | ||
72 | |||
73 | c["www"]["change_hook_dialects"]["base"] = { | ||
74 | "custom_class": CustomBase | ||
75 | } | ||
76 | c['workers'].append(ilibvirt.LibVirtWorker("test-build", | ||
77 | open(E.SECRETS_FILE + "/worker_password", "r").read().rstrip(), | ||
78 | ilibvirt.Connection(E.LIBVIRT_URL), | ||
79 | E.WORKER_HOST)) | ||
80 | c['workers'].append(ilibvirt.LibVirtWorker("test-deploy", | ||
81 | open(E.SECRETS_FILE + "/worker_password", "r").read().rstrip(), | ||
82 | ilibvirt.Connection(E.LIBVIRT_URL), | ||
83 | E.WORKER_HOST)) | ||
84 | |||
85 | c['schedulers'].append(hook_scheduler("TestProject", timer=1)) | ||
86 | c['schedulers'].append(force_scheduler("force_test", ["TestProject_build"])) | ||
87 | c['schedulers'].append(deploy_scheduler("deploy_test", ["TestProject_deploy"])) | ||
88 | c['schedulers'].append(deploy_hook_scheduler("TestProject", timer=1)) | ||
89 | |||
90 | c['builders'].append(factory()) | ||
91 | c['builders'].append(deploy_factory()) | ||
92 | |||
93 | c['services'].append(SlackStatusPush( | ||
94 | name="slack_status_test_project", | ||
95 | builders=["TestProject_build", "TestProject_deploy"], | ||
96 | serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip())) | ||
97 | c['services'].append(XMPPStatusPush( | ||
98 | name="xmpp_status_test_project", | ||
99 | builders=["TestProject_build", "TestProject_deploy"], | ||
100 | recipients=E.XMPP_RECIPIENTS, | ||
101 | password=open(E.SECRETS_FILE + "/notify_xmpp_password", "r").read().rstrip())) | ||
102 | |||
103 | def factory(): | ||
104 | package = util.Interpolate("test_%(kw:clean_branch)s.tar.gz", clean_branch=clean_branch) | ||
105 | package_dest = util.Interpolate("{}/test_%(kw:clean_branch)s.tar.gz".format(E.RELEASE_PATH), clean_branch=clean_branch) | ||
106 | package_url = util.Interpolate("{}/test_%(kw:clean_branch)s.tar.gz".format(E.RELEASE_URL), clean_branch=clean_branch) | ||
107 | |||
108 | factory = util.BuildFactory() | ||
109 | factory.addStep(steps.Git(logEnviron=False, | ||
110 | repourl=E.GIT_URL, mode="full", method="copy")) | ||
111 | factory.addStep(steps.ShellCommand(name="env", | ||
112 | logEnviron=False, command=["env"])) | ||
113 | factory.addStep(steps.ShellCommand(name="pwd", | ||
114 | logEnviron=False, command=["pwd"])) | ||
115 | factory.addStep(steps.ShellCommand(name="true", | ||
116 | logEnviron=False, command=["true"])) | ||
117 | factory.addStep(steps.ShellCommand(name="echo", | ||
118 | logEnviron=False, command=["echo", package])) | ||
119 | factory.addSteps(package_and_upload(package, package_dest, package_url)) | ||
120 | |||
121 | return util.BuilderConfig(name="TestProject_build", workernames=["test-build"], factory=factory) | ||
122 | |||
123 | |||
124 | def compute_build_infos(): | ||
125 | @util.renderer | ||
126 | def compute(props): | ||
127 | import re, hashlib | ||
128 | build_file = props.getProperty("build") | ||
129 | package_dest = "{}/{}".format(E.RELEASE_PATH, build_file) | ||
130 | version = re.match(r"{0}_(.*).tar.gz".format("test"), build_file).group(1) | ||
131 | with open(package_dest, "rb") as f: | ||
132 | sha = hashlib.sha256(f.read()).hexdigest() | ||
133 | return { | ||
134 | "build_version": version, | ||
135 | "build_hash": sha, | ||
136 | } | ||
137 | return compute | ||
138 | |||
139 | @util.renderer | ||
140 | def puppet_host(props): | ||
141 | return E.PUPPET_HOST | ||
142 | |||
143 | def deploy_factory(): | ||
144 | package_dest = util.Interpolate("{}/%(prop:build)s".format(E.RELEASE_PATH)) | ||
145 | |||
146 | factory = util.BuildFactory() | ||
147 | factory.addStep(steps.MasterShellCommand(command=["test", "-f", package_dest])) | ||
148 | factory.addStep(steps.SetProperties(properties=compute_build_infos())) | ||
149 | factory.addStep(LdapPush(environment=util.Property("environment"), | ||
150 | build_version=util.Property("build_version"), | ||
151 | build_hash=util.Property("build_hash"), | ||
152 | ldap_password=util.Secret("ldap"))) | ||
153 | factory.addStep(steps.MasterShellCommand(command=[ | ||
154 | "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", "-i", E.SSH_KEY_PATH, puppet_host])) | ||
155 | return util.BuilderConfig(name="TestProject_deploy", workernames=["test-deploy"], factory=factory) | ||
156 | |||
157 | from twisted.internet import defer | ||
158 | from buildbot.process.buildstep import FAILURE | ||
159 | from buildbot.process.buildstep import SUCCESS | ||
160 | from buildbot.process.buildstep import BuildStep | ||
161 | |||
162 | class LdapPush(BuildStep): | ||
163 | name = "LdapPush" | ||
164 | renderables = ["environment", "build_version", "build_hash", "ldap_password"] | ||
165 | |||
166 | def __init__(self, **kwargs): | ||
167 | self.environment = kwargs.pop("environment") | ||
168 | self.build_version = kwargs.pop("build_version") | ||
169 | self.build_hash = kwargs.pop("build_hash") | ||
170 | self.ldap_password = kwargs.pop("ldap_password") | ||
171 | self.ldap_host = kwargs.pop("ldap_host", E.LDAP_HOST) | ||
172 | super().__init__(**kwargs) | ||
173 | |||
174 | def run(self): | ||
175 | import json | ||
176 | from ldap3 import Reader, Writer, Server, Connection, ObjectDef | ||
177 | server = Server(self.ldap_host) | ||
178 | conn = Connection(server, | ||
179 | user=E.LDAP_DN, | ||
180 | password=self.ldap_password) | ||
181 | conn.bind() | ||
182 | obj = ObjectDef("immaePuppetClass", conn) | ||
183 | r = Reader(conn, obj, | ||
184 | "cn=test.{},{}".format(self.environment, E.LDAP_ROLES_BASE)) | ||
185 | r.search() | ||
186 | if len(r) > 0: | ||
187 | w = Writer.from_cursor(r) | ||
188 | for value in w[0].immaePuppetJson.values: | ||
189 | config = json.loads(value) | ||
190 | if "test_version" in config: | ||
191 | config["test_version"] = self.build_version | ||
192 | config["test_sha256"] = self.build_hash | ||
193 | w[0].immaePuppetJson -= value | ||
194 | w[0].immaePuppetJson += json.dumps(config, indent=" ") | ||
195 | w.commit() | ||
196 | return defer.succeed(SUCCESS) | ||
197 | return defer.succeed(FAILURE) | ||
diff --git a/modules/private/certificates.nix b/modules/private/certificates.nix deleted file mode 100644 index 9879946..0000000 --- a/modules/private/certificates.nix +++ /dev/null | |||
@@ -1,199 +0,0 @@ | |||
1 | { lib, pkgs, config, name, ... }: | ||
2 | { | ||
3 | options.myServices.certificates = { | ||
4 | enable = lib.mkEnableOption "enable certificates"; | ||
5 | webroot = lib.mkOption { | ||
6 | readOnly = true; | ||
7 | default = "/var/lib/acme/acme-challenges"; | ||
8 | }; | ||
9 | certConfig = lib.mkOption { | ||
10 | default = { | ||
11 | webroot = lib.mkForce null; # avoids creation of tmpfiles | ||
12 | email = "ismael@bouya.org"; | ||
13 | postRun = builtins.concatStringsSep "\n" [ | ||
14 | (lib.optionalString config.services.httpd.Prod.enable "systemctl reload httpdProd.service") | ||
15 | (lib.optionalString config.services.httpd.Tools.enable "systemctl reload httpdTools.service") | ||
16 | (lib.optionalString config.services.httpd.Inte.enable "systemctl reload httpdInte.service") | ||
17 | (lib.optionalString config.services.nginx.enable "systemctl reload nginx.service") | ||
18 | ]; | ||
19 | extraLegoRenewFlags = [ "--reuse-key" ]; | ||
20 | keyType = lib.mkDefault "ec256"; # https://github.com/NixOS/nixpkgs/pull/83121 | ||
21 | }; | ||
22 | description = "Default configuration for certificates"; | ||
23 | }; | ||
24 | }; | ||
25 | |||
26 | config = lib.mkIf config.myServices.certificates.enable { | ||
27 | services.nginx = { | ||
28 | recommendedTlsSettings = true; | ||
29 | virtualHosts = { | ||
30 | "${config.hostEnv.fqdn}" = { | ||
31 | acmeRoot = config.myServices.certificates.webroot; | ||
32 | useACMEHost = name; | ||
33 | forceSSL = true; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
37 | services.websites.certs = config.myServices.certificates.certConfig; | ||
38 | myServices.databasesCerts = config.myServices.certificates.certConfig; | ||
39 | myServices.ircCerts = config.myServices.certificates.certConfig; | ||
40 | |||
41 | security.acme.acceptTerms = true; | ||
42 | security.acme.preliminarySelfsigned = true; | ||
43 | |||
44 | security.acme.certs = { | ||
45 | "${name}" = config.myServices.certificates.certConfig // { | ||
46 | domain = config.hostEnv.fqdn; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | users.users.acme = { | ||
51 | uid = config.ids.uids.acme; | ||
52 | group = "acme"; | ||
53 | description = "Acme user"; | ||
54 | }; | ||
55 | users.groups.acme = { | ||
56 | gid = config.ids.gids.acme; | ||
57 | }; | ||
58 | |||
59 | systemd.services = lib.attrsets.mapAttrs' (k: v: | ||
60 | lib.attrsets.nameValuePair "acme-selfsigned-${k}" { | ||
61 | wantedBy = [ "acme-selfsigned-certificates.target" ]; | ||
62 | script = lib.mkAfter '' | ||
63 | cp $workdir/server.crt ${config.security.acme.certs."${k}".directory}/cert.pem | ||
64 | chown '${v.user}:${v.group}' ${config.security.acme.certs."${k}".directory}/cert.pem | ||
65 | chmod ${if v.allowKeysForGroup then "750" else "700"} ${config.security.acme.certs."${k}".directory}/cert.pem | ||
66 | |||
67 | cp $workdir/ca.crt ${config.security.acme.certs."${k}".directory}/chain.pem | ||
68 | chown '${v.user}:${v.group}' ${config.security.acme.certs."${k}".directory}/chain.pem | ||
69 | chmod ${if v.allowKeysForGroup then "750" else "700"} ${config.security.acme.certs."${k}".directory}/chain.pem | ||
70 | ''; | ||
71 | } | ||
72 | ) config.security.acme.certs // | ||
73 | lib.attrsets.mapAttrs' (k: data: | ||
74 | lib.attrsets.nameValuePair "acme-${k}" { | ||
75 | after = lib.mkAfter [ "bind.service" ]; | ||
76 | serviceConfig = | ||
77 | let | ||
78 | cfg = config.security.acme; | ||
79 | hashOptions = let | ||
80 | domains = builtins.concatStringsSep "," ( | ||
81 | [ data.domain ] ++ (builtins.attrNames data.extraDomains) | ||
82 | ); | ||
83 | certOptions = builtins.concatStringsSep "," [ | ||
84 | (if data.ocspMustStaple then "must-staple" else "no-must-staple") | ||
85 | ]; | ||
86 | in | ||
87 | builtins.hashString "sha256" (builtins.concatStringsSep ";" [ data.keyType domains certOptions ]); | ||
88 | accountsDir = "accounts-${data.keyType}"; | ||
89 | lpath = "acme/${k}"; | ||
90 | apath = "/var/lib/${lpath}"; | ||
91 | spath = "/var/lib/acme/.lego/${k}"; | ||
92 | fileMode = if data.allowKeysForGroup then "640" else "600"; | ||
93 | dirFileMode = if data.allowKeysForGroup then "750" else "700"; | ||
94 | globalOpts = [ "-d" data.domain "--email" data.email "--path" "." "--key-type" data.keyType ] | ||
95 | ++ lib.optionals (cfg.acceptTerms) [ "--accept-tos" ] | ||
96 | ++ lib.optionals (data.dnsProvider != null && !data.dnsPropagationCheck) [ "--dns.disable-cp" ] | ||
97 | ++ lib.concatLists (lib.mapAttrsToList (name: root: [ "-d" name ]) data.extraDomains) | ||
98 | ++ (if data.dnsProvider != null then [ "--dns" data.dnsProvider ] else [ "--http" "--http.webroot" config.myServices.certificates.webroot ]) | ||
99 | ++ lib.optionals (cfg.server != null || data.server != null) ["--server" (if data.server == null then cfg.server else data.server)]; | ||
100 | certOpts = lib.optionals data.ocspMustStaple [ "--must-staple" ]; | ||
101 | runOpts = lib.escapeShellArgs (globalOpts ++ [ "run" ] ++ certOpts); | ||
102 | renewOpts = lib.escapeShellArgs (globalOpts ++ | ||
103 | [ "renew" "--days" (builtins.toString cfg.validMinDays) ] ++ | ||
104 | certOpts ++ data.extraLegoRenewFlags); | ||
105 | forceRenewOpts = lib.escapeShellArgs (globalOpts ++ | ||
106 | [ "renew" "--days" "999" ] ++ | ||
107 | certOpts ++ data.extraLegoRenewFlags); | ||
108 | keyName = builtins.replaceStrings ["*"] ["_"] data.domain; | ||
109 | in { | ||
110 | User = lib.mkForce "acme"; | ||
111 | Group = lib.mkForce "acme"; | ||
112 | WorkingDirectory = lib.mkForce spath; | ||
113 | StateDirectory = lib.mkForce "acme/.lego/${k} acme/.lego/${accountsDir}"; | ||
114 | ExecStartPre = | ||
115 | let | ||
116 | script = pkgs.writeScript "acme-prestart" '' | ||
117 | #!${pkgs.runtimeShell} -e | ||
118 | install -m 0755 -o acme -g acme -d ${config.myServices.certificates.webroot} | ||
119 | ''; | ||
120 | in | ||
121 | lib.mkForce "+${script}"; | ||
122 | ExecStart = lib.mkForce (pkgs.writeScript "acme-start" '' | ||
123 | #!${pkgs.runtimeShell} -e | ||
124 | # lego doesn't check key type after initial creation, we | ||
125 | # need to check for him | ||
126 | if [ -L ${spath}/accounts -o -d ${spath}/accounts ]; then | ||
127 | if [ -L ${spath}/accounts -a "$(readlink ${spath}/accounts)" != ../${accountsDir} ]; then | ||
128 | ln -sfn ../${accountsDir} ${spath}/accounts | ||
129 | mv -f ${spath}/certificates/${keyName}.key ${spath}/certificates/${keyName}.key.old | ||
130 | fi | ||
131 | else | ||
132 | ln -s ../${accountsDir} ${spath}/accounts | ||
133 | fi | ||
134 | # check if domain changed: lego doesn't check by itself | ||
135 | if [ ! -e ${spath}/certificates/${keyName}.crt -o ! -e ${spath}/certificates/${keyName}.key -o ! -e "${spath}/accounts/acme-v02.api.letsencrypt.org/${data.email}/account.json" ]; then | ||
136 | ${pkgs.lego}/bin/lego ${runOpts} | ||
137 | elif [ ! -f ${spath}/currentDomains -o "$(cat ${spath}/currentDomains)" != "${hashOptions}" ]; then | ||
138 | ${pkgs.lego}/bin/lego ${forceRenewOpts} | ||
139 | else | ||
140 | ${pkgs.lego}/bin/lego ${renewOpts} | ||
141 | fi | ||
142 | ''); | ||
143 | ExecStartPost = | ||
144 | let | ||
145 | ISRG_Root_X1 = pkgs.fetchurl { | ||
146 | url = "https://letsencrypt.org/certs/isrgrootx1.pem"; | ||
147 | sha256 = "1la36n2f31j9s03v847ig6ny9lr875q3g7smnq33dcsmf2i5gd92"; | ||
148 | }; | ||
149 | fix_ISRG_Root_X1 = pkgs.writeScript "fix-pem" '' | ||
150 | for file in chain fullchain full; do | ||
151 | if grep -q MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA "$file.pem"; then | ||
152 | cat ${ISRG_Root_X1} | grep -v " CERTIFICATE" | \ | ||
153 | sed -i.bak -ne "/MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ {r /dev/stdin" -e ":a; n; /Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5/ { b }; ba };p" $file.pem | ||
154 | fi | ||
155 | done | ||
156 | ''; | ||
157 | script = pkgs.writeScript "acme-post-start" '' | ||
158 | #!${pkgs.runtimeShell} -e | ||
159 | install -m 0755 -o root -g root -d /var/lib/acme | ||
160 | install -m 0${dirFileMode} -o ${data.user} -g ${data.group} -d /var/lib/acme/${k} | ||
161 | cd /var/lib/acme/${k} | ||
162 | |||
163 | # Test that existing cert is older than new cert | ||
164 | KEY=${spath}/certificates/${keyName}.key | ||
165 | KEY_CHANGED=no | ||
166 | if [ -e $KEY -a $KEY -nt key.pem ]; then | ||
167 | KEY_CHANGED=yes | ||
168 | cp -p ${spath}/certificates/${keyName}.key key.pem | ||
169 | cp -p ${spath}/certificates/${keyName}.crt fullchain.pem | ||
170 | cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem | ||
171 | ln -sf fullchain.pem cert.pem | ||
172 | cat key.pem fullchain.pem > full.pem | ||
173 | echo -n "${hashOptions}" > ${spath}/currentDomains | ||
174 | fi | ||
175 | |||
176 | ${fix_ISRG_Root_X1} | ||
177 | chmod ${fileMode} *.pem | ||
178 | chown '${data.user}:${data.group}' *.pem | ||
179 | |||
180 | if [ "$KEY_CHANGED" = "yes" ]; then | ||
181 | : # noop in case postRun is empty | ||
182 | ${data.postRun} | ||
183 | fi | ||
184 | ''; | ||
185 | in | ||
186 | lib.mkForce "+${script}"; | ||
187 | }; | ||
188 | } | ||
189 | ) config.security.acme.certs // | ||
190 | { | ||
191 | httpdProd = lib.mkIf config.services.httpd.Prod.enable | ||
192 | { after = [ "acme-selfsigned-certificates.target" ]; wants = [ "acme-selfsigned-certificates.target" ]; }; | ||
193 | httpdTools = lib.mkIf config.services.httpd.Tools.enable | ||
194 | { after = [ "acme-selfsigned-certificates.target" ]; wants = [ "acme-selfsigned-certificates.target" ]; }; | ||
195 | httpdInte = lib.mkIf config.services.httpd.Inte.enable | ||
196 | { after = [ "acme-selfsigned-certificates.target" ]; wants = [ "acme-selfsigned-certificates.target" ]; }; | ||
197 | }; | ||
198 | }; | ||
199 | } | ||
diff --git a/modules/private/databases/default.nix b/modules/private/databases/default.nix deleted file mode 100644 index 1241658..0000000 --- a/modules/private/databases/default.nix +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | { lib, config, nodes, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databases; | ||
4 | in | ||
5 | { | ||
6 | options.myServices = { | ||
7 | databases.enable = lib.mkEnableOption "my databases service"; | ||
8 | databasesCerts = lib.mkOption { | ||
9 | description = "Default databases configurations for certificates as accepted by acme"; | ||
10 | }; | ||
11 | }; | ||
12 | |||
13 | config.myServices.databases = lib.mkIf cfg.enable { | ||
14 | mariadb = { | ||
15 | enable = true; | ||
16 | ldapConfig = { | ||
17 | inherit (config.myEnv.ldap) host base; | ||
18 | inherit (config.myEnv.databases.mysql.pam) dn filter password; | ||
19 | }; | ||
20 | replicationLdapConfig = { | ||
21 | inherit (config.myEnv.ldap) host base; | ||
22 | inherit (config.myEnv.servers.eldiron.ldap) dn password; | ||
23 | }; | ||
24 | credentials.root = config.myEnv.databases.mysql.systemUsers.root; | ||
25 | }; | ||
26 | |||
27 | openldap = { | ||
28 | accessFile = ../../../nixops/secrets/ldap.conf; | ||
29 | baseDn = config.myEnv.ldap.base; | ||
30 | rootDn = config.myEnv.ldap.root_dn; | ||
31 | rootPw = config.myEnv.ldap.root_pw; | ||
32 | enable = true; | ||
33 | }; | ||
34 | |||
35 | postgresql = { | ||
36 | ldapConfig = { | ||
37 | inherit (config.myEnv.ldap) host base; | ||
38 | inherit (config.myEnv.databases.postgresql.pam) dn filter password; | ||
39 | }; | ||
40 | replicationLdapConfig = { | ||
41 | inherit (config.myEnv.ldap) host base; | ||
42 | inherit (config.myEnv.servers.eldiron.ldap) dn password; | ||
43 | }; | ||
44 | authorizedHosts = { | ||
45 | }; | ||
46 | replicationHosts = { | ||
47 | backup-2 = { | ||
48 | ip4 = [config.myEnv.servers.backup-2.ips.main.ip4]; | ||
49 | ip6 = config.myEnv.servers.backup-2.ips.main.ip6; | ||
50 | }; | ||
51 | }; | ||
52 | enable = true; | ||
53 | }; | ||
54 | |||
55 | redis.enable = true; | ||
56 | }; | ||
57 | } | ||
diff --git a/modules/private/databases/mariadb.nix b/modules/private/databases/mariadb.nix deleted file mode 100644 index 101eb3f..0000000 --- a/modules/private/databases/mariadb.nix +++ /dev/null | |||
@@ -1,182 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databases.mariadb; | ||
4 | in { | ||
5 | options.myServices.databases = { | ||
6 | mariadb = { | ||
7 | enable = lib.mkOption { | ||
8 | default = false; | ||
9 | example = true; | ||
10 | description = "Whether to enable mariadb database"; | ||
11 | type = lib.types.bool; | ||
12 | }; | ||
13 | package = lib.mkOption { | ||
14 | type = lib.types.package; | ||
15 | default = pkgs.mariadb; | ||
16 | description = '' | ||
17 | Mariadb package to use. | ||
18 | ''; | ||
19 | }; | ||
20 | credentials = lib.mkOption { | ||
21 | default = {}; | ||
22 | description = "Credentials"; | ||
23 | type = lib.types.attrsOf lib.types.str; | ||
24 | }; | ||
25 | ldapConfig = lib.mkOption { | ||
26 | description = "LDAP configuration to allow PAM identification via LDAP"; | ||
27 | type = lib.types.submodule { | ||
28 | options = { | ||
29 | host = lib.mkOption { type = lib.types.str; }; | ||
30 | base = lib.mkOption { type = lib.types.str; }; | ||
31 | dn = lib.mkOption { type = lib.types.str; }; | ||
32 | password = lib.mkOption { type = lib.types.str; }; | ||
33 | filter = lib.mkOption { type = lib.types.str; }; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
37 | replicationLdapConfig = lib.mkOption { | ||
38 | description = "LDAP configuration to allow replication"; | ||
39 | type = lib.types.submodule { | ||
40 | options = { | ||
41 | host = lib.mkOption { type = lib.types.str; }; | ||
42 | base = lib.mkOption { type = lib.types.str; }; | ||
43 | dn = lib.mkOption { type = lib.types.str; }; | ||
44 | password = lib.mkOption { type = lib.types.str; }; | ||
45 | }; | ||
46 | }; | ||
47 | }; | ||
48 | dataDir = lib.mkOption { | ||
49 | type = lib.types.path; | ||
50 | default = "/var/lib/mysql"; | ||
51 | description = '' | ||
52 | The directory where Mariadb stores its data. | ||
53 | ''; | ||
54 | }; | ||
55 | # Output variables | ||
56 | socketsDir = lib.mkOption { | ||
57 | type = lib.types.path; | ||
58 | default = "/run/mysqld"; | ||
59 | description = '' | ||
60 | The directory where Mariadb puts sockets. | ||
61 | ''; | ||
62 | }; | ||
63 | sockets = lib.mkOption { | ||
64 | type = lib.types.attrsOf lib.types.path; | ||
65 | default = { | ||
66 | mysqld = "${cfg.socketsDir}/mysqld.sock"; | ||
67 | }; | ||
68 | readOnly = true; | ||
69 | description = '' | ||
70 | Mariadb sockets | ||
71 | ''; | ||
72 | }; | ||
73 | }; | ||
74 | }; | ||
75 | |||
76 | config = lib.mkIf cfg.enable { | ||
77 | networking.firewall.allowedTCPPorts = [ 3306 ]; | ||
78 | |||
79 | # for adminer, ssl is implemented with mysqli only, which is | ||
80 | # currently disabled because it’s not compatible with pam. | ||
81 | # Thus we need to generate two users for each 'remote': one remote | ||
82 | # with SSL, and one localhost without SSL. | ||
83 | # User identified by LDAP: | ||
84 | # CREATE USER foo@% IDENTIFIED VIA pam USING 'mysql' REQUIRE SSL; | ||
85 | # CREATE USER foo@localhost IDENTIFIED VIA pam USING 'mysql'; | ||
86 | |||
87 | # To create a user (host) for replication: | ||
88 | # CREATE USER 'host'@'%' IDENTIFIED VIA pam USING 'mysql_replication' REQUIRE SSL; | ||
89 | # GRANT REPLICATION SLAVE, REPLICATION CLIENT, RELOAD, LOCK TABLES, SELECT, SHOW VIEW ON *.* TO 'host'@'%'; | ||
90 | # (the lock/select grant permits to let the replication host handle | ||
91 | # the initial fetch of the database) | ||
92 | # % should be valid for both localhost (for cron dumps) and the origin host. | ||
93 | services.mysql = { | ||
94 | enable = true; | ||
95 | package = cfg.package; | ||
96 | dataDir = cfg.dataDir; | ||
97 | settings = { | ||
98 | mysqld = { | ||
99 | ssl_ca = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; | ||
100 | ssl_key = "${config.security.acme.certs.mysql.directory}/key.pem"; | ||
101 | ssl_cert = "${config.security.acme.certs.mysql.directory}/fullchain.pem"; | ||
102 | |||
103 | # for replication | ||
104 | log-bin = "mariadb-bin"; | ||
105 | server-id = "1"; | ||
106 | |||
107 | # this introduces a small delay before storing on disk, but | ||
108 | # makes it order of magnitudes quicker | ||
109 | innodb_flush_log_at_trx_commit = "0"; | ||
110 | }; | ||
111 | }; | ||
112 | }; | ||
113 | |||
114 | users.users.mysql.extraGroups = [ "keys" ]; | ||
115 | security.acme.certs."mysql" = config.myServices.databasesCerts // { | ||
116 | user = "mysql"; | ||
117 | group = "mysql"; | ||
118 | domain = "db-1.immae.eu"; | ||
119 | postRun = '' | ||
120 | systemctl restart mysql.service | ||
121 | ''; | ||
122 | }; | ||
123 | |||
124 | secrets.keys = { | ||
125 | "mysql/mysqldump" = { | ||
126 | permissions = "0400"; | ||
127 | user = "root"; | ||
128 | group = "root"; | ||
129 | text = '' | ||
130 | [mysqldump] | ||
131 | user = root | ||
132 | password = ${cfg.credentials.root} | ||
133 | ''; | ||
134 | }; | ||
135 | "mysql/pam" = { | ||
136 | permissions = "0400"; | ||
137 | user = "mysql"; | ||
138 | group = "mysql"; | ||
139 | text = with cfg.ldapConfig; '' | ||
140 | host ${host} | ||
141 | base ${base} | ||
142 | binddn ${dn} | ||
143 | bindpw ${password} | ||
144 | pam_filter ${filter} | ||
145 | ssl start_tls | ||
146 | ''; | ||
147 | }; | ||
148 | "mysql/pam_replication" = { | ||
149 | permissions = "0400"; | ||
150 | user = "mysql"; | ||
151 | group = "mysql"; | ||
152 | text = with cfg.replicationLdapConfig; '' | ||
153 | host ${host} | ||
154 | base ${base} | ||
155 | binddn ${dn} | ||
156 | bindpw ${password} | ||
157 | pam_login_attribute cn | ||
158 | ssl start_tls | ||
159 | ''; | ||
160 | }; | ||
161 | }; | ||
162 | |||
163 | security.pam.services = let | ||
164 | pam_ldap = "${pkgs.pam_ldap}/lib/security/pam_ldap.so"; | ||
165 | in { | ||
166 | mysql = { | ||
167 | text = '' | ||
168 | # https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/ | ||
169 | auth required ${pam_ldap} config=${config.secrets.fullPaths."mysql/pam"} | ||
170 | account required ${pam_ldap} config=${config.secrets.fullPaths."mysql/pam"} | ||
171 | ''; | ||
172 | }; | ||
173 | mysql_replication = { | ||
174 | text = '' | ||
175 | auth required ${pam_ldap} config=${config.secrets.fullPaths."mysql/pam_replication"} | ||
176 | account required ${pam_ldap} config=${config.secrets.fullPaths."mysql/pam_replication"} | ||
177 | ''; | ||
178 | }; | ||
179 | }; | ||
180 | |||
181 | }; | ||
182 | } | ||
diff --git a/modules/private/databases/mariadb_replication.nix b/modules/private/databases/mariadb_replication.nix deleted file mode 100644 index 68e6f7f..0000000 --- a/modules/private/databases/mariadb_replication.nix +++ /dev/null | |||
@@ -1,251 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databasesReplication.mariadb; | ||
4 | in | ||
5 | { | ||
6 | options.myServices.databasesReplication.mariadb = { | ||
7 | enable = lib.mkEnableOption "Enable mariadb replication"; | ||
8 | base = lib.mkOption { | ||
9 | type = lib.types.path; | ||
10 | description = '' | ||
11 | Base path to put the replications | ||
12 | ''; | ||
13 | }; | ||
14 | hosts = lib.mkOption { | ||
15 | default = {}; | ||
16 | description = '' | ||
17 | Hosts to backup | ||
18 | ''; | ||
19 | type = lib.types.attrsOf (lib.types.submodule { | ||
20 | options = { | ||
21 | package = lib.mkOption { | ||
22 | type = lib.types.package; | ||
23 | default = pkgs.mariadb; | ||
24 | description = '' | ||
25 | Mariadb package for this host | ||
26 | ''; | ||
27 | }; | ||
28 | serverId = lib.mkOption { | ||
29 | type = lib.types.int; | ||
30 | description = '' | ||
31 | Server id to use for replication cluster (must be unique among the cluster!) | ||
32 | ''; | ||
33 | }; | ||
34 | host = lib.mkOption { | ||
35 | type = lib.types.str; | ||
36 | description = '' | ||
37 | Host to connect to | ||
38 | ''; | ||
39 | }; | ||
40 | port = lib.mkOption { | ||
41 | type = lib.types.str; | ||
42 | description = '' | ||
43 | Port to connect to | ||
44 | ''; | ||
45 | }; | ||
46 | user = lib.mkOption { | ||
47 | type = lib.types.str; | ||
48 | description = '' | ||
49 | User to connect as | ||
50 | ''; | ||
51 | }; | ||
52 | password = lib.mkOption { | ||
53 | type = lib.types.str; | ||
54 | description = '' | ||
55 | Password to use | ||
56 | ''; | ||
57 | }; | ||
58 | dumpUser = lib.mkOption { | ||
59 | type = lib.types.str; | ||
60 | description = '' | ||
61 | User who can do a dump | ||
62 | ''; | ||
63 | }; | ||
64 | dumpPassword = lib.mkOption { | ||
65 | type = lib.types.str; | ||
66 | description = '' | ||
67 | Password for the dump user | ||
68 | ''; | ||
69 | }; | ||
70 | }; | ||
71 | }); | ||
72 | }; | ||
73 | }; | ||
74 | |||
75 | config = lib.mkIf cfg.enable { | ||
76 | users.users.mysql = { | ||
77 | description = "MySQL server user"; | ||
78 | group = "mysql"; | ||
79 | uid = config.ids.uids.mysql; | ||
80 | extraGroups = [ "keys" ]; | ||
81 | }; | ||
82 | users.groups.mysql.gid = config.ids.gids.mysql; | ||
83 | |||
84 | secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (name: hcfg: [ | ||
85 | (lib.nameValuePair "mysql_replication/${name}/slave_init_commands" { | ||
86 | user = "mysql"; | ||
87 | group = "mysql"; | ||
88 | permissions = "0400"; | ||
89 | text = '' | ||
90 | CHANGE MASTER TO master_host="${hcfg.host}", master_port=${hcfg.port}, master_user="${hcfg.user}", master_password="${hcfg.password}", master_ssl=1, master_use_gtid=slave_pos; | ||
91 | START SLAVE; | ||
92 | ''; | ||
93 | }) | ||
94 | (lib.nameValuePair "mysql_replication/${name}/mysqldump_remote" { | ||
95 | permissions = "0400"; | ||
96 | user = "root"; | ||
97 | group = "root"; | ||
98 | text = '' | ||
99 | [mysqldump] | ||
100 | user = ${hcfg.user} | ||
101 | password = ${hcfg.password} | ||
102 | ''; | ||
103 | }) | ||
104 | (lib.nameValuePair "mysql_replication/${name}/mysqldump" { | ||
105 | permissions = "0400"; | ||
106 | user = "root"; | ||
107 | group = "root"; | ||
108 | text = '' | ||
109 | [mysqldump] | ||
110 | user = ${hcfg.dumpUser} | ||
111 | password = ${hcfg.dumpPassword} | ||
112 | ''; | ||
113 | }) | ||
114 | (lib.nameValuePair "mysql_replication/${name}/client" { | ||
115 | permissions = "0400"; | ||
116 | user = "mysql"; | ||
117 | group = "mysql"; | ||
118 | text = '' | ||
119 | [client] | ||
120 | user = ${hcfg.dumpUser} | ||
121 | password = ${hcfg.dumpPassword} | ||
122 | ''; | ||
123 | }) | ||
124 | ]) cfg.hosts)); | ||
125 | |||
126 | services.cron = { | ||
127 | enable = true; | ||
128 | systemCronJobs = lib.flatten (lib.mapAttrsToList (name: hcfg: | ||
129 | let | ||
130 | dataDir = "${cfg.base}/${name}/mysql"; | ||
131 | backupDir = "${cfg.base}/${name}/mysql_backup"; | ||
132 | backup_script = pkgs.writeScript "backup_mysql_${name}" '' | ||
133 | #!${pkgs.stdenv.shell} | ||
134 | |||
135 | set -euo pipefail | ||
136 | |||
137 | filename=${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql | ||
138 | ${hcfg.package}/bin/mysqldump \ | ||
139 | --defaults-file=${config.secrets.fullPaths."mysql_replication/${name}/mysqldump"} \ | ||
140 | -S /run/mysqld_${name}/mysqld.sock \ | ||
141 | --gtid \ | ||
142 | --master-data \ | ||
143 | --flush-privileges \ | ||
144 | --ignore-database=netdata \ | ||
145 | --all-databases > $filename | ||
146 | ${pkgs.gzip}/bin/gzip $filename | ||
147 | ''; | ||
148 | u = pkgs.callPackage ./utils.nix {}; | ||
149 | cleanup_script = pkgs.writeScript "cleanup_mysql_${name}" (u.exponentialDumps "sql.gz" backupDir); | ||
150 | in [ | ||
151 | "0 22,4,10,16 * * * root ${backup_script}" | ||
152 | "0 3 * * * root ${cleanup_script}" | ||
153 | ]) cfg.hosts); | ||
154 | }; | ||
155 | |||
156 | system.activationScripts = lib.attrsets.mapAttrs' (name: hcfg: | ||
157 | lib.attrsets.nameValuePair "mysql_replication_${name}" { | ||
158 | deps = [ "users" "groups" ]; | ||
159 | text = '' | ||
160 | install -m 0700 -o mysql -g mysql -d ${cfg.base}/${name}/mysql | ||
161 | install -m 0700 -o mysql -g mysql -d ${cfg.base}/${name}/mysql_backup | ||
162 | ''; | ||
163 | }) cfg.hosts; | ||
164 | |||
165 | environment.etc = lib.attrsets.mapAttrs' (name: hcfg: | ||
166 | lib.attrsets.nameValuePair "mysql/${name}_my.cnf" { | ||
167 | text = '' | ||
168 | [mysqld] | ||
169 | skip-networking | ||
170 | socket = /run/mysqld_${name}/mysqld.sock | ||
171 | datadir = ${cfg.base}/${name}/mysql/ | ||
172 | log-bin = mariadb-bin | ||
173 | server-id = ${builtins.toString hcfg.serverId} | ||
174 | ''; | ||
175 | } | ||
176 | ) cfg.hosts; | ||
177 | |||
178 | systemd.services = lib.attrsets.mapAttrs' (name: hcfg: | ||
179 | let | ||
180 | dataDir = "${cfg.base}/${name}/mysql"; | ||
181 | in | ||
182 | lib.attrsets.nameValuePair "mysql_backup_${name}" { | ||
183 | description = "Mysql replication for ${name}"; | ||
184 | wantedBy = [ "multi-user.target" ]; | ||
185 | after = [ "network.target" ]; | ||
186 | restartTriggers = [ config.environment.etc."mysql/${name}_my.cnf".source ]; | ||
187 | unitConfig.RequiresMountsFor = dataDir; | ||
188 | |||
189 | preStart = '' | ||
190 | if ! test -e ${dataDir}/mysql; then | ||
191 | if ! test -e ${dataDir}/initial.sql; then | ||
192 | ${hcfg.package}/bin/mysqldump \ | ||
193 | --defaults-file=${config.secrets.fullPaths."mysql_replication/${name}/mysqldump_remote"} \ | ||
194 | -h ${hcfg.host} \ | ||
195 | -P ${hcfg.port} \ | ||
196 | --ssl \ | ||
197 | --gtid \ | ||
198 | --flush-privileges \ | ||
199 | --master-data \ | ||
200 | --all-databases > ${dataDir}/initial.sql | ||
201 | fi | ||
202 | |||
203 | ${hcfg.package}/bin/mysql_install_db \ | ||
204 | --defaults-file=/etc/mysql/${name}_my.cnf \ | ||
205 | --user=mysql \ | ||
206 | --datadir=${dataDir} \ | ||
207 | --basedir=${hcfg.package} | ||
208 | fi | ||
209 | ''; | ||
210 | |||
211 | serviceConfig = { | ||
212 | User = "mysql"; | ||
213 | Group = "mysql"; | ||
214 | RuntimeDirectory = "mysqld_${name}"; | ||
215 | RuntimeDirectoryMode = "0755"; | ||
216 | SupplementaryGroups = "keys"; | ||
217 | PermissionsStartOnly = true; | ||
218 | Type = "notify"; | ||
219 | |||
220 | ExecStart = "${hcfg.package}/bin/mysqld --defaults-file=/etc/mysql/${name}_my.cnf --user=mysql --datadir=${dataDir} --basedir=${hcfg.package}"; | ||
221 | ExecStartPost = | ||
222 | let | ||
223 | sql_before = pkgs.writeText "mysql-initial-before" '' | ||
224 | DROP DATABASE test; | ||
225 | INSTALL SONAME 'auth_pam'; | ||
226 | ''; | ||
227 | setupScript = pkgs.writeScript "mysql-setup" '' | ||
228 | #!${pkgs.runtimeShell} -e | ||
229 | |||
230 | if test -e ${dataDir}/initial.sql; then | ||
231 | cat \ | ||
232 | ${sql_before} \ | ||
233 | ${dataDir}/initial.sql \ | ||
234 | ${config.secrets.fullPaths."mysql_replication/${name}/slave_init_commands"} \ | ||
235 | | ${hcfg.package}/bin/mysql \ | ||
236 | --defaults-file=/etc/mysql/${name}_my.cnf \ | ||
237 | -S /run/mysqld_${name}/mysqld.sock \ | ||
238 | --user=root | ||
239 | rm -f ${dataDir}/initial.sql | ||
240 | fi | ||
241 | ''; | ||
242 | in | ||
243 | "+${setupScript}"; | ||
244 | # initial dump can take a long time | ||
245 | TimeoutStartSec="infinity"; | ||
246 | TimeoutStopSec = 120; | ||
247 | }; | ||
248 | }) cfg.hosts; | ||
249 | }; | ||
250 | } | ||
251 | |||
diff --git a/modules/private/databases/openldap/default.nix b/modules/private/databases/openldap/default.nix deleted file mode 100644 index d35aca0..0000000 --- a/modules/private/databases/openldap/default.nix +++ /dev/null | |||
@@ -1,147 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databases.openldap; | ||
4 | ldapConfig = let | ||
5 | eldiron_schemas = pkgs.callPackage ./eldiron_schemas.nix {}; | ||
6 | in '' | ||
7 | ${eldiron_schemas} | ||
8 | |||
9 | pidfile ${cfg.pids.pid} | ||
10 | argsfile ${cfg.pids.args} | ||
11 | |||
12 | moduleload back_hdb | ||
13 | backend hdb | ||
14 | |||
15 | TLSCertificateFile ${config.security.acme.certs.ldap.directory}/cert.pem | ||
16 | TLSCertificateKeyFile ${config.security.acme.certs.ldap.directory}/key.pem | ||
17 | TLSCACertificateFile ${config.security.acme.certs.ldap.directory}/fullchain.pem | ||
18 | TLSCACertificatePath ${pkgs.cacert.unbundled}/etc/ssl/certs/ | ||
19 | #This makes openldap crash | ||
20 | #TLSCipherSuite DEFAULT | ||
21 | |||
22 | sasl-host kerberos.immae.eu | ||
23 | ''; | ||
24 | in | ||
25 | { | ||
26 | options.myServices.databases = { | ||
27 | openldap = { | ||
28 | enable = lib.mkOption { | ||
29 | default = false; | ||
30 | example = true; | ||
31 | description = "Whether to enable ldap"; | ||
32 | type = lib.types.bool; | ||
33 | }; | ||
34 | baseDn = lib.mkOption { | ||
35 | type = lib.types.str; | ||
36 | description = '' | ||
37 | Base DN for LDAP | ||
38 | ''; | ||
39 | }; | ||
40 | rootDn = lib.mkOption { | ||
41 | type = lib.types.str; | ||
42 | description = '' | ||
43 | Root DN | ||
44 | ''; | ||
45 | }; | ||
46 | rootPw = lib.mkOption { | ||
47 | type = lib.types.str; | ||
48 | description = '' | ||
49 | Root (Hashed) password | ||
50 | ''; | ||
51 | }; | ||
52 | accessFile = lib.mkOption { | ||
53 | type = lib.types.path; | ||
54 | description = '' | ||
55 | The file path that defines the access | ||
56 | ''; | ||
57 | }; | ||
58 | dataDir = lib.mkOption { | ||
59 | type = lib.types.path; | ||
60 | default = "/var/lib/openldap"; | ||
61 | description = '' | ||
62 | The directory where Openldap stores its data. | ||
63 | ''; | ||
64 | }; | ||
65 | socketsDir = lib.mkOption { | ||
66 | type = lib.types.path; | ||
67 | default = "/run/slapd"; | ||
68 | description = '' | ||
69 | The directory where Openldap puts sockets and pid files. | ||
70 | ''; | ||
71 | }; | ||
72 | # Output variables | ||
73 | pids = lib.mkOption { | ||
74 | type = lib.types.attrsOf lib.types.path; | ||
75 | default = { | ||
76 | pid = "${cfg.socketsDir}/slapd.pid"; | ||
77 | args = "${cfg.socketsDir}/slapd.args"; | ||
78 | }; | ||
79 | readOnly = true; | ||
80 | description = '' | ||
81 | Slapd pid files | ||
82 | ''; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | |||
87 | config = lib.mkIf cfg.enable { | ||
88 | secrets.keys = { | ||
89 | "ldap/password" = { | ||
90 | permissions = "0400"; | ||
91 | user = "openldap"; | ||
92 | group = "openldap"; | ||
93 | text = "rootpw ${cfg.rootPw}"; | ||
94 | }; | ||
95 | "ldap/access" = { | ||
96 | permissions = "0400"; | ||
97 | user = "openldap"; | ||
98 | group = "openldap"; | ||
99 | text = builtins.readFile cfg.accessFile; | ||
100 | }; | ||
101 | "ldap" = { | ||
102 | permissions = "0500"; | ||
103 | user = "openldap"; | ||
104 | group = "openldap"; | ||
105 | isDir = true; | ||
106 | }; | ||
107 | }; | ||
108 | users.users.openldap.extraGroups = [ "keys" ]; | ||
109 | networking.firewall.allowedTCPPorts = [ 636 389 ]; | ||
110 | |||
111 | security.acme.certs."ldap" = config.myServices.databasesCerts // { | ||
112 | user = "openldap"; | ||
113 | group = "openldap"; | ||
114 | domain = "ldap.immae.eu"; | ||
115 | postRun = '' | ||
116 | systemctl restart openldap.service | ||
117 | ''; | ||
118 | }; | ||
119 | |||
120 | services.filesWatcher.openldap = { | ||
121 | restart = true; | ||
122 | paths = [ config.secrets.fullPaths."ldap" ]; | ||
123 | }; | ||
124 | |||
125 | services.openldap = { | ||
126 | enable = true; | ||
127 | dataDir = cfg.dataDir; | ||
128 | urlList = [ "ldap://" "ldaps://" ]; | ||
129 | logLevel = "none"; | ||
130 | extraConfig = ldapConfig; | ||
131 | extraDatabaseConfig = '' | ||
132 | moduleload memberof | ||
133 | overlay memberof | ||
134 | |||
135 | moduleload syncprov | ||
136 | overlay syncprov | ||
137 | syncprov-checkpoint 100 10 | ||
138 | |||
139 | include ${config.secrets.fullPaths."ldap/access"} | ||
140 | ''; | ||
141 | rootpwFile = config.secrets.fullPaths."ldap/password"; | ||
142 | suffix = cfg.baseDn; | ||
143 | rootdn = cfg.rootDn; | ||
144 | database = "hdb"; | ||
145 | }; | ||
146 | }; | ||
147 | } | ||
diff --git a/modules/private/databases/openldap/eldiron_schemas.nix b/modules/private/databases/openldap/eldiron_schemas.nix deleted file mode 100644 index cf45ebe..0000000 --- a/modules/private/databases/openldap/eldiron_schemas.nix +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | { fetchurl, openldap }: | ||
2 | let | ||
3 | kerberosSchema = fetchurl { | ||
4 | url = "https://raw.githubusercontent.com/krb5/krb5/0bdd3b8058ed4ec9acc050e316bea86f6830b15f/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema"; | ||
5 | sha256 = "17fnkkf6s3lznsl7wp6914pqsc78d038rh38l638big8z608ksww"; | ||
6 | }; | ||
7 | puppetSchema = fetchurl { | ||
8 | url = "https://raw.githubusercontent.com/puppetlabs/puppet/bf7c108825ffdb5ea89cf3e500d55d27ab64b8d2/ext/ldap/puppet.schema"; | ||
9 | sha256 = "11bjf5zfvqlim7p9vddcafs0wiq3v8ys77x8h6fbp9c6bdfh0awh"; | ||
10 | }; | ||
11 | schemas = [ | ||
12 | #"${openldap}/etc/schema/core.schema" | ||
13 | #"${openldap}/etc/schema/cosine.schema" | ||
14 | #"${openldap}/etc/schema/inetorgperson.schema" | ||
15 | #"${openldap}/etc/schema/nis.schema" | ||
16 | puppetSchema | ||
17 | kerberosSchema | ||
18 | ./immae.schema | ||
19 | ]; | ||
20 | in | ||
21 | builtins.concatStringsSep "\n" (map (v: "include ${v}") schemas) | ||
diff --git a/modules/private/databases/openldap/immae.schema b/modules/private/databases/openldap/immae.schema deleted file mode 100644 index d2ef972..0000000 --- a/modules/private/databases/openldap/immae.schema +++ /dev/null | |||
@@ -1,179 +0,0 @@ | |||
1 | # vim: set filetype=slapd: | ||
2 | objectIdentifier Immaeroot 1.3.6.1.4.1.50071 | ||
3 | |||
4 | objectIdentifier Immae Immaeroot:2 | ||
5 | objectIdentifier ImmaeattributeType Immae:3 | ||
6 | objectIdentifier ImmaeobjectClass Immae:4 | ||
7 | |||
8 | # TT-RSS | ||
9 | attributetype ( ImmaeattributeType:1 NAME 'immaeTtrssLogin' | ||
10 | DESC 'login for TTRSS' | ||
11 | EQUALITY caseIgnoreMatch | ||
12 | SUBSTR caseIgnoreSubstringsMatch | ||
13 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) | ||
14 | |||
15 | objectclass ( ImmaeobjectClass:1 NAME 'immaeTtrssClass' | ||
16 | DESC 'Expansion of the existing object classes for ttrss' | ||
17 | SUP top AUXILIARY | ||
18 | MUST ( immaeTtrssLogin ) ) | ||
19 | |||
20 | # FTP | ||
21 | attributetype ( ImmaeattributeType:2 NAME 'immaeFtpDirectory' | ||
22 | DESC 'home directory for ftp' | ||
23 | EQUALITY caseExactIA5Match | ||
24 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) | ||
25 | |||
26 | attributetype ( ImmaeattributeType:3 NAME 'immaeFtpUid' | ||
27 | DESC 'user id for ftp' | ||
28 | EQUALITY integerMatch | ||
29 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) | ||
30 | |||
31 | attributetype ( ImmaeattributeType:4 NAME 'immaeFtpGid' | ||
32 | DESC 'group id for ftp' | ||
33 | EQUALITY integerMatch | ||
34 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) | ||
35 | |||
36 | objectclass ( ImmaeobjectClass:2 NAME 'immaeFtpClass' | ||
37 | DESC 'Expansion of the existing object classes for ftp' | ||
38 | SUP top AUXILIARY | ||
39 | MUST ( immaeFtpDirectory $ immaeFtpGid $ immaeFtpUid ) ) | ||
40 | |||
41 | |||
42 | # SSH keys | ||
43 | attributetype ( ImmaeattributeType:5 NAME 'immaeSshKey' | ||
44 | DESC 'OpenSSH Public key' | ||
45 | EQUALITY octetStringMatch | ||
46 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) | ||
47 | |||
48 | objectClass ( ImmaeobjectClass:3 NAME 'immaeSshClass' | ||
49 | DESC 'OpenSSH class' | ||
50 | SUP top AUXILIARY | ||
51 | MAy ( immaeSSHKey ) ) | ||
52 | |||
53 | # Specific access | ||
54 | attributetype (ImmaeattributeType:6 NAME 'immaeAccessDn' | ||
55 | EQUALITY distinguishedNameMatch | ||
56 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) | ||
57 | |||
58 | attributetype (ImmaeattributeType:17 NAME 'immaeAccessWriteDn' | ||
59 | EQUALITY distinguishedNameMatch | ||
60 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) | ||
61 | |||
62 | attributetype (ImmaeattributeType:18 NAME 'immaeAccessReadSubtree' | ||
63 | EQUALITY distinguishedNameMatch | ||
64 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) | ||
65 | |||
66 | objectClass ( ImmaeobjectClass:4 NAME 'immaeAccessClass' | ||
67 | DESC 'Access class' | ||
68 | SUP top AUXILIARY | ||
69 | MAY ( immaeAccessDn $ immaeAccessWriteDn $ immaeAccessReadSubtree ) ) | ||
70 | |||
71 | # Xmpp uid | ||
72 | attributetype ( ImmaeattributeType:7 NAME 'immaeXmppUid' | ||
73 | DESC 'user part for Xmpp' | ||
74 | EQUALITY caseIgnoreMatch | ||
75 | SUBSTR caseIgnoreSubstringsMatch | ||
76 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) | ||
77 | |||
78 | objectclass ( ImmaeobjectClass:5 NAME 'immaeXmppClass' | ||
79 | DESC 'Expansion of the existing object classes for XMPP' | ||
80 | SUP top AUXILIARY | ||
81 | MUST ( immaeXmppUid ) ) | ||
82 | |||
83 | # Postfix accounts | ||
84 | attributetype ( ImmaeattributeType:8 NAME 'immaePostfixAddress' | ||
85 | DESC 'the dovecot address to match as username' | ||
86 | EQUALITY caseIgnoreIA5Match | ||
87 | SUBSTR caseIgnoreIA5SubstringsMatch | ||
88 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) | ||
89 | |||
90 | attributetype ( ImmaeattributeType:9 NAME 'immaePostfixHome' | ||
91 | DESC 'the postfix home directory' | ||
92 | EQUALITY caseExactIA5Match | ||
93 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) | ||
94 | |||
95 | attributetype ( ImmaeattributeType:10 NAME 'immaePostfixMail' | ||
96 | DESC 'the dovecot mail location' | ||
97 | EQUALITY caseExactIA5Match | ||
98 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) | ||
99 | |||
100 | attributetype ( ImmaeattributeType:11 NAME 'immaePostfixUid' | ||
101 | DESC 'the dovecot uid' | ||
102 | EQUALITY caseExactIA5Match | ||
103 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) | ||
104 | |||
105 | attributetype ( ImmaeattributeType:12 NAME 'immaePostfixGid' | ||
106 | DESC 'the dovecot gid' | ||
107 | EQUALITY caseExactIA5Match | ||
108 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) | ||
109 | |||
110 | objectclass ( ImmaeobjectClass:6 NAME 'immaePostfixClass' | ||
111 | DESC 'Expansion of the existing object classes for Postfix' | ||
112 | SUP top AUXILIARY | ||
113 | MUST ( immaePostfixAddress $ immaePostfixHome $ | ||
114 | immaePostfixMail $ immaePostfixUid $ immaePostfixGid ) | ||
115 | ) | ||
116 | |||
117 | # Tinc informations | ||
118 | # Domaine = une classe a part ou une partie du dn ? | ||
119 | # attributetype ( ImmaeattributeType:13 NAME 'immaeTincIpSegment' | ||
120 | # DESC 'the internal ip segment in tinc' | ||
121 | # EQUALITY caseIgnoreIA5Match | ||
122 | # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) | ||
123 | # | ||
124 | # attributetype ( ImmaeattributeType:14 NAME 'immaeTincSubdomain' | ||
125 | # DESC 'the host subdomain' | ||
126 | # EQUALITY caseIgnoreIA5Match | ||
127 | # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) | ||
128 | # | ||
129 | # attributetype ( ImmaeattributeType:15 NAME 'immaeTincHostname' | ||
130 | # DESC 'the host name' | ||
131 | # EQUALITY caseIgnoreIA5Match | ||
132 | # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) | ||
133 | # | ||
134 | # objectclass ( ImmaeobjectClass:7 NAME 'immaeTincHostClass' | ||
135 | # DESC 'Expansion of the existing object classes for Tinc' | ||
136 | # SUP top AUXILIARY | ||
137 | # MUST ( immaeTincInternalIp $ immaeTincSubdomain $ | ||
138 | # immaeTincHostname ) | ||
139 | # ) | ||
140 | |||
141 | attributetype (ImmaeattributeType:16 NAME 'immaePuppetJson' | ||
142 | DESC 'Puppet hiera json' | ||
143 | EQUALITY octetStringMatch | ||
144 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) | ||
145 | |||
146 | objectclass ( ImmaeobjectClass:8 NAME 'immaePuppetClass' | ||
147 | DESC 'Expansion of the existing object classes for Puppet' | ||
148 | SUP top AUXILIARY | ||
149 | MUST ( immaePuppetJson ) | ||
150 | ) | ||
151 | |||
152 | attributetype (ImmaeattributeType:19 NAME 'immaeTaskId' | ||
153 | DESC 'Taskwarrior server Org:Name:Key' | ||
154 | EQUALITY caseIgnoreMatch | ||
155 | SUBSTR caseIgnoreSubstringsMatch | ||
156 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) | ||
157 | |||
158 | objectclass ( ImmaeobjectClass:9 NAME 'immaeTaskClass' | ||
159 | DESC 'Expansion of the existing object classes for Task' | ||
160 | SUP top AUXILIARY | ||
161 | MUST ( immaeTaskId ) | ||
162 | ) | ||
163 | |||
164 | # Peertube uid | ||
165 | attributetype ( ImmaeattributeType:20 NAME 'immaePeertubeId' | ||
166 | DESC 'login for Peertube' | ||
167 | EQUALITY caseIgnoreMatch | ||
168 | SUBSTR caseIgnoreSubstringsMatch | ||
169 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) | ||
170 | |||
171 | objectclass ( ImmaeobjectClass:10 NAME 'immaePeertubeClass' | ||
172 | DESC 'Expansion of the existing object classes for peertube' | ||
173 | SUP top AUXILIARY | ||
174 | MUST ( immaePeertubeId ) ) | ||
175 | |||
176 | |||
177 | # Last: | ||
178 | # attributetype ( ImmaeattributeType:20 NAME 'immaePeertubeId' | ||
179 | # objectclass ( ImmaeobjectClass:10 NAME 'immaePeertubeClass' | ||
diff --git a/modules/private/databases/openldap_replication.nix b/modules/private/databases/openldap_replication.nix deleted file mode 100644 index b456323..0000000 --- a/modules/private/databases/openldap_replication.nix +++ /dev/null | |||
@@ -1,166 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databasesReplication.openldap; | ||
4 | eldiron_schemas = pkgs.callPackage ./openldap/eldiron_schemas.nix {}; | ||
5 | ldapConfig = hcfg: name: pkgs.writeText "slapd.conf" '' | ||
6 | include ${pkgs.openldap}/etc/schema/core.schema | ||
7 | include ${pkgs.openldap}/etc/schema/cosine.schema | ||
8 | include ${pkgs.openldap}/etc/schema/inetorgperson.schema | ||
9 | include ${pkgs.openldap}/etc/schema/nis.schema | ||
10 | ${eldiron_schemas} | ||
11 | pidfile /run/slapd_${name}/slapd.pid | ||
12 | argsfile /run/slapd_${name}/slapd.args | ||
13 | |||
14 | moduleload back_hdb | ||
15 | backend hdb | ||
16 | database hdb | ||
17 | |||
18 | suffix "${hcfg.base}" | ||
19 | rootdn "cn=root,${hcfg.base}" | ||
20 | directory ${cfg.base}/${name}/openldap | ||
21 | |||
22 | index objectClass eq | ||
23 | index uid pres,eq | ||
24 | index entryUUID eq | ||
25 | |||
26 | include ${config.secrets.fullPaths."openldap_replication/${name}/replication_config"} | ||
27 | ''; | ||
28 | in | ||
29 | { | ||
30 | options.myServices.databasesReplication.openldap = { | ||
31 | enable = lib.mkEnableOption "Enable openldap replication"; | ||
32 | base = lib.mkOption { | ||
33 | type = lib.types.path; | ||
34 | description = '' | ||
35 | Base path to put the replications | ||
36 | ''; | ||
37 | }; | ||
38 | hosts = lib.mkOption { | ||
39 | default = {}; | ||
40 | description = '' | ||
41 | Hosts to backup | ||
42 | ''; | ||
43 | type = lib.types.attrsOf (lib.types.submodule { | ||
44 | options = { | ||
45 | package = lib.mkOption { | ||
46 | type = lib.types.package; | ||
47 | default = pkgs.openldap; | ||
48 | description = '' | ||
49 | Openldap package for this host | ||
50 | ''; | ||
51 | }; | ||
52 | url = lib.mkOption { | ||
53 | type = lib.types.str; | ||
54 | description = '' | ||
55 | Host to connect to | ||
56 | ''; | ||
57 | }; | ||
58 | base = lib.mkOption { | ||
59 | type = lib.types.str; | ||
60 | description = '' | ||
61 | Base DN to replicate | ||
62 | ''; | ||
63 | }; | ||
64 | dn = lib.mkOption { | ||
65 | type = lib.types.str; | ||
66 | description = '' | ||
67 | DN to use | ||
68 | ''; | ||
69 | }; | ||
70 | password = lib.mkOption { | ||
71 | type = lib.types.str; | ||
72 | description = '' | ||
73 | Password to use | ||
74 | ''; | ||
75 | }; | ||
76 | }; | ||
77 | }); | ||
78 | }; | ||
79 | }; | ||
80 | |||
81 | config = lib.mkIf cfg.enable { | ||
82 | users.users.openldap = { | ||
83 | description = "Openldap database user"; | ||
84 | group = "openldap"; | ||
85 | uid = config.ids.uids.openldap; | ||
86 | extraGroups = [ "keys" ]; | ||
87 | }; | ||
88 | users.groups.openldap.gid = config.ids.gids.openldap; | ||
89 | |||
90 | secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (name: hcfg: [ | ||
91 | (lib.nameValuePair "openldap_replication/${name}/replication_config" { | ||
92 | user = "openldap"; | ||
93 | group = "openldap"; | ||
94 | permissions = "0400"; | ||
95 | text = '' | ||
96 | syncrepl rid=000 | ||
97 | provider=${hcfg.url} | ||
98 | type=refreshAndPersist | ||
99 | searchbase="${hcfg.base}" | ||
100 | retry="5 10 300 +" | ||
101 | attrs="*,+" | ||
102 | schemachecking=off | ||
103 | bindmethod=simple | ||
104 | binddn="${hcfg.dn}" | ||
105 | credentials="${hcfg.password}" | ||
106 | ''; | ||
107 | }) | ||
108 | (lib.nameValuePair "openldap_replication/${name}/replication_password" { | ||
109 | user = "openldap"; | ||
110 | group = "openldap"; | ||
111 | permissions = "0400"; | ||
112 | text = hcfg.password; | ||
113 | }) | ||
114 | ]) cfg.hosts)); | ||
115 | |||
116 | services.cron = { | ||
117 | enable = true; | ||
118 | systemCronJobs = lib.flatten (lib.mapAttrsToList (name: hcfg: | ||
119 | let | ||
120 | dataDir = "${cfg.base}/${name}/openldap"; | ||
121 | backupDir = "${cfg.base}/${name}/openldap_backup"; | ||
122 | backup_script = pkgs.writeScript "backup_openldap_${name}" '' | ||
123 | #!${pkgs.stdenv.shell} | ||
124 | |||
125 | ${hcfg.package}/bin/slapcat -b "${hcfg.base}" -f ${ldapConfig hcfg name} -l ${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).ldif | ||
126 | ''; | ||
127 | u = pkgs.callPackage ./utils.nix {}; | ||
128 | cleanup_script = pkgs.writeScript "cleanup_openldap_${name}" (u.exponentialDumps "ldif" backupDir); | ||
129 | in [ | ||
130 | "0 22,4,10,16 * * * root ${backup_script}" | ||
131 | "0 3 * * * root ${cleanup_script}" | ||
132 | ]) cfg.hosts); | ||
133 | }; | ||
134 | |||
135 | system.activationScripts = lib.attrsets.mapAttrs' (name: hcfg: | ||
136 | lib.attrsets.nameValuePair "openldap_replication_${name}" { | ||
137 | deps = [ "users" "groups" ]; | ||
138 | text = '' | ||
139 | install -m 0700 -o openldap -g openldap -d ${cfg.base}/${name}/openldap | ||
140 | install -m 0700 -o openldap -g openldap -d ${cfg.base}/${name}/openldap_backup | ||
141 | ''; | ||
142 | }) cfg.hosts; | ||
143 | |||
144 | systemd.services = lib.attrsets.mapAttrs' (name: hcfg: | ||
145 | let | ||
146 | dataDir = "${cfg.base}/${name}/openldap"; | ||
147 | in | ||
148 | lib.attrsets.nameValuePair "openldap_backup_${name}" { | ||
149 | description = "Openldap replication for ${name}"; | ||
150 | wantedBy = [ "multi-user.target" ]; | ||
151 | after = [ "network.target" ]; | ||
152 | unitConfig.RequiresMountsFor = dataDir; | ||
153 | |||
154 | preStart = '' | ||
155 | mkdir -p /run/slapd_${name} | ||
156 | chown -R "openldap:openldap" /run/slapd_${name} | ||
157 | ''; | ||
158 | |||
159 | serviceConfig = { | ||
160 | ExecStart = "${hcfg.package}/libexec/slapd -d 0 -u openldap -g openldap -f ${ldapConfig hcfg name}"; | ||
161 | }; | ||
162 | }) cfg.hosts; | ||
163 | }; | ||
164 | } | ||
165 | |||
166 | |||
diff --git a/modules/private/databases/postgresql.nix b/modules/private/databases/postgresql.nix deleted file mode 100644 index a6c4cc9..0000000 --- a/modules/private/databases/postgresql.nix +++ /dev/null | |||
@@ -1,228 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databases.postgresql; | ||
4 | in { | ||
5 | options.myServices.databases = { | ||
6 | postgresql = { | ||
7 | enable = lib.mkOption { | ||
8 | default = false; | ||
9 | example = true; | ||
10 | description = "Whether to enable postgresql database"; | ||
11 | type = lib.types.bool; | ||
12 | }; | ||
13 | package = lib.mkOption { | ||
14 | type = lib.types.package; | ||
15 | default = pkgs.postgresql; | ||
16 | description = '' | ||
17 | Postgresql package to use. | ||
18 | ''; | ||
19 | }; | ||
20 | ldapConfig = lib.mkOption { | ||
21 | description = "LDAP configuration to allow PAM identification via LDAP"; | ||
22 | type = lib.types.submodule { | ||
23 | options = { | ||
24 | host = lib.mkOption { type = lib.types.str; }; | ||
25 | base = lib.mkOption { type = lib.types.str; }; | ||
26 | dn = lib.mkOption { type = lib.types.str; }; | ||
27 | password = lib.mkOption { type = lib.types.str; }; | ||
28 | filter = lib.mkOption { type = lib.types.str; }; | ||
29 | }; | ||
30 | }; | ||
31 | }; | ||
32 | replicationLdapConfig = lib.mkOption { | ||
33 | description = "LDAP configuration to allow replication"; | ||
34 | type = lib.types.submodule { | ||
35 | options = { | ||
36 | host = lib.mkOption { type = lib.types.str; }; | ||
37 | base = lib.mkOption { type = lib.types.str; }; | ||
38 | dn = lib.mkOption { type = lib.types.str; }; | ||
39 | password = lib.mkOption { type = lib.types.str; }; | ||
40 | }; | ||
41 | }; | ||
42 | }; | ||
43 | authorizedHosts = lib.mkOption { | ||
44 | default = {}; | ||
45 | description = "Hosts to allow connections from"; | ||
46 | type = lib.types.attrsOf (lib.types.listOf (lib.types.submodule { | ||
47 | options = { | ||
48 | method = lib.mkOption { | ||
49 | default = "md5"; | ||
50 | type = lib.types.str; | ||
51 | }; | ||
52 | username = lib.mkOption { | ||
53 | default = "all"; | ||
54 | type = lib.types.str; | ||
55 | }; | ||
56 | database = lib.mkOption { | ||
57 | default = "all"; | ||
58 | type = lib.types.str; | ||
59 | }; | ||
60 | ip4 = lib.mkOption { | ||
61 | default = []; | ||
62 | type = lib.types.listOf lib.types.str; | ||
63 | }; | ||
64 | ip6 = lib.mkOption { | ||
65 | default = []; | ||
66 | type = lib.types.listOf lib.types.str; | ||
67 | }; | ||
68 | }; | ||
69 | })); | ||
70 | }; | ||
71 | replicationHosts = lib.mkOption { | ||
72 | default = {}; | ||
73 | description = "Hosts to allow replication from"; | ||
74 | type = lib.types.attrsOf (lib.types.submodule { | ||
75 | options = { | ||
76 | ip4 = lib.mkOption { | ||
77 | type = lib.types.listOf lib.types.str; | ||
78 | }; | ||
79 | ip6 = lib.mkOption { | ||
80 | type = lib.types.listOf lib.types.str; | ||
81 | }; | ||
82 | }; | ||
83 | }); | ||
84 | }; | ||
85 | # Output variables | ||
86 | socketsDir = lib.mkOption { | ||
87 | type = lib.types.path; | ||
88 | default = "/run/postgresql"; | ||
89 | description = '' | ||
90 | The directory where Postgresql puts sockets. | ||
91 | ''; | ||
92 | readOnly = true; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | |||
97 | config = lib.mkIf cfg.enable { | ||
98 | networking.firewall.allowedTCPPorts = [ 5432 ]; | ||
99 | |||
100 | security.acme.certs."postgresql" = config.myServices.databasesCerts // { | ||
101 | user = "postgres"; | ||
102 | group = "postgres"; | ||
103 | domain = "db-1.immae.eu"; | ||
104 | postRun = '' | ||
105 | systemctl reload postgresql.service | ||
106 | ''; | ||
107 | }; | ||
108 | |||
109 | systemd.services.postgresql.serviceConfig = { | ||
110 | SupplementaryGroups = "keys"; | ||
111 | }; | ||
112 | systemd.services.postgresql.postStart = lib.mkAfter '' | ||
113 | # This line is already defined in 19.09 | ||
114 | PSQL="${pkgs.sudo}/bin/sudo -u postgres psql --port=5432" | ||
115 | |||
116 | ${builtins.concatStringsSep "\n" (lib.mapAttrsToList (role: _: '' | ||
117 | $PSQL -tAc "SELECT 1 FROM pg_roles WHERE rolname='${role}'" \ | ||
118 | | grep -q 1 \ | ||
119 | || $PSQL -tAc 'CREATE USER "${role}" WITH REPLICATION' | ||
120 | '') cfg.replicationHosts)} | ||
121 | |||
122 | ${builtins.concatStringsSep "\n" (lib.mapAttrsToList (role: _: | ||
123 | let | ||
124 | sname = builtins.replaceStrings ["-"] ["_"] role; | ||
125 | in | ||
126 | '' | ||
127 | $PSQL -tAc "SELECT 1 FROM pg_replication_slots WHERE slot_name='${sname}'" \ | ||
128 | | grep -q 1 \ | ||
129 | || $PSQL -tAc "SELECT * FROM pg_create_physical_replication_slot('${sname}')" | ||
130 | '') cfg.replicationHosts)} | ||
131 | ''; | ||
132 | |||
133 | services.postgresql = { | ||
134 | enable = true; | ||
135 | package = cfg.package; | ||
136 | enableTCPIP = true; | ||
137 | extraConfig = '' | ||
138 | max_connections = 100 | ||
139 | wal_level = logical | ||
140 | shared_buffers = 512MB | ||
141 | work_mem = 10MB | ||
142 | max_wal_size = 1GB | ||
143 | min_wal_size = 80MB | ||
144 | log_timezone = 'Europe/Paris' | ||
145 | datestyle = 'iso, mdy' | ||
146 | timezone = 'Europe/Paris' | ||
147 | lc_messages = 'en_US.UTF-8' | ||
148 | lc_monetary = 'en_US.UTF-8' | ||
149 | lc_numeric = 'en_US.UTF-8' | ||
150 | lc_time = 'en_US.UTF-8' | ||
151 | default_text_search_config = 'pg_catalog.english' | ||
152 | # this introduces a small delay before storing on disk, but | ||
153 | # makes it order of magnitudes quicker | ||
154 | synchronous_commit = off | ||
155 | ssl = on | ||
156 | ssl_cert_file = '${config.security.acme.certs.postgresql.directory}/fullchain.pem' | ||
157 | ssl_key_file = '${config.security.acme.certs.postgresql.directory}/key.pem' | ||
158 | ''; | ||
159 | authentication = let | ||
160 | hosts = builtins.concatStringsSep "\n" ( | ||
161 | lib.lists.flatten (lib.mapAttrsToList (k: vs: map (v: | ||
162 | map (ip6: "hostssl ${v.database} ${v.username} ${ip6}/128 ${v.method}") v.ip6 | ||
163 | ++ map (ip4: "hostssl ${v.database} ${v.username} ${ip4}/32 ${v.method}") v.ip4 | ||
164 | ) vs) cfg.authorizedHosts | ||
165 | )); | ||
166 | replication = builtins.concatStringsSep "\n" ( | ||
167 | lib.lists.flatten (lib.mapAttrsToList (k: v: | ||
168 | map (ip6: "hostssl replication ${k} ${ip6}/128 pam pamservice=postgresql_replication") v.ip6 | ||
169 | ++ map (ip4: "hostssl replication ${k} ${ip4}/32 pam pamservice=postgresql_replication") v.ip4 | ||
170 | ) cfg.replicationHosts | ||
171 | )); | ||
172 | in '' | ||
173 | local all postgres ident | ||
174 | local all all md5 | ||
175 | ${hosts} | ||
176 | hostssl all all all pam | ||
177 | ${replication} | ||
178 | ''; | ||
179 | }; | ||
180 | |||
181 | secrets.keys = { | ||
182 | "postgresql/pam" = { | ||
183 | permissions = "0400"; | ||
184 | group = "postgres"; | ||
185 | user = "postgres"; | ||
186 | text = with cfg.ldapConfig; '' | ||
187 | host ${host} | ||
188 | base ${base} | ||
189 | binddn ${dn} | ||
190 | bindpw ${password} | ||
191 | pam_filter ${filter} | ||
192 | ssl start_tls | ||
193 | ''; | ||
194 | }; | ||
195 | "postgresql/pam_replication" = { | ||
196 | permissions = "0400"; | ||
197 | group = "postgres"; | ||
198 | user = "postgres"; | ||
199 | text = with cfg.replicationLdapConfig; '' | ||
200 | host ${host} | ||
201 | base ${base} | ||
202 | binddn ${dn} | ||
203 | bindpw ${password} | ||
204 | pam_login_attribute cn | ||
205 | ssl start_tls | ||
206 | ''; | ||
207 | }; | ||
208 | }; | ||
209 | |||
210 | security.pam.services = let | ||
211 | pam_ldap = "${pkgs.pam_ldap}/lib/security/pam_ldap.so"; | ||
212 | in { | ||
213 | postgresql = { | ||
214 | text = '' | ||
215 | auth required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam"} | ||
216 | account required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam"} | ||
217 | ''; | ||
218 | }; | ||
219 | postgresql_replication = { | ||
220 | text = '' | ||
221 | auth required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam_replication"} | ||
222 | account required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam_replication"} | ||
223 | ''; | ||
224 | }; | ||
225 | }; | ||
226 | }; | ||
227 | } | ||
228 | |||
diff --git a/modules/private/databases/postgresql_replication.nix b/modules/private/databases/postgresql_replication.nix deleted file mode 100644 index 135bbed..0000000 --- a/modules/private/databases/postgresql_replication.nix +++ /dev/null | |||
@@ -1,182 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databasesReplication.postgresql; | ||
4 | in | ||
5 | { | ||
6 | options.myServices.databasesReplication.postgresql = { | ||
7 | enable = lib.mkEnableOption "Enable postgresql replication"; | ||
8 | base = lib.mkOption { | ||
9 | type = lib.types.path; | ||
10 | description = '' | ||
11 | Base path to put the replications | ||
12 | ''; | ||
13 | }; | ||
14 | mainPackage = lib.mkOption { | ||
15 | type = lib.types.package; | ||
16 | default = pkgs.postgresql; | ||
17 | description = '' | ||
18 | Postgresql package available in shell | ||
19 | ''; | ||
20 | }; | ||
21 | hosts = lib.mkOption { | ||
22 | default = {}; | ||
23 | description = '' | ||
24 | Hosts to backup | ||
25 | ''; | ||
26 | type = lib.types.attrsOf (lib.types.submodule { | ||
27 | options = { | ||
28 | package = lib.mkOption { | ||
29 | type = lib.types.package; | ||
30 | default = pkgs.postgresql; | ||
31 | description = '' | ||
32 | Postgresql package for this host | ||
33 | ''; | ||
34 | }; | ||
35 | slot = lib.mkOption { | ||
36 | type = lib.types.str; | ||
37 | description = '' | ||
38 | Slot to use for replication | ||
39 | ''; | ||
40 | }; | ||
41 | connection = lib.mkOption { | ||
42 | type = lib.types.str; | ||
43 | description = '' | ||
44 | Connection string to access the psql master | ||
45 | ''; | ||
46 | }; | ||
47 | }; | ||
48 | }); | ||
49 | }; | ||
50 | }; | ||
51 | |||
52 | config = lib.mkIf cfg.enable { | ||
53 | users.users.postgres = { | ||
54 | name = "postgres"; | ||
55 | uid = config.ids.uids.postgres; | ||
56 | group = "postgres"; | ||
57 | description = "PostgreSQL server user"; | ||
58 | home = "/var/lib/postgresql"; | ||
59 | useDefaultShell = true; | ||
60 | extraGroups = [ "keys" ]; | ||
61 | }; | ||
62 | users.groups.postgres.gid = config.ids.gids.postgres; | ||
63 | environment.systemPackages = [ cfg.mainPackage ]; | ||
64 | |||
65 | secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (name: hcfg: [ | ||
66 | (lib.nameValuePair "postgresql_replication/${name}/recovery.conf" { | ||
67 | user = "postgres"; | ||
68 | group = "postgres"; | ||
69 | permissions = "0400"; | ||
70 | text = '' | ||
71 | standby_mode = on | ||
72 | primary_conninfo = '${hcfg.connection}?sslmode=require' | ||
73 | primary_slot_name = '${hcfg.slot}' | ||
74 | ''; | ||
75 | }) | ||
76 | (lib.nameValuePair "postgresql_replication/${name}/connection_string" { | ||
77 | user = "postgres"; | ||
78 | group = "postgres"; | ||
79 | permissions = "0400"; | ||
80 | text = hcfg.connection; | ||
81 | }) | ||
82 | (lib.nameValuePair "postgresql_replication/${name}/postgresql.conf" { | ||
83 | user = "postgres"; | ||
84 | group = "postgres"; | ||
85 | permissions = "0400"; | ||
86 | text = let | ||
87 | dataDir = "${cfg.base}/${name}/postgresql"; | ||
88 | in '' | ||
89 | listen_addresses = ''' | ||
90 | unix_socket_directories = '${dataDir}' | ||
91 | data_directory = '${dataDir}' | ||
92 | wal_level = logical | ||
93 | ''; | ||
94 | }) | ||
95 | ]) cfg.hosts)); | ||
96 | |||
97 | services.cron = { | ||
98 | enable = true; | ||
99 | systemCronJobs = lib.flatten (lib.mapAttrsToList (name: hcfg: | ||
100 | let | ||
101 | dataDir = "${cfg.base}/${name}/postgresql"; | ||
102 | backupDir = "${cfg.base}/${name}/postgresql_backup"; | ||
103 | backup_script = pkgs.writeScript "backup_psql_${name}" '' | ||
104 | #!${pkgs.stdenv.shell} | ||
105 | |||
106 | set -euo pipefail | ||
107 | |||
108 | resume_replication() { | ||
109 | ${hcfg.package}/bin/psql -h ${dataDir} -c "SELECT pg_wal_replay_resume();" >/dev/null || echo "impossible to resume replication" | ||
110 | } | ||
111 | |||
112 | trap resume_replication EXIT | ||
113 | |||
114 | ${hcfg.package}/bin/psql -h ${dataDir} -c "SELECT pg_wal_replay_pause();" >/dev/null || (echo "impossible to pause replication" && false) | ||
115 | |||
116 | ${hcfg.package}/bin/pg_dumpall -h ${dataDir} -f ${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql | ||
117 | ''; | ||
118 | u = pkgs.callPackage ./utils.nix {}; | ||
119 | cleanup_script = pkgs.writeScript "cleanup_postgresql_${name}" (u.keepLastNDumps "sql" backupDir 6); | ||
120 | in [ | ||
121 | "0 22,4,10,16 * * * postgres ${backup_script}" | ||
122 | "0 3 * * * postgres ${cleanup_script}" | ||
123 | ]) cfg.hosts); | ||
124 | }; | ||
125 | |||
126 | system.activationScripts = lib.attrsets.mapAttrs' (name: hcfg: | ||
127 | lib.attrsets.nameValuePair "psql_replication_${name}" { | ||
128 | deps = [ "users" ]; | ||
129 | text = '' | ||
130 | install -m 0700 -o postgres -g postgres -d ${cfg.base}/${name}/postgresql | ||
131 | install -m 0700 -o postgres -g postgres -d ${cfg.base}/${name}/postgresql_backup | ||
132 | ''; | ||
133 | }) cfg.hosts; | ||
134 | |||
135 | systemd.services = lib.attrsets.mapAttrs' (name: hcfg: | ||
136 | let | ||
137 | dataDir = "${cfg.base}/${name}/postgresql"; | ||
138 | in | ||
139 | lib.attrsets.nameValuePair "postgresql_backup_${name}" { | ||
140 | description = "Postgresql replication for ${name}"; | ||
141 | wantedBy = [ "multi-user.target" ]; | ||
142 | after = [ "network.target" ]; | ||
143 | |||
144 | environment.PGDATA = dataDir; | ||
145 | path = [ hcfg.package ]; | ||
146 | |||
147 | preStart = '' | ||
148 | if ! test -e ${dataDir}/PG_VERSION; then | ||
149 | mkdir -m 0700 -p ${dataDir} | ||
150 | chown -R postgres:postgres ${dataDir} | ||
151 | fi | ||
152 | ''; | ||
153 | script = let | ||
154 | fp = n: config.secrets.fullPaths."postgresql_replication/${name}/${n}"; | ||
155 | in '' | ||
156 | if ! test -e ${dataDir}/PG_VERSION; then | ||
157 | pg_basebackup -d $(cat ${fp "connection_string"}) -D ${dataDir} -S ${hcfg.slot} | ||
158 | fi | ||
159 | ln -sfn ${fp "recovery.conf"} ${dataDir}/recovery.conf | ||
160 | ln -sfn ${fp "postgresql.conf"} ${dataDir}/postgresql.conf | ||
161 | |||
162 | exec postgres | ||
163 | ''; | ||
164 | |||
165 | serviceConfig = { | ||
166 | ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; | ||
167 | User = "postgres"; | ||
168 | Group = "postgres"; | ||
169 | PermissionsStartOnly = true; | ||
170 | RuntimeDirectory = "postgresql"; | ||
171 | Type = "notify"; | ||
172 | |||
173 | KillSignal = "SIGINT"; | ||
174 | KillMode = "mixed"; | ||
175 | # basebackup can take a long time | ||
176 | TimeoutStartSec="infinity"; | ||
177 | TimeoutStopSec = 120; | ||
178 | }; | ||
179 | unitConfig.RequiresMountsFor = dataDir; | ||
180 | }) cfg.hosts; | ||
181 | }; | ||
182 | } | ||
diff --git a/modules/private/databases/redis.nix b/modules/private/databases/redis.nix deleted file mode 100644 index 685fa46..0000000 --- a/modules/private/databases/redis.nix +++ /dev/null | |||
@@ -1,133 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databases.redis; | ||
4 | in { | ||
5 | options.myServices.databases.redis = { | ||
6 | enable = lib.mkOption { | ||
7 | default = false; | ||
8 | example = true; | ||
9 | description = "Whether to enable redis database"; | ||
10 | type = lib.types.bool; | ||
11 | }; | ||
12 | socketsDir = lib.mkOption { | ||
13 | type = lib.types.path; | ||
14 | default = "/run/redis"; | ||
15 | description = '' | ||
16 | The directory where Redis puts sockets. | ||
17 | ''; | ||
18 | }; | ||
19 | # Output variables | ||
20 | sockets = lib.mkOption { | ||
21 | type = lib.types.attrsOf lib.types.path; | ||
22 | default = { | ||
23 | redis = "${cfg.socketsDir}/redis.sock"; | ||
24 | }; | ||
25 | readOnly = true; | ||
26 | description = '' | ||
27 | Redis sockets | ||
28 | ''; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | config = lib.mkIf cfg.enable { | ||
33 | users.users.redis.uid = config.ids.uids.redis; | ||
34 | users.groups.redis.gid = config.ids.gids.redis; | ||
35 | services.redis = rec { | ||
36 | enable = true; | ||
37 | bind = "127.0.0.1"; | ||
38 | unixSocket = cfg.sockets.redis; | ||
39 | extraConfig = '' | ||
40 | unixsocketperm 777 | ||
41 | maxclients 1024 | ||
42 | ''; | ||
43 | }; | ||
44 | systemd.services.redis.serviceConfig.Slice = "redis.slice"; | ||
45 | |||
46 | services.spiped = { | ||
47 | enable = true; | ||
48 | config.redis = { | ||
49 | decrypt = true; | ||
50 | source = "0.0.0.0:16379"; | ||
51 | target = "/run/redis/redis.sock"; | ||
52 | keyfile = config.secrets.fullPaths."redis/spiped_keyfile"; | ||
53 | }; | ||
54 | }; | ||
55 | systemd.services.spiped_redis = { | ||
56 | description = "Secure pipe 'redis'"; | ||
57 | after = [ "network.target" ]; | ||
58 | wantedBy = [ "multi-user.target" ]; | ||
59 | |||
60 | serviceConfig = { | ||
61 | Slice = "redis.slice"; | ||
62 | Restart = "always"; | ||
63 | User = "spiped"; | ||
64 | PermissionsStartOnly = true; | ||
65 | SupplementaryGroups = "keys"; | ||
66 | }; | ||
67 | |||
68 | script = "exec ${pkgs.spiped}/bin/spiped -F `cat /etc/spiped/redis.spec`"; | ||
69 | }; | ||
70 | |||
71 | services.filesWatcher.predixy = { | ||
72 | restart = true; | ||
73 | paths = [ config.secrets.fullPaths."redis/predixy.conf" ]; | ||
74 | }; | ||
75 | |||
76 | networking.firewall.allowedTCPPorts = [ 7617 16379 ]; | ||
77 | secrets.keys = { | ||
78 | "redis/predixy.conf" = { | ||
79 | user = "redis"; | ||
80 | group = "redis"; | ||
81 | permissions = "0400"; | ||
82 | text = '' | ||
83 | Name Predixy | ||
84 | Bind 127.0.0.1:7617 | ||
85 | ClientTimeout 300 | ||
86 | WorkerThreads 1 | ||
87 | |||
88 | Authority { | ||
89 | Auth "${config.myEnv.databases.redis.predixy.read}" { | ||
90 | Mode read | ||
91 | } | ||
92 | } | ||
93 | |||
94 | StandaloneServerPool { | ||
95 | Databases 16 | ||
96 | RefreshMethod fixed | ||
97 | Group shard001 { | ||
98 | + ${config.myEnv.databases.redis.socket} | ||
99 | } | ||
100 | } | ||
101 | ''; | ||
102 | }; | ||
103 | "redis/spiped_keyfile" = { | ||
104 | user = "spiped"; | ||
105 | group = "spiped"; | ||
106 | permissions = "0400"; | ||
107 | text = config.myEnv.databases.redis.spiped_key; | ||
108 | }; | ||
109 | }; | ||
110 | |||
111 | systemd.slices.redis = { | ||
112 | description = "Redis slice"; | ||
113 | }; | ||
114 | |||
115 | systemd.services.predixy = { | ||
116 | description = "Redis proxy"; | ||
117 | wantedBy = [ "multi-user.target" ]; | ||
118 | after = [ "redis.service" ]; | ||
119 | |||
120 | serviceConfig = { | ||
121 | Slice = "redis.slice"; | ||
122 | User = "redis"; | ||
123 | Group = "redis"; | ||
124 | SupplementaryGroups = "keys"; | ||
125 | Type = "simple"; | ||
126 | |||
127 | ExecStart = "${pkgs.predixy}/bin/predixy ${config.secrets.fullPaths."redis/predixy.conf"}"; | ||
128 | }; | ||
129 | |||
130 | }; | ||
131 | }; | ||
132 | } | ||
133 | |||
diff --git a/modules/private/databases/redis_replication.nix b/modules/private/databases/redis_replication.nix deleted file mode 100644 index 9e48939..0000000 --- a/modules/private/databases/redis_replication.nix +++ /dev/null | |||
@@ -1,171 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databasesReplication.redis; | ||
4 | in | ||
5 | { | ||
6 | options.myServices.databasesReplication.redis = { | ||
7 | enable = lib.mkEnableOption "Enable redis replication"; | ||
8 | base = lib.mkOption { | ||
9 | type = lib.types.path; | ||
10 | description = '' | ||
11 | Base path to put the replications | ||
12 | ''; | ||
13 | }; | ||
14 | hosts = lib.mkOption { | ||
15 | default = {}; | ||
16 | description = '' | ||
17 | Hosts to backup | ||
18 | ''; | ||
19 | type = lib.types.attrsOf (lib.types.submodule { | ||
20 | options = { | ||
21 | package = lib.mkOption { | ||
22 | type = lib.types.package; | ||
23 | default = pkgs.redis; | ||
24 | description = '' | ||
25 | Redis package for this host | ||
26 | ''; | ||
27 | }; | ||
28 | host = lib.mkOption { | ||
29 | type = lib.types.str; | ||
30 | description = '' | ||
31 | Host to connect to | ||
32 | ''; | ||
33 | }; | ||
34 | port = lib.mkOption { | ||
35 | type = lib.types.str; | ||
36 | description = '' | ||
37 | Port to connect to | ||
38 | ''; | ||
39 | }; | ||
40 | password = lib.mkOption { | ||
41 | type = lib.types.nullOr lib.types.str; | ||
42 | default = null; | ||
43 | description = '' | ||
44 | Password to use | ||
45 | ''; | ||
46 | }; | ||
47 | }; | ||
48 | }); | ||
49 | }; | ||
50 | }; | ||
51 | |||
52 | config = lib.mkIf cfg.enable { | ||
53 | users.users.redis = { | ||
54 | description = "Redis database user"; | ||
55 | group = "redis"; | ||
56 | uid = config.ids.uids.redis; | ||
57 | extraGroups = [ "keys" ]; | ||
58 | }; | ||
59 | users.groups.redis.gid = config.ids.gids.redis; | ||
60 | |||
61 | services.spiped = { # sync from eldiron | ||
62 | enable = true; | ||
63 | config.redis = { | ||
64 | encrypt = true; | ||
65 | source = "127.0.0.1:16379"; | ||
66 | target = "${config.myEnv.servers.eldiron.ips.main.ip4}:16379"; | ||
67 | keyfile = config.secrets.fullPaths."redis/spiped_eldiron_keyfile"; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | secrets.keys = lib.mapAttrs' (name: hcfg: | ||
72 | lib.nameValuePair "redis_replication/${name}/config" { | ||
73 | user = "redis"; | ||
74 | group = "redis"; | ||
75 | permissions = "0400"; | ||
76 | text = '' | ||
77 | pidfile ${cfg.base}/${name}/redis/redis.pid | ||
78 | port 0 | ||
79 | unixsocket /run/redis_${name}/redis.sock | ||
80 | loglevel notice | ||
81 | logfile /dev/null | ||
82 | syslog-enabled yes | ||
83 | databases 16 | ||
84 | save 900 1 | ||
85 | save 300 10 | ||
86 | save 60 10000 | ||
87 | dbfilename dump.rdb | ||
88 | dir ${cfg.base}/${name}/redis/ | ||
89 | slaveof ${hcfg.host} ${hcfg.port} | ||
90 | ${if hcfg.password != null then "masterauth ${hcfg.password}" else ""} | ||
91 | appendOnly no | ||
92 | appendfsync everysec | ||
93 | slowlog-log-slower-than 10000 | ||
94 | slowlog-max-len 128 | ||
95 | unixsocketperm 777 | ||
96 | maxclients 1024 | ||
97 | ''; | ||
98 | } | ||
99 | ) cfg.hosts // { | ||
100 | "redis/spiped_eldiron_keyfile" = { # For eldiron only | ||
101 | user = "spiped"; | ||
102 | group = "spiped"; | ||
103 | permissions = "0400"; | ||
104 | text = config.myEnv.databases.redis.spiped_key; | ||
105 | }; | ||
106 | }; | ||
107 | |||
108 | services.cron = { | ||
109 | enable = true; | ||
110 | systemCronJobs = lib.flatten (lib.mapAttrsToList (name: hcfg: | ||
111 | let | ||
112 | dataDir = "${cfg.base}/${name}/redis"; | ||
113 | backupDir = "${cfg.base}/${name}/redis_backup"; | ||
114 | backup_script = pkgs.writeScript "backup_redis_${name}" '' | ||
115 | #!${pkgs.stdenv.shell} | ||
116 | |||
117 | ${pkgs.coreutils}/bin/cp ${cfg.base}/${name}/redis/dump.rdb \ | ||
118 | ${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).rdb | ||
119 | ''; | ||
120 | u = pkgs.callPackage ./utils.nix {}; | ||
121 | cleanup_script = pkgs.writeScript "cleanup_redis_${name}" (u.exponentialDumps "rdb" backupDir); | ||
122 | in [ | ||
123 | "0 22,4,10,16 * * * root ${backup_script}" | ||
124 | "0 3 * * * root ${cleanup_script}" | ||
125 | ]) cfg.hosts); | ||
126 | }; | ||
127 | |||
128 | system.activationScripts = lib.attrsets.mapAttrs' (name: hcfg: | ||
129 | lib.attrsets.nameValuePair "redis_replication_${name}" { | ||
130 | deps = [ "users" "groups" ]; | ||
131 | text = '' | ||
132 | install -m 0700 -o redis -g redis -d ${cfg.base}/${name}/redis | ||
133 | install -m 0700 -o redis -g redis -d ${cfg.base}/${name}/redis_backup | ||
134 | ''; | ||
135 | }) cfg.hosts; | ||
136 | |||
137 | systemd.services = { | ||
138 | spiped_redis = { # For eldiron | ||
139 | description = "Secure pipe 'redis'"; | ||
140 | after = [ "network.target" ]; | ||
141 | wantedBy = [ "multi-user.target" ]; | ||
142 | |||
143 | serviceConfig = { | ||
144 | Restart = "always"; | ||
145 | User = "spiped"; | ||
146 | PermissionsStartOnly = true; | ||
147 | SupplementaryGroups = "keys"; | ||
148 | }; | ||
149 | |||
150 | script = "exec ${pkgs.spiped}/bin/spiped -F `cat /etc/spiped/redis.spec`"; | ||
151 | }; | ||
152 | } // lib.attrsets.mapAttrs' (name: hcfg: | ||
153 | let | ||
154 | dataDir = "${cfg.base}/${name}/redis"; | ||
155 | in | ||
156 | lib.attrsets.nameValuePair "redis_backup_${name}" { | ||
157 | description = "Redis replication for ${name}"; | ||
158 | wantedBy = [ "multi-user.target" ]; | ||
159 | after = [ "network.target" ]; | ||
160 | unitConfig.RequiresMountsFor = dataDir; | ||
161 | |||
162 | serviceConfig = { | ||
163 | ExecStart = "${hcfg.package}/bin/redis-server ${config.secrets.fullPaths."redis_replication/${name}/config"}"; | ||
164 | User = "redis"; | ||
165 | RuntimeDirectory = "redis_${name}"; | ||
166 | }; | ||
167 | }) cfg.hosts; | ||
168 | }; | ||
169 | } | ||
170 | |||
171 | |||
diff --git a/modules/private/databases/utils.nix b/modules/private/databases/utils.nix deleted file mode 100644 index 47988fc..0000000 --- a/modules/private/databases/utils.nix +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | { pkgs }: | ||
2 | { | ||
3 | keepLastNDumps = ext: backupDir: n: '' | ||
4 | #!${pkgs.stdenv.shell} | ||
5 | |||
6 | cd ${backupDir} | ||
7 | ${pkgs.coreutils}/bin/rm -f \ | ||
8 | $(${pkgs.coreutils}/bin/ls -1 *.${ext} \ | ||
9 | | ${pkgs.coreutils}/bin/sort -r \ | ||
10 | | ${pkgs.gnused}/bin/sed -e '1,${builtins.toString n}d') | ||
11 | ''; | ||
12 | exponentialDumps = ext: backupDir: let | ||
13 | log2rotateSrc = builtins.fetchGit { | ||
14 | url = "https://github.com/avian2/pylog2rotate"; | ||
15 | ref = "master"; | ||
16 | rev = "061f0564757289d3bea553b16f8fd5c4a0319c5e"; | ||
17 | }; | ||
18 | log2rotate = pkgs.writeScript "log2rotate" '' | ||
19 | #!${pkgs.python3}/bin/python | ||
20 | |||
21 | ${builtins.readFile "${log2rotateSrc}/log2rotate.py"} | ||
22 | ''; | ||
23 | in '' | ||
24 | #!${pkgs.stdenv.shell} | ||
25 | |||
26 | cd ${backupDir} | ||
27 | ${pkgs.coreutils}/bin/rm -f $(ls -1 *.${ext} | grep -v 'T22:' | sort -r | sed -e '1,12d') | ||
28 | ${pkgs.coreutils}/bin/rm -f $(ls -1 *T22*.${ext} | ${log2rotate} --skip 7 --fuzz 7 --delete --format='%Y-%m-%dT%H:%M+00:00.${ext}') | ||
29 | ''; | ||
30 | } | ||
diff --git a/modules/private/default.nix b/modules/private/default.nix deleted file mode 100644 index 9108a92..0000000 --- a/modules/private/default.nix +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | let | ||
2 | set = { | ||
3 | # adatped from nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix | ||
4 | httpdInte = import ../websites/httpd-service-builder.nix { httpdName = "Inte"; withUsers = false; }; | ||
5 | httpdProd = import ../websites/httpd-service-builder.nix { httpdName = "Prod"; withUsers = false; }; | ||
6 | httpdTools = import ../websites/httpd-service-builder.nix { httpdName = "Tools"; withUsers = true; }; | ||
7 | |||
8 | databases = ./databases; | ||
9 | mariadb = ./databases/mariadb.nix; | ||
10 | openldap = ./databases/openldap; | ||
11 | postgresql = ./databases/postgresql.nix; | ||
12 | redis = ./databases/redis.nix; | ||
13 | postgresqlReplication = ./databases/postgresql_replication.nix; | ||
14 | mariadbReplication = ./databases/mariadb_replication.nix; | ||
15 | redisReplication = ./databases/redis_replication.nix; | ||
16 | openldapReplication = ./databases/openldap_replication.nix; | ||
17 | |||
18 | websites = ./websites; | ||
19 | gemini = ./gemini; | ||
20 | |||
21 | |||
22 | # Personal websites | ||
23 | bakeerCloud = ./websites/bakeer/cloud.nix; | ||
24 | |||
25 | capitainesLandingPages = ./websites/capitaines/landing_pages.nix; | ||
26 | |||
27 | chloeInte = ./websites/chloe/integration.nix; | ||
28 | chloeProd = ./websites/chloe/production.nix; | ||
29 | |||
30 | cipcaSympa = ./websites/cip-ca/sympa.nix; | ||
31 | |||
32 | connexionswingInte = ./websites/connexionswing/integration.nix; | ||
33 | connexionswingProd = ./websites/connexionswing/production.nix; | ||
34 | |||
35 | deniseDenisejeromeProd = ./websites/denise/denisejerome.nix; | ||
36 | deniseEvariste = ./websites/denise/evariste.nix; | ||
37 | deniseOMS = ./websites/denise/oms.nix; | ||
38 | deniseBingo = ./websites/denise/bingo.nix; | ||
39 | deniseAventuriers = ./websites/denise/aventuriers.nix; | ||
40 | deniseProduction = ./websites/denise/production.nix; | ||
41 | |||
42 | emiliaMoodle = ./websites/emilia/moodle.nix; | ||
43 | emiliaAtelierFringant = ./websites/emilia/atelierfringant.nix; | ||
44 | |||
45 | florianApp = ./websites/florian/app.nix; | ||
46 | florianInte = ./websites/florian/integration.nix; | ||
47 | florianProd = ./websites/florian/production.nix; | ||
48 | |||
49 | immaeProd = ./websites/immae/production.nix; | ||
50 | immaeRelease = ./websites/immae/release.nix; | ||
51 | immaeTemp = ./websites/immae/temp.nix; | ||
52 | |||
53 | isabelleAtenInte = ./websites/isabelle/aten_integration.nix; | ||
54 | isabelleAtenProd = ./websites/isabelle/aten_production.nix; | ||
55 | isabelleIridologie = ./websites/isabelle/iridologie.nix; | ||
56 | |||
57 | jeromeNaturaloutil = ./websites/jerome/naturaloutil.nix; | ||
58 | |||
59 | leilaProd = ./websites/leila/production.nix; | ||
60 | |||
61 | ludivineInte = ./websites/ludivine/integration.nix; | ||
62 | ludivineProd = ./websites/ludivine/production.nix; | ||
63 | |||
64 | nassimeProd = ./websites/nassime/production.nix; | ||
65 | |||
66 | nathVillon = ./websites/nath/villon.nix; | ||
67 | |||
68 | papaMaisonBbc = ./websites/papa/maison_bbc.nix; | ||
69 | papaSurveillance = ./websites/papa/surveillance.nix; | ||
70 | |||
71 | patrickFodellaEcolyeu = ./websites/patrick_fodella/ecolyeu.nix; | ||
72 | patrickFodellaAltermondia = ./websites/patrick_fodella/altermondia.nix; | ||
73 | |||
74 | piedsjalouxInte = ./websites/piedsjaloux/integration.nix; | ||
75 | piedsjalouxProd = ./websites/piedsjaloux/production.nix; | ||
76 | |||
77 | ressourcerieBanonProd = ./websites/ressourcerie_banon/production.nix; | ||
78 | ressourcerieBanonCloud = ./websites/ressourcerie_banon/cloud.nix; | ||
79 | ressourcerieBanonCryptpad = ./websites/ressourcerie_banon/cryptpad.nix; | ||
80 | |||
81 | richieProd = ./websites/richie/production.nix; | ||
82 | |||
83 | sydenPeertube = ./websites/syden/peertube.nix; | ||
84 | |||
85 | teliotortayProd = ./websites/telio_tortay/production.nix; | ||
86 | |||
87 | # Tools | ||
88 | assetsTools = ./websites/tools/assets; | ||
89 | cloudTool = ./websites/tools/cloud; | ||
90 | cloudFarmTool = ./websites/tools/cloud/farm.nix; | ||
91 | cryptpadTool = ./websites/tools/cryptpad; | ||
92 | cryptpadFarmTool = ./websites/tools/cryptpad/farm.nix; | ||
93 | commentoTool = ./websites/tools/commento; | ||
94 | davTool = ./websites/tools/dav; | ||
95 | vpnTool = ./websites/tools/vpn; | ||
96 | dbTool = ./websites/tools/db; | ||
97 | diasporaTool = ./websites/tools/diaspora; | ||
98 | etherTool = ./websites/tools/ether; | ||
99 | gitTool = ./websites/tools/git; | ||
100 | imTool = ./websites/tools/im; | ||
101 | mastodonTool = ./websites/tools/mastodon; | ||
102 | mgoblinTool = ./websites/tools/mgoblin; | ||
103 | peertubeTool = ./websites/tools/peertube; | ||
104 | performanceTool = ./websites/tools/performance; | ||
105 | toolsTool = ./websites/tools/tools; | ||
106 | mailTool = ./websites/tools/mail; | ||
107 | statsTool = ./websites/tools/stats; | ||
108 | |||
109 | # Games | ||
110 | codenamesGame = ./websites/tools/games/codenames; | ||
111 | terraformingMarsGame = ./websites/tools/games/terraforming-mars; | ||
112 | |||
113 | mail = ./mail; | ||
114 | |||
115 | buildbot = ./buildbot; | ||
116 | certificates = ./certificates.nix; | ||
117 | gitolite = ./gitolite; | ||
118 | irc = ./irc.nix; | ||
119 | pub = ./pub; | ||
120 | tasks = ./tasks; | ||
121 | dns = ./dns.nix; | ||
122 | ftp = ./ftp.nix; | ||
123 | mpd = ./mpd.nix; | ||
124 | ejabberd = ./ejabberd; | ||
125 | ssh = ./ssh; | ||
126 | monitoring = ./monitoring; | ||
127 | status = ./monitoring/status.nix; | ||
128 | status_engine = ./monitoring/status_engine.nix; | ||
129 | vpn = ./vpn; | ||
130 | |||
131 | environment = ./environment.nix; | ||
132 | system = ./system.nix; | ||
133 | loginctl-linger = ./loginctl-linger.nix; | ||
134 | }; | ||
135 | in | ||
136 | builtins.listToAttrs (map (attr: { name = "priv${attr}"; value = set.${attr}; }) (builtins.attrNames set)) | ||
diff --git a/modules/private/dns.nix b/modules/private/dns.nix deleted file mode 100644 index 1d7fd52..0000000 --- a/modules/private/dns.nix +++ /dev/null | |||
@@ -1,197 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | { | ||
3 | options.myServices.dns.enable = lib.mkEnableOption "enable DNS resolver"; | ||
4 | config = let | ||
5 | # taken from unstable | ||
6 | cartesianProductOfSets = attrsOfLists: with lib; | ||
7 | lib.foldl' (listOfAttrs: attrName: | ||
8 | concatMap (attrs: | ||
9 | map (listValue: attrs // { ${attrName} = listValue; }) attrsOfLists.${attrName} | ||
10 | ) listOfAttrs | ||
11 | ) [{}] (attrNames attrsOfLists); | ||
12 | cfg = config.services.bind; | ||
13 | keyIncludes = builtins.concatStringsSep "\n" (map (v: "include \"${config.secrets.fullPaths."bind/${v}.key"}\";") (builtins.attrNames config.myEnv.dns.keys)); | ||
14 | cartProduct = lib.foldr | ||
15 | (s: servers: servers // { ${s.masters} = lib.unique ((servers.${s.masters} or []) ++ [s.keys]); }) | ||
16 | {} | ||
17 | (lib.unique (lib.concatMap (z: cartesianProductOfSets { masters = z.masters or []; keys = z.keys or []; }) config.myEnv.dns.slaveZones)); | ||
18 | toKeyList = servers: keys: builtins.concatStringsSep "\n" (map (s: '' | ||
19 | server ${s} { | ||
20 | keys { ${builtins.concatStringsSep ";" keys}; }; | ||
21 | }; | ||
22 | '') servers); | ||
23 | serverIncludes = builtins.concatStringsSep "\n" (lib.mapAttrsToList (n: toKeyList (lib.flatten (builtins.attrValues config.myEnv.dns.ns."${n}"))) cartProduct); | ||
24 | configFile = pkgs.writeText "named.conf" '' | ||
25 | include "/etc/bind/rndc.key"; | ||
26 | controls { | ||
27 | inet 127.0.0.1 allow {localhost;} keys {"rndc-key";}; | ||
28 | }; | ||
29 | |||
30 | acl cachenetworks { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.cacheNetworks} }; | ||
31 | acl badnetworks { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.blockedNetworks} }; | ||
32 | |||
33 | options { | ||
34 | listen-on { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOn} }; | ||
35 | listen-on-v6 { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOnIpv6} }; | ||
36 | allow-query { cachenetworks; }; | ||
37 | blackhole { badnetworks; }; | ||
38 | forward first; | ||
39 | forwarders { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.forwarders} }; | ||
40 | directory "/var/run/named"; | ||
41 | pid-file "/var/run/named/named.pid"; | ||
42 | ${cfg.extraOptions} | ||
43 | }; | ||
44 | |||
45 | ${keyIncludes} | ||
46 | ${serverIncludes} | ||
47 | |||
48 | ${cfg.extraConfig} | ||
49 | |||
50 | ${ lib.concatMapStrings | ||
51 | ({ name, file, master ? true, extra ? "", slaves ? [], masters ? [] }: | ||
52 | '' | ||
53 | zone "${name}" { | ||
54 | type ${if master then "master" else "slave"}; | ||
55 | file "${file}"; | ||
56 | ${ if lib.lists.length slaves > 0 then | ||
57 | '' | ||
58 | allow-transfer { | ||
59 | ${lib.concatMapStrings (ip: "${ip};\n") slaves} | ||
60 | }; | ||
61 | '' else ""} | ||
62 | ${ if lib.lists.length masters > 0 then | ||
63 | '' | ||
64 | masters { | ||
65 | ${lib.concatMapStrings (ip: "${ip};\n") masters} | ||
66 | }; | ||
67 | '' else ""} | ||
68 | allow-query { any; }; | ||
69 | ${extra} | ||
70 | }; | ||
71 | '') | ||
72 | cfg.zones } | ||
73 | ''; | ||
74 | mxes = lib.attrsets.filterAttrs | ||
75 | (n: v: v.mx.enable) | ||
76 | config.myEnv.servers; | ||
77 | ip4mxes = builtins.concatStringsSep "\n" (lib.mapAttrsToList | ||
78 | (n: v: "${v.mx.subdomain} IN A ${v.ips.main.ip4}") | ||
79 | mxes); | ||
80 | ip6mxes = builtins.concatStringsSep "\n" (lib.mapAttrsToList | ||
81 | (n: v: builtins.concatStringsSep "\n" (map (i: "${v.mx.subdomain} IN AAAA ${i}") v.ips.main.ip6)) | ||
82 | mxes); | ||
83 | mxmxes = n: conf: builtins.concatStringsSep "\n" (lib.mapAttrsToList | ||
84 | (_: v: "${n} IN MX ${v.mx.priority} ${v.mx.subdomain}.${conf.name}.") | ||
85 | mxes); | ||
86 | in lib.mkIf config.myServices.dns.enable { | ||
87 | networking.firewall.allowedUDPPorts = [ 53 ]; | ||
88 | networking.firewall.allowedTCPPorts = [ 53 ]; | ||
89 | users.users.named.extraGroups = [ "keys" ]; | ||
90 | secrets.keys = lib.mapAttrs' (k: v: | ||
91 | lib.nameValuePair "bind/${k}.key" { | ||
92 | permissions = "0400"; | ||
93 | user = "named"; | ||
94 | text = '' | ||
95 | key "${k}" | ||
96 | { | ||
97 | algorithm ${v.algorithm}; | ||
98 | secret "${v.secret}"; | ||
99 | }; | ||
100 | ''; | ||
101 | } | ||
102 | ) config.myEnv.dns.keys; | ||
103 | services.bind = { | ||
104 | enable = true; | ||
105 | cacheNetworks = ["any"]; | ||
106 | configFile = configFile; | ||
107 | extraOptions = '' | ||
108 | allow-recursion { 127.0.0.1; }; | ||
109 | allow-transfer { none; }; | ||
110 | |||
111 | notify-source ${config.myEnv.servers.eldiron.ips.main.ip4}; | ||
112 | notify-source-v6 ${lib.head config.myEnv.servers.eldiron.ips.main.ip6}; | ||
113 | version none; | ||
114 | hostname none; | ||
115 | server-id none; | ||
116 | ''; | ||
117 | zones = with config.myEnv.dns; | ||
118 | assert (builtins.substring ((builtins.stringLength soa.email)-1) 1 soa.email) != "."; | ||
119 | assert (builtins.substring ((builtins.stringLength soa.primary)-1) 1 soa.primary) != "."; | ||
120 | (map (conf: { | ||
121 | name = conf.name; | ||
122 | master = false; | ||
123 | file = "/var/run/named/${conf.name}.zone"; | ||
124 | masters = if lib.attrsets.hasAttr "masters" conf | ||
125 | then lib.lists.flatten (map (n: lib.attrsets.attrValues ns.${n}) conf.masters) | ||
126 | else []; | ||
127 | }) slaveZones) | ||
128 | ++ (map (conf: { | ||
129 | name = conf.name; | ||
130 | master = true; | ||
131 | extra = if lib.attrsets.hasAttr "extra" conf then conf.extra else ""; | ||
132 | slaves = if lib.attrsets.hasAttr "slaves" conf | ||
133 | then lib.lists.flatten (map (n: lib.attrsets.attrValues ns.${n}) conf.slaves) | ||
134 | else []; | ||
135 | file = pkgs.writeText "${conf.name}.zone" '' | ||
136 | $TTL 10800 | ||
137 | @ IN SOA ${soa.primary}. ${builtins.replaceStrings ["@"] ["."] soa.email}. ${soa.serial} ${soa.refresh} ${soa.retry} ${soa.expire} ${soa.ttl} | ||
138 | |||
139 | ${lib.concatStringsSep "\n" (map (x: "@ IN NS ${x}.") (lib.concatMap (n: lib.attrsets.mapAttrsToList (k: v: k) ns.${n}) conf.ns))} | ||
140 | ${lib.optionalString (conf.withCAA != null) '' | ||
141 | ${conf.name}. IN CAA 0 issue "${conf.withCAA}" | ||
142 | ''} | ||
143 | |||
144 | ${conf.entries} | ||
145 | |||
146 | ${if lib.attrsets.hasAttr "withEmail" conf && lib.lists.length conf.withEmail > 0 then '' | ||
147 | ${ip4mxes} | ||
148 | ${ip6mxes} | ||
149 | ${lib.concatStringsSep "\n\n" (map (e: | ||
150 | let | ||
151 | n = if e.domain == "" then "@" else "${e.domain} "; | ||
152 | suffix = if e.domain == "" then "" else ".${e.domain}"; | ||
153 | in | ||
154 | '' | ||
155 | ; ------------------ mail: ${n} --------------------------- | ||
156 | ${mxmxes n conf} | ||
157 | |||
158 | ; https://tools.ietf.org/html/rfc6186 | ||
159 | _submission._tcp${suffix} SRV 0 1 587 smtp.immae.eu. | ||
160 | _submissions._tcp${suffix} SRV 0 1 465 smtp.immae.eu. | ||
161 | _imap._tcp${suffix} SRV 0 1 143 imap.immae.eu. | ||
162 | _imaps._tcp${suffix} SRV 0 1 993 imap.immae.eu. | ||
163 | _pop3._tcp${suffix} SRV 10 1 110 pop3.immae.eu. | ||
164 | _pop3s._tcp${suffix} SRV 10 1 995 pop3.immae.eu. | ||
165 | _sieve._tcp${suffix} SRV 0 1 4190 imap.immae.eu. | ||
166 | |||
167 | ; MTA-STS | ||
168 | ; https://blog.delouw.ch/2018/12/16/using-mta-sts-to-enhance-email-transport-security-and-privacy/ | ||
169 | ; https://support.google.com/a/answer/9261504 | ||
170 | _mta-sts${suffix} IN TXT "v=STSv1;id=20200109150200Z" | ||
171 | _smtp._tls${suffix} IN TXT "v=TLSRPTv1;rua=mailto:postmaster+mta-sts@immae.eu" | ||
172 | mta-sts${suffix} IN A ${config.myEnv.servers.eldiron.ips.main.ip4} | ||
173 | ${builtins.concatStringsSep "\n" (map (i: "mta-sts${suffix} IN AAAA ${i}") config.myEnv.servers.eldiron.ips.main.ip6)} | ||
174 | |||
175 | ; Mail sender authentications | ||
176 | ${n} IN TXT "v=spf1 mx ~all" | ||
177 | _dmarc${suffix} IN TXT "v=DMARC1; p=none; adkim=r; aspf=r; fo=1; rua=mailto:postmaster+rua@immae.eu; ruf=mailto:postmaster+ruf@immae.eu;" | ||
178 | ${if e.send then '' | ||
179 | immae_eu._domainkey${suffix} IN TXT ( "v=DKIM1; k=rsa; s=email; " | ||
180 | "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzl3vLd8W5YAuumC5+ZT9OV7/14Pmh5JYtwyqKI3cfe9NnAqInt3xO4bZ7oqIxRKWN4SD39vm7O/QOvFdBt00ENOOzdP90s5gKw6eIP/4+vPTh0IWltAsmu9B2agzdtWUE7t2xFKIzEn8l9niRE2QYbVaqZv4sub98vY55fIgFoHtjkmNC7325S8fjDJGp6OPbyhAs6Xl5/adjF" | ||
181 | "0ko4Y2p6RaxLQfjlS0bxmK4Qg6C14pIXHtzVeqOuWrwApqt5+AULSn97iUtqV/IJlEEjC6DUR44t3C/G0G/k46iFclCqRRi0hdPrOHCtZDbtMubnTN9eaUiNpkXh1WnCflHwtjQwIDAQAB" ) | ||
182 | eldiron._domainkey${suffix} IN TXT ${config.myEnv.mail.dkim.eldiron.public} | ||
183 | '' else ""} | ||
184 | '') conf.withEmail)} | ||
185 | '' + (if conf.name == "immae.eu" then '' | ||
186 | ; ----------------- Accept DMARC reports ------------------- | ||
187 | ${lib.concatStringsSep "\n" ( | ||
188 | lib.flatten ( | ||
189 | map (z: map (e: "${e.domain}${if builtins.stringLength e.domain > 0 then "." else ""}${z.name}._report._dmarc IN TXT \"v=DMARC1;\"") (z.withEmail or [])) masterZones | ||
190 | ) | ||
191 | )} | ||
192 | '' else "") else ""} | ||
193 | ''; | ||
194 | }) masterZones); | ||
195 | }; | ||
196 | }; | ||
197 | } | ||
diff --git a/modules/private/ejabberd/default.nix b/modules/private/ejabberd/default.nix deleted file mode 100644 index 4d86a64..0000000 --- a/modules/private/ejabberd/default.nix +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.ejabberd; | ||
4 | in | ||
5 | { | ||
6 | options.myServices = { | ||
7 | ejabberd.enable = lib.mkOption { | ||
8 | type = lib.types.bool; | ||
9 | default = false; | ||
10 | description = '' | ||
11 | Whether to enable ejabberd service. | ||
12 | ''; | ||
13 | }; | ||
14 | }; | ||
15 | |||
16 | config = lib.mkIf cfg.enable { | ||
17 | security.acme.certs = { | ||
18 | "ejabberd" = config.myServices.certificates.certConfig // { | ||
19 | user = "ejabberd"; | ||
20 | group = "ejabberd"; | ||
21 | domain = "eldiron.immae.eu"; | ||
22 | keyType = "rsa4096"; | ||
23 | postRun = '' | ||
24 | systemctl restart ejabberd.service | ||
25 | ''; | ||
26 | extraDomains = { | ||
27 | "immae.fr" = null; | ||
28 | "conference.immae.fr" = null; | ||
29 | "proxy.immae.fr" = null; | ||
30 | "pubsub.immae.fr" = null; | ||
31 | "upload.immae.fr" = null; | ||
32 | }; | ||
33 | }; | ||
34 | }; | ||
35 | networking.firewall.allowedTCPPorts = [ 5222 5269 ]; | ||
36 | myServices.websites.tools.im.enable = true; | ||
37 | systemd.services.ejabberd.postStop = '' | ||
38 | rm /var/log/ejabberd/erl_crash*.dump | ||
39 | ''; | ||
40 | secrets.keys = { | ||
41 | "ejabberd/psql.yml" = { | ||
42 | permissions = "0400"; | ||
43 | user = "ejabberd"; | ||
44 | group = "ejabberd"; | ||
45 | text = '' | ||
46 | sql_type: pgsql | ||
47 | sql_server: "localhost" | ||
48 | sql_database: "${config.myEnv.jabber.postgresql.database}" | ||
49 | sql_username: "${config.myEnv.jabber.postgresql.user}" | ||
50 | sql_password: "${config.myEnv.jabber.postgresql.password}" | ||
51 | ''; | ||
52 | }; | ||
53 | "ejabberd/host.yml" = { | ||
54 | permissions = "0400"; | ||
55 | user = "ejabberd"; | ||
56 | group = "ejabberd"; | ||
57 | text = '' | ||
58 | host_config: | ||
59 | "immae.fr": | ||
60 | domain_certfile: "${config.security.acme.certs.ejabberd.directory}/full.pem" | ||
61 | auth_method: [ldap] | ||
62 | ldap_servers: ["${config.myEnv.jabber.ldap.host}"] | ||
63 | ldap_encrypt: tls | ||
64 | ldap_rootdn: "${config.myEnv.jabber.ldap.dn}" | ||
65 | ldap_password: "${config.myEnv.jabber.ldap.password}" | ||
66 | ldap_base: "${config.myEnv.jabber.ldap.base}" | ||
67 | ldap_uids: | ||
68 | uid: "%u" | ||
69 | immaeXmppUid: "%u" | ||
70 | ldap_filter: "${config.myEnv.jabber.ldap.filter}" | ||
71 | ''; | ||
72 | }; | ||
73 | }; | ||
74 | users.users.ejabberd.extraGroups = [ "keys" ]; | ||
75 | services.ejabberd = { | ||
76 | package = pkgs.ejabberd.override { withPgsql = true; }; | ||
77 | imagemagick = true; | ||
78 | enable = true; | ||
79 | ctlConfig = '' | ||
80 | ERLANG_NODE=ejabberd@localhost | ||
81 | ''; | ||
82 | configFile = pkgs.runCommand "ejabberd.yml" { | ||
83 | certificatePrivateKeyAndFullChain = "${config.security.acme.certs.ejabberd.directory}/full.pem"; | ||
84 | certificateCA = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; | ||
85 | sql_config_file = config.secrets.fullPaths."ejabberd/psql.yml"; | ||
86 | host_config_file = config.secrets.fullPaths."ejabberd/host.yml"; | ||
87 | } '' | ||
88 | substituteAll ${./ejabberd.yml} $out | ||
89 | ''; | ||
90 | }; | ||
91 | }; | ||
92 | } | ||
diff --git a/modules/private/ejabberd/ejabberd.yml b/modules/private/ejabberd/ejabberd.yml deleted file mode 100644 index 82ac35b..0000000 --- a/modules/private/ejabberd/ejabberd.yml +++ /dev/null | |||
@@ -1,231 +0,0 @@ | |||
1 | ### | ||
2 | ### ejabberd configuration file | ||
3 | ### | ||
4 | ### The parameters used in this configuration file are explained at | ||
5 | ### | ||
6 | ### https://docs.ejabberd.im/admin/configuration | ||
7 | ### | ||
8 | ### The configuration file is written in YAML. | ||
9 | ### ******************************************************* | ||
10 | ### ******* !!! WARNING !!! ******* | ||
11 | ### ******* YAML IS INDENTATION SENSITIVE ******* | ||
12 | ### ******* MAKE SURE YOU INDENT SECTIONS CORRECTLY ******* | ||
13 | ### ******************************************************* | ||
14 | ### Refer to http://en.wikipedia.org/wiki/YAML for the brief description. | ||
15 | ### However, ejabberd treats different literals as different types: | ||
16 | ### | ||
17 | ### - unquoted or single-quoted strings. They are called "atoms". | ||
18 | ### Example: dog, 'Jupiter', '3.14159', YELLOW | ||
19 | ### | ||
20 | ### - numeric literals. Example: 3, -45.0, .0 | ||
21 | ### | ||
22 | ### - quoted or folded strings. | ||
23 | ### Examples of quoted string: "Lizzard", "orange". | ||
24 | ### Example of folded string: | ||
25 | ### > Art thou not Romeo, | ||
26 | ### and a Montague? | ||
27 | ### | ||
28 | |||
29 | hosts: | ||
30 | - "immae.fr" | ||
31 | |||
32 | loglevel: 4 | ||
33 | log_rotate_size: 10485760 | ||
34 | log_rotate_date: "" | ||
35 | log_rotate_count: 1 | ||
36 | log_rate_limit: 100 | ||
37 | |||
38 | certfiles: | ||
39 | - "@certificatePrivateKeyAndFullChain@" | ||
40 | |||
41 | listen: | ||
42 | - | ||
43 | port: 5222 | ||
44 | ip: "::" | ||
45 | module: ejabberd_c2s | ||
46 | max_stanza_size: 262144 | ||
47 | shaper: c2s_shaper | ||
48 | access: c2s | ||
49 | starttls_required: true | ||
50 | - | ||
51 | port: 5269 | ||
52 | ip: "::" | ||
53 | module: ejabberd_s2s_in | ||
54 | max_stanza_size: 524288 | ||
55 | - | ||
56 | port: 5280 | ||
57 | ip: "127.0.0.1" | ||
58 | module: ejabberd_http | ||
59 | request_handlers: | ||
60 | "/admin": ejabberd_web_admin | ||
61 | "/api": mod_http_api | ||
62 | "/bosh": mod_bosh | ||
63 | "/captcha": ejabberd_captcha | ||
64 | "/upload": mod_http_upload | ||
65 | "/ws": ejabberd_http_ws | ||
66 | tls: false | ||
67 | |||
68 | s2s_use_starttls: optional | ||
69 | s2s_cafile: "@certificateCA@" | ||
70 | |||
71 | default_db: sql | ||
72 | include_config_file: @sql_config_file@ | ||
73 | include_config_file: @host_config_file@ | ||
74 | new_sql_schema: true | ||
75 | |||
76 | acl: | ||
77 | admin: | ||
78 | - user: "ismael@immae.fr" | ||
79 | local: | ||
80 | user_regexp: "" | ||
81 | loopback: | ||
82 | ip: | ||
83 | - "127.0.0.0/8" | ||
84 | - "::1/128" | ||
85 | - "::FFFF:127.0.0.1/128" | ||
86 | |||
87 | access_rules: | ||
88 | local: | ||
89 | - allow: local | ||
90 | c2s: | ||
91 | - deny: blocked | ||
92 | - allow | ||
93 | announce: | ||
94 | - allow: admin | ||
95 | configure: | ||
96 | - allow: admin | ||
97 | muc_admin: | ||
98 | - allow: admin | ||
99 | muc_create: | ||
100 | - allow: local | ||
101 | muc: | ||
102 | - allow | ||
103 | pubsub_createnode: | ||
104 | - allow: local | ||
105 | register: | ||
106 | - deny | ||
107 | trusted_network: | ||
108 | - allow: loopback | ||
109 | |||
110 | api_permissions: | ||
111 | "console commands": | ||
112 | from: | ||
113 | - ejabberd_ctl | ||
114 | who: all | ||
115 | what: "*" | ||
116 | "admin access": | ||
117 | who: | ||
118 | - acl: admin | ||
119 | - oauth: | ||
120 | - scope: "ejabberd:admin" | ||
121 | - acl: admin | ||
122 | what: | ||
123 | - "*" | ||
124 | - "!stop" | ||
125 | - "!start" | ||
126 | "public commands": | ||
127 | who: | ||
128 | - ip: | ||
129 | - "0.0.0.0" | ||
130 | - "::" | ||
131 | what: | ||
132 | - "status" | ||
133 | - "connected_users_number" | ||
134 | |||
135 | shaper: | ||
136 | normal: 1000 | ||
137 | fast: 50000 | ||
138 | |||
139 | shaper_rules: | ||
140 | max_user_sessions: 10 | ||
141 | max_user_offline_messages: | ||
142 | - 5000: admin | ||
143 | - 100 | ||
144 | c2s_shaper: | ||
145 | - none: admin | ||
146 | - normal | ||
147 | s2s_shaper: fast | ||
148 | |||
149 | modules: | ||
150 | mod_adhoc: {} | ||
151 | mod_admin_extra: {} | ||
152 | mod_announce: | ||
153 | access: announce | ||
154 | mod_avatar: {} | ||
155 | mod_blocking: {} | ||
156 | mod_bosh: {} | ||
157 | mod_caps: {} | ||
158 | mod_carboncopy: {} | ||
159 | mod_client_state: {} | ||
160 | mod_configure: {} | ||
161 | mod_disco: {} | ||
162 | mod_fail2ban: {} | ||
163 | mod_http_api: {} | ||
164 | mod_http_upload: | ||
165 | put_url: "https://im.immae.fr/upload" | ||
166 | custom_headers: | ||
167 | "Access-Control-Allow-Origin": "*" | ||
168 | "Access-Control-Allow-Methods": "OPTIONS, HEAD, GET, PUT, POST" | ||
169 | "Access-Control-Allow-Headers": "Content-Type" | ||
170 | mod_last: {} | ||
171 | mod_mam: | ||
172 | default: always | ||
173 | mod_muc: | ||
174 | access: | ||
175 | - allow | ||
176 | access_admin: | ||
177 | - allow: admin | ||
178 | access_create: muc_create | ||
179 | access_persistent: muc_create | ||
180 | default_room_options: | ||
181 | mam: true | ||
182 | mod_muc_admin: {} | ||
183 | mod_offline: | ||
184 | access_max_user_messages: max_user_offline_messages | ||
185 | mod_ping: {} | ||
186 | mod_privacy: {} | ||
187 | mod_private: {} | ||
188 | mod_proxy65: | ||
189 | access: local | ||
190 | max_connections: 5 | ||
191 | mod_pubsub: | ||
192 | access_createnode: pubsub_createnode | ||
193 | plugins: | ||
194 | - "flat" | ||
195 | - "pep" | ||
196 | force_node_config: | ||
197 | ## Change from "whitelist" to "open" to enable OMEMO support | ||
198 | ## See https://github.com/processone/ejabberd/issues/2425 | ||
199 | "eu.siacs.conversations.axolotl.*": | ||
200 | access_model: open | ||
201 | ## Avoid buggy clients to make their bookmarks public | ||
202 | "storage:bookmarks": | ||
203 | access_model: whitelist | ||
204 | mod_push: {} | ||
205 | mod_push_keepalive: {} | ||
206 | mod_register: | ||
207 | ## Only accept registration requests from the "trusted" | ||
208 | ## network (see access_rules section above). | ||
209 | ## Think twice before enabling registration from any | ||
210 | ## address. See the Jabber SPAM Manifesto for details: | ||
211 | ## https://github.com/ge0rg/jabber-spam-fighting-manifesto | ||
212 | ip_access: trusted_network | ||
213 | access: register | ||
214 | mod_roster: | ||
215 | versioning: true | ||
216 | mod_s2s_dialback: {} | ||
217 | mod_shared_roster: {} | ||
218 | mod_stats: {} | ||
219 | mod_stream_mgmt: | ||
220 | resend_on_timeout: if_offline | ||
221 | mod_time: {} | ||
222 | mod_vcard: {} | ||
223 | mod_vcard_xupdate: {} | ||
224 | mod_version: | ||
225 | show_os: false | ||
226 | |||
227 | ### Local Variables: | ||
228 | ### mode: yaml | ||
229 | ### End: | ||
230 | ### vim: set filetype=yaml tabstop=8 | ||
231 | |||
diff --git a/modules/private/environment.nix b/modules/private/environment.nix deleted file mode 100644 index 837d24b..0000000 --- a/modules/private/environment.nix +++ /dev/null | |||
@@ -1,1492 +0,0 @@ | |||
1 | { config, lib, name, ... }: | ||
2 | with lib; | ||
3 | with types; | ||
4 | with lists; | ||
5 | let | ||
6 | ldapOptions = { | ||
7 | base = mkOption { description = "Base of the LDAP tree"; type = str; }; | ||
8 | host = mkOption { description = "Host to access LDAP"; type = str; }; | ||
9 | root_dn = mkOption { description = "DN of the root user"; type = str; }; | ||
10 | root_pw = mkOption { description = "Hashed password of the root user"; type = str; }; | ||
11 | replication_dn = mkOption { description = "DN of the user allowed to replicate the LDAP directory"; type = str; }; | ||
12 | replication_pw = mkOption { description = "Password of the user allowed to replicate the LDAP directory"; type = str; }; | ||
13 | }; | ||
14 | mkLdapOptions = name: more: mkOption { | ||
15 | description = "${name} LDAP configuration"; | ||
16 | type = submodule { | ||
17 | options = ldapOptions // { | ||
18 | dn = mkOption { description = "DN of the ${name} user"; type = str; }; | ||
19 | password = mkOption { description = "password of the ${name} user"; type = str; }; | ||
20 | filter = mkOption { description = "Filter for ${name} users"; type = str; default = ""; }; | ||
21 | } // more; | ||
22 | }; | ||
23 | }; | ||
24 | mysqlOptions = { | ||
25 | host = mkOption { description = "Host to access Mysql"; type = str; }; | ||
26 | remoteHost = mkOption { description = "Host to access Mysql from outside"; type = str; }; | ||
27 | port = mkOption { description = "Port to access Mysql"; type = str; }; | ||
28 | socket = mkOption { description = "Socket to access Mysql"; type = path; }; | ||
29 | systemUsers = mkOption { | ||
30 | description = "Attrs of user-passwords allowed to access mysql"; | ||
31 | type = attrsOf str; | ||
32 | }; | ||
33 | pam = mkOption { | ||
34 | description = "PAM configuration for mysql"; | ||
35 | type = submodule { | ||
36 | options = { | ||
37 | dn = mkOption { description = "DN to connect as to check users"; type = str; }; | ||
38 | password = mkOption { description = "DN password to connect as to check users"; type = str; }; | ||
39 | filter = mkOption { description = "filter to match users"; type = str; }; | ||
40 | }; | ||
41 | }; | ||
42 | }; | ||
43 | }; | ||
44 | mkMysqlOptions = name: more: mkOption { | ||
45 | description = "${name} mysql configuration"; | ||
46 | type = submodule { | ||
47 | options = mysqlOptions // { | ||
48 | database = mkOption { description = "${name} database"; type = str; }; | ||
49 | user = mkOption { description = "${name} user"; type = str; }; | ||
50 | password = mkOption { description = "mysql password of the ${name} user"; type = str; }; | ||
51 | } // more; | ||
52 | }; | ||
53 | }; | ||
54 | psqlOptions = { | ||
55 | host = mkOption { description = "Host to access Postgresql"; type = str; }; | ||
56 | port = mkOption { description = "Port to access Postgresql"; type = str; }; | ||
57 | socket = mkOption { description = "Socket to access Postgresql"; type = path; }; | ||
58 | pam = mkOption { | ||
59 | description = "PAM configuration for psql"; | ||
60 | type = submodule { | ||
61 | options = { | ||
62 | dn = mkOption { description = "DN to connect as to check users"; type = str; }; | ||
63 | password = mkOption { description = "DN password to connect as to check users"; type = str; }; | ||
64 | filter = mkOption { description = "filter to match users"; type = str; }; | ||
65 | }; | ||
66 | }; | ||
67 | }; | ||
68 | }; | ||
69 | mkPsqlOptions = name: mkOption { | ||
70 | description = "${name} psql configuration"; | ||
71 | type = submodule { | ||
72 | options = psqlOptions // { | ||
73 | database = mkOption { description = "${name} database"; type = str; }; | ||
74 | schema = mkOption { description = "${name} schema"; type = nullOr str; default = null; }; | ||
75 | user = mkOption { description = "${name} user"; type = str; }; | ||
76 | password = mkOption { description = "psql password of the ${name} user"; type = str; }; | ||
77 | }; | ||
78 | }; | ||
79 | }; | ||
80 | redisOptions = { | ||
81 | host = mkOption { description = "Host to access Redis"; type = str; }; | ||
82 | port = mkOption { description = "Port to access Redis"; type = str; }; | ||
83 | socket = mkOption { description = "Socket to access Redis"; type = path; }; | ||
84 | dbs = mkOption { | ||
85 | description = "Attrs of db number. Each number should be unique to avoid collision!"; | ||
86 | type = attrsOf str; | ||
87 | }; | ||
88 | spiped_key = mkOption { | ||
89 | type = str; | ||
90 | description = '' | ||
91 | Key to use with spiped to make a secure channel to replication | ||
92 | ''; | ||
93 | }; | ||
94 | predixy = mkOption { | ||
95 | description = "Predixy configuration. Unused yet"; | ||
96 | type = submodule { | ||
97 | options = { | ||
98 | read = mkOption { type = str; description = "Read password"; }; | ||
99 | }; | ||
100 | }; | ||
101 | }; | ||
102 | }; | ||
103 | mkRedisOptions = name: mkOption { | ||
104 | description = "${name} redis configuration"; | ||
105 | type = submodule { | ||
106 | options = redisOptions // { | ||
107 | db = mkOption { description = "${name} database"; type = str; }; | ||
108 | }; | ||
109 | }; | ||
110 | }; | ||
111 | smtpOptions = { | ||
112 | host = mkOption { description = "Host to access SMTP"; type = str; }; | ||
113 | port = mkOption { description = "Port to access SMTP"; type = str; }; | ||
114 | }; | ||
115 | mkSmtpOptions = name: mkOption { | ||
116 | description = "${name} smtp configuration"; | ||
117 | type = submodule { | ||
118 | options = smtpOptions // { | ||
119 | email = mkOption { description = "${name} email"; type = str; }; | ||
120 | password = mkOption { description = "SMTP password of the ${name} user"; type = str; }; | ||
121 | }; | ||
122 | }; | ||
123 | }; | ||
124 | hostEnv = submodule { | ||
125 | options = { | ||
126 | fqdn = mkOption { | ||
127 | description = "Host FQDN"; | ||
128 | type = str; | ||
129 | }; | ||
130 | users = mkOption { | ||
131 | type = unspecified; | ||
132 | default = pkgs: []; | ||
133 | description = '' | ||
134 | Sublist of users from realUsers. Function that takes pkgs as | ||
135 | argument and gives an array as a result | ||
136 | ''; | ||
137 | }; | ||
138 | emails = mkOption { | ||
139 | default = []; | ||
140 | description = "List of e-mails that the server can be a sender of"; | ||
141 | type = listOf str; | ||
142 | }; | ||
143 | ldap = mkOption { | ||
144 | description = '' | ||
145 | LDAP credentials for the host | ||
146 | ''; | ||
147 | type = submodule { | ||
148 | options = { | ||
149 | password = mkOption { type = str; description = "Password for the LDAP connection"; }; | ||
150 | dn = mkOption { type = str; description = "DN for the LDAP connection"; }; | ||
151 | }; | ||
152 | }; | ||
153 | }; | ||
154 | mx = mkOption { | ||
155 | description = "subdomain and priority for MX server"; | ||
156 | default = { enable = false; }; | ||
157 | type = submodule { | ||
158 | options = { | ||
159 | enable = mkEnableOption "Enable MX"; | ||
160 | subdomain = mkOption { type = nullOr str; description = "Subdomain name (mx-*)"; }; | ||
161 | priority = mkOption { type = nullOr str; description = "Priority"; }; | ||
162 | }; | ||
163 | }; | ||
164 | }; | ||
165 | ips = mkOption { | ||
166 | description = '' | ||
167 | attrs of ip4/ip6 grouped by section | ||
168 | ''; | ||
169 | type = attrsOf (submodule { | ||
170 | options = { | ||
171 | ip4 = mkOption { | ||
172 | type = str; | ||
173 | description = '' | ||
174 | ip4 address of the host | ||
175 | ''; | ||
176 | }; | ||
177 | ip6 = mkOption { | ||
178 | type = listOf str; | ||
179 | default = []; | ||
180 | description = '' | ||
181 | ip6 addresses of the host | ||
182 | ''; | ||
183 | }; | ||
184 | }; | ||
185 | }); | ||
186 | }; | ||
187 | }; | ||
188 | }; | ||
189 | in | ||
190 | { | ||
191 | options.myEnv = { | ||
192 | servers = mkOption { | ||
193 | description = '' | ||
194 | Attrs of servers information in the cluster (not necessarily handled by nixops) | ||
195 | ''; | ||
196 | default = {}; | ||
197 | type = attrsOf hostEnv; | ||
198 | }; | ||
199 | hetznerCloud = mkOption { | ||
200 | description = '' | ||
201 | Hetzner Cloud credential information | ||
202 | ''; | ||
203 | type = submodule { | ||
204 | options = { | ||
205 | authToken = mkOption { | ||
206 | type = str; | ||
207 | description = '' | ||
208 | The API auth token. | ||
209 | ''; | ||
210 | }; | ||
211 | }; | ||
212 | }; | ||
213 | }; | ||
214 | hetzner = mkOption { | ||
215 | description = '' | ||
216 | Hetzner credential information | ||
217 | ''; | ||
218 | type = submodule { | ||
219 | options = { | ||
220 | user = mkOption { type = str; description = "User"; }; | ||
221 | pass = mkOption { type = str; description = "Password"; }; | ||
222 | }; | ||
223 | }; | ||
224 | }; | ||
225 | sshd = mkOption { | ||
226 | description = '' | ||
227 | sshd service credential information | ||
228 | ''; | ||
229 | type = submodule { | ||
230 | options = { | ||
231 | rootKeys = mkOption { type = attrsOf str; description = "Keys of root users"; }; | ||
232 | ldap = mkOption { | ||
233 | description = '' | ||
234 | LDAP credentials for cn=ssh,ou=services,dc=immae,dc=eu dn | ||
235 | ''; | ||
236 | type = submodule { | ||
237 | options = { | ||
238 | password = mkOption { description = "Password"; type = str; }; | ||
239 | }; | ||
240 | }; | ||
241 | }; | ||
242 | }; | ||
243 | }; | ||
244 | }; | ||
245 | ports = mkOption { | ||
246 | description = '' | ||
247 | non-standard reserved ports. Must be unique! | ||
248 | ''; | ||
249 | type = attrsOf port; | ||
250 | default = {}; | ||
251 | apply = let | ||
252 | noDupl = x: builtins.length (builtins.attrValues x) == builtins.length (unique (builtins.attrValues x)); | ||
253 | in | ||
254 | x: if isAttrs x && noDupl x then x else throw "Non unique values for ports"; | ||
255 | }; | ||
256 | httpd = mkOption { | ||
257 | description = '' | ||
258 | httpd service credential information | ||
259 | ''; | ||
260 | type = submodule { | ||
261 | options = { | ||
262 | ldap = mkOption { | ||
263 | description = '' | ||
264 | LDAP credentials for cn=httpd,ou=services,dc=immae,dc=eu dn | ||
265 | ''; | ||
266 | type = submodule { | ||
267 | options = { | ||
268 | password = mkOption { description = "Password"; type = str; }; | ||
269 | }; | ||
270 | }; | ||
271 | }; | ||
272 | }; | ||
273 | }; | ||
274 | }; | ||
275 | smtp = mkOption { | ||
276 | type = submodule { options = smtpOptions; }; | ||
277 | description = "SMTP configuration"; | ||
278 | }; | ||
279 | ldap = mkOption { | ||
280 | description = '' | ||
281 | LDAP server configuration | ||
282 | ''; | ||
283 | type = submodule { | ||
284 | options = ldapOptions; | ||
285 | }; | ||
286 | }; | ||
287 | databases = mkOption { | ||
288 | description = "Databases configuration"; | ||
289 | type = submodule { | ||
290 | options = { | ||
291 | mysql = mkOption { | ||
292 | type = submodule { options = mysqlOptions; }; | ||
293 | description = "Mysql configuration"; | ||
294 | }; | ||
295 | redis = mkOption { | ||
296 | type = submodule { options = redisOptions; }; | ||
297 | description = "Redis configuration"; | ||
298 | }; | ||
299 | postgresql = mkOption { | ||
300 | type = submodule { options = psqlOptions; }; | ||
301 | description = "Postgresql configuration"; | ||
302 | }; | ||
303 | }; | ||
304 | }; | ||
305 | }; | ||
306 | jabber = mkOption { | ||
307 | description = "Jabber configuration"; | ||
308 | type = submodule { | ||
309 | options = { | ||
310 | postfix_user_filter = mkOption { type = str; description = "Postfix filter to get xmpp users"; }; | ||
311 | ldap = mkLdapOptions "Jabber" {}; | ||
312 | postgresql = mkPsqlOptions "Jabber"; | ||
313 | }; | ||
314 | }; | ||
315 | }; | ||
316 | realUsers = mkOption { | ||
317 | description = '' | ||
318 | Attrset of function taking pkgs as argument. | ||
319 | Real users settings, should provide a subattr of users.users.<name> | ||
320 | with at least: name, (hashed)Password, shell | ||
321 | ''; | ||
322 | type = attrsOf unspecified; | ||
323 | }; | ||
324 | users = mkOption { | ||
325 | description = "System and regular users uid/gid"; | ||
326 | type = attrsOf (submodule { | ||
327 | options = { | ||
328 | uid = mkOption { | ||
329 | description = "user uid"; | ||
330 | type = int; | ||
331 | }; | ||
332 | gid = mkOption { | ||
333 | description = "user gid"; | ||
334 | type = int; | ||
335 | }; | ||
336 | }; | ||
337 | }); | ||
338 | }; | ||
339 | dns = mkOption { | ||
340 | description = "DNS configuration"; | ||
341 | type = submodule { | ||
342 | options = { | ||
343 | soa = mkOption { | ||
344 | description = "SOA information"; | ||
345 | type = submodule { | ||
346 | options = { | ||
347 | serial = mkOption { | ||
348 | description = "Serial number. Should be incremented at each change and unique"; | ||
349 | type = str; | ||
350 | }; | ||
351 | refresh = mkOption { | ||
352 | description = "Refresh time"; | ||
353 | type = str; | ||
354 | }; | ||
355 | retry = mkOption { | ||
356 | description = "Retry time"; | ||
357 | type = str; | ||
358 | }; | ||
359 | expire = mkOption { | ||
360 | description = "Expire time"; | ||
361 | type = str; | ||
362 | }; | ||
363 | ttl = mkOption { | ||
364 | description = "Default TTL time"; | ||
365 | type = str; | ||
366 | }; | ||
367 | email = mkOption { | ||
368 | description = "hostmaster e-mail"; | ||
369 | type = str; | ||
370 | }; | ||
371 | primary = mkOption { | ||
372 | description = "Primary NS"; | ||
373 | type = str; | ||
374 | }; | ||
375 | }; | ||
376 | }; | ||
377 | }; | ||
378 | ns = mkOption { | ||
379 | description = "Attrs of NS servers group"; | ||
380 | example = { | ||
381 | foo = { | ||
382 | "ns1.foo.com" = [ "198.51.100.10" "2001:db8:abcd::1" ]; | ||
383 | "ns2.foo.com" = [ "198.51.100.15" "2001:db8:1234::1" ]; | ||
384 | }; | ||
385 | }; | ||
386 | type = attrsOf (attrsOf (listOf str)); | ||
387 | }; | ||
388 | keys = mkOption { | ||
389 | default = {}; | ||
390 | description = "DNS keys"; | ||
391 | type = attrsOf (submodule { | ||
392 | options = { | ||
393 | algorithm = mkOption { type = str; description = "Algorithm"; }; | ||
394 | secret = mkOption { type = str; description = "Secret"; }; | ||
395 | }; | ||
396 | }); | ||
397 | }; | ||
398 | slaveZones = mkOption { | ||
399 | description = "List of slave zones"; | ||
400 | type = listOf (submodule { | ||
401 | options = { | ||
402 | name = mkOption { type = str; description = "zone name"; }; | ||
403 | masters = mkOption { | ||
404 | description = "NS master groups of this zone"; | ||
405 | type = listOf str; | ||
406 | }; | ||
407 | keys = mkOption { | ||
408 | default = []; | ||
409 | description = "Keys associated to the server"; | ||
410 | type = listOf str; | ||
411 | }; | ||
412 | }; | ||
413 | }); | ||
414 | }; | ||
415 | masterZones = mkOption { | ||
416 | description = "List of master zones"; | ||
417 | type = listOf (submodule { | ||
418 | options = { | ||
419 | name = mkOption { type = str; description = "zone name"; }; | ||
420 | withCAA = mkOption { type = nullOr str; description = "CAA entry"; default = null; }; | ||
421 | slaves = mkOption { | ||
422 | description = "NS slave groups of this zone"; | ||
423 | type = listOf str; | ||
424 | }; | ||
425 | ns = mkOption { | ||
426 | description = "groups names that should have their NS entries listed here"; | ||
427 | type = listOf str; | ||
428 | }; | ||
429 | extra = mkOption { | ||
430 | description = "Extra zone configuration for bind"; | ||
431 | example = '' | ||
432 | notify yes; | ||
433 | ''; | ||
434 | type = lines; | ||
435 | }; | ||
436 | entries = mkOption { type = lines; description = "Regular entries of the NS zone"; }; | ||
437 | withEmail = mkOption { | ||
438 | description = "List of domains that should have mail entries (MX, dkim, SPF, ...)"; | ||
439 | default = []; | ||
440 | type = listOf (submodule { | ||
441 | options = { | ||
442 | domain = mkOption { type = str; description = "Which subdomain is concerned"; }; | ||
443 | send = mkOption { type = bool; description = "Whether there can be e-mails originating from the subdomain"; }; | ||
444 | receive = mkOption { type = bool; description = "Whether there can be e-mails arriving to the subdomain"; }; | ||
445 | }; | ||
446 | }); | ||
447 | }; | ||
448 | }; | ||
449 | }); | ||
450 | }; | ||
451 | }; | ||
452 | }; | ||
453 | }; | ||
454 | backup = mkOption { | ||
455 | description = '' | ||
456 | Remote backup with duplicity | ||
457 | ''; | ||
458 | type = submodule { | ||
459 | options = { | ||
460 | password = mkOption { type = str; description = "Password for encrypting files"; }; | ||
461 | remotes = mkOption { | ||
462 | type = attrsOf (submodule { | ||
463 | options = { | ||
464 | remote = mkOption { | ||
465 | type = unspecified; | ||
466 | example = literalExample '' | ||
467 | bucket: "s3://some_host/${bucket}"; | ||
468 | ''; | ||
469 | description = '' | ||
470 | Function. | ||
471 | Takes a bucket name as argument and returns a url | ||
472 | ''; | ||
473 | }; | ||
474 | accessKeyId = mkOption { type = str; description = "Remote access-key"; }; | ||
475 | secretAccessKey = mkOption { type = str; description = "Remote access secret"; }; | ||
476 | }; | ||
477 | }); | ||
478 | }; | ||
479 | }; | ||
480 | }; | ||
481 | }; | ||
482 | zrepl_backup = mkOption { | ||
483 | type = submodule { | ||
484 | options = { | ||
485 | ssh_key = mkOption { | ||
486 | description = "SSH key information"; | ||
487 | type = submodule { | ||
488 | options = { | ||
489 | public = mkOption { type = str; description = "Public part of the key"; }; | ||
490 | private = mkOption { type = lines; description = "Private part of the key"; }; | ||
491 | }; | ||
492 | }; | ||
493 | }; | ||
494 | mysql = mkMysqlOptions "Zrepl" {}; | ||
495 | }; | ||
496 | }; | ||
497 | }; | ||
498 | rsync_backup = mkOption { | ||
499 | description ='' | ||
500 | Rsync backup configuration from controlled host | ||
501 | ''; | ||
502 | type = submodule { | ||
503 | options = { | ||
504 | ssh_key = mkOption { | ||
505 | description = "SSH key information"; | ||
506 | type = submodule { | ||
507 | options = { | ||
508 | public = mkOption { type = str; description = "Public part of the key"; }; | ||
509 | private = mkOption { type = lines; description = "Private part of the key"; }; | ||
510 | }; | ||
511 | }; | ||
512 | }; | ||
513 | profiles = mkOption { | ||
514 | description = "Attrs of profiles to backup"; | ||
515 | type = attrsOf (submodule { | ||
516 | options = { | ||
517 | keep = mkOption { type = int; description = "Number of backups to keep"; }; | ||
518 | check_command = mkOption { type = str; description = "command to check if backup needs to be done"; default = "backup"; }; | ||
519 | login = mkOption { type = str; description = "Login to connect to host"; }; | ||
520 | port = mkOption { type = str; default = "22"; description = "Port to connect to host"; }; | ||
521 | host = mkOption { type = str; description = "Host to connect to"; }; | ||
522 | host_key = mkOption { type = str; description = "Host key"; }; | ||
523 | host_key_type = mkOption { type = str; description = "Host key type"; }; | ||
524 | parts = mkOption { | ||
525 | description = "Parts to backup for this host"; | ||
526 | type = attrsOf (submodule { | ||
527 | options = { | ||
528 | remote_folder = mkOption { type = path; description = "Remote folder to backup";}; | ||
529 | exclude_from = mkOption { | ||
530 | type = listOf path; | ||
531 | default = []; | ||
532 | description = "List of folders/files to exclude from the backup"; | ||
533 | }; | ||
534 | files_from = mkOption { | ||
535 | type = listOf path; | ||
536 | default = []; | ||
537 | description = "List of folders/files to backup in the base folder"; | ||
538 | }; | ||
539 | args = mkOption { | ||
540 | type = nullOr str; | ||
541 | default = null; | ||
542 | description = "Extra arguments to pass to rsync"; | ||
543 | }; | ||
544 | }; | ||
545 | }); | ||
546 | }; | ||
547 | }; | ||
548 | }); | ||
549 | }; | ||
550 | }; | ||
551 | }; | ||
552 | }; | ||
553 | monitoring = mkOption { | ||
554 | description = "Monitoring configuration"; | ||
555 | type = submodule { | ||
556 | options = { | ||
557 | status_url = mkOption { type = str; description = "URL to push status to"; }; | ||
558 | status_token = mkOption { type = str; description = "Token for the status url"; }; | ||
559 | http_user_password = mkOption { type = str; description = "HTTP credentials to check services behind wall"; }; | ||
560 | email = mkOption { type = str; description = "Admin E-mail"; }; | ||
561 | ssh_public_key = mkOption { type = str; description = "SSH public key"; }; | ||
562 | ssh_secret_key = mkOption { type = str; description = "SSH secret key"; }; | ||
563 | imap_login = mkOption { type = str; description = "IMAP login"; }; | ||
564 | imap_password = mkOption { type = str; description = "IMAP password"; }; | ||
565 | eriomem_keys = mkOption { type = listOf (listOf str); description = "Eriomem keys"; default = []; }; | ||
566 | ovh_sms = mkOption { | ||
567 | description = "OVH credentials for sms script"; | ||
568 | type = submodule { | ||
569 | options = { | ||
570 | endpoint = mkOption { type = str; default = "ovh-eu"; description = "OVH endpoint"; }; | ||
571 | application_key = mkOption { type = str; description = "Application key"; }; | ||
572 | application_secret = mkOption { type = str; description = "Application secret"; }; | ||
573 | consumer_key = mkOption { type = str; description = "Consumer key"; }; | ||
574 | account = mkOption { type = str; description = "Account"; }; | ||
575 | }; | ||
576 | }; | ||
577 | }; | ||
578 | eban = mkOption { | ||
579 | description = "Eban credentials for webhook"; | ||
580 | type = submodule { | ||
581 | options = { | ||
582 | user = mkOption { type = str; description = "User"; }; | ||
583 | password = mkOption { type = str; description = "Password"; }; | ||
584 | }; | ||
585 | }; | ||
586 | }; | ||
587 | nrdp_tokens = mkOption { type = listOf str; description = "Tokens allowed to push status update"; }; | ||
588 | slack_url = mkOption { type = str; description = "Slack webhook url to push status update"; }; | ||
589 | slack_channel = mkOption { type = str; description = "Slack channel to push status update"; }; | ||
590 | netdata_aggregator = mkOption { type = str; description = "Url where netdata information should be sent"; }; | ||
591 | netdata_keys = mkOption { type = attrsOf str; description = "netdata host keys"; }; | ||
592 | contacts = mkOption { type = attrsOf unspecified; description = "Contact dicts to fill naemon objects"; }; | ||
593 | email_check = mkOption { | ||
594 | description = "Emails services to check"; | ||
595 | type = attrsOf (submodule { | ||
596 | options = { | ||
597 | local = mkOption { type = bool; default = false; description = "Use local configuration"; }; | ||
598 | port = mkOption { type = nullOr str; default = null; description = "Port to connect to ssh"; }; | ||
599 | login = mkOption { type = nullOr str; default = null; description = "Login to connect to ssh"; }; | ||
600 | targets = mkOption { type = listOf str; description = "Hosts to send E-mails to"; }; | ||
601 | mail_address = mkOption { type = nullOr str; default = null; description = "E-mail recipient part to send e-mail to"; }; | ||
602 | mail_domain = mkOption { type = nullOr str; default = null; description = "E-mail domain part to send e-mail to"; }; | ||
603 | }; | ||
604 | }); | ||
605 | }; | ||
606 | }; | ||
607 | }; | ||
608 | }; | ||
609 | mpd = mkOption { | ||
610 | description = "MPD configuration"; | ||
611 | type = submodule { | ||
612 | options = { | ||
613 | folder = mkOption { type = str; description = "Folder to serve from the MPD instance"; }; | ||
614 | password = mkOption { type = str; description = "Password to connect to the MPD instance"; }; | ||
615 | host = mkOption { type = str; description = "Host to connect to the MPD instance"; }; | ||
616 | port = mkOption { type = str; description = "Port to connect to the MPD instance"; }; | ||
617 | }; | ||
618 | }; | ||
619 | }; | ||
620 | ftp = mkOption { | ||
621 | description = "FTP configuration"; | ||
622 | type = submodule { | ||
623 | options = { | ||
624 | ldap = mkLdapOptions "FTP" { | ||
625 | proftpd_filter = mkOption { type = str; description = "Filter for proftpd listing in LDAP"; }; | ||
626 | pure-ftpd_filter = mkOption { type = str; description = "Filter for pure-ftpd listing in LDAP"; }; | ||
627 | }; | ||
628 | }; | ||
629 | }; | ||
630 | }; | ||
631 | vpn = mkOption { | ||
632 | description = "VPN configuration"; | ||
633 | type = attrsOf (submodule { | ||
634 | options = { | ||
635 | prefix = mkOption { type = str; description = "ipv6 prefix for the vpn subnet"; }; | ||
636 | privateKey = mkOption { type = str; description = "Private key for the host"; }; | ||
637 | publicKey = mkOption { type = str; description = "Public key for the host"; }; | ||
638 | }; | ||
639 | }); | ||
640 | }; | ||
641 | mail = mkOption { | ||
642 | description = "Mail configuration"; | ||
643 | type = submodule { | ||
644 | options = { | ||
645 | dmarc = mkOption { | ||
646 | description = "DMARC configuration"; | ||
647 | type = submodule { | ||
648 | options = { | ||
649 | ignore_hosts = mkOption { | ||
650 | type = lines; | ||
651 | description = '' | ||
652 | Hosts to ignore when checking for dmarc | ||
653 | ''; | ||
654 | }; | ||
655 | }; | ||
656 | }; | ||
657 | }; | ||
658 | dkim = mkOption { | ||
659 | description = "DKIM configuration"; | ||
660 | type = attrsOf (submodule { | ||
661 | options = { | ||
662 | public = mkOption { | ||
663 | type = str; | ||
664 | example = '' | ||
665 | ( "v=DKIM1; k=rsa; " | ||
666 | "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3w1a2aMxWw9+hdcmbqX4UevcVqr204y0K73Wdc7MPZiOOlUJQYsMNSYR1Y/SC7jmPKeitpcJCpQgn/cveJZbuikjjPLsDReHyFEYmC278ZLRTELHx6f1IXM8WE08JIRT69CfZiMi1rVcOh9qRT4F93PyjCauU8Y5hJjtg9ThsWwIDAQAB" ) | ||
667 | ''; | ||
668 | description = "Public entry to put in DNS TXT field"; | ||
669 | }; | ||
670 | private = mkOption { type = str; description = "Private key"; }; | ||
671 | }; | ||
672 | }); | ||
673 | }; | ||
674 | postfix = mkOption { | ||
675 | description = "Postfix configuration"; | ||
676 | type = submodule { | ||
677 | options = { | ||
678 | additional_mailbox_domains = mkOption { | ||
679 | description = '' | ||
680 | List of domains that are used as mailbox final destination, in addition to those defined in the DNS records | ||
681 | ''; | ||
682 | type = listOf str; | ||
683 | }; | ||
684 | mysql = mkMysqlOptions "Postfix" { | ||
685 | password_encrypt = mkOption { type = str; description = "Key to encrypt relay password in database"; }; | ||
686 | }; | ||
687 | backup_domains = mkOption { | ||
688 | description = '' | ||
689 | Domains that are accepted for relay as backup domain | ||
690 | ''; | ||
691 | type = attrsOf (submodule { | ||
692 | options = { | ||
693 | domains = mkOption { type = listOf str; description = "Domains list"; }; | ||
694 | relay_restrictions = mkOption { | ||
695 | type = lines; | ||
696 | description = '' | ||
697 | Restrictions for relaying the e-mails from the domains | ||
698 | ''; | ||
699 | }; | ||
700 | recipient_maps = mkOption { | ||
701 | description = '' | ||
702 | Recipient map to accept relay for. | ||
703 | Must be specified for domain, the rules apply to everyone! | ||
704 | ''; | ||
705 | type = listOf (submodule { | ||
706 | options = { | ||
707 | type = mkOption { | ||
708 | type = enum [ "hash" ]; | ||
709 | description = "Map type"; | ||
710 | }; | ||
711 | content = mkOption { | ||
712 | type = str; | ||
713 | description = "Map content"; | ||
714 | }; | ||
715 | }; | ||
716 | }); | ||
717 | }; | ||
718 | }; | ||
719 | }); | ||
720 | }; | ||
721 | }; | ||
722 | }; | ||
723 | }; | ||
724 | dovecot = mkOption { | ||
725 | description = "Dovecot configuration"; | ||
726 | type = submodule { | ||
727 | options = { | ||
728 | ldap = mkLdapOptions "Dovecot" { | ||
729 | pass_attrs = mkOption { type = str; description = "Password attribute in LDAP"; }; | ||
730 | user_attrs = mkOption { type = str; description = "User attribute mapping in LDAP"; }; | ||
731 | iterate_attrs = mkOption { type = str; description = "User attribute mapping for listing in LDAP"; }; | ||
732 | iterate_filter = mkOption { type = str; description = "User attribute filter for listing in LDAP"; }; | ||
733 | postfix_mailbox_filter = mkOption { type = str; description = "Postfix filter to get mailboxes"; }; | ||
734 | }; | ||
735 | }; | ||
736 | }; | ||
737 | }; | ||
738 | rspamd = mkOption { | ||
739 | description = "rspamd configuration"; | ||
740 | type = submodule { | ||
741 | options = { | ||
742 | redis = mkRedisOptions "Redis"; | ||
743 | read_password_hashed = mkOption { type = str; description = "Hashed read password for rspamd"; }; | ||
744 | write_password_hashed = mkOption { type = str; description = "Hashed write password for rspamd"; }; | ||
745 | read_password = mkOption { | ||
746 | type = str; | ||
747 | description = "Read password for rspamd. Unused"; | ||
748 | apply = x: ""; | ||
749 | }; | ||
750 | write_password = mkOption { | ||
751 | type = str; | ||
752 | description = "Write password for rspamd. Unused"; | ||
753 | apply = x: ""; | ||
754 | }; | ||
755 | }; | ||
756 | }; | ||
757 | }; | ||
758 | scripts = mkOption { | ||
759 | description = "Mail script recipients"; | ||
760 | type = attrsOf (submodule { | ||
761 | options = { | ||
762 | external = mkEnableOption "Create a script_<name>@mail.immae.eu external address"; | ||
763 | src = mkOption { | ||
764 | description = '' | ||
765 | git source to fetch the script from. | ||
766 | It must have a default.nix file as its root accepting a scriptEnv parameter | ||
767 | ''; | ||
768 | type = submodule { | ||
769 | options = { | ||
770 | url = mkOption { type = str; description = "git url to fetch"; }; | ||
771 | rev = mkOption { type = str; description = "git reference to fetch"; }; | ||
772 | }; | ||
773 | }; | ||
774 | }; | ||
775 | env = mkOption { | ||
776 | description = "Variables to pass to the script"; | ||
777 | type = unspecified; | ||
778 | }; | ||
779 | }; | ||
780 | }); | ||
781 | }; | ||
782 | sympa = mkOption { | ||
783 | description = "Sympa configuration"; | ||
784 | type = submodule { | ||
785 | options = { | ||
786 | listmasters = mkOption { | ||
787 | type = listOf str; | ||
788 | description = "Listmasters"; | ||
789 | }; | ||
790 | postgresql = mkPsqlOptions "Sympa"; | ||
791 | data_sources = mkOption { | ||
792 | type = attrsOf str; | ||
793 | default = {}; | ||
794 | description = "Data sources to make available to sympa"; | ||
795 | }; | ||
796 | scenari = mkOption { | ||
797 | type = attrsOf str; | ||
798 | default = {}; | ||
799 | description = "Scenari to make available to sympa"; | ||
800 | }; | ||
801 | }; | ||
802 | }; | ||
803 | }; | ||
804 | }; | ||
805 | }; | ||
806 | }; | ||
807 | buildbot = mkOption { | ||
808 | description = "Buildbot configuration"; | ||
809 | type = submodule { | ||
810 | options = { | ||
811 | ssh_key = mkOption { | ||
812 | description = "SSH key information"; | ||
813 | type = submodule { | ||
814 | options = { | ||
815 | public = mkOption { type = str; description = "Public part of the key"; }; | ||
816 | private = mkOption { type = lines; description = "Private part of the key"; }; | ||
817 | }; | ||
818 | }; | ||
819 | }; | ||
820 | workerPassword = mkOption { description = "Buildbot worker password"; type = str; }; | ||
821 | user = mkOption { | ||
822 | description = "Buildbot user"; | ||
823 | type = submodule { | ||
824 | options = { | ||
825 | uid = mkOption { | ||
826 | description = "user uid"; | ||
827 | type = int; | ||
828 | }; | ||
829 | gid = mkOption { | ||
830 | description = "user gid"; | ||
831 | type = int; | ||
832 | }; | ||
833 | }; | ||
834 | }; | ||
835 | }; | ||
836 | ldap = mkOption { | ||
837 | description = "Ldap configuration for buildbot"; | ||
838 | type = submodule { | ||
839 | options = { | ||
840 | password = mkOption { type = str; description = "Buildbot password"; }; | ||
841 | }; | ||
842 | }; | ||
843 | }; | ||
844 | projects = mkOption { | ||
845 | description = "Projects to make a buildbot for"; | ||
846 | type = attrsOf (submodule { | ||
847 | options = { | ||
848 | name = mkOption { type = str; description = "Project name"; }; | ||
849 | packages = mkOption { | ||
850 | type = unspecified; | ||
851 | example = literalExample '' | ||
852 | pkgs: [ pkgs.bash pkgs.git pkgs.gzip pkgs.openssh ]; | ||
853 | ''; | ||
854 | description = '' | ||
855 | Function. | ||
856 | Builds packages list to make available to buildbot project. | ||
857 | Takes pkgs as argument. | ||
858 | ''; | ||
859 | }; | ||
860 | pythonPackages = mkOption { | ||
861 | type = unspecified; | ||
862 | example = literalExample '' | ||
863 | p: pkgs: [ pkgs.python3Packages.pip ]; | ||
864 | ''; | ||
865 | description = '' | ||
866 | Function. | ||
867 | Builds python packages list to make available to buildbot project. | ||
868 | Takes buildbot python module as first argument and pkgs as second argument in order to augment the python modules list. | ||
869 | ''; | ||
870 | }; | ||
871 | pythonPathHome = mkOption { type = bool; description = "Whether to add project’s python home to python path"; }; | ||
872 | workerPort = mkOption { type = port; description = "Port for the worker"; }; | ||
873 | secrets = mkOption { | ||
874 | type = attrsOf str; | ||
875 | description = "Secrets for the project to dump as files"; | ||
876 | }; | ||
877 | environment = mkOption { | ||
878 | type = attrsOf str; | ||
879 | description = '' | ||
880 | Environment variables for the project. | ||
881 | BUILDBOT_ is prefixed to the variable names | ||
882 | ''; | ||
883 | }; | ||
884 | activationScript = mkOption { | ||
885 | type = lines; | ||
886 | description = '' | ||
887 | Activation script to run during deployment | ||
888 | ''; | ||
889 | }; | ||
890 | builderPaths = mkOption { | ||
891 | type = attrsOf unspecified; | ||
892 | default = {}; | ||
893 | description = '' | ||
894 | Attrs of functions to make accessible specifically per builder. | ||
895 | Takes pkgs as argument and should return a single path containing binaries. | ||
896 | This path will be accessible as BUILDBOT_PATH_<attrskey> | ||
897 | ''; | ||
898 | }; | ||
899 | webhookTokens = mkOption { | ||
900 | type = nullOr (listOf str); | ||
901 | default = null; | ||
902 | description = '' | ||
903 | List of tokens allowed to push to project’s change_hook/base endpoint | ||
904 | ''; | ||
905 | }; | ||
906 | }; | ||
907 | }); | ||
908 | }; | ||
909 | }; | ||
910 | }; | ||
911 | }; | ||
912 | tools = mkOption { | ||
913 | description = "Tools configurations"; | ||
914 | type = submodule { | ||
915 | options = { | ||
916 | contact = mkOption { type = str; description = "Contact e-mail address"; }; | ||
917 | assets = mkOption { | ||
918 | default = {}; | ||
919 | type = attrsOf (submodule { | ||
920 | options = { | ||
921 | url = mkOption { type = str; description = "URL to fetch"; }; | ||
922 | sha256 = mkOption { type = str; description = "Hash of the url"; }; | ||
923 | }; | ||
924 | }); | ||
925 | description = "Assets to provide on assets.immae.eu"; | ||
926 | }; | ||
927 | davical = mkOption { | ||
928 | description = "Davical configuration"; | ||
929 | type = submodule { | ||
930 | options = { | ||
931 | postgresql = mkPsqlOptions "Davical"; | ||
932 | ldap = mkLdapOptions "Davical" {}; | ||
933 | }; | ||
934 | }; | ||
935 | }; | ||
936 | diaspora = mkOption { | ||
937 | description = "Diaspora configuration"; | ||
938 | type = submodule { | ||
939 | options = { | ||
940 | postgresql = mkPsqlOptions "Diaspora"; | ||
941 | redis = mkRedisOptions "Diaspora"; | ||
942 | ldap = mkLdapOptions "Diaspora" {}; | ||
943 | secret_token = mkOption { type = str; description = "Secret token"; }; | ||
944 | }; | ||
945 | }; | ||
946 | }; | ||
947 | dmarc_reports = mkOption { | ||
948 | description = "DMARC reports configuration"; | ||
949 | type = submodule { | ||
950 | options = { | ||
951 | mysql = mkMysqlOptions "DMARC" {}; | ||
952 | anonymous_key = mkOption { type = str; description = "Anonymous hashing key"; }; | ||
953 | }; | ||
954 | }; | ||
955 | }; | ||
956 | etherpad-lite = mkOption { | ||
957 | description = "Etherpad configuration"; | ||
958 | type = submodule { | ||
959 | options = { | ||
960 | postgresql = mkPsqlOptions "Etherpad"; | ||
961 | ldap = mkLdapOptions "Etherpad" { | ||
962 | group_filter = mkOption { type = str; description = "Filter for groups"; }; | ||
963 | }; | ||
964 | adminPassword = mkOption { type = str; description = "Admin password for mypads / admin"; }; | ||
965 | session_key = mkOption { type = str; description = "Session key"; }; | ||
966 | api_key = mkOption { type = str; description = "API key"; }; | ||
967 | redirects = mkOption { type = str; description = "Redirects for apache"; }; | ||
968 | }; | ||
969 | }; | ||
970 | }; | ||
971 | gitolite = mkOption { | ||
972 | description = "Gitolite configuration"; | ||
973 | type = submodule { | ||
974 | options = { | ||
975 | ldap = mkLdapOptions "Gitolite" {}; | ||
976 | ssh_key = mkOption { | ||
977 | description = "SSH key information"; | ||
978 | type = submodule { | ||
979 | options = { | ||
980 | public = mkOption { type = str; description = "Public part of the key"; }; | ||
981 | private = mkOption { type = lines; description = "Private part of the key"; }; | ||
982 | }; | ||
983 | }; | ||
984 | }; | ||
985 | }; | ||
986 | }; | ||
987 | }; | ||
988 | kanboard = mkOption { | ||
989 | description = "Kanboard configuration"; | ||
990 | type = submodule { | ||
991 | options = { | ||
992 | postgresql = mkPsqlOptions "Kanboard"; | ||
993 | ldap = mkLdapOptions "Kanboard" { | ||
994 | admin_dn = mkOption { type = str; description = "Admin DN"; }; | ||
995 | }; | ||
996 | }; | ||
997 | }; | ||
998 | }; | ||
999 | mantisbt = mkOption { | ||
1000 | description = "Mantisbt configuration"; | ||
1001 | type = submodule { | ||
1002 | options = { | ||
1003 | postgresql = mkPsqlOptions "Mantisbt"; | ||
1004 | ldap = mkLdapOptions "Mantisbt" {}; | ||
1005 | master_salt = mkOption { type = str; description = "Master salt for password hash"; }; | ||
1006 | }; | ||
1007 | }; | ||
1008 | }; | ||
1009 | mastodon = mkOption { | ||
1010 | description = "Mastodon configuration"; | ||
1011 | type = submodule { | ||
1012 | options = { | ||
1013 | postgresql = mkPsqlOptions "Mastodon"; | ||
1014 | redis = mkRedisOptions "Mastodon"; | ||
1015 | ldap = mkLdapOptions "Mastodon" {}; | ||
1016 | paperclip_secret = mkOption { type = str; description = "Paperclip secret"; }; | ||
1017 | otp_secret = mkOption { type = str; description = "OTP secret"; }; | ||
1018 | secret_key_base = mkOption { type = str; description = "Secret key base"; }; | ||
1019 | vapid = mkOption { | ||
1020 | description = "vapid key"; | ||
1021 | type = submodule { | ||
1022 | options = { | ||
1023 | private = mkOption { type = str; description = "Private key"; }; | ||
1024 | public = mkOption { type = str; description = "Public key"; }; | ||
1025 | }; | ||
1026 | }; | ||
1027 | }; | ||
1028 | }; | ||
1029 | }; | ||
1030 | }; | ||
1031 | mediagoblin = mkOption { | ||
1032 | description = "Mediagoblin configuration"; | ||
1033 | type = submodule { | ||
1034 | options = { | ||
1035 | postgresql = mkPsqlOptions "Mediagoblin"; | ||
1036 | redis = mkRedisOptions "Mediagoblin"; | ||
1037 | ldap = mkLdapOptions "Mediagoblin" {}; | ||
1038 | }; | ||
1039 | }; | ||
1040 | }; | ||
1041 | nextcloud = mkOption { | ||
1042 | description = "Nextcloud configuration"; | ||
1043 | type = submodule { | ||
1044 | options = { | ||
1045 | postgresql = mkPsqlOptions "Peertube"; | ||
1046 | redis = mkRedisOptions "Peertube"; | ||
1047 | password_salt = mkOption { type = str; description = "Password salt"; }; | ||
1048 | instance_id = mkOption { type = str; description = "Instance ID"; }; | ||
1049 | secret = mkOption { type = str; description = "App secret"; }; | ||
1050 | }; | ||
1051 | }; | ||
1052 | }; | ||
1053 | peertube = mkOption { | ||
1054 | description = "Peertube configuration"; | ||
1055 | type = submodule { | ||
1056 | options = { | ||
1057 | listenPort = mkOption { type = port; description = "Port to listen to"; }; | ||
1058 | postgresql = mkPsqlOptions "Peertube"; | ||
1059 | redis = mkRedisOptions "Peertube"; | ||
1060 | ldap = mkLdapOptions "Peertube" {}; | ||
1061 | }; | ||
1062 | }; | ||
1063 | }; | ||
1064 | syden_peertube = mkOption { | ||
1065 | description = "Peertube Syden configuration"; | ||
1066 | type = submodule { | ||
1067 | options = { | ||
1068 | listenPort = mkOption { type = port; description = "Port to listen to"; }; | ||
1069 | postgresql = mkPsqlOptions "Peertube"; | ||
1070 | redis = mkRedisOptions "Peertube"; | ||
1071 | }; | ||
1072 | }; | ||
1073 | }; | ||
1074 | phpldapadmin = mkOption { | ||
1075 | description = "phpLdapAdmin configuration"; | ||
1076 | type = submodule { | ||
1077 | options = { | ||
1078 | ldap = mkLdapOptions "phpldapadmin" {}; | ||
1079 | }; | ||
1080 | }; | ||
1081 | }; | ||
1082 | rompr = mkOption { | ||
1083 | description = "Rompr configuration"; | ||
1084 | type = submodule { | ||
1085 | options = { | ||
1086 | mpd = mkOption { | ||
1087 | description = "MPD configuration"; | ||
1088 | type = submodule { | ||
1089 | options = { | ||
1090 | host = mkOption { type = str; description = "Host for MPD"; }; | ||
1091 | port = mkOption { type = port; description = "Port to access MPD host"; }; | ||
1092 | }; | ||
1093 | }; | ||
1094 | }; | ||
1095 | }; | ||
1096 | }; | ||
1097 | }; | ||
1098 | roundcubemail = mkOption { | ||
1099 | description = "Roundcubemail configuration"; | ||
1100 | type = submodule { | ||
1101 | options = { | ||
1102 | postgresql = mkPsqlOptions "TT-RSS"; | ||
1103 | secret = mkOption { type = str; description = "Secret"; }; | ||
1104 | }; | ||
1105 | }; | ||
1106 | }; | ||
1107 | shaarli = mkOption { | ||
1108 | description = "Shaarli configuration"; | ||
1109 | type = submodule { | ||
1110 | options = { | ||
1111 | ldap = mkLdapOptions "Shaarli" {}; | ||
1112 | }; | ||
1113 | }; | ||
1114 | }; | ||
1115 | status_engine = mkOption { | ||
1116 | description = "Status Engine configuration"; | ||
1117 | type = submodule { | ||
1118 | options = { | ||
1119 | mysql = mkMysqlOptions "StatusEngine" {}; | ||
1120 | ldap = mkLdapOptions "StatusEngine" {}; | ||
1121 | }; | ||
1122 | }; | ||
1123 | }; | ||
1124 | task = mkOption { | ||
1125 | description = "Taskwarrior configuration"; | ||
1126 | type = submodule { | ||
1127 | options = { | ||
1128 | ldap = mkLdapOptions "Taskwarrior" {}; | ||
1129 | taskwarrior-web = mkOption { | ||
1130 | description = "taskwarrior-web profiles"; | ||
1131 | type = attrsOf (submodule { | ||
1132 | options = { | ||
1133 | uid = mkOption { | ||
1134 | type = listOf str; | ||
1135 | description = "List of ldap uids having access to this profile"; | ||
1136 | }; | ||
1137 | org = mkOption { type = str; description = "Taskd organisation"; }; | ||
1138 | key = mkOption { type = str; description = "Taskd key"; }; | ||
1139 | date = mkOption { type = str; description = "Preferred date format"; }; | ||
1140 | }; | ||
1141 | }); | ||
1142 | }; | ||
1143 | }; | ||
1144 | }; | ||
1145 | }; | ||
1146 | ttrss = mkOption { | ||
1147 | description = "TT-RSS configuration"; | ||
1148 | type = submodule { | ||
1149 | options = { | ||
1150 | postgresql = mkPsqlOptions "TT-RSS"; | ||
1151 | ldap = mkLdapOptions "TT-RSS" {}; | ||
1152 | }; | ||
1153 | }; | ||
1154 | }; | ||
1155 | wallabag = mkOption { | ||
1156 | description = "Wallabag configuration"; | ||
1157 | type = submodule { | ||
1158 | options = { | ||
1159 | postgresql = mkPsqlOptions "Wallabag"; | ||
1160 | ldap = mkLdapOptions "Wallabag" { | ||
1161 | admin_filter = mkOption { type = str; description = "Admin users filter"; }; | ||
1162 | }; | ||
1163 | redis = mkRedisOptions "Wallabag"; | ||
1164 | secret = mkOption { type = str; description = "App secret"; }; | ||
1165 | }; | ||
1166 | }; | ||
1167 | }; | ||
1168 | webhooks = mkOption { | ||
1169 | type = attrsOf str; | ||
1170 | description = "Mapping 'name'.php => script for webhooks"; | ||
1171 | }; | ||
1172 | csp_reports = mkOption { | ||
1173 | description = "CSP report configuration"; | ||
1174 | type = submodule { | ||
1175 | options = { | ||
1176 | report_uri = mkOption { type = str; description = "URI to report CSP violations to"; }; | ||
1177 | policies = mkOption { type = attrsOf str; description = "CSP policies to apply"; }; | ||
1178 | postgresql = mkPsqlOptions "CSP reports"; | ||
1179 | }; | ||
1180 | }; | ||
1181 | }; | ||
1182 | commento = mkOption { | ||
1183 | description = "Commento configuration"; | ||
1184 | type = submodule { | ||
1185 | options = { | ||
1186 | listenPort = mkOption { type = port; description = "Port to listen to"; }; | ||
1187 | postgresql = mkPsqlOptions "Commento"; | ||
1188 | smtp = mkSmtpOptions "Commento"; | ||
1189 | }; | ||
1190 | }; | ||
1191 | }; | ||
1192 | cryptpad = mkOption { | ||
1193 | description = "Cryptpad configuration"; | ||
1194 | type = attrsOf (submodule { | ||
1195 | options = { | ||
1196 | email = mkOption { type = str; description = "Admin e-mail"; }; | ||
1197 | admins = mkOption { type = listOf str; description = "Instance admin public keys"; }; | ||
1198 | port = mkOption { type = port; description = "Port to listen to"; }; | ||
1199 | }; | ||
1200 | }); | ||
1201 | }; | ||
1202 | ympd = mkOption { | ||
1203 | description = "Ympd configuration"; | ||
1204 | type = submodule { | ||
1205 | options = { | ||
1206 | listenPort = mkOption { type = port; description = "Port to listen to"; }; | ||
1207 | mpd = mkOption { | ||
1208 | description = "MPD configuration"; | ||
1209 | type = submodule { | ||
1210 | options = { | ||
1211 | password = mkOption { type = str; description = "Password to access MPD host"; }; | ||
1212 | host = mkOption { type = str; description = "Host for MPD"; }; | ||
1213 | port = mkOption { type = port; description = "Port to access MPD host"; }; | ||
1214 | }; | ||
1215 | }; | ||
1216 | }; | ||
1217 | }; | ||
1218 | }; | ||
1219 | }; | ||
1220 | umami = mkOption { | ||
1221 | description = "Umami configuration"; | ||
1222 | type = submodule { | ||
1223 | options = { | ||
1224 | listenPort = mkOption { type = port; description = "Port to listen to"; }; | ||
1225 | postgresql = mkPsqlOptions "Umami"; | ||
1226 | hashSalt = mkOption { type = str; description = "Hash salt"; }; | ||
1227 | }; | ||
1228 | }; | ||
1229 | }; | ||
1230 | yourls = mkOption { | ||
1231 | description = "Yourls configuration"; | ||
1232 | type = submodule { | ||
1233 | options = { | ||
1234 | mysql = mkMysqlOptions "Yourls" {}; | ||
1235 | ldap = mkLdapOptions "Yourls" {}; | ||
1236 | cookieKey = mkOption { type = str; description = "Cookie key"; }; | ||
1237 | }; | ||
1238 | }; | ||
1239 | }; | ||
1240 | }; | ||
1241 | }; | ||
1242 | }; | ||
1243 | serverSpecific = mkOption { type = attrsOf unspecified; description = "Server specific configuration"; }; | ||
1244 | websites = mkOption { | ||
1245 | description = "Websites configurations"; | ||
1246 | type = submodule { | ||
1247 | options = { | ||
1248 | immae = mkOption { | ||
1249 | description = "Immae configuration by environment"; | ||
1250 | type = submodule { | ||
1251 | options = { | ||
1252 | temp = mkOption { | ||
1253 | description = "Temp configuration"; | ||
1254 | type = submodule { | ||
1255 | options = { | ||
1256 | ldap = mkLdapOptions "Immae temp" { | ||
1257 | filter = mkOption { type = str; description = "Filter for user access"; }; | ||
1258 | }; | ||
1259 | }; | ||
1260 | }; | ||
1261 | }; | ||
1262 | }; | ||
1263 | }; | ||
1264 | }; | ||
1265 | isabelle = mkOption { | ||
1266 | description = "Isabelle configurations by environment"; | ||
1267 | type = | ||
1268 | let | ||
1269 | atenSubmodule = mkOption { | ||
1270 | description = "environment configuration"; | ||
1271 | type = submodule { | ||
1272 | options = { | ||
1273 | environment = mkOption { type = str; description = "Symfony environment"; }; | ||
1274 | secret = mkOption { type = str; description = "Symfony App secret"; }; | ||
1275 | postgresql = mkPsqlOptions "Aten"; | ||
1276 | }; | ||
1277 | }; | ||
1278 | }; | ||
1279 | in | ||
1280 | submodule { | ||
1281 | options = { | ||
1282 | aten_production = atenSubmodule; | ||
1283 | aten_integration = atenSubmodule; | ||
1284 | iridologie = mkOption { | ||
1285 | description = "environment configuration"; | ||
1286 | type = submodule { | ||
1287 | options = { | ||
1288 | environment = mkOption { type = str; description = "SPIP environment"; }; | ||
1289 | mysql = mkMysqlOptions "Iridologie" {}; | ||
1290 | ldap = mkLdapOptions "Iridologie" {}; | ||
1291 | }; | ||
1292 | }; | ||
1293 | }; | ||
1294 | }; | ||
1295 | }; | ||
1296 | }; | ||
1297 | chloe = mkOption { | ||
1298 | description = "Chloe configurations by environment"; | ||
1299 | type = | ||
1300 | let | ||
1301 | chloeSubmodule = mkOption { | ||
1302 | description = "environment configuration"; | ||
1303 | type = submodule { | ||
1304 | options = { | ||
1305 | environment = mkOption { type = str; description = "SPIP environment"; }; | ||
1306 | mysql = mkMysqlOptions "Chloe" {}; | ||
1307 | ldap = mkLdapOptions "Chloe" {}; | ||
1308 | }; | ||
1309 | }; | ||
1310 | }; | ||
1311 | in | ||
1312 | submodule { | ||
1313 | options = { | ||
1314 | production = chloeSubmodule; | ||
1315 | integration = chloeSubmodule; | ||
1316 | }; | ||
1317 | }; | ||
1318 | }; | ||
1319 | connexionswing = mkOption { | ||
1320 | description = "Connexionswing configurations by environment"; | ||
1321 | type = | ||
1322 | let | ||
1323 | csSubmodule = mkOption { | ||
1324 | description = "environment configuration"; | ||
1325 | type = submodule { | ||
1326 | options = { | ||
1327 | environment = mkOption { type = str; description = "Symfony environment"; }; | ||
1328 | mysql = mkMysqlOptions "Connexionswing" {}; | ||
1329 | secret = mkOption { type = str; description = "Symfony App secret"; }; | ||
1330 | email = mkOption { type = str; description = "Symfony email notification"; }; | ||
1331 | }; | ||
1332 | }; | ||
1333 | }; | ||
1334 | in | ||
1335 | submodule { | ||
1336 | options = { | ||
1337 | production = csSubmodule; | ||
1338 | integration = csSubmodule; | ||
1339 | }; | ||
1340 | }; | ||
1341 | }; | ||
1342 | jerome = mkOption { | ||
1343 | description = "Naturaloutil configuration"; | ||
1344 | type = submodule { | ||
1345 | options = { | ||
1346 | mysql = mkMysqlOptions "Naturaloutil" {}; | ||
1347 | server_admin = mkOption { type = str; description = "Server admin e-mail"; }; | ||
1348 | }; | ||
1349 | }; | ||
1350 | }; | ||
1351 | telio_tortay = mkOption { | ||
1352 | description = "Telio Tortay configuration"; | ||
1353 | type = submodule { | ||
1354 | options = { | ||
1355 | server_admin = mkOption { type = str; description = "Server admin e-mail"; }; | ||
1356 | }; | ||
1357 | }; | ||
1358 | }; | ||
1359 | ludivine = mkOption { | ||
1360 | description = "Ludivinecassal configurations by environment"; | ||
1361 | type = | ||
1362 | let | ||
1363 | lcSubmodule = mkOption { | ||
1364 | description = "environment configuration"; | ||
1365 | type = submodule { | ||
1366 | options = { | ||
1367 | environment = mkOption { type = str; description = "Symfony environment"; }; | ||
1368 | mysql = mkMysqlOptions "LudivineCassal" {}; | ||
1369 | ldap = mkLdapOptions "LudivineCassal" {}; | ||
1370 | secret = mkOption { type = str; description = "Symfony App secret"; }; | ||
1371 | }; | ||
1372 | }; | ||
1373 | }; | ||
1374 | in | ||
1375 | submodule { | ||
1376 | options = { | ||
1377 | production = lcSubmodule; | ||
1378 | integration = lcSubmodule; | ||
1379 | }; | ||
1380 | }; | ||
1381 | }; | ||
1382 | emilia = mkOption { | ||
1383 | description = "Emilia configuration"; | ||
1384 | type = submodule { | ||
1385 | options = { | ||
1386 | postgresql = mkPsqlOptions "Emilia"; | ||
1387 | }; | ||
1388 | }; | ||
1389 | }; | ||
1390 | florian = mkOption { | ||
1391 | description = "Florian configuration"; | ||
1392 | type = submodule { | ||
1393 | options = { | ||
1394 | server_admin = mkOption { type = str; description = "Server admin e-mail"; }; | ||
1395 | }; | ||
1396 | }; | ||
1397 | }; | ||
1398 | nassime = mkOption { | ||
1399 | description = "Nassime configuration"; | ||
1400 | type = submodule { | ||
1401 | options = { | ||
1402 | server_admin = mkOption { type = str; description = "Server admin e-mail"; }; | ||
1403 | }; | ||
1404 | }; | ||
1405 | }; | ||
1406 | piedsjaloux = mkOption { | ||
1407 | description = "Piedsjaloux configurations by environment"; | ||
1408 | type = | ||
1409 | let | ||
1410 | pjSubmodule = mkOption { | ||
1411 | description = "environment configuration"; | ||
1412 | type = submodule { | ||
1413 | options = { | ||
1414 | environment = mkOption { type = str; description = "Symfony environment"; }; | ||
1415 | mysql = mkMysqlOptions "Piedsjaloux" {}; | ||
1416 | secret = mkOption { type = str; description = "Symfony App secret"; }; | ||
1417 | }; | ||
1418 | }; | ||
1419 | }; | ||
1420 | in | ||
1421 | submodule { | ||
1422 | options = { | ||
1423 | production = pjSubmodule; | ||
1424 | integration = pjSubmodule; | ||
1425 | }; | ||
1426 | }; | ||
1427 | }; | ||
1428 | richie = mkOption { | ||
1429 | description = "Europe Richie configurations by environment"; | ||
1430 | type = submodule { | ||
1431 | options = { | ||
1432 | mysql = mkMysqlOptions "Richie" {}; | ||
1433 | smtp_mailer = mkOption { | ||
1434 | description = "SMTP mailer configuration"; | ||
1435 | type = submodule { | ||
1436 | options = { | ||
1437 | user = mkOption { type = str; description = "Username"; }; | ||
1438 | password = mkOption { type = str; description = "Password"; }; | ||
1439 | }; | ||
1440 | }; | ||
1441 | }; | ||
1442 | }; | ||
1443 | }; | ||
1444 | }; | ||
1445 | caldance = mkOption { | ||
1446 | description = "Caldance configurations by environment"; | ||
1447 | type = submodule { | ||
1448 | options = { | ||
1449 | integration = mkOption { | ||
1450 | description = "environment configuration"; | ||
1451 | type = submodule { | ||
1452 | options = { | ||
1453 | password = mkOption { type = str; description = "Password file content for basic auth"; }; | ||
1454 | }; | ||
1455 | }; | ||
1456 | }; | ||
1457 | }; | ||
1458 | }; | ||
1459 | }; | ||
1460 | tellesflorian = mkOption { | ||
1461 | description = "Tellesflorian configurations by environment"; | ||
1462 | type = | ||
1463 | let | ||
1464 | tfSubmodule = mkOption { | ||
1465 | description = "environment configuration"; | ||
1466 | type = submodule { | ||
1467 | options = { | ||
1468 | environment = mkOption { type = str; description = "Symfony environment"; }; | ||
1469 | mysql = mkMysqlOptions "Tellesflorian" {}; | ||
1470 | secret = mkOption { type = str; description = "Symfony App secret"; }; | ||
1471 | invite_passwords = mkOption { type = str; description = "Password basic auth"; }; | ||
1472 | }; | ||
1473 | }; | ||
1474 | }; | ||
1475 | in | ||
1476 | submodule { | ||
1477 | options = { | ||
1478 | integration = tfSubmodule; | ||
1479 | }; | ||
1480 | }; | ||
1481 | }; | ||
1482 | }; | ||
1483 | }; | ||
1484 | }; | ||
1485 | }; | ||
1486 | options.hostEnv = mkOption { | ||
1487 | readOnly = true; | ||
1488 | type = hostEnv; | ||
1489 | default = config.myEnv.servers."${name}"; | ||
1490 | description = "Host environment"; | ||
1491 | }; | ||
1492 | } | ||
diff --git a/modules/private/ftp.nix b/modules/private/ftp.nix deleted file mode 100644 index cae25c1..0000000 --- a/modules/private/ftp.nix +++ /dev/null | |||
@@ -1,248 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | package = pkgs.pure-ftpd.override { ldapFtpId = "immaeFtp"; }; | ||
4 | pure-ftpd-enabled = config.myServices.ftp.pure-ftpd.enable; | ||
5 | proftpd-enabled = config.myServices.ftp.proftpd.enable; | ||
6 | in | ||
7 | { | ||
8 | options = { | ||
9 | myServices.ftp.enable = lib.mkOption { | ||
10 | type = lib.types.bool; | ||
11 | default = false; | ||
12 | description = '' | ||
13 | Whether to enable ftp. | ||
14 | ''; | ||
15 | }; | ||
16 | myServices.ftp.pure-ftpd.enable = lib.mkOption { | ||
17 | type = lib.types.bool; | ||
18 | default = false; | ||
19 | description = '' | ||
20 | Whether to enable pure-ftpd. | ||
21 | ''; | ||
22 | }; | ||
23 | myServices.ftp.proftpd.enable = lib.mkOption { | ||
24 | type = lib.types.bool; | ||
25 | default = true; | ||
26 | description = '' | ||
27 | Whether to enable proftpd. | ||
28 | ''; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | config = lib.mkIf config.myServices.ftp.enable { | ||
33 | security.acme.certs."ftp" = config.myServices.certificates.certConfig // { | ||
34 | domain = "eldiron.immae.eu"; | ||
35 | postRun = (lib.optionalString pure-ftpd-enabled '' | ||
36 | systemctl restart pure-ftpd.service | ||
37 | '') + (lib.optionalString proftpd-enabled '' | ||
38 | systemctl restart proftpd.service | ||
39 | ''); | ||
40 | extraDomains = { "ftp.immae.eu" = null; }; | ||
41 | }; | ||
42 | |||
43 | networking = { | ||
44 | firewall = { | ||
45 | allowedTCPPorts = [ 21 115 ]; | ||
46 | allowedTCPPortRanges = [ { from = 40000; to = 50000; } ]; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | users.users.ftp = { | ||
51 | uid = config.ids.uids.ftp; # 8 | ||
52 | group = "ftp"; | ||
53 | description = "Anonymous FTP user"; | ||
54 | home = "/homeless-shelter"; | ||
55 | extraGroups = [ "keys" ]; | ||
56 | }; | ||
57 | |||
58 | users.groups.ftp.gid = config.ids.gids.ftp; | ||
59 | |||
60 | system.activationScripts.ftp = '' | ||
61 | install -m 0755 -o ftp -g ftp -d /var/lib/ftp | ||
62 | '' + (lib.optionalString proftpd-enabled '' | ||
63 | install -m 0755 -o nobody -g nogroup -d /var/lib/proftpd/authorized_keys | ||
64 | ''); | ||
65 | |||
66 | secrets.keys."pure-ftpd-ldap" = lib.mkIf pure-ftpd-enabled { | ||
67 | permissions = "0400"; | ||
68 | user = "ftp"; | ||
69 | group = "ftp"; | ||
70 | text = '' | ||
71 | LDAPServer ${config.myEnv.ftp.ldap.host} | ||
72 | LDAPPort 389 | ||
73 | LDAPUseTLS True | ||
74 | LDAPBaseDN ${config.myEnv.ftp.ldap.base} | ||
75 | LDAPBindDN ${config.myEnv.ftp.ldap.dn} | ||
76 | LDAPBindPW ${config.myEnv.ftp.ldap.password} | ||
77 | LDAPDefaultUID 500 | ||
78 | LDAPForceDefaultUID False | ||
79 | LDAPDefaultGID 100 | ||
80 | LDAPForceDefaultGID False | ||
81 | LDAPFilter ${config.myEnv.ftp.ldap.pure-ftpd_filter} | ||
82 | |||
83 | LDAPAuthMethod BIND | ||
84 | |||
85 | # Pas de possibilite de donner l'Uid/Gid ! | ||
86 | # Compile dans pure-ftpd directement avec immaeFtpUid / immaeFtpGid | ||
87 | LDAPHomeDir immaeFtpDirectory | ||
88 | ''; | ||
89 | }; | ||
90 | secrets.keys."proftpd-ldap.conf" = lib.mkIf proftpd-enabled { | ||
91 | permissions = "0400"; | ||
92 | user = "ftp"; | ||
93 | group = "ftp"; | ||
94 | text = '' | ||
95 | LDAPServer ldaps://${config.myEnv.ftp.ldap.host}:636/??sub | ||
96 | LDAPUseTLS on | ||
97 | LDAPAuthBinds on | ||
98 | LDAPBindDN "${config.myEnv.ftp.ldap.dn}" "${config.myEnv.ftp.ldap.password}" | ||
99 | LDAPSearchScope subtree | ||
100 | LDAPAuthBinds on | ||
101 | LDAPDefaultGID 100 | ||
102 | LDAPDefaultUID 500 | ||
103 | LDAPForceDefaultUID off | ||
104 | LDAPForceDefaultGID off | ||
105 | LDAPAttr gidNumber immaeFtpGid | ||
106 | LDAPAttr uidNumber immaeFtpUid | ||
107 | LDAPAttr homeDirectory immaeFtpDirectory | ||
108 | LDAPUsers "${config.myEnv.ftp.ldap.base}" "${config.myEnv.ftp.ldap.proftpd_filter}" | ||
109 | LDAPGroups "${config.myEnv.ftp.ldap.base}" | ||
110 | ''; | ||
111 | }; | ||
112 | |||
113 | services.filesWatcher.pure-ftpd = lib.mkIf pure-ftpd-enabled { | ||
114 | restart = true; | ||
115 | paths = [ config.secrets.fullPaths."pure-ftpd-ldap" ]; | ||
116 | }; | ||
117 | services.filesWatcher.proftpd = lib.mkIf proftpd-enabled { | ||
118 | restart = true; | ||
119 | paths = [ config.secrets.fullPaths."proftpd-ldap.conf" ]; | ||
120 | }; | ||
121 | |||
122 | systemd.services.pure-ftpd = let | ||
123 | configFile = pkgs.writeText "pure-ftpd.conf" '' | ||
124 | PassivePortRange 40000 50000 | ||
125 | Bind 42 | ||
126 | ChrootEveryone yes | ||
127 | CreateHomeDir yes | ||
128 | BrokenClientsCompatibility yes | ||
129 | MaxClientsNumber 50 | ||
130 | Daemonize yes | ||
131 | MaxClientsPerIP 8 | ||
132 | VerboseLog no | ||
133 | DisplayDotFiles yes | ||
134 | AnonymousOnly no | ||
135 | NoAnonymous no | ||
136 | SyslogFacility ftp | ||
137 | DontResolve yes | ||
138 | MaxIdleTime 15 | ||
139 | LDAPConfigFile ${config.secrets.fullPaths."pure-ftpd-ldap"} | ||
140 | LimitRecursion 10000 8 | ||
141 | AnonymousCanCreateDirs no | ||
142 | MaxLoad 4 | ||
143 | AntiWarez yes | ||
144 | Umask 133:022 | ||
145 | # ftp | ||
146 | MinUID 8 | ||
147 | AllowUserFXP no | ||
148 | AllowAnonymousFXP no | ||
149 | ProhibitDotFilesWrite no | ||
150 | ProhibitDotFilesRead no | ||
151 | AutoRename no | ||
152 | AnonymousCantUpload no | ||
153 | MaxDiskUsage 99 | ||
154 | CustomerProof yes | ||
155 | TLS 1 | ||
156 | CertFile ${config.security.acme.certs.ftp.directory}/full.pem | ||
157 | ''; | ||
158 | in lib.mkIf pure-ftpd-enabled { | ||
159 | description = "Pure-FTPd server"; | ||
160 | wantedBy = [ "multi-user.target" ]; | ||
161 | after = [ "network.target" ]; | ||
162 | |||
163 | serviceConfig.ExecStart = "${package}/bin/pure-ftpd ${configFile}"; | ||
164 | serviceConfig.Type = "forking"; | ||
165 | serviceConfig.PIDFile = "/run/pure-ftpd.pid"; | ||
166 | }; | ||
167 | |||
168 | systemd.services.proftpd = let | ||
169 | configFile = pkgs.writeText "proftpd.conf" '' | ||
170 | ServerName "ProFTPD" | ||
171 | ServerType standalone | ||
172 | DefaultServer on | ||
173 | |||
174 | Port 21 | ||
175 | UseIPv6 on | ||
176 | Umask 022 | ||
177 | MaxInstances 30 | ||
178 | MaxClients 50 | ||
179 | MaxClientsPerHost 8 | ||
180 | |||
181 | # Set the user and group under which the server will run. | ||
182 | User ftp | ||
183 | Group ftp | ||
184 | |||
185 | CreateHome on | ||
186 | DefaultRoot ~ | ||
187 | |||
188 | AllowOverwrite on | ||
189 | |||
190 | TLSEngine on | ||
191 | TLSRequired off | ||
192 | TLSProtocol TLSv1.1 TLSv1.2 TLSv1.3 | ||
193 | |||
194 | TLSCertificateChainFile ${config.security.acme.certs.ftp.directory}/fullchain.pem | ||
195 | TLSECCertificateFile ${config.security.acme.certs.ftp.directory}/cert.pem | ||
196 | TLSECCertificateKeyFile ${config.security.acme.certs.ftp.directory}/key.pem | ||
197 | TLSRenegotiate none | ||
198 | PidFile /run/proftpd/proftpd.pid | ||
199 | |||
200 | ScoreboardFile /run/proftpd/proftpd.scoreboard | ||
201 | |||
202 | PassivePorts 40000 50000 | ||
203 | #DebugLevel 10 | ||
204 | Include ${config.secrets.fullPaths."proftpd-ldap.conf"} | ||
205 | |||
206 | RequireValidShell off | ||
207 | |||
208 | # Bar use of SITE CHMOD by default | ||
209 | <Limit SITE_CHMOD> | ||
210 | DenyAll | ||
211 | </Limit> | ||
212 | |||
213 | <VirtualHost 0.0.0.0> | ||
214 | Umask 022 | ||
215 | Port 115 | ||
216 | SFTPEngine on | ||
217 | CreateHome on | ||
218 | DefaultRoot ~ | ||
219 | |||
220 | AllowOverwrite on | ||
221 | |||
222 | SFTPHostKey /etc/ssh/ssh_host_ed25519_key | ||
223 | SFTPHostKey /etc/ssh/ssh_host_rsa_key | ||
224 | Include ${config.secrets.fullPaths."proftpd-ldap.conf"} | ||
225 | RequireValidShell off | ||
226 | SFTPAuthorizedUserKeys file:/var/lib/proftpd/authorized_keys/%u | ||
227 | SFTPAuthMethods password publickey | ||
228 | |||
229 | SFTPOptions IgnoreSFTPSetOwners | ||
230 | </VirtualHost> | ||
231 | ''; | ||
232 | in lib.mkIf proftpd-enabled { | ||
233 | description = "ProFTPD server"; | ||
234 | wantedBy = [ "multi-user.target" ]; | ||
235 | after = [ "network.target" ]; | ||
236 | |||
237 | serviceConfig.ExecStart = "${pkgs.proftpd}/bin/proftpd -c ${configFile}"; | ||
238 | serviceConfig.Type = "forking"; | ||
239 | serviceConfig.PIDFile = "/run/proftpd/proftpd.pid"; | ||
240 | serviceConfig.RuntimeDirectory = "proftpd"; | ||
241 | }; | ||
242 | |||
243 | services.cron.systemCronJobs = lib.mkIf proftpd-enabled [ | ||
244 | "*/2 * * * * nobody ${./ftp_sync.sh}" | ||
245 | ]; | ||
246 | }; | ||
247 | |||
248 | } | ||
diff --git a/modules/private/ftp_sync.sh b/modules/private/ftp_sync.sh deleted file mode 100755 index 8b0d9c5..0000000 --- a/modules/private/ftp_sync.sh +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | LDAPSEARCH=ldapsearch | ||
4 | |||
5 | LDAP_BIND="cn=ssh,ou=services,dc=immae,dc=eu" | ||
6 | LDAP_PASS=$(cat /etc/ssh/ldap_password) | ||
7 | LDAP_HOST="ldap.immae.eu" | ||
8 | LDAP_BASE="dc=immae,dc=eu" | ||
9 | LDAP_FILTER="(memberOf=cn=users,cn=ftp,ou=services,dc=immae,dc=eu)" | ||
10 | |||
11 | handle_keys() { | ||
12 | uids="$1" | ||
13 | keys="$2" | ||
14 | if [ -n "$uids" ]; then | ||
15 | for uid in $uids; do | ||
16 | echo "$keys" | while read key; do | ||
17 | if [ -n "$key" ]; then | ||
18 | ssh-keygen -e -f <(echo "$key") | ||
19 | fi | ||
20 | done > /var/lib/proftpd/authorized_keys/$uid | ||
21 | done | ||
22 | fi | ||
23 | } | ||
24 | |||
25 | mkdir -p /var/lib/proftpd/authorized_keys | ||
26 | |||
27 | while read i; do | ||
28 | if [[ "$i" =~ ^dn: ]]; then | ||
29 | handle_keys "$uids" "$keys" | ||
30 | uids="" | ||
31 | keys="" | ||
32 | fi; | ||
33 | if [[ "$i" =~ ^uid: ]]; then | ||
34 | uids="$uids ${i#uid: }" | ||
35 | fi | ||
36 | if [[ "$i" =~ ^immaeSshKey: ]]; then | ||
37 | key="${i#immaeSshKey: }" | ||
38 | if [[ "$key" =~ ^ssh- ]]; then | ||
39 | keys="$keys | ||
40 | $key" | ||
41 | elif echo "$key" | cut -d" " -f1 | grep -q "\bftp\b"; then | ||
42 | keys="$keys | ||
43 | $(echo "$key" | cut -d" " -f2-)" | ||
44 | fi | ||
45 | fi | ||
46 | done < <(ldapsearch -h "$LDAP_HOST" -ZZ -LLL -D "$LDAP_BIND" -w "$LDAP_PASS" -b "$LDAP_BASE" -x -o ldif-wrap=no "$LDAP_FILTER" uid immaeSshKey) | ||
47 | handle_keys "$uids" "$keys" | ||
diff --git a/modules/private/gemini/default.nix b/modules/private/gemini/default.nix deleted file mode 100644 index ffe8a12..0000000 --- a/modules/private/gemini/default.nix +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | configFile = pkgs.writeText "config.yaml" '' | ||
4 | listen: ":1965" | ||
5 | hosts: | ||
6 | immae.eu: | ||
7 | cert: /var/lib/acme/immae/full.pem | ||
8 | key: /var/lib/acme/immae/key.pem | ||
9 | paths: | ||
10 | - path: / | ||
11 | root: ${./public} | ||
12 | ''; | ||
13 | in | ||
14 | { | ||
15 | options.myServices.gemini.enable = lib.mkEnableOption "enable Gemini capsule"; | ||
16 | config = lib.mkIf config.myServices.gemini.enable { | ||
17 | networking.firewall.allowedTCPPorts = [ 1965 ]; | ||
18 | systemd.services.gemini = { | ||
19 | description = "Gemini capsule server"; | ||
20 | wantedBy = [ "multi-user.target" ]; | ||
21 | after = [ "network.target" ]; | ||
22 | serviceConfig.ExecStart = "${pkgs.twins}/bin/twins -config ${configFile}"; | ||
23 | serviceConfig.Type = "simple"; | ||
24 | }; | ||
25 | }; | ||
26 | } | ||
diff --git a/modules/private/gemini/public/index.gmi b/modules/private/gemini/public/index.gmi deleted file mode 100644 index 034a0d9..0000000 --- a/modules/private/gemini/public/index.gmi +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | # Immae | ||
2 | |||
3 | ## Présentation | ||
4 | |||
5 | Dans le but de promouvoir la décentralisation des données personnelles et l’usage de logiciels open source, je propose un hébergement de divers services utiles. Ces services sont basés sur du code libre et déployés sur des systèmes libres également. | ||
6 | |||
7 | Je suis un particulier, et dans la mesure de mes capacités, j’essaye toujours de fournir des services à ma famille et à mes amis proches en remplacement de services non libres fournis par les géants du web. J’ai décidé de faire le nécessaire pour étendre ces services à un public plus large, avec pour but de conserver une qualité suffisante. | ||
8 | |||
9 | Lorsque c’est possible, les programmes que je développe sont également libres de droits (ce n’est pas toujours dépendant de ma volonté ou tributaire de ma disponibilité pour rendre le code accessible) | ||
10 | |||
11 | Depuis juin 2019 je fais partie du collectif CHATONS, dont je respecte en particulier la charte: | ||
12 | => https://chatons.org CHATONS | ||
13 | |||
14 | ## Tarifs | ||
15 | |||
16 | Je ne cherche pas à faire de profits en proposant ces services. Cependant, l’hébergement de ces services n’est pas gratuit, et maintenir ces services à un niveau de qualité suffisant demande de l’investissement en temps. Ainsi, selon l’usage désiré, le niveau de personnalisation et support dont vous avez besoin et les moyens à votre disposition et votre volonté, une participation pourra être demandée afin d’y accéder. | ||
17 | => https://www.immae.eu/licences_et_tip.html Tips | ||
18 | |||
19 | ## Services proposés | ||
20 | |||
21 | Voici une liste non exhaustive de services que je propose : | ||
22 | |||
23 | * Mastodon | ||
24 | * Nextcloud | ||
25 | * Calendrier/Contacts et synchronisation | ||
26 | * Hébergement de vidéos (Mediagoblin) | ||
27 | * Hébergement de vidéos (Peertube) | ||
28 | * Kanboard | ||
29 | * Flux RSS | ||
30 | * "Lire plus tard" (wallabag) | ||
31 | * Partage de liens (Shaarli) | ||
32 | * Raccourcisseur d’URLs | ||
33 | * Édition de texte collaborative | ||
34 | * Réseau social | ||
35 | * Hébergement de dépôts git privés et publics, gestion d’issues | ||
36 | * Messagerie instantanée (XMPP/Jabber) | ||
37 | * Comptes e-mails avec domaines personnalisés, IMAP/SMTP, MX backup | ||
38 | * Hébergement et administration de sites web privés | ||
39 | * Comptes shell protégés | ||
40 | |||
41 | Un tableau de bord des services est disponible : | ||
42 | => https://tools.immae.eu Tableau de bord des services | ||
43 | |||
44 | Je propose également de l’aide à distance (ou de visu si la distance est faible), pour l’usage de ces outils ou d’autres problèmes liés à l’informatique. | ||
45 | |||
46 | Si vous ne voyez pas ce que vous voulez dans la liste, nous pourrons essayer de trouver une solution ensemble. Je suis ouvert aussi bien sûr à la création de nouveaux services (la liste est encore incomplète et d’autres services sont déjà prévus), dans le cadre défini en haut : basé sur des applications libres. | ||
47 | |||
48 | => https://status.immae.eu État des services | ||
49 | |||
50 | ## Comment faire ? | ||
51 | |||
52 | Vous devez commencer par accepter les conditions générales dgutilisation : | ||
53 | => https://www.immae.eu/CGU Conditions générales d’utilisation | ||
54 | Elles ne contiennent rien d’inhabituel mais elles ont été écrites par moi-même, donc sans jargon juridique. Elles vous permettront de décider si les garanties proposées sont en accord avec ce que vous pouvez vous permettre. | ||
55 | |||
56 | Ensuite, contactez-moi avec vos vœux : | ||
57 | => https://www.immae.eu/contacts_fr.html Page de contact | ||
58 | |||
59 | ## Infrastructure et open source | ||
60 | |||
61 | Dans le but de pouvoir décemment offrir une qualité de service suffisante sans pour autant y passer mes journées, l’installation des services est gérée via NixOS, permettant d’assurer la reproductibilité et l’automatisation des installations. | ||
62 | |||
63 | Cette configuration est stockée publiquement dans un dépôt git, réutilisable et améliorable librement (avec probablement quelques ajustements). | ||
64 | => https://git.immae.eu/cgit/perso/Immae/Config/Nix.git/ Dépôt git de la configuration | ||
65 | |||
66 | |||
67 | => https://www.immae.eu/contacts_fr.html Page de contact | ||
68 | => https://www.immae.eu/CGU Conditions générales d’utilisation | ||
69 | => https://www.immae.eu/mentions.html Mentions légales | ||
70 | => https://www.immae.eu/licences_et_tip.html Quelques informations sur les licences utilisées et tips | ||
diff --git a/modules/private/gitolite/default.nix b/modules/private/gitolite/default.nix deleted file mode 100644 index 6a74734..0000000 --- a/modules/private/gitolite/default.nix +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.gitolite; | ||
4 | in { | ||
5 | options.myServices.gitolite = { | ||
6 | enable = lib.mkEnableOption "my gitolite service"; | ||
7 | gitoliteDir = lib.mkOption { | ||
8 | type = lib.types.str; | ||
9 | default = "/var/lib/gitolite"; | ||
10 | }; | ||
11 | }; | ||
12 | |||
13 | config = lib.mkIf cfg.enable { | ||
14 | myServices.ssh.modules = [{ | ||
15 | snippet = builtins.readFile ./ldap_gitolite.sh; | ||
16 | dependencies = [ pkgs.gitolite ]; | ||
17 | }]; | ||
18 | networking.firewall.allowedTCPPorts = [ 9418 ]; | ||
19 | |||
20 | secrets.keys."gitolite/ldap_password" = { | ||
21 | user = "gitolite"; | ||
22 | group = "gitolite"; | ||
23 | permissions = "0400"; | ||
24 | text = config.myEnv.tools.gitolite.ldap.password; | ||
25 | }; | ||
26 | |||
27 | services.gitDaemon = { | ||
28 | enable = true; | ||
29 | user = "gitolite"; | ||
30 | group = "gitolite"; | ||
31 | basePath = "${cfg.gitoliteDir}/repositories"; | ||
32 | }; | ||
33 | |||
34 | system.activationScripts.gitolite = let | ||
35 | deps = [ pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.coreutils ]; | ||
36 | gitolite_ldap_groups = pkgs.runCommand "gitolite_ldap_groups.sh" { | ||
37 | buildInputs = [ pkgs.makeWrapper ]; | ||
38 | } '' | ||
39 | makeWrapper "${./gitolite_ldap_groups.sh}" "$out" \ | ||
40 | --prefix PATH : ${lib.makeBinPath deps} \ | ||
41 | --set LDAP_PASS_PATH ${config.secrets.fullPaths."gitolite/ldap_password"} | ||
42 | ''; | ||
43 | in { | ||
44 | deps = [ "users" ]; | ||
45 | text = '' | ||
46 | if [ -d ${cfg.gitoliteDir} ]; then | ||
47 | ln -sf ${gitolite_ldap_groups} ${cfg.gitoliteDir}/gitolite_ldap_groups.sh | ||
48 | chmod g+rx ${cfg.gitoliteDir} | ||
49 | fi | ||
50 | if [ -f ${cfg.gitoliteDir}/projects.list ]; then | ||
51 | chmod g+r ${cfg.gitoliteDir}/projects.list | ||
52 | fi | ||
53 | ''; | ||
54 | }; | ||
55 | |||
56 | users.users.wwwrun.extraGroups = [ "gitolite" ]; | ||
57 | users.users.gitolite.extraGroups = [ "keys" ]; | ||
58 | |||
59 | users.users.gitolite.packages = let | ||
60 | python-packages = python-packages: with python-packages; [ | ||
61 | simplejson | ||
62 | urllib3 | ||
63 | sleekxmpp | ||
64 | ]; | ||
65 | in | ||
66 | [ | ||
67 | (pkgs.python3.withPackages python-packages) | ||
68 | pkgs.nettools | ||
69 | pkgs.findutils | ||
70 | ]; | ||
71 | # Installation: https://git.immae.eu/mantisbt/view.php?id=93 | ||
72 | services.gitolite = { | ||
73 | enable = true; | ||
74 | adminPubkey = config.myEnv.sshd.rootKeys.immae_dilion; | ||
75 | }; | ||
76 | }; | ||
77 | } | ||
diff --git a/modules/private/gitolite/gitolite_ldap_groups.sh b/modules/private/gitolite/gitolite_ldap_groups.sh deleted file mode 100755 index 3d7117e..0000000 --- a/modules/private/gitolite/gitolite_ldap_groups.sh +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | uid_param="$1" | ||
4 | ldap_host="ldap.immae.eu" | ||
5 | ldap_binddn="cn=gitolite,ou=services,dc=immae,dc=eu" | ||
6 | ldap_bindpw="$(cat $LDAP_PASS_PATH)" | ||
7 | ldap_searchbase="dc=immae,dc=eu" | ||
8 | ldap_scope="subtree" | ||
9 | |||
10 | ldap_options="-h ${ldap_host} -ZZ -x -D ${ldap_binddn} -w ${ldap_bindpw} -b ${ldap_searchbase} -s ${ldap_scope}" | ||
11 | |||
12 | ldap_filter="(&(memberOf=cn=groups,cn=gitolite,ou=services,dc=immae,dc=eu)(|(member=uid=${uid_param},ou=users,dc=immae,dc=eu)(member=uid=${uid_param},ou=group_users,dc=immae,dc=eu)))" | ||
13 | ldap_result=$(ldapsearch ${ldap_options} -LLL "${ldap_filter}" cn | grep 'cn:' | cut -d' ' -f2) | ||
14 | |||
15 | echo "$ldap_result" | ||
diff --git a/modules/private/gitolite/ldap_gitolite.sh b/modules/private/gitolite/ldap_gitolite.sh deleted file mode 100644 index 23cb2bf..0000000 --- a/modules/private/gitolite/ldap_gitolite.sh +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | ### This snippet is not standalone and must be integrated in the global ldap_authorized_keys.sh | ||
2 | LDAP_GITOLITE_MEMBER="cn=users,cn=gitolite,ou=services,dc=immae,dc=eu" | ||
3 | GITOLITE_SHELL=$(which gitolite-shell) | ||
4 | |||
5 | if [[ $user == gitolite ]]; then | ||
6 | ldap_search '(&(memberOf='$LDAP_GITOLITE_MEMBER')('$KEY'=*))' $KEY | \ | ||
7 | while read line ; | ||
8 | do | ||
9 | if [ ! -z "$line" ]; then | ||
10 | if [[ $line == dn* ]]; then | ||
11 | user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line") | ||
12 | if [ -n "$user" ]; then | ||
13 | if [[ $user == "immae" ]] || [[ $user == "denise" ]]; then | ||
14 | # Capitalize first letter (backward compatibility) | ||
15 | user=$(sed -r 's/^([a-z])/\U\1/' <<< "$user") | ||
16 | fi | ||
17 | else | ||
18 | # Service fake user | ||
19 | user=$(sed -n 's/.*cn=\([^,]*\).*/\1/p' <<< "$line") | ||
20 | fi | ||
21 | elif [[ $line == $KEY* ]]; then | ||
22 | key=$(clean_key_line git "$line") | ||
23 | if [ ! -z "$key" ]; then | ||
24 | if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then | ||
25 | echo -n 'command="'$GITOLITE_SHELL' '$user'",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ' | ||
26 | echo $key | ||
27 | fi | ||
28 | fi | ||
29 | fi | ||
30 | fi | ||
31 | done | ||
32 | exit 0 | ||
33 | fi | ||
diff --git a/modules/private/irc.nix b/modules/private/irc.nix deleted file mode 100644 index bc0bfb4..0000000 --- a/modules/private/irc.nix +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.irc; | ||
4 | in | ||
5 | { | ||
6 | options.myServices = { | ||
7 | ircCerts = lib.mkOption { | ||
8 | description = "Default ircconfigurations for certificates as accepted by acme"; | ||
9 | }; | ||
10 | irc.enable = lib.mkOption { | ||
11 | type = lib.types.bool; | ||
12 | default = false; | ||
13 | description = '' | ||
14 | Whether to enable irc stuff. | ||
15 | ''; | ||
16 | }; | ||
17 | }; | ||
18 | |||
19 | config = lib.mkIf cfg.enable { | ||
20 | security.acme.certs."irc" = config.myServices.ircCerts // { | ||
21 | domain = "irc.immae.eu"; | ||
22 | postRun = '' | ||
23 | systemctl restart stunnel.service | ||
24 | ''; | ||
25 | }; | ||
26 | |||
27 | networking.firewall.allowedTCPPorts = [ 6697 ]; | ||
28 | services.bitlbee = with pkgs; { | ||
29 | enable = true; | ||
30 | authMode = "Registered"; | ||
31 | libpurple_plugins = [ | ||
32 | purple-hangouts | ||
33 | purple-matrix | ||
34 | ]; | ||
35 | plugins = [ | ||
36 | bitlbee-mastodon | ||
37 | bitlbee-facebook | ||
38 | bitlbee-discord | ||
39 | bitlbee-steam | ||
40 | ]; | ||
41 | }; | ||
42 | |||
43 | services.stunnel = { | ||
44 | enable = true; | ||
45 | servers = { | ||
46 | bitlbee = { | ||
47 | accept = 6697; | ||
48 | connect = 6667; | ||
49 | cert = "${config.security.acme.certs.irc.directory}/full.pem"; | ||
50 | }; | ||
51 | }; | ||
52 | }; | ||
53 | }; | ||
54 | } | ||
diff --git a/modules/private/loginctl-linger.nix b/modules/private/loginctl-linger.nix deleted file mode 100644 index e6b9f23..0000000 --- a/modules/private/loginctl-linger.nix +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | |||
3 | # https://github.com/michalrus/dotfiles/commit/ebd5fa9583f82589f23531647aa677feb3f8d344#diff-4d353005ef5b3e37f33c07332b8523edR1 | ||
4 | # A temporary hack to `loginctl enable-linger $somebody` (for | ||
5 | # multiplexer sessions to last), until this one is unresolved: | ||
6 | # https://github.com/NixOS/nixpkgs/issues/3702 | ||
7 | # | ||
8 | # Usage: `users.extraUsers.somebody.linger = true` or slt. | ||
9 | |||
10 | with lib; | ||
11 | |||
12 | let | ||
13 | |||
14 | dataDir = "/var/lib/systemd/linger"; | ||
15 | |||
16 | lingeringUsers = map (u: u.name) (attrValues (flip filterAttrs config.users.users (n: u: u.linger))); | ||
17 | |||
18 | lingeringUsersFile = builtins.toFile "lingering-users" | ||
19 | (concatStrings (map (s: "${s}\n") | ||
20 | (sort (a: b: a < b) lingeringUsers))); # this sorting is important for `comm` to work correctly | ||
21 | |||
22 | updateLingering = pkgs.writeScript "update-lingering" '' | ||
23 | if [ ! -e ${dataDir} ]; then | ||
24 | install -m 0755 -o root -g root -d ${dataDir} | ||
25 | fi | ||
26 | if [ -e ${dataDir} ] ; then | ||
27 | ls ${dataDir} | sort | comm -3 -1 ${lingeringUsersFile} - | xargs -r ${pkgs.systemd}/bin/loginctl disable-linger | ||
28 | ls ${dataDir} | sort | comm -3 -2 ${lingeringUsersFile} - | xargs -r ${pkgs.systemd}/bin/loginctl enable-linger | ||
29 | fi | ||
30 | ''; | ||
31 | |||
32 | in | ||
33 | |||
34 | { | ||
35 | options = { | ||
36 | users.users = mkOption { | ||
37 | options = [{ | ||
38 | linger = mkEnableOption "lingering for the user"; | ||
39 | }]; | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | config = { | ||
44 | system.activationScripts.update-lingering = | ||
45 | stringAfter [ "users" ] updateLingering; | ||
46 | }; | ||
47 | } | ||
diff --git a/modules/private/mail/default.nix b/modules/private/mail/default.nix deleted file mode 100644 index 2d405c6..0000000 --- a/modules/private/mail/default.nix +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | { | ||
3 | imports = [ | ||
4 | ./milters.nix | ||
5 | ./postfix.nix | ||
6 | ./dovecot.nix | ||
7 | ./relay.nix | ||
8 | ./rspamd.nix | ||
9 | ./opensmtpd.nix | ||
10 | ./sympa.nix | ||
11 | ]; | ||
12 | options.myServices.mail.enable = lib.mkEnableOption "enable Mail services"; | ||
13 | options.myServices.mailRelay.enable = lib.mkEnableOption "enable Mail relay services"; | ||
14 | options.myServices.mailBackup.enable = lib.mkEnableOption "enable MX backup services"; | ||
15 | |||
16 | config = lib.mkIf config.myServices.mail.enable { | ||
17 | security.acme.certs."mail" = config.myServices.certificates.certConfig // { | ||
18 | domain = config.hostEnv.fqdn; | ||
19 | extraDomains = let | ||
20 | zonesWithMx = builtins.filter (zone: | ||
21 | lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 | ||
22 | ) config.myEnv.dns.masterZones; | ||
23 | mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx; | ||
24 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | ||
25 | }; | ||
26 | # This is for clients that don’t support elliptic curves (e.g. | ||
27 | # printer) | ||
28 | security.acme.certs."mail-rsa" = config.myServices.certificates.certConfig // { | ||
29 | domain = config.hostEnv.fqdn; | ||
30 | keyType = "rsa4096"; | ||
31 | extraDomains = let | ||
32 | zonesWithMx = builtins.filter (zone: | ||
33 | lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 | ||
34 | ) config.myEnv.dns.masterZones; | ||
35 | mxs = map (zone: "${config.hostEnv.mx.subdomain}.${zone.name}") zonesWithMx; | ||
36 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | ||
37 | }; | ||
38 | systemd.slices.mail = { | ||
39 | description = "Mail slice"; | ||
40 | }; | ||
41 | }; | ||
42 | } | ||
diff --git a/modules/private/mail/dovecot.nix b/modules/private/mail/dovecot.nix deleted file mode 100644 index b6fdc02..0000000 --- a/modules/private/mail/dovecot.nix +++ /dev/null | |||
@@ -1,292 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | sieve_bin = pkgs.runCommand "sieve_bin" { | ||
4 | buildInputs = [ pkgs.makeWrapper ]; | ||
5 | } '' | ||
6 | cp -a ${./sieve_bin} $out | ||
7 | chmod -R u+w $out | ||
8 | patchShebangs $out | ||
9 | for i in $out/*; do | ||
10 | wrapProgram "$i" --prefix PATH : ${lib.makeBinPath [ pkgs.coreutils ]} | ||
11 | done | ||
12 | ''; | ||
13 | in | ||
14 | { | ||
15 | config = lib.mkIf config.myServices.mail.enable { | ||
16 | systemd.services.dovecot2.serviceConfig.Slice = "mail.slice"; | ||
17 | secrets.keys."dovecot/ldap" = { | ||
18 | user = config.services.dovecot2.user; | ||
19 | group = config.services.dovecot2.group; | ||
20 | permissions = "0400"; | ||
21 | text = '' | ||
22 | hosts = ${config.myEnv.mail.dovecot.ldap.host} | ||
23 | tls = yes | ||
24 | |||
25 | dn = ${config.myEnv.mail.dovecot.ldap.dn} | ||
26 | dnpass = ${config.myEnv.mail.dovecot.ldap.password} | ||
27 | |||
28 | auth_bind = yes | ||
29 | |||
30 | ldap_version = 3 | ||
31 | |||
32 | base = ${config.myEnv.mail.dovecot.ldap.base} | ||
33 | scope = subtree | ||
34 | |||
35 | pass_filter = ${config.myEnv.mail.dovecot.ldap.filter} | ||
36 | pass_attrs = ${config.myEnv.mail.dovecot.ldap.pass_attrs} | ||
37 | |||
38 | user_attrs = ${config.myEnv.mail.dovecot.ldap.user_attrs} | ||
39 | user_filter = ${config.myEnv.mail.dovecot.ldap.filter} | ||
40 | iterate_attrs = ${config.myEnv.mail.dovecot.ldap.iterate_attrs} | ||
41 | iterate_filter = ${config.myEnv.mail.dovecot.ldap.iterate_filter} | ||
42 | ''; | ||
43 | }; | ||
44 | |||
45 | users.users.vhost = { | ||
46 | group = "vhost"; | ||
47 | uid = config.ids.uids.vhost; | ||
48 | }; | ||
49 | users.groups.vhost.gid = config.ids.gids.vhost; | ||
50 | |||
51 | # https://blog.zeninc.net/index.php?post/2018/04/01/Un-annuaire-pour-les-gouverner-tous....... | ||
52 | services.dovecot2 = { | ||
53 | enable = true; | ||
54 | enablePAM = false; | ||
55 | enablePop3 = true; | ||
56 | enableImap = true; | ||
57 | enableLmtp = true; | ||
58 | protocols = [ "sieve" ]; | ||
59 | modules = [ | ||
60 | pkgs.dovecot_pigeonhole | ||
61 | pkgs.dovecot_fts-xapian | ||
62 | ]; | ||
63 | mailUser = "vhost"; | ||
64 | mailGroup = "vhost"; | ||
65 | createMailUser = false; | ||
66 | mailboxes = { | ||
67 | Trash = { auto = "subscribe"; specialUse = "Trash"; }; | ||
68 | Junk = { auto = "subscribe"; specialUse = "Junk"; }; | ||
69 | Sent = { auto = "subscribe"; specialUse = "Sent"; }; | ||
70 | Drafts = { auto = "subscribe"; specialUse = "Drafts"; }; | ||
71 | }; | ||
72 | mailLocation = "mbox:~/Mail:INBOX=~/Mail/Inbox:INDEX=~/.imap"; | ||
73 | sslServerCert = "/var/lib/acme/mail/fullchain.pem"; | ||
74 | sslServerKey = "/var/lib/acme/mail/key.pem"; | ||
75 | sslCACert = "/var/lib/acme/mail/fullchain.pem"; | ||
76 | extraConfig = builtins.concatStringsSep "\n" [ | ||
77 | # For printer which doesn’t support elliptic curve | ||
78 | '' | ||
79 | ssl_alt_cert = </var/lib/acme/mail-rsa/fullchain.pem | ||
80 | ssl_alt_key = </var/lib/acme/mail-rsa/key.pem | ||
81 | '' | ||
82 | |||
83 | '' | ||
84 | postmaster_address = postmaster@immae.eu | ||
85 | mail_attribute_dict = file:%h/dovecot-attributes | ||
86 | imap_idle_notify_interval = 20 mins | ||
87 | namespace inbox { | ||
88 | type = private | ||
89 | separator = / | ||
90 | inbox = yes | ||
91 | list = yes | ||
92 | } | ||
93 | '' | ||
94 | |||
95 | # ACL | ||
96 | '' | ||
97 | mail_plugins = $mail_plugins acl | ||
98 | plugin { | ||
99 | acl = vfile:${pkgs.writeText "dovecot-acl" '' | ||
100 | Backup/* owner lrp | ||
101 | ''} | ||
102 | acl_globals_only = yes | ||
103 | } | ||
104 | '' | ||
105 | |||
106 | # Full text search | ||
107 | '' | ||
108 | # needs to be bigger than any mailbox size | ||
109 | default_vsz_limit = 2GB | ||
110 | mail_plugins = $mail_plugins fts fts_xapian | ||
111 | plugin { | ||
112 | plugin = fts fts_xapian | ||
113 | fts = xapian | ||
114 | fts_xapian = partial=2 full=20 | ||
115 | fts_autoindex = yes | ||
116 | fts_autoindex_exclude = \Junk | ||
117 | fts_autoindex_exclude2 = \Trash | ||
118 | fts_autoindex_exclude3 = Virtual/* | ||
119 | } | ||
120 | '' | ||
121 | |||
122 | # Antispam | ||
123 | # https://docs.iredmail.org/dovecot.imapsieve.html | ||
124 | '' | ||
125 | # imap_sieve plugin added below | ||
126 | |||
127 | plugin { | ||
128 | sieve_plugins = sieve_imapsieve sieve_extprograms | ||
129 | imapsieve_url = sieve://127.0.0.1:4190 | ||
130 | |||
131 | sieve_before = file:${./sieve_scripts}/backup.sieve;bindir=/var/lib/vhost/.sieve_bin | ||
132 | |||
133 | # From elsewhere to Junk folder | ||
134 | imapsieve_mailbox1_name = Junk | ||
135 | imapsieve_mailbox1_causes = COPY APPEND | ||
136 | imapsieve_mailbox1_before = file:${./sieve_scripts}/report_spam.sieve;bindir=/var/lib/vhost/.imapsieve_bin | ||
137 | |||
138 | # From Junk folder to elsewhere | ||
139 | imapsieve_mailbox2_name = * | ||
140 | imapsieve_mailbox2_from = Junk | ||
141 | imapsieve_mailbox2_causes = COPY | ||
142 | imapsieve_mailbox2_before = file:${./sieve_scripts}/report_ham.sieve;bindir=/var/lib/vhost/.imapsieve_bin | ||
143 | |||
144 | # From anywhere to NoJunk folder | ||
145 | imapsieve_mailbox3_name = NoJunk | ||
146 | imapsieve_mailbox3_causes = COPY APPEND | ||
147 | imapsieve_mailbox3_before = file:${./sieve_scripts}/report_ham.sieve;bindir=/var/lib/vhost/.imapsieve_bin | ||
148 | |||
149 | sieve_pipe_bin_dir = ${sieve_bin} | ||
150 | |||
151 | sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment | ||
152 | } | ||
153 | '' | ||
154 | # Services to listen | ||
155 | '' | ||
156 | service imap-login { | ||
157 | inet_listener imap { | ||
158 | } | ||
159 | inet_listener imaps { | ||
160 | } | ||
161 | } | ||
162 | service pop3-login { | ||
163 | inet_listener pop3 { | ||
164 | } | ||
165 | inet_listener pop3s { | ||
166 | } | ||
167 | } | ||
168 | service imap { | ||
169 | } | ||
170 | service pop3 { | ||
171 | } | ||
172 | service auth { | ||
173 | unix_listener auth-userdb { | ||
174 | } | ||
175 | unix_listener ${config.services.postfix.config.queue_directory}/private/auth { | ||
176 | mode = 0666 | ||
177 | } | ||
178 | } | ||
179 | service auth-worker { | ||
180 | } | ||
181 | service dict { | ||
182 | unix_listener dict { | ||
183 | } | ||
184 | } | ||
185 | service stats { | ||
186 | unix_listener stats-reader { | ||
187 | user = vhost | ||
188 | group = vhost | ||
189 | mode = 0660 | ||
190 | } | ||
191 | unix_listener stats-writer { | ||
192 | user = vhost | ||
193 | group = vhost | ||
194 | mode = 0660 | ||
195 | } | ||
196 | } | ||
197 | '' | ||
198 | |||
199 | # Authentification | ||
200 | '' | ||
201 | first_valid_uid = ${toString config.ids.uids.vhost} | ||
202 | disable_plaintext_auth = yes | ||
203 | passdb { | ||
204 | driver = ldap | ||
205 | args = ${config.secrets.fullPaths."dovecot/ldap"} | ||
206 | } | ||
207 | userdb { | ||
208 | driver = ldap | ||
209 | args = ${config.secrets.fullPaths."dovecot/ldap"} | ||
210 | } | ||
211 | '' | ||
212 | |||
213 | # Zlib | ||
214 | '' | ||
215 | mail_plugins = $mail_plugins zlib | ||
216 | plugin { | ||
217 | zlib_save_level = 6 | ||
218 | zlib_save = gz | ||
219 | } | ||
220 | '' | ||
221 | |||
222 | # Sieve | ||
223 | '' | ||
224 | plugin { | ||
225 | sieve = file:~/sieve;bindir=~/.sieve-bin;active=~/.dovecot.sieve | ||
226 | } | ||
227 | service managesieve-login { | ||
228 | } | ||
229 | service managesieve { | ||
230 | } | ||
231 | '' | ||
232 | |||
233 | # Virtual mailboxes | ||
234 | '' | ||
235 | mail_plugins = $mail_plugins virtual | ||
236 | namespace Virtual { | ||
237 | prefix = Virtual/ | ||
238 | location = virtual:~/Virtual | ||
239 | } | ||
240 | '' | ||
241 | |||
242 | # Protocol specific configuration | ||
243 | # Needs to come last if there are mail_plugins entries | ||
244 | '' | ||
245 | protocol imap { | ||
246 | mail_plugins = $mail_plugins imap_sieve imap_acl | ||
247 | } | ||
248 | protocol lda { | ||
249 | mail_plugins = $mail_plugins sieve | ||
250 | } | ||
251 | '' | ||
252 | ]; | ||
253 | }; | ||
254 | networking.firewall.allowedTCPPorts = [ 110 143 993 995 4190 ]; | ||
255 | system.activationScripts.dovecot = { | ||
256 | deps = [ "users" ]; | ||
257 | text ='' | ||
258 | install -m 0755 -o vhost -g vhost -d /var/lib/vhost | ||
259 | ''; | ||
260 | }; | ||
261 | |||
262 | services.cron.systemCronJobs = let | ||
263 | cron_script = pkgs.writeScriptBin "cleanup-imap-folders" '' | ||
264 | ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX "Backup/*" NOT FLAGGED BEFORE 8w 2>&1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" | ||
265 | ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX Junk SEEN NOT FLAGGED BEFORE 4w 2>&1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" | ||
266 | ${pkgs.dovecot}/bin/doveadm expunge -A MAILBOX Trash NOT FLAGGED BEFORE 4w 2>&1 > /dev/null | grep -v "Mailbox doesn't exist:" | grep -v "Info: Opening DB" | ||
267 | ''; | ||
268 | in | ||
269 | [ | ||
270 | "0 2 * * * root ${cron_script}/bin/cleanup-imap-folders" | ||
271 | ]; | ||
272 | security.acme.certs."mail-rsa" = { | ||
273 | postRun = '' | ||
274 | systemctl restart dovecot2.service | ||
275 | ''; | ||
276 | extraDomains = { | ||
277 | "imap.immae.eu" = null; | ||
278 | "pop3.immae.eu" = null; | ||
279 | }; | ||
280 | }; | ||
281 | security.acme.certs."mail" = { | ||
282 | postRun = '' | ||
283 | systemctl restart dovecot2.service | ||
284 | ''; | ||
285 | extraDomains = { | ||
286 | "imap.immae.eu" = null; | ||
287 | "pop3.immae.eu" = null; | ||
288 | }; | ||
289 | }; | ||
290 | }; | ||
291 | } | ||
292 | |||
diff --git a/modules/private/mail/filter-rewrite-from.py b/modules/private/mail/filter-rewrite-from.py deleted file mode 100755 index aad9c69..0000000 --- a/modules/private/mail/filter-rewrite-from.py +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | #! /usr/bin/env python3 | ||
2 | import sys | ||
3 | |||
4 | sys.stdin.reconfigure(encoding='utf-8') | ||
5 | sys.stdout.reconfigure(encoding='utf-8') | ||
6 | stdin = sys.stdin | ||
7 | stdout = sys.stdout | ||
8 | |||
9 | mailaddr = sys.argv[1] | ||
10 | inheader = {} | ||
11 | |||
12 | # Change to actual file for logging | ||
13 | logfile = open("/dev/null", "a") | ||
14 | |||
15 | def log(l, i): | ||
16 | logfile.write("{} {}\n".format(i, l)) | ||
17 | logfile.flush() | ||
18 | |||
19 | def send(l): | ||
20 | log(l, ">") | ||
21 | stdout.write("{}\n".format(l)) | ||
22 | stdout.flush() | ||
23 | |||
24 | def token_and_sid(version, sid, token): | ||
25 | if version < "0.5": | ||
26 | return "{}|{}".format(token, sid) | ||
27 | else: | ||
28 | return "{}|{}".format(sid, token) | ||
29 | |||
30 | log("started", "l") | ||
31 | while True: | ||
32 | line = stdin.readline().strip() | ||
33 | log(line, "<") | ||
34 | if not line: | ||
35 | log("finished", "l") | ||
36 | break | ||
37 | splitted = line.split("|") | ||
38 | if line == "config|ready": | ||
39 | log("in config ready", "l") | ||
40 | send("register|filter|smtp-in|mail-from") | ||
41 | send("register|filter|smtp-in|data-line") | ||
42 | send("register|ready") | ||
43 | if splitted[0] != "filter": | ||
44 | continue | ||
45 | if len(splitted) < 7: | ||
46 | send("invalid filter command: expected >6 fields!") | ||
47 | sys.exit(1) | ||
48 | version = splitted[1] | ||
49 | action = splitted[4] | ||
50 | sid = splitted[5] | ||
51 | token = splitted[6] | ||
52 | token_sid = token_and_sid(version, sid, token) | ||
53 | rest = "|".join(splitted[7:]) | ||
54 | if action == "mail-from": | ||
55 | inheader[sid] = True | ||
56 | send("filter-result|{}|rewrite|<{}>".format(token_sid, mailaddr)) | ||
57 | continue | ||
58 | if action == "data-line": | ||
59 | if rest == "" and inheader.get(sid, False): | ||
60 | inheader[sid] = False | ||
61 | if rest == "." and not inheader.get(sid): | ||
62 | del(inheader[sid]) | ||
63 | if inheader.get(sid, False) and rest.upper().startswith("FROM:"): | ||
64 | send("filter-dataline|{}|From: {}".format(token_sid, mailaddr)) | ||
65 | else: | ||
66 | send("filter-dataline|{}|{}".format(token_sid, rest)) | ||
67 | continue | ||
68 | send("filter-result|{}|proceed".format(token_sid)) | ||
diff --git a/modules/private/mail/milters.nix b/modules/private/mail/milters.nix deleted file mode 100644 index 4b93a7a..0000000 --- a/modules/private/mail/milters.nix +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | { lib, pkgs, config, name, ... }: | ||
2 | { | ||
3 | imports = | ||
4 | builtins.attrValues (import ../../../lib/flake-compat.nix ../../../flakes/private/openarc).nixosModules | ||
5 | ++ builtins.attrValues (import ../../../lib/flake-compat.nix ../../../flakes/private/opendmarc).nixosModules; | ||
6 | |||
7 | options.myServices.mail.milters.sockets = lib.mkOption { | ||
8 | type = lib.types.attrsOf lib.types.path; | ||
9 | default = { | ||
10 | opendkim = "/run/opendkim/opendkim.sock"; | ||
11 | opendmarc = config.services.opendmarc.socket; | ||
12 | openarc = config.services.openarc.socket; | ||
13 | }; | ||
14 | readOnly = true; | ||
15 | description = '' | ||
16 | milters sockets | ||
17 | ''; | ||
18 | }; | ||
19 | config = lib.mkIf (config.myServices.mail.enable || config.myServices.mailBackup.enable) { | ||
20 | secrets.keys = { | ||
21 | "opendkim" = { | ||
22 | isDir = true; | ||
23 | user = config.services.opendkim.user; | ||
24 | group = config.services.opendkim.group; | ||
25 | permissions = "0550"; | ||
26 | }; | ||
27 | "opendkim/eldiron.private" = { | ||
28 | user = config.services.opendkim.user; | ||
29 | group = config.services.opendkim.group; | ||
30 | permissions = "0400"; | ||
31 | text = config.myEnv.mail.dkim.eldiron.private; | ||
32 | }; | ||
33 | "opendkim/eldiron.txt" = { | ||
34 | user = config.services.opendkim.user; | ||
35 | group = config.services.opendkim.group; | ||
36 | permissions = "0444"; | ||
37 | text = '' | ||
38 | eldiron._domainkey IN TXT ${config.myEnv.mail.dkim.eldiron.public}''; | ||
39 | }; | ||
40 | }; | ||
41 | users.users."${config.services.opendkim.user}".extraGroups = [ "keys" ]; | ||
42 | services.opendkim = { | ||
43 | enable = true; | ||
44 | socket = "local:${config.myServices.mail.milters.sockets.opendkim}"; | ||
45 | domains = builtins.concatStringsSep "," (lib.flatten (map | ||
46 | (zone: map | ||
47 | (e: "${e.domain}${lib.optionalString (e.domain != "") "."}${zone.name}") | ||
48 | (zone.withEmail or []) | ||
49 | ) | ||
50 | config.myEnv.dns.masterZones | ||
51 | )); | ||
52 | keyPath = config.secrets.fullPaths."opendkim"; | ||
53 | selector = "eldiron"; | ||
54 | configFile = pkgs.writeText "opendkim.conf" '' | ||
55 | SubDomains yes | ||
56 | UMask 002 | ||
57 | AlwaysAddARHeader yes | ||
58 | ''; | ||
59 | group = config.services.postfix.group; | ||
60 | }; | ||
61 | systemd.services.opendkim.serviceConfig.Slice = "mail.slice"; | ||
62 | systemd.services.opendkim.preStart = lib.mkBefore '' | ||
63 | # Skip the prestart script as keys are handled in secrets | ||
64 | exit 0 | ||
65 | ''; | ||
66 | services.filesWatcher.opendkim = { | ||
67 | restart = true; | ||
68 | paths = [ | ||
69 | config.secrets.fullPaths."opendkim/eldiron.private" | ||
70 | ]; | ||
71 | }; | ||
72 | |||
73 | systemd.services.milter_verify_from = { | ||
74 | description = "Verify from milter"; | ||
75 | after = [ "network.target" ]; | ||
76 | wantedBy = [ "multi-user.target" ]; | ||
77 | |||
78 | serviceConfig = { | ||
79 | Slice = "mail.slice"; | ||
80 | User = "postfix"; | ||
81 | Group = "postfix"; | ||
82 | ExecStart = let python = pkgs.python3.withPackages (p: [ p.pymilter ]); | ||
83 | in "${python}/bin/python ${./verify_from.py} -s /run/milter_verify_from/verify_from.sock"; | ||
84 | RuntimeDirectory = "milter_verify_from"; | ||
85 | }; | ||
86 | }; | ||
87 | }; | ||
88 | } | ||
diff --git a/modules/private/mail/opensmtpd.nix b/modules/private/mail/opensmtpd.nix deleted file mode 100644 index e05bba9..0000000 --- a/modules/private/mail/opensmtpd.nix +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | { lib, pkgs, config, name, ... }: | ||
2 | { | ||
3 | config = lib.mkIf config.myServices.mailRelay.enable { | ||
4 | secrets.keys."opensmtpd/creds" = { | ||
5 | user = "smtpd"; | ||
6 | group = "smtpd"; | ||
7 | permissions = "0400"; | ||
8 | text = '' | ||
9 | eldiron ${name}:${config.hostEnv.ldap.password} | ||
10 | ''; | ||
11 | }; | ||
12 | users.users.smtpd.extraGroups = [ "keys" ]; | ||
13 | services.opensmtpd = { | ||
14 | enable = true; | ||
15 | serverConfiguration = let | ||
16 | filter-rewrite-from = pkgs.runCommand "filter-rewrite-from.py" { | ||
17 | buildInputs = [ pkgs.python3 ]; | ||
18 | } '' | ||
19 | cp ${./filter-rewrite-from.py} $out | ||
20 | patchShebangs $out | ||
21 | ''; | ||
22 | in '' | ||
23 | table creds \ | ||
24 | "${config.secrets.fullPaths."opensmtpd/creds"}" | ||
25 | # FIXME: filtering requires 6.6, uncomment following lines when | ||
26 | # upgrading | ||
27 | # filter "fixfrom" \ | ||
28 | # proc-exec "${filter-rewrite-from} ${name}@immae.eu" | ||
29 | # listen on socket filter "fixfrom" | ||
30 | action "relay-rewrite-from" relay \ | ||
31 | helo ${config.hostEnv.fqdn} \ | ||
32 | host smtp+tls://eldiron@eldiron.immae.eu:587 \ | ||
33 | auth <creds> \ | ||
34 | mail-from ${name}@immae.eu | ||
35 | action "relay" relay \ | ||
36 | helo ${config.hostEnv.fqdn} \ | ||
37 | host smtp+tls://eldiron@eldiron.immae.eu:587 \ | ||
38 | auth <creds> | ||
39 | match for any !mail-from "@immae.eu" action "relay-rewrite-from" | ||
40 | match for any mail-from "@immae.eu" action "relay" | ||
41 | ''; | ||
42 | }; | ||
43 | environment.systemPackages = [ config.services.opensmtpd.package ]; | ||
44 | services.mail.sendmailSetuidWrapper = { | ||
45 | program = "sendmail"; | ||
46 | source = "${config.services.opensmtpd.package}/bin/smtpctl"; | ||
47 | setuid = false; | ||
48 | setgid = false; | ||
49 | }; | ||
50 | security.wrappers.mailq = { | ||
51 | program = "mailq"; | ||
52 | source = "${config.services.opensmtpd.package}/bin/smtpctl"; | ||
53 | setuid = false; | ||
54 | setgid = false; | ||
55 | }; | ||
56 | }; | ||
57 | } | ||
diff --git a/modules/private/mail/postfix.nix b/modules/private/mail/postfix.nix deleted file mode 100644 index ae98a8a..0000000 --- a/modules/private/mail/postfix.nix +++ /dev/null | |||
@@ -1,471 +0,0 @@ | |||
1 | { lib, pkgs, config, nodes, ... }: | ||
2 | { | ||
3 | config = lib.mkIf config.myServices.mail.enable { | ||
4 | secrets.keys = { | ||
5 | "postfix/mysql_alias_maps" = { | ||
6 | user = config.services.postfix.user; | ||
7 | group = config.services.postfix.group; | ||
8 | permissions = "0440"; | ||
9 | text = '' | ||
10 | # We need to specify that option to trigger ssl connection | ||
11 | tls_ciphers = TLSv1.2 | ||
12 | user = ${config.myEnv.mail.postfix.mysql.user} | ||
13 | password = ${config.myEnv.mail.postfix.mysql.password} | ||
14 | hosts = unix:${config.myEnv.mail.postfix.mysql.socket} | ||
15 | dbname = ${config.myEnv.mail.postfix.mysql.database} | ||
16 | query = SELECT DISTINCT destination | ||
17 | FROM forwardings | ||
18 | WHERE | ||
19 | ((regex = 1 AND '%s' REGEXP CONCAT('^',source,'$') ) OR (regex = 0 AND source = '%s')) | ||
20 | AND active = 1 | ||
21 | AND '%s' NOT IN | ||
22 | ( | ||
23 | SELECT source | ||
24 | FROM forwardings_blacklisted | ||
25 | WHERE source = '%s' | ||
26 | ) UNION | ||
27 | SELECT 'devnull@immae.eu' | ||
28 | FROM forwardings_blacklisted | ||
29 | WHERE source = '%s' | ||
30 | ''; | ||
31 | }; | ||
32 | "postfix/ldap_mailboxes" = { | ||
33 | user = config.services.postfix.user; | ||
34 | group = config.services.postfix.group; | ||
35 | permissions = "0440"; | ||
36 | text = '' | ||
37 | server_host = ldaps://${config.myEnv.mail.dovecot.ldap.host}:636 | ||
38 | search_base = ${config.myEnv.mail.dovecot.ldap.base} | ||
39 | query_filter = ${config.myEnv.mail.dovecot.ldap.postfix_mailbox_filter} | ||
40 | bind_dn = ${config.myEnv.mail.dovecot.ldap.dn} | ||
41 | bind_pw = ${config.myEnv.mail.dovecot.ldap.password} | ||
42 | result_attribute = immaePostfixAddress | ||
43 | result_format = dummy | ||
44 | version = 3 | ||
45 | ''; | ||
46 | }; | ||
47 | "postfix/mysql_sender_login_maps" = { | ||
48 | user = config.services.postfix.user; | ||
49 | group = config.services.postfix.group; | ||
50 | permissions = "0440"; | ||
51 | text = '' | ||
52 | # We need to specify that option to trigger ssl connection | ||
53 | tls_ciphers = TLSv1.2 | ||
54 | user = ${config.myEnv.mail.postfix.mysql.user} | ||
55 | password = ${config.myEnv.mail.postfix.mysql.password} | ||
56 | hosts = unix:${config.myEnv.mail.postfix.mysql.socket} | ||
57 | dbname = ${config.myEnv.mail.postfix.mysql.database} | ||
58 | query = SELECT DISTINCT destination | ||
59 | FROM forwardings | ||
60 | WHERE | ||
61 | ( | ||
62 | (regex = 1 AND CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d') REGEXP CONCAT('^',source,'$') ) | ||
63 | OR | ||
64 | (regex = 0 AND source = CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d')) | ||
65 | ) | ||
66 | AND active = 1 | ||
67 | UNION SELECT CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d') AS destination | ||
68 | ''; | ||
69 | }; | ||
70 | "postfix/mysql_sender_relays_maps" = { | ||
71 | user = config.services.postfix.user; | ||
72 | group = config.services.postfix.group; | ||
73 | permissions = "0440"; | ||
74 | text = '' | ||
75 | # We need to specify that option to trigger ssl connection | ||
76 | tls_ciphers = TLSv1.2 | ||
77 | user = ${config.myEnv.mail.postfix.mysql.user} | ||
78 | password = ${config.myEnv.mail.postfix.mysql.password} | ||
79 | hosts = unix:${config.myEnv.mail.postfix.mysql.socket} | ||
80 | dbname = ${config.myEnv.mail.postfix.mysql.database} | ||
81 | # INSERT INTO sender_relays | ||
82 | # (`from`, owner, relay, login, password, regex, active) | ||
83 | # VALUES | ||
84 | # ( 'sender@otherhost.org' | ||
85 | # , 'me@mail.immae.eu' | ||
86 | # , '[otherhost.org]:587' | ||
87 | # , 'otherhostlogin' | ||
88 | # , AES_ENCRYPT('otherhostpassword', '${config.myEnv.mail.postfix.mysql.password_encrypt}') | ||
89 | # , '0' | ||
90 | # , '1'); | ||
91 | |||
92 | query = SELECT DISTINCT `owner` | ||
93 | FROM sender_relays | ||
94 | WHERE | ||
95 | ((regex = 1 AND '%s' REGEXP CONCAT('^',`from`,'$') ) OR (regex = 0 AND `from` = '%s')) | ||
96 | AND active = 1 | ||
97 | ''; | ||
98 | }; | ||
99 | "postfix/mysql_sender_relays_hosts" = { | ||
100 | user = config.services.postfix.user; | ||
101 | group = config.services.postfix.group; | ||
102 | permissions = "0440"; | ||
103 | text = '' | ||
104 | # We need to specify that option to trigger ssl connection | ||
105 | tls_ciphers = TLSv1.2 | ||
106 | user = ${config.myEnv.mail.postfix.mysql.user} | ||
107 | password = ${config.myEnv.mail.postfix.mysql.password} | ||
108 | hosts = unix:${config.myEnv.mail.postfix.mysql.socket} | ||
109 | dbname = ${config.myEnv.mail.postfix.mysql.database} | ||
110 | |||
111 | query = SELECT DISTINCT relay | ||
112 | FROM sender_relays | ||
113 | WHERE | ||
114 | ((regex = 1 AND '%s' REGEXP CONCAT('^',`from`,'$') ) OR (regex = 0 AND `from` = '%s')) | ||
115 | AND active = 1 | ||
116 | ''; | ||
117 | }; | ||
118 | "postfix/mysql_sender_relays_creds" = { | ||
119 | user = config.services.postfix.user; | ||
120 | group = config.services.postfix.group; | ||
121 | permissions = "0440"; | ||
122 | text = '' | ||
123 | # We need to specify that option to trigger ssl connection | ||
124 | tls_ciphers = TLSv1.2 | ||
125 | user = ${config.myEnv.mail.postfix.mysql.user} | ||
126 | password = ${config.myEnv.mail.postfix.mysql.password} | ||
127 | hosts = unix:${config.myEnv.mail.postfix.mysql.socket} | ||
128 | dbname = ${config.myEnv.mail.postfix.mysql.database} | ||
129 | |||
130 | query = SELECT DISTINCT CONCAT(`login`, ':', AES_DECRYPT(`password`, '${config.myEnv.mail.postfix.mysql.password_encrypt}')) | ||
131 | FROM sender_relays | ||
132 | WHERE | ||
133 | ((regex = 1 AND '%s' REGEXP CONCAT('^',`from`,'$') ) OR (regex = 0 AND `from` = '%s')) | ||
134 | AND active = 1 | ||
135 | ''; | ||
136 | }; | ||
137 | "postfix/ldap_ejabberd_users_immae_fr" = { | ||
138 | user = config.services.postfix.user; | ||
139 | group = config.services.postfix.group; | ||
140 | permissions = "0440"; | ||
141 | text = '' | ||
142 | server_host = ldaps://${config.myEnv.jabber.ldap.host}:636 | ||
143 | search_base = ${config.myEnv.jabber.ldap.base} | ||
144 | query_filter = ${config.myEnv.jabber.postfix_user_filter} | ||
145 | domain = immae.fr | ||
146 | bind_dn = ${config.myEnv.jabber.ldap.dn} | ||
147 | bind_pw = ${config.myEnv.jabber.ldap.password} | ||
148 | result_attribute = immaeXmppUid | ||
149 | result_format = ejabberd@localhost | ||
150 | version = 3 | ||
151 | ''; | ||
152 | }; | ||
153 | } // lib.mapAttrs' (name: v: lib.nameValuePair "postfix/scripts/${name}-env" { | ||
154 | user = "postfixscripts"; | ||
155 | group = "root"; | ||
156 | permissions = "0400"; | ||
157 | text = builtins.toJSON v.env; | ||
158 | }) config.myEnv.mail.scripts; | ||
159 | |||
160 | networking.firewall.allowedTCPPorts = [ 25 465 587 ]; | ||
161 | |||
162 | users.users.postfixscripts = { | ||
163 | group = "keys"; | ||
164 | uid = config.ids.uids.postfixscripts; | ||
165 | description = "Postfix scripts user"; | ||
166 | }; | ||
167 | users.users."${config.services.postfix.user}".extraGroups = [ "keys" ]; | ||
168 | services.filesWatcher.postfix = { | ||
169 | restart = true; | ||
170 | paths = [ | ||
171 | config.secrets.fullPaths."postfix/mysql_alias_maps" | ||
172 | config.secrets.fullPaths."postfix/ldap_mailboxes" | ||
173 | config.secrets.fullPaths."postfix/mysql_sender_login_maps" | ||
174 | config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr" | ||
175 | ]; | ||
176 | }; | ||
177 | services.postfix = { | ||
178 | extraAliases = let | ||
179 | toScript = name: script: pkgs.writeScript name '' | ||
180 | #! ${pkgs.stdenv.shell} | ||
181 | mail=$(${pkgs.coreutils}/bin/cat -) | ||
182 | output=$(echo "$mail" | ${script} 2>&1) | ||
183 | ret=$? | ||
184 | |||
185 | if [ "$ret" != "0" ]; then | ||
186 | echo "$mail" \ | ||
187 | | ${pkgs.procmail}/bin/formail -i "X-Return-Code: $ret" \ | ||
188 | | /run/wrappers/bin/sendmail -i scripts_error+${name}@mail.immae.eu | ||
189 | |||
190 | messageId=$(echo "$mail" | ${pkgs.procmail}/bin/formail -x "Message-Id:") | ||
191 | repeat=$(echo "$mail" | ${pkgs.procmail}/bin/formail -X "From:" -X "Received:") | ||
192 | |||
193 | ${pkgs.coreutils}/bin/cat <<EOF | /run/wrappers/bin/sendmail -i scripts_error+${name}@mail.immae.eu | ||
194 | $repeat | ||
195 | To: scripts_error+${name}@mail.immae.eu | ||
196 | Subject: Log from script error | ||
197 | Content-Type: text/plain; charset="UTF-8" | ||
198 | Content-Transfer-Encoding: 8bit | ||
199 | References:$messageId | ||
200 | MIME-Version: 1.0 | ||
201 | X-Return-Code: $ret | ||
202 | |||
203 | Error code: $ret | ||
204 | Output of message: | ||
205 | -------------- | ||
206 | $output | ||
207 | -------------- | ||
208 | EOF | ||
209 | fi | ||
210 | ''; | ||
211 | scripts = lib.attrsets.mapAttrs (n: v: | ||
212 | toScript n (pkgs.callPackage (builtins.fetchGit { url = v.src.url; ref = "master"; rev = v.src.rev; }) { scriptEnv = config.secrets.fullPaths."postfix/scripts/${n}-env"; }) | ||
213 | ) config.myEnv.mail.scripts // { | ||
214 | testmail = pkgs.writeScript "testmail" '' | ||
215 | #! ${pkgs.stdenv.shell} | ||
216 | ${pkgs.coreutils}/bin/touch \ | ||
217 | "/var/lib/naemon/checks/email/$(${pkgs.procmail}/bin/formail -x To: | ${pkgs.coreutils}/bin/tr -d ' <>')" | ||
218 | ''; | ||
219 | }; | ||
220 | in builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: v: ''${n}: "|${v}"'') scripts); | ||
221 | mapFiles = let | ||
222 | recipient_maps = let | ||
223 | name = n: i: "relay_${n}_${toString i}"; | ||
224 | pair = n: i: m: lib.attrsets.nameValuePair (name n i) ( | ||
225 | if m.type == "hash" | ||
226 | then pkgs.writeText (name n i) m.content | ||
227 | else null | ||
228 | ); | ||
229 | pairs = n: v: lib.imap1 (i: m: pair n i m) v.recipient_maps; | ||
230 | in lib.attrsets.filterAttrs (k: v: v != null) ( | ||
231 | lib.attrsets.listToAttrs (lib.flatten ( | ||
232 | lib.attrsets.mapAttrsToList pairs config.myEnv.mail.postfix.backup_domains | ||
233 | )) | ||
234 | ); | ||
235 | relay_restrictions = lib.attrsets.filterAttrs (k: v: v != null) ( | ||
236 | lib.attrsets.mapAttrs' (n: v: | ||
237 | lib.attrsets.nameValuePair "recipient_access_${n}" ( | ||
238 | if lib.attrsets.hasAttr "relay_restrictions" v | ||
239 | then pkgs.writeText "recipient_access_${n}" v.relay_restrictions | ||
240 | else null | ||
241 | ) | ||
242 | ) config.myEnv.mail.postfix.backup_domains | ||
243 | ); | ||
244 | virtual_map = { | ||
245 | virtual = let | ||
246 | cfg = config.myEnv.monitoring.email_check.eldiron; | ||
247 | address = "${cfg.mail_address}@${cfg.mail_domain}"; | ||
248 | in pkgs.writeText "postfix-virtual" ( | ||
249 | builtins.concatStringsSep "\n" ( | ||
250 | ["${address} testmail@localhost"] ++ | ||
251 | lib.attrsets.mapAttrsToList ( | ||
252 | n: v: lib.optionalString v.external '' | ||
253 | script_${n}@mail.immae.eu ${n}@localhost, scripts@mail.immae.eu | ||
254 | '' | ||
255 | ) config.myEnv.mail.scripts | ||
256 | ) | ||
257 | ); | ||
258 | }; | ||
259 | sasl_access = { | ||
260 | host_sender_login = with lib.attrsets; let | ||
261 | addresses = zipAttrs (lib.flatten (mapAttrsToList | ||
262 | (n: v: (map (e: { "${e}" = "${n}@immae.eu"; }) v.emails)) config.myEnv.servers)); | ||
263 | joined = builtins.concatStringsSep ","; | ||
264 | in pkgs.writeText "host-sender-login" | ||
265 | (builtins.concatStringsSep "\n" (mapAttrsToList (n: v: "${n} ${joined v}") addresses)); | ||
266 | }; | ||
267 | in | ||
268 | recipient_maps // relay_restrictions // virtual_map // sasl_access; | ||
269 | config = { | ||
270 | ### postfix module overrides | ||
271 | readme_directory = "${pkgs.postfix}/share/postfix/doc"; | ||
272 | smtp_tls_CAfile = lib.mkForce ""; | ||
273 | smtp_tls_cert_file = lib.mkForce ""; | ||
274 | smtp_tls_key_file = lib.mkForce ""; | ||
275 | |||
276 | message_size_limit = "1073741824"; # Don't put 0 here, it's not equivalent to "unlimited" | ||
277 | mailbox_size_limit = "1073741825"; # Workaround, local delivered mails should all go through scripts | ||
278 | alias_database = "\$alias_maps"; | ||
279 | |||
280 | ### Aliases scripts user | ||
281 | default_privs = "postfixscripts"; | ||
282 | |||
283 | ### Virtual mailboxes config | ||
284 | virtual_alias_maps = [ | ||
285 | "hash:/etc/postfix/virtual" | ||
286 | "mysql:${config.secrets.fullPaths."postfix/mysql_alias_maps"}" | ||
287 | "ldap:${config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr"}" | ||
288 | ]; | ||
289 | virtual_mailbox_domains = config.myEnv.mail.postfix.additional_mailbox_domains | ||
290 | ++ lib.remove null (lib.flatten (map | ||
291 | (zone: map | ||
292 | (e: if e.receive | ||
293 | then "${e.domain}${lib.optionalString (e.domain != "") "."}${zone.name}" | ||
294 | else null | ||
295 | ) | ||
296 | (zone.withEmail or []) | ||
297 | ) | ||
298 | config.myEnv.dns.masterZones | ||
299 | )); | ||
300 | virtual_mailbox_maps = [ | ||
301 | "ldap:${config.secrets.fullPaths."postfix/ldap_mailboxes"}" | ||
302 | ]; | ||
303 | dovecot_destination_recipient_limit = "1"; | ||
304 | virtual_transport = "dovecot"; | ||
305 | |||
306 | ### Relay domains | ||
307 | relay_domains = lib.flatten (lib.attrsets.mapAttrsToList (n: v: v.domains or []) config.myEnv.mail.postfix.backup_domains); | ||
308 | relay_recipient_maps = lib.flatten (lib.attrsets.mapAttrsToList (n: v: | ||
309 | lib.imap1 (i: m: "${m.type}:/etc/postfix/relay_${n}_${toString i}") v.recipient_maps | ||
310 | ) config.myEnv.mail.postfix.backup_domains); | ||
311 | smtpd_relay_restrictions = [ | ||
312 | "defer_unauth_destination" | ||
313 | ] ++ lib.flatten (lib.attrsets.mapAttrsToList (n: v: | ||
314 | if lib.attrsets.hasAttr "relay_restrictions" v | ||
315 | then [ "check_recipient_access hash:/etc/postfix/recipient_access_${n}" ] | ||
316 | else [] | ||
317 | ) config.myEnv.mail.postfix.backup_domains); | ||
318 | |||
319 | ### Additional smtpd configuration | ||
320 | smtpd_tls_received_header = "yes"; | ||
321 | smtpd_tls_loglevel = "1"; | ||
322 | |||
323 | ### Email sending configuration | ||
324 | smtp_tls_security_level = "may"; | ||
325 | smtp_tls_loglevel = "1"; | ||
326 | |||
327 | ### Force ip bind for smtp | ||
328 | smtp_bind_address = config.hostEnv.ips.main.ip4; | ||
329 | smtp_bind_address6 = builtins.head config.hostEnv.ips.main.ip6; | ||
330 | |||
331 | # Use some relays when authorized senders are not myself | ||
332 | smtp_sasl_mechanism_filter = "plain,login"; # GSSAPI Not correctly supported by postfix | ||
333 | smtp_sasl_auth_enable = "yes"; | ||
334 | smtp_sasl_password_maps = | ||
335 | "mysql:${config.secrets.fullPaths."postfix/mysql_sender_relays_creds"}"; | ||
336 | smtp_sasl_security_options = "noanonymous"; | ||
337 | smtp_sender_dependent_authentication = "yes"; | ||
338 | sender_dependent_relayhost_maps = | ||
339 | "mysql:${config.secrets.fullPaths."postfix/mysql_sender_relays_hosts"}"; | ||
340 | |||
341 | ### opendkim, opendmarc, openarc milters | ||
342 | non_smtpd_milters = [ | ||
343 | "unix:${config.myServices.mail.milters.sockets.opendkim}" | ||
344 | ]; | ||
345 | smtpd_milters = [ | ||
346 | "unix:${config.myServices.mail.milters.sockets.opendkim}" | ||
347 | "unix:${config.myServices.mail.milters.sockets.openarc}" | ||
348 | "unix:${config.myServices.mail.milters.sockets.opendmarc}" | ||
349 | ]; | ||
350 | |||
351 | smtp_use_tls = true; | ||
352 | smtpd_use_tls = true; | ||
353 | smtpd_tls_chain_files = builtins.concatStringsSep "," [ "/var/lib/acme/mail/full.pem" "/var/lib/acme/mail-rsa/full.pem" ]; | ||
354 | |||
355 | maximal_queue_lifetime = "6w"; | ||
356 | bounce_queue_lifetime = "6w"; | ||
357 | }; | ||
358 | enable = true; | ||
359 | enableSmtp = true; | ||
360 | enableSubmission = true; | ||
361 | submissionOptions = { | ||
362 | # Don’t use "long form", only commas (cf | ||
363 | # http://www.postfix.org/master.5.html long form is not handled | ||
364 | # well by the submission function) | ||
365 | smtpd_tls_security_level = "encrypt"; | ||
366 | smtpd_sasl_auth_enable = "yes"; | ||
367 | smtpd_tls_auth_only = "yes"; | ||
368 | smtpd_sasl_tls_security_options = "noanonymous"; | ||
369 | smtpd_sasl_type = "dovecot"; | ||
370 | smtpd_sasl_path = "private/auth"; | ||
371 | smtpd_reject_unlisted_recipient = "no"; | ||
372 | smtpd_client_restrictions = "permit_sasl_authenticated,reject"; | ||
373 | smtpd_relay_restrictions = "permit_sasl_authenticated,reject"; | ||
374 | # Refuse to send e-mails with a From that is not handled | ||
375 | smtpd_sender_restrictions = | ||
376 | "reject_sender_login_mismatch,reject_unlisted_sender,permit_sasl_authenticated,reject"; | ||
377 | smtpd_sender_login_maps = builtins.concatStringsSep "," [ | ||
378 | "hash:/etc/postfix/host_sender_login" | ||
379 | "mysql:${config.secrets.fullPaths."postfix/mysql_sender_relays_maps"}" | ||
380 | "mysql:${config.secrets.fullPaths."postfix/mysql_sender_login_maps"}" | ||
381 | ]; | ||
382 | smtpd_recipient_restrictions = "permit_sasl_authenticated,reject"; | ||
383 | milter_macro_daemon_name = "ORIGINATING"; | ||
384 | smtpd_milters = builtins.concatStringsSep "," [ | ||
385 | # FIXME: put it back when opensmtpd is upgraded and able to | ||
386 | # rewrite the from header | ||
387 | #"unix:/run/milter_verify_from/verify_from.sock" | ||
388 | "unix:${config.myServices.mail.milters.sockets.opendkim}" | ||
389 | ]; | ||
390 | }; | ||
391 | destination = ["localhost"]; | ||
392 | # This needs to reverse DNS | ||
393 | hostname = config.hostEnv.fqdn; | ||
394 | setSendmail = true; | ||
395 | recipientDelimiter = "+"; | ||
396 | masterConfig = { | ||
397 | submissions = { | ||
398 | type = "inet"; | ||
399 | private = false; | ||
400 | command = "smtpd"; | ||
401 | args = ["-o" "smtpd_tls_wrappermode=yes" ] ++ (let | ||
402 | mkKeyVal = opt: val: [ "-o" (opt + "=" + val) ]; | ||
403 | in lib.concatLists (lib.mapAttrsToList mkKeyVal config.services.postfix.submissionOptions) | ||
404 | ); | ||
405 | }; | ||
406 | dovecot = { | ||
407 | type = "unix"; | ||
408 | privileged = true; | ||
409 | chroot = false; | ||
410 | command = "pipe"; | ||
411 | args = let | ||
412 | # rspamd could be used as a milter, but then it cannot apply | ||
413 | # its checks "per user" (milter is not yet dispatched to | ||
414 | # users), so we wrap dovecot-lda inside rspamc per recipient | ||
415 | # here. | ||
416 | rspamc_dovecot = pkgs.writeScriptBin "rspamc_dovecot" '' | ||
417 | #! ${pkgs.stdenv.shell} | ||
418 | sender="$1" | ||
419 | original_recipient="$2" | ||
420 | user="$3" | ||
421 | |||
422 | ${pkgs.coreutils}/bin/cat - | \ | ||
423 | (${pkgs.rspamd}/bin/rspamc -h ${config.myServices.mail.rspamd.sockets.worker-controller} -c bayes -d "$user" --mime || true) | \ | ||
424 | ${pkgs.dovecot}/libexec/dovecot/dovecot-lda -f "$sender" -a "$original_recipient" -d "$user" | ||
425 | ''; | ||
426 | in [ | ||
427 | "flags=ODRhu" "user=vhost:vhost" | ||
428 | "argv=${rspamc_dovecot}/bin/rspamc_dovecot \${sender} \${original_recipient} \${user}@\${nexthop}" | ||
429 | ]; | ||
430 | }; | ||
431 | }; | ||
432 | }; | ||
433 | security.acme.certs."mail" = { | ||
434 | postRun = '' | ||
435 | systemctl restart postfix.service | ||
436 | ''; | ||
437 | extraDomains = { | ||
438 | "smtp.immae.eu" = null; | ||
439 | }; | ||
440 | }; | ||
441 | security.acme.certs."mail-rsa" = { | ||
442 | postRun = '' | ||
443 | systemctl restart postfix.service | ||
444 | ''; | ||
445 | extraDomains = { | ||
446 | "smtp.immae.eu" = null; | ||
447 | }; | ||
448 | }; | ||
449 | system.activationScripts.testmail = { | ||
450 | deps = [ "users" ]; | ||
451 | text = let | ||
452 | allCfg = config.myEnv.monitoring.email_check; | ||
453 | cfg = allCfg.eldiron; | ||
454 | reverseTargets = builtins.attrNames (lib.attrsets.filterAttrs (k: v: builtins.elem "eldiron" v.targets) allCfg); | ||
455 | to_email = cfg': host': | ||
456 | let sep = if lib.strings.hasInfix "+" cfg'.mail_address then "_" else "+"; | ||
457 | in "${cfg'.mail_address}${sep}${host'}@${cfg'.mail_domain}"; | ||
458 | mails_to_receive = builtins.concatStringsSep " " (map (to_email cfg) reverseTargets); | ||
459 | in '' | ||
460 | install -m 0555 -o postfixscripts -g keys -d /var/lib/naemon/checks/email | ||
461 | for f in ${mails_to_receive}; do | ||
462 | if [ ! -f /var/lib/naemon/checks/email/$f ]; then | ||
463 | install -m 0644 -o postfixscripts -g keys /dev/null -T /var/lib/naemon/checks/email/$f | ||
464 | touch -m -d @0 /var/lib/naemon/checks/email/$f | ||
465 | fi | ||
466 | done | ||
467 | ''; | ||
468 | }; | ||
469 | systemd.services.postfix.serviceConfig.Slice = "mail.slice"; | ||
470 | }; | ||
471 | } | ||
diff --git a/modules/private/mail/relay.nix b/modules/private/mail/relay.nix deleted file mode 100644 index 668d365..0000000 --- a/modules/private/mail/relay.nix +++ /dev/null | |||
@@ -1,235 +0,0 @@ | |||
1 | { lib, pkgs, config, nodes, name, ... }: | ||
2 | { | ||
3 | config = lib.mkIf config.myServices.mailBackup.enable { | ||
4 | security.acme.certs."mail" = config.myServices.certificates.certConfig // { | ||
5 | postRun = '' | ||
6 | systemctl restart postfix.service | ||
7 | ''; | ||
8 | domain = config.hostEnv.fqdn; | ||
9 | extraDomains = let | ||
10 | zonesWithMx = builtins.filter (zone: | ||
11 | lib.attrsets.hasAttr "withEmail" zone && lib.lists.length zone.withEmail > 0 | ||
12 | ) config.myEnv.dns.masterZones; | ||
13 | mxs = map (zone: "${config.myEnv.servers."${name}".mx.subdomain}.${zone.name}") zonesWithMx; | ||
14 | in builtins.listToAttrs (map (mx: lib.attrsets.nameValuePair mx null) mxs); | ||
15 | }; | ||
16 | secrets.keys = { | ||
17 | "postfix/mysql_alias_maps" = { | ||
18 | user = config.services.postfix.user; | ||
19 | group = config.services.postfix.group; | ||
20 | permissions = "0440"; | ||
21 | text = '' | ||
22 | # We need to specify that option to trigger ssl connection | ||
23 | tls_ciphers = TLSv1.2 | ||
24 | user = ${config.myEnv.mail.postfix.mysql.user} | ||
25 | password = ${config.myEnv.mail.postfix.mysql.password} | ||
26 | hosts = ${config.myEnv.mail.postfix.mysql.remoteHost} | ||
27 | dbname = ${config.myEnv.mail.postfix.mysql.database} | ||
28 | query = SELECT DISTINCT 1 | ||
29 | FROM forwardings | ||
30 | WHERE | ||
31 | ((regex = 1 AND '%s' REGEXP CONCAT('^',source,'$') ) OR (regex = 0 AND source = '%s')) | ||
32 | AND active = 1 | ||
33 | AND '%s' NOT IN | ||
34 | ( | ||
35 | SELECT source | ||
36 | FROM forwardings_blacklisted | ||
37 | WHERE source = '%s' | ||
38 | ) UNION | ||
39 | SELECT 'devnull@immae.eu' | ||
40 | FROM forwardings_blacklisted | ||
41 | WHERE source = '%s' | ||
42 | ''; | ||
43 | }; | ||
44 | "postfix/ldap_mailboxes" = { | ||
45 | user = config.services.postfix.user; | ||
46 | group = config.services.postfix.group; | ||
47 | permissions = "0440"; | ||
48 | text = '' | ||
49 | server_host = ldaps://${config.myEnv.mail.dovecot.ldap.host}:636 | ||
50 | search_base = ${config.myEnv.mail.dovecot.ldap.base} | ||
51 | query_filter = ${config.myEnv.mail.dovecot.ldap.postfix_mailbox_filter} | ||
52 | bind_dn = ${config.myEnv.mail.dovecot.ldap.dn} | ||
53 | bind_pw = ${config.myEnv.mail.dovecot.ldap.password} | ||
54 | result_attribute = immaePostfixAddress | ||
55 | result_format = dummy | ||
56 | version = 3 | ||
57 | ''; | ||
58 | }; | ||
59 | "postfix/sympa_mailbox_maps" = { | ||
60 | user = config.services.postfix.user; | ||
61 | group = config.services.postfix.group; | ||
62 | permissions = "0440"; | ||
63 | text = '' | ||
64 | hosts = ${config.myEnv.mail.sympa.postgresql.host} | ||
65 | user = ${config.myEnv.mail.sympa.postgresql.user} | ||
66 | password = ${config.myEnv.mail.sympa.postgresql.password} | ||
67 | dbname = ${config.myEnv.mail.sympa.postgresql.database} | ||
68 | query = SELECT DISTINCT 1 FROM list_table WHERE '%s' IN ( | ||
69 | CONCAT(name_list, '@', robot_list), | ||
70 | CONCAT(name_list, '-request@', robot_list), | ||
71 | CONCAT(name_list, '-editor@', robot_list), | ||
72 | CONCAT(name_list, '-unsubscribe@', robot_list), | ||
73 | CONCAT(name_list, '-owner@', robot_list), | ||
74 | CONCAT('sympa-request@', robot_list), | ||
75 | CONCAT('sympa-owner@', robot_list), | ||
76 | CONCAT('sympa@', robot_list), | ||
77 | CONCAT('listmaster@', robot_list), | ||
78 | CONCAT('bounce@', robot_list), | ||
79 | CONCAT('abuse-feedback-report@', robot_list) | ||
80 | ) | ||
81 | ''; | ||
82 | }; | ||
83 | "postfix/ldap_ejabberd_users_immae_fr" = { | ||
84 | user = config.services.postfix.user; | ||
85 | group = config.services.postfix.group; | ||
86 | permissions = "0440"; | ||
87 | text = '' | ||
88 | server_host = ldaps://${config.myEnv.jabber.ldap.host}:636 | ||
89 | search_base = ${config.myEnv.jabber.ldap.base} | ||
90 | query_filter = ${config.myEnv.jabber.postfix_user_filter} | ||
91 | domain = immae.fr | ||
92 | bind_dn = ${config.myEnv.jabber.ldap.dn} | ||
93 | bind_pw = ${config.myEnv.jabber.ldap.password} | ||
94 | result_attribute = immaeXmppUid | ||
95 | result_format = ejabberd@localhost | ||
96 | version = 3 | ||
97 | ''; | ||
98 | }; | ||
99 | }; | ||
100 | |||
101 | networking.firewall.allowedTCPPorts = [ 25 ]; | ||
102 | |||
103 | users.users."${config.services.postfix.user}".extraGroups = [ "keys" ]; | ||
104 | services.filesWatcher.postfix = { | ||
105 | restart = true; | ||
106 | paths = [ | ||
107 | config.secrets.fullPaths."postfix/mysql_alias_maps" | ||
108 | config.secrets.fullPaths."postfix/sympa_mailbox_maps" | ||
109 | config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr" | ||
110 | config.secrets.fullPaths."postfix/ldap_mailboxes" | ||
111 | ]; | ||
112 | }; | ||
113 | services.postfix = { | ||
114 | mapFiles = let | ||
115 | recipient_maps = let | ||
116 | name = n: i: "relay_${n}_${toString i}"; | ||
117 | pair = n: i: m: lib.attrsets.nameValuePair (name n i) ( | ||
118 | if m.type == "hash" | ||
119 | then pkgs.writeText (name n i) m.content | ||
120 | else null | ||
121 | ); | ||
122 | pairs = n: v: lib.imap1 (i: m: pair n i m) v.recipient_maps; | ||
123 | in lib.attrsets.filterAttrs (k: v: v != null) ( | ||
124 | lib.attrsets.listToAttrs (lib.flatten ( | ||
125 | lib.attrsets.mapAttrsToList pairs config.myEnv.mail.postfix.backup_domains | ||
126 | )) | ||
127 | ); | ||
128 | relay_restrictions = lib.attrsets.filterAttrs (k: v: v != null) ( | ||
129 | lib.attrsets.mapAttrs' (n: v: | ||
130 | lib.attrsets.nameValuePair "recipient_access_${n}" ( | ||
131 | if lib.attrsets.hasAttr "relay_restrictions" v | ||
132 | then pkgs.writeText "recipient_access_${n}" v.relay_restrictions | ||
133 | else null | ||
134 | ) | ||
135 | ) config.myEnv.mail.postfix.backup_domains | ||
136 | ); | ||
137 | virtual_map = { | ||
138 | virtual = let | ||
139 | cfg = config.myEnv.monitoring.email_check.eldiron; | ||
140 | address = "${cfg.mail_address}@${cfg.mail_domain}"; | ||
141 | in pkgs.writeText "postfix-virtual" ( | ||
142 | builtins.concatStringsSep "\n" ( | ||
143 | ["${address} 1"] ++ | ||
144 | lib.attrsets.mapAttrsToList ( | ||
145 | n: v: lib.optionalString v.external '' | ||
146 | script_${n}@mail.immae.eu 1 | ||
147 | '' | ||
148 | ) config.myEnv.mail.scripts | ||
149 | ) | ||
150 | ); | ||
151 | }; | ||
152 | in | ||
153 | recipient_maps // relay_restrictions // virtual_map; | ||
154 | config = { | ||
155 | ### postfix module overrides | ||
156 | readme_directory = "${pkgs.postfix}/share/postfix/doc"; | ||
157 | smtp_tls_CAfile = lib.mkForce ""; | ||
158 | smtp_tls_cert_file = lib.mkForce ""; | ||
159 | smtp_tls_key_file = lib.mkForce ""; | ||
160 | |||
161 | message_size_limit = "1073741824"; # Don't put 0 here, it's not equivalent to "unlimited" | ||
162 | mailbox_size_limit = "1073741825"; # Workaround, local delivered mails should all go through scripts | ||
163 | alias_database = "\$alias_maps"; | ||
164 | |||
165 | ### Relay domains | ||
166 | relay_domains = let | ||
167 | backups = lib.flatten (lib.attrsets.mapAttrsToList (n: v: v.domains or []) config.myEnv.mail.postfix.backup_domains); | ||
168 | virtual_domains = config.myEnv.mail.postfix.additional_mailbox_domains | ||
169 | ++ lib.remove null (lib.flatten (map | ||
170 | (zone: map | ||
171 | (e: if e.receive | ||
172 | then "${e.domain}${lib.optionalString (e.domain != "") "."}${zone.name}" | ||
173 | else null | ||
174 | ) | ||
175 | (zone.withEmail or []) | ||
176 | ) | ||
177 | config.myEnv.dns.masterZones | ||
178 | )); | ||
179 | in | ||
180 | backups ++ virtual_domains; | ||
181 | relay_recipient_maps = let | ||
182 | backup_recipients = lib.flatten (lib.attrsets.mapAttrsToList (n: v: | ||
183 | lib.imap1 (i: m: "${m.type}:/etc/postfix/relay_${n}_${toString i}") v.recipient_maps | ||
184 | ) config.myEnv.mail.postfix.backup_domains); | ||
185 | virtual_alias_maps = [ | ||
186 | "hash:/etc/postfix/virtual" | ||
187 | "mysql:${config.secrets.fullPaths."postfix/mysql_alias_maps"}" | ||
188 | "ldap:${config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr"}" | ||
189 | ]; | ||
190 | virtual_mailbox_maps = [ | ||
191 | "ldap:${config.secrets.fullPaths."postfix/ldap_mailboxes"}" | ||
192 | "pgsql:${config.secrets.fullPaths."postfix/sympa_mailbox_maps"}" | ||
193 | ]; | ||
194 | in | ||
195 | backup_recipients ++ virtual_alias_maps ++ virtual_mailbox_maps; | ||
196 | smtpd_relay_restrictions = [ | ||
197 | "defer_unauth_destination" | ||
198 | ] ++ lib.flatten (lib.attrsets.mapAttrsToList (n: v: | ||
199 | if lib.attrsets.hasAttr "relay_restrictions" v | ||
200 | then [ "check_recipient_access hash:/etc/postfix/recipient_access_${n}" ] | ||
201 | else [] | ||
202 | ) config.myEnv.mail.postfix.backup_domains); | ||
203 | |||
204 | ### Additional smtpd configuration | ||
205 | smtpd_tls_received_header = "yes"; | ||
206 | smtpd_tls_loglevel = "1"; | ||
207 | |||
208 | ### Email sending configuration | ||
209 | smtp_tls_security_level = "may"; | ||
210 | smtp_tls_loglevel = "1"; | ||
211 | |||
212 | ### Force ip bind for smtp | ||
213 | smtp_bind_address = config.myEnv.servers."${name}".ips.main.ip4; | ||
214 | smtp_bind_address6 = builtins.head config.myEnv.servers."${name}".ips.main.ip6; | ||
215 | |||
216 | smtpd_milters = [ | ||
217 | "unix:${config.myServices.mail.milters.sockets.opendkim}" | ||
218 | "unix:${config.myServices.mail.milters.sockets.openarc}" | ||
219 | "unix:${config.myServices.mail.milters.sockets.opendmarc}" | ||
220 | ]; | ||
221 | }; | ||
222 | enable = true; | ||
223 | enableSmtp = true; | ||
224 | enableSubmission = false; | ||
225 | destination = ["localhost"]; | ||
226 | # This needs to reverse DNS | ||
227 | hostname = config.hostEnv.fqdn; | ||
228 | setSendmail = false; | ||
229 | sslCert = "/var/lib/acme/mail/fullchain.pem"; | ||
230 | sslKey = "/var/lib/acme/mail/key.pem"; | ||
231 | recipientDelimiter = "+"; | ||
232 | }; | ||
233 | }; | ||
234 | } | ||
235 | |||
diff --git a/modules/private/mail/rspamd.nix b/modules/private/mail/rspamd.nix deleted file mode 100644 index 05f1300..0000000 --- a/modules/private/mail/rspamd.nix +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | { | ||
3 | options.myServices.mail.rspamd.sockets = lib.mkOption { | ||
4 | type = lib.types.attrsOf lib.types.path; | ||
5 | default = { | ||
6 | worker-controller = "/run/rspamd/worker-controller.sock"; | ||
7 | }; | ||
8 | readOnly = true; | ||
9 | description = '' | ||
10 | rspamd sockets | ||
11 | ''; | ||
12 | }; | ||
13 | config = lib.mkIf config.myServices.mail.enable { | ||
14 | services.cron.systemCronJobs = let | ||
15 | cron_script = pkgs.runCommand "cron_script" { | ||
16 | buildInputs = [ pkgs.makeWrapper ]; | ||
17 | } '' | ||
18 | mkdir -p $out | ||
19 | cp ${./scan_reported_mails} $out/scan_reported_mails | ||
20 | patchShebangs $out | ||
21 | for i in $out/*; do | ||
22 | wrapProgram "$i" --prefix PATH : ${lib.makeBinPath [ pkgs.coreutils pkgs.rspamd pkgs.flock ]} | ||
23 | done | ||
24 | ''; | ||
25 | in | ||
26 | [ "*/20 * * * * vhost ${cron_script}/scan_reported_mails" ]; | ||
27 | |||
28 | systemd.services.rspamd.serviceConfig.Slice = "mail.slice"; | ||
29 | services.rspamd = { | ||
30 | enable = true; | ||
31 | debug = false; | ||
32 | overrides = { | ||
33 | "actions.conf".text = '' | ||
34 | reject = null; | ||
35 | add_header = 6; | ||
36 | greylist = null; | ||
37 | ''; | ||
38 | "milter_headers.conf".text = '' | ||
39 | extended_spam_headers = true; | ||
40 | ''; | ||
41 | }; | ||
42 | locals = { | ||
43 | "redis.conf".text = '' | ||
44 | servers = "${config.myEnv.mail.rspamd.redis.socket}"; | ||
45 | db = "${config.myEnv.mail.rspamd.redis.db}"; | ||
46 | ''; | ||
47 | "classifier-bayes.conf".text = '' | ||
48 | users_enabled = true; | ||
49 | backend = "redis"; | ||
50 | servers = "${config.myEnv.mail.rspamd.redis.socket}"; | ||
51 | database = "${config.myEnv.mail.rspamd.redis.db}"; | ||
52 | autolearn = true; | ||
53 | cache { | ||
54 | backend = "redis"; | ||
55 | } | ||
56 | new_schema = true; | ||
57 | statfile { | ||
58 | BAYES_HAM { | ||
59 | spam = false; | ||
60 | } | ||
61 | BAYES_SPAM { | ||
62 | spam = true; | ||
63 | } | ||
64 | } | ||
65 | ''; | ||
66 | }; | ||
67 | workers = { | ||
68 | controller = { | ||
69 | extraConfig = '' | ||
70 | enable_password = "${config.myEnv.mail.rspamd.write_password_hashed}"; | ||
71 | password = "${config.myEnv.mail.rspamd.read_password_hashed}"; | ||
72 | ''; | ||
73 | bindSockets = [ { | ||
74 | socket = config.myServices.mail.rspamd.sockets.worker-controller; | ||
75 | mode = "0660"; | ||
76 | owner = config.services.rspamd.user; | ||
77 | group = "vhost"; | ||
78 | } ]; | ||
79 | }; | ||
80 | }; | ||
81 | postfix = { | ||
82 | enable = true; | ||
83 | config = {}; | ||
84 | }; | ||
85 | }; | ||
86 | }; | ||
87 | } | ||
diff --git a/modules/private/mail/scan_reported_mails b/modules/private/mail/scan_reported_mails deleted file mode 100755 index fe9f4d6..0000000 --- a/modules/private/mail/scan_reported_mails +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | ( flock -n 9 || exit 1 | ||
4 | shopt -s nullglob | ||
5 | for spool in /var/lib/vhost/.rspamd/*/pending; do | ||
6 | rspamd_folder=$(dirname $spool) | ||
7 | mail_user=$(basename $rspamd_folder) | ||
8 | mv $rspamd_folder/pending $rspamd_folder/processing | ||
9 | |||
10 | for mtype in ham spam; do | ||
11 | if [ -d $rspamd_folder/processing/$mtype ]; then | ||
12 | output="$(rspamc -h /run/rspamd/worker-controller.sock -c bayes -d $mail_user learn_$mtype $rspamd_folder/processing/$mtype/*)" | ||
13 | echo "[$mtype: $mail_user]" ${output} >> /var/lib/vhost/.rspamd/rspamd.log | ||
14 | mkdir -p $rspamd_folder/processed/$mtype | ||
15 | cp $rspamd_folder/processing/$mtype/* $rspamd_folder/processed/$mtype/ | ||
16 | fi | ||
17 | done | ||
18 | |||
19 | rm -rf $rspamd_folder/processing | ||
20 | done | ||
21 | ) 9>/var/lib/vhost/scan_reported_mails.lock | ||
diff --git a/modules/private/mail/sieve_bin/imapsieve_copy b/modules/private/mail/sieve_bin/imapsieve_copy deleted file mode 100755 index 2ca1f23..0000000 --- a/modules/private/mail/sieve_bin/imapsieve_copy +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | # Inspired from https://docs.iredmail.org/dovecot.imapsieve.html | ||
3 | |||
4 | MSG_TYPE="$1" | ||
5 | OUTPUT_DIR="/var/lib/vhost/.rspamd/${USER}/pending/${MSG_TYPE}" | ||
6 | FILE="${OUTPUT_DIR}/$(date +%Y%m%d%H%M%S)-${RANDOM}${RANDOM}.eml" | ||
7 | mkdir -p "${OUTPUT_DIR}" | ||
8 | cat > ${FILE} < /dev/stdin | ||
diff --git a/modules/private/mail/sieve_scripts/backup.sieve b/modules/private/mail/sieve_scripts/backup.sieve deleted file mode 100644 index 3014c0a..0000000 --- a/modules/private/mail/sieve_scripts/backup.sieve +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | # vim: filetype=sieve | ||
2 | require ["copy","mailbox","fileinto","regex"]; | ||
3 | if header :is "X-Spam" "Yes" { | ||
4 | fileinto :create :copy "Backup/Spam"; | ||
5 | } else { | ||
6 | fileinto :create :copy "Backup/Ham"; | ||
7 | } | ||
diff --git a/modules/private/mail/sieve_scripts/report_ham.sieve b/modules/private/mail/sieve_scripts/report_ham.sieve deleted file mode 100644 index f9b8481..0000000 --- a/modules/private/mail/sieve_scripts/report_ham.sieve +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; | ||
2 | |||
3 | if environment :matches "imap.mailbox" "*" { | ||
4 | set "mailbox" "${1}"; | ||
5 | } | ||
6 | |||
7 | if string "${mailbox}" "Trash" { | ||
8 | stop; | ||
9 | } | ||
10 | |||
11 | pipe :copy "imapsieve_copy" [ "ham" ]; | ||
diff --git a/modules/private/mail/sieve_scripts/report_spam.sieve b/modules/private/mail/sieve_scripts/report_spam.sieve deleted file mode 100644 index 9a1f794..0000000 --- a/modules/private/mail/sieve_scripts/report_spam.sieve +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | require ["vnd.dovecot.pipe", "copy", "imapsieve" ]; | ||
2 | |||
3 | pipe :copy "imapsieve_copy" [ "spam" ]; | ||
diff --git a/modules/private/mail/sympa.nix b/modules/private/mail/sympa.nix deleted file mode 100644 index 0626ac0..0000000 --- a/modules/private/mail/sympa.nix +++ /dev/null | |||
@@ -1,213 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | domain = "lists.immae.eu"; | ||
4 | sympaConfig = config.myEnv.mail.sympa; | ||
5 | in | ||
6 | { | ||
7 | config = lib.mkIf config.myServices.mail.enable { | ||
8 | myServices.databases.postgresql.authorizedHosts = { | ||
9 | backup-2 = [ | ||
10 | { | ||
11 | username = "sympa"; | ||
12 | database = "sympa"; | ||
13 | ip4 = [config.myEnv.servers.backup-2.ips.main.ip4]; | ||
14 | ip6 = config.myEnv.servers.backup-2.ips.main.ip6; | ||
15 | } | ||
16 | ]; | ||
17 | }; | ||
18 | services.websites.env.tools.vhostConfs.mail = { | ||
19 | extraConfig = lib.mkAfter [ | ||
20 | '' | ||
21 | Alias /static-sympa/ /var/lib/sympa/static_content/ | ||
22 | <Directory /var/lib/sympa/static_content/> | ||
23 | Require all granted | ||
24 | AllowOverride none | ||
25 | </Directory> | ||
26 | <Location /sympa> | ||
27 | SetHandler "proxy:unix:/run/sympa/wwsympa.socket|fcgi://" | ||
28 | Require all granted | ||
29 | </Location> | ||
30 | '' | ||
31 | ]; | ||
32 | }; | ||
33 | |||
34 | secrets.keys = { | ||
35 | "sympa/db_password" = { | ||
36 | permissions = "0400"; | ||
37 | group = "sympa"; | ||
38 | user = "sympa"; | ||
39 | text = sympaConfig.postgresql.password; | ||
40 | }; | ||
41 | } | ||
42 | // lib.mapAttrs' (n: v: lib.nameValuePair "sympa/data_sources/${n}.incl" { | ||
43 | permissions = "0400"; group = "sympa"; user = "sympa"; text = v; | ||
44 | }) sympaConfig.data_sources | ||
45 | // lib.mapAttrs' (n: v: lib.nameValuePair "sympa/scenari/${n}" { | ||
46 | permissions = "0400"; group = "sympa"; user = "sympa"; text = v; | ||
47 | }) sympaConfig.scenari; | ||
48 | users.users.sympa.extraGroups = [ "keys" ]; | ||
49 | systemd.slices.mail-sympa = { | ||
50 | description = "Sympa slice"; | ||
51 | }; | ||
52 | |||
53 | systemd.services.sympa.serviceConfig.SupplementaryGroups = [ "keys" ]; | ||
54 | systemd.services.sympa-archive.serviceConfig.SupplementaryGroups = [ "keys" ]; | ||
55 | systemd.services.sympa-bounce.serviceConfig.SupplementaryGroups = [ "keys" ]; | ||
56 | systemd.services.sympa-bulk.serviceConfig.SupplementaryGroups = [ "keys" ]; | ||
57 | systemd.services.sympa-task.serviceConfig.SupplementaryGroups = [ "keys" ]; | ||
58 | |||
59 | systemd.services.sympa.serviceConfig.Slice = "mail-sympa.slice"; | ||
60 | systemd.services.sympa-archive.serviceConfig.Slice = "mail-sympa.slice"; | ||
61 | systemd.services.sympa-bounce.serviceConfig.Slice = "mail-sympa.slice"; | ||
62 | systemd.services.sympa-bulk.serviceConfig.Slice = "mail-sympa.slice"; | ||
63 | systemd.services.sympa-task.serviceConfig.Slice = "mail-sympa.slice"; | ||
64 | |||
65 | # https://github.com/NixOS/nixpkgs/pull/84202 | ||
66 | systemd.services.sympa.serviceConfig.ProtectKernelModules = lib.mkForce false; | ||
67 | systemd.services.sympa-archive.serviceConfig.ProtectKernelModules = lib.mkForce false; | ||
68 | systemd.services.sympa-bounce.serviceConfig.ProtectKernelModules = lib.mkForce false; | ||
69 | systemd.services.sympa-bulk.serviceConfig.ProtectKernelModules = lib.mkForce false; | ||
70 | systemd.services.sympa-task.serviceConfig.ProtectKernelModules = lib.mkForce false; | ||
71 | systemd.services.sympa.serviceConfig.ProtectKernelTunables = lib.mkForce false; | ||
72 | systemd.services.sympa-archive.serviceConfig.ProtectKernelTunables = lib.mkForce false; | ||
73 | systemd.services.sympa-bounce.serviceConfig.ProtectKernelTunables = lib.mkForce false; | ||
74 | systemd.services.sympa-bulk.serviceConfig.ProtectKernelTunables = lib.mkForce false; | ||
75 | systemd.services.sympa-task.serviceConfig.ProtectKernelTunables = lib.mkForce false; | ||
76 | |||
77 | systemd.services.wwsympa = { | ||
78 | wantedBy = [ "multi-user.target" ]; | ||
79 | after = [ "sympa.service" ]; | ||
80 | serviceConfig = { | ||
81 | Slice = "mail-sympa.slice"; | ||
82 | Type = "forking"; | ||
83 | PIDFile = "/run/sympa/wwsympa.pid"; | ||
84 | Restart = "always"; | ||
85 | ExecStart = ''${pkgs.spawn_fcgi}/bin/spawn-fcgi \ | ||
86 | -u sympa \ | ||
87 | -g sympa \ | ||
88 | -U wwwrun \ | ||
89 | -M 0600 \ | ||
90 | -F 2 \ | ||
91 | -P /run/sympa/wwsympa.pid \ | ||
92 | -s /run/sympa/wwsympa.socket \ | ||
93 | -- ${pkgs.sympa}/lib/sympa/cgi/wwsympa.fcgi | ||
94 | ''; | ||
95 | StateDirectory = "sympa"; | ||
96 | ProtectHome = true; | ||
97 | ProtectSystem = "full"; | ||
98 | ProtectControlGroups = true; | ||
99 | }; | ||
100 | }; | ||
101 | |||
102 | services.postfix = { | ||
103 | mapFiles = { | ||
104 | # Update relay list when changing one of those | ||
105 | sympa_virtual = pkgs.writeText "virtual.sympa" '' | ||
106 | sympa-request@${domain} postmaster@immae.eu | ||
107 | sympa-owner@${domain} postmaster@immae.eu | ||
108 | |||
109 | sympa-request@cip-ca.fr postmaster@immae.eu | ||
110 | sympa-owner@cip-ca.fr postmaster@immae.eu | ||
111 | ''; | ||
112 | sympa_transport = pkgs.writeText "transport.sympa" '' | ||
113 | ${domain} error:User unknown in recipient table | ||
114 | sympa@${domain} sympa:sympa@${domain} | ||
115 | listmaster@${domain} sympa:listmaster@${domain} | ||
116 | bounce@${domain} sympabounce:sympa@${domain} | ||
117 | abuse-feedback-report@${domain} sympabounce:sympa@${domain} | ||
118 | |||
119 | sympa@cip-ca.fr sympa:sympa@cip-ca.fr | ||
120 | listmaster@cip-ca.fr sympa:listmaster@cip-ca.fr | ||
121 | bounce@cip-ca.fr sympabounce:sympa@cip-ca.fr | ||
122 | abuse-feedback-report@cip-ca.fr sympabounce:sympa@cip-ca.fr | ||
123 | ''; | ||
124 | }; | ||
125 | config = { | ||
126 | transport_maps = lib.mkAfter [ | ||
127 | "hash:/etc/postfix/sympa_transport" | ||
128 | "hash:/var/lib/sympa/sympa_transport" | ||
129 | ]; | ||
130 | virtual_alias_maps = lib.mkAfter [ | ||
131 | "hash:/etc/postfix/sympa_virtual" | ||
132 | ]; | ||
133 | virtual_mailbox_maps = lib.mkAfter [ | ||
134 | "hash:/etc/postfix/sympa_transport" | ||
135 | "hash:/var/lib/sympa/sympa_transport" | ||
136 | "hash:/etc/postfix/sympa_virtual" | ||
137 | ]; | ||
138 | }; | ||
139 | masterConfig = { | ||
140 | sympa = { | ||
141 | type = "unix"; | ||
142 | privileged = true; | ||
143 | chroot = false; | ||
144 | command = "pipe"; | ||
145 | args = [ | ||
146 | "flags=hqRu" | ||
147 | "user=sympa" | ||
148 | "argv=${pkgs.sympa}/libexec/queue" | ||
149 | "\${nexthop}" | ||
150 | ]; | ||
151 | }; | ||
152 | sympabounce = { | ||
153 | type = "unix"; | ||
154 | privileged = true; | ||
155 | chroot = false; | ||
156 | command = "pipe"; | ||
157 | args = [ | ||
158 | "flags=hqRu" | ||
159 | "user=sympa" | ||
160 | "argv=${pkgs.sympa}/libexec/bouncequeue" | ||
161 | "\${nexthop}" | ||
162 | ]; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | services.sympa = { | ||
167 | enable = true; | ||
168 | listMasters = sympaConfig.listmasters; | ||
169 | mainDomain = domain; | ||
170 | domains = { | ||
171 | "${domain}" = { | ||
172 | webHost = "mail.immae.eu"; | ||
173 | webLocation = "/sympa"; | ||
174 | }; | ||
175 | "cip-ca.fr" = { | ||
176 | webHost = "mail.cip-ca.fr"; | ||
177 | webLocation = "/sympa"; | ||
178 | }; | ||
179 | }; | ||
180 | |||
181 | database = { | ||
182 | type = "PostgreSQL"; | ||
183 | user = sympaConfig.postgresql.user; | ||
184 | host = sympaConfig.postgresql.socket; | ||
185 | name = sympaConfig.postgresql.database; | ||
186 | passwordFile = config.secrets.fullPaths."sympa/db_password"; | ||
187 | createLocally = false; | ||
188 | }; | ||
189 | settings = { | ||
190 | sendmail = "/run/wrappers/bin/sendmail"; | ||
191 | log_smtp = "on"; | ||
192 | sendmail_aliases = "/var/lib/sympa/sympa_transport"; | ||
193 | aliases_program = "${pkgs.postfix}/bin/postmap"; | ||
194 | }; | ||
195 | settingsFile = { | ||
196 | "virtual.sympa".enable = false; | ||
197 | "transport.sympa".enable = false; | ||
198 | } // lib.mapAttrs' (n: v: lib.nameValuePair | ||
199 | "etc/${domain}/data_sources/${n}.incl" | ||
200 | { source = config.secrets.fullPaths."sympa/data_sources/${n}.incl"; }) sympaConfig.data_sources | ||
201 | // lib.mapAttrs' (n: v: lib.nameValuePair | ||
202 | "etc/${domain}/scenari/${n}" | ||
203 | { source = config.secrets.fullPaths."sympa/scenari/${n}"; }) sympaConfig.scenari; | ||
204 | web = { | ||
205 | server = "none"; | ||
206 | }; | ||
207 | |||
208 | mta = { | ||
209 | type = "none"; | ||
210 | }; | ||
211 | }; | ||
212 | }; | ||
213 | } | ||
diff --git a/modules/private/mail/verify_from.py b/modules/private/mail/verify_from.py deleted file mode 100755 index b75001e..0000000 --- a/modules/private/mail/verify_from.py +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | #!/usr/bin/env python3 | ||
2 | import Milter | ||
3 | import argparse | ||
4 | from email.header import decode_header | ||
5 | from email.utils import parseaddr | ||
6 | |||
7 | class CheckMilter(Milter.Base): | ||
8 | def __init__(self): | ||
9 | self.envelope_from = None | ||
10 | self.header_from = None | ||
11 | |||
12 | @Milter.noreply | ||
13 | def connect(self, IPname, family, hostaddr): | ||
14 | return Milter.CONTINUE | ||
15 | |||
16 | def hello(self, heloname): | ||
17 | return Milter.CONTINUE | ||
18 | |||
19 | def envfrom(self, mailfrom, *args): | ||
20 | self.envelope_from = parseaddr(mailfrom)[1] | ||
21 | return Milter.CONTINUE | ||
22 | |||
23 | @Milter.noreply | ||
24 | def envrcpt(self, to, *str): | ||
25 | return Milter.CONTINUE | ||
26 | |||
27 | @Milter.noreply | ||
28 | def header(self, name, hval): | ||
29 | if name.lower() == "from": | ||
30 | self.header_from = parseaddr(decode_header(hval)[-1][0])[1] | ||
31 | return Milter.CONTINUE | ||
32 | |||
33 | def eoh(self): | ||
34 | if self.header_from is not None and self.header_from != "" and self.header_from != self.envelope_from: | ||
35 | self.setreply("553", xcode="5.7.1", msg="<%s>: From header rejected: not matching envelope From %s" | ||
36 | % (self.header_from, self.envelope_from)) | ||
37 | return Milter.REJECT | ||
38 | |||
39 | return Milter.CONTINUE | ||
40 | |||
41 | @Milter.noreply | ||
42 | def body(self, chunk): | ||
43 | return Milter.CONTINUE | ||
44 | |||
45 | def eom(self): | ||
46 | return Milter.ACCEPT | ||
47 | |||
48 | def close(self): | ||
49 | return Milter.CONTINUE | ||
50 | |||
51 | def abort(self): | ||
52 | return Milter.CONTINUE | ||
53 | |||
54 | if __name__ == "__main__": | ||
55 | parser = argparse.ArgumentParser() | ||
56 | parser.add_argument("--socket", "-s", type=str, help="socket to listen to") | ||
57 | config = parser.parse_args() | ||
58 | |||
59 | Milter.factory = CheckMilter | ||
60 | Milter.runmilter("check_from", config.socket, timeout=300) | ||
diff --git a/modules/private/monitoring/default.nix b/modules/private/monitoring/default.nix deleted file mode 100644 index 0783c2f..0000000 --- a/modules/private/monitoring/default.nix +++ /dev/null | |||
@@ -1,249 +0,0 @@ | |||
1 | { config, pkgs, lib, name, nodes, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.monitoring; | ||
4 | activatedPlugins = [ "memory" "command" "bandwidth" ] | ||
5 | ++ (if cfg.master then (masterObjects.activatedPlugins or []) else []) | ||
6 | ++ (if cfg.master then (lib.flatten (map (v: v.activatedPlugins or []) otherObjects)) else []) | ||
7 | ++ (hostObjects.activatedPlugins or []) | ||
8 | ++ (if cfg.master then ["notify-primary"] else ["notify-secondary"]); | ||
9 | allPluginsConfig = import ./myplugins.nix { | ||
10 | inherit pkgs lib config; | ||
11 | sudo = "/run/wrappers/bin/sudo"; | ||
12 | }; | ||
13 | mypluginsConfig = lib.getAttrs activatedPlugins allPluginsConfig; | ||
14 | myplugins = let | ||
15 | mypluginsChunk = builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (k: v: v.chunk or "") mypluginsConfig); | ||
16 | in pkgs.runCommand "buildplugins" { | ||
17 | buildInputs = [ pkgs.makeWrapper pkgs.perl ]; | ||
18 | } '' | ||
19 | mkdir $out | ||
20 | ${mypluginsChunk} | ||
21 | ''; | ||
22 | toObjects = pkgs.callPackage ./to_objects.nix {}; | ||
23 | commonConfig = { | ||
24 | dilion = { | ||
25 | processWarn = "250"; processAlert = "400"; | ||
26 | loadWarn = "1.0"; loadAlert = "1.2"; | ||
27 | interface = "eth0"; | ||
28 | }; | ||
29 | eldiron = { | ||
30 | processWarn = "550"; processAlert = "650"; | ||
31 | loadWarn = "1.0"; loadAlert = "1.2"; | ||
32 | interface = "eth0"; | ||
33 | }; | ||
34 | backup-2 = { | ||
35 | processWarn = "60"; processAlert = "70"; | ||
36 | loadWarn = "1.0"; loadAlert = "2.0"; | ||
37 | interface = "ens3"; | ||
38 | }; | ||
39 | monitoring-1 = { | ||
40 | processWarn = "50"; processAlert = "60"; | ||
41 | loadWarn = "4.0"; loadAlert = "6.0"; | ||
42 | load15Warn = "1.0"; load15Alert = "2.0"; | ||
43 | interface = "ens3"; | ||
44 | }; | ||
45 | quatresaisons = { | ||
46 | processWarn = "250"; processAlert = "400"; | ||
47 | loadWarn = "1.0"; loadAlert = "1.2"; | ||
48 | interface = "eth0"; | ||
49 | }; | ||
50 | }; | ||
51 | externalObjects = lib.genAttrs [ "tiboqorl-fr" ] | ||
52 | (n: pkgs.callPackage (./. + "/objects_" + n + ".nix") { inherit emailCheck; }); | ||
53 | masterPassiveObjects = let | ||
54 | passiveNodes = lib.attrsets.filterAttrs (n: _: builtins.elem n ["backup-2" "eldiron" "quatresaisons" "dilion"]) nodes; | ||
55 | toPassiveServices = map (s: s.passiveInfo.filter s // s.passiveInfo); | ||
56 | passiveServices = lib.flatten (lib.attrsets.mapAttrsToList | ||
57 | (_: n: toPassiveServices n.config.myServices.monitoring.services) | ||
58 | passiveNodes | ||
59 | ) ++ lib.flatten (lib.attrsets.mapAttrsToList | ||
60 | (_: n: toPassiveServices n.service) | ||
61 | externalObjects); | ||
62 | in { | ||
63 | service = passiveServices; | ||
64 | host = lib.lists.foldr | ||
65 | (a: b: a//b) | ||
66 | {} | ||
67 | (lib.attrsets.mapAttrsToList (_: h: h.config.myServices.monitoring.hosts) passiveNodes | ||
68 | ++ lib.attrsets.mapAttrsToList (_: n: n.host) externalObjects); | ||
69 | }; | ||
70 | emailCheck = host: hostFQDN: let | ||
71 | allCfg = config.myEnv.monitoring.email_check; | ||
72 | cfg = allCfg."${host}"; | ||
73 | reverseTargets = builtins.attrNames (lib.attrsets.filterAttrs (k: v: builtins.elem host v.targets) allCfg); | ||
74 | to_email = cfg': host': | ||
75 | let sep = if lib.strings.hasInfix "+" cfg'.mail_address then "_" else "+"; | ||
76 | in "${cfg'.mail_address}${sep}${host'}@${cfg'.mail_domain}"; | ||
77 | mails_to_send = builtins.concatStringsSep "," (map (n: to_email allCfg."${n}" host) cfg.targets); | ||
78 | mails_to_receive = builtins.concatStringsSep "," (map (n: "${to_email cfg n}:${n}") reverseTargets); | ||
79 | command = if cfg.local | ||
80 | then | ||
81 | [ "check_emails_local" "/var/lib/naemon/checks/email" mails_to_send mails_to_receive ] | ||
82 | else | ||
83 | [ "check_emails" cfg.login cfg.port mails_to_send mails_to_receive ]; | ||
84 | in | ||
85 | { | ||
86 | service_description = "${hostFQDN} email service is active"; | ||
87 | use = "mail-service"; | ||
88 | host_name = hostFQDN; | ||
89 | servicegroups = "webstatus-email"; | ||
90 | check_command = command; | ||
91 | }; | ||
92 | otherObjects = map | ||
93 | (n: (pkgs.callPackage (./. + "/objects_" + n + ".nix") { inherit emailCheck; })) | ||
94 | [ "ulminfo-fr" "phare" "eban" ]; | ||
95 | masterObjects = pkgs.callPackage ./objects_master.nix { inherit config; }; | ||
96 | commonObjects = pkgs.callPackage ./objects_common.nix ({ | ||
97 | master = cfg.master; | ||
98 | hostFQDN = config.hostEnv.fqdn; | ||
99 | hostName = name; | ||
100 | inherit mypluginsConfig; | ||
101 | } // builtins.getAttr name commonConfig); | ||
102 | hostObjects = | ||
103 | let | ||
104 | specific_file = ./. + "/objects_" + name + ".nix"; | ||
105 | in | ||
106 | lib.attrsets.optionalAttrs | ||
107 | (builtins.pathExists specific_file) | ||
108 | (pkgs.callPackage specific_file { | ||
109 | inherit config nodes emailCheck; | ||
110 | hostFQDN = config.hostEnv.fqdn; | ||
111 | hostName = name; | ||
112 | }); | ||
113 | objectsFiles = lib.mapAttrs' (name: value: lib.nameValuePair | ||
114 | "=/${name}/objects.conf" { alias = pkgs.writeText "objects.conf" (toObjects value); } | ||
115 | ) externalObjects; | ||
116 | in | ||
117 | { | ||
118 | options = { | ||
119 | myServices.monitoring = { | ||
120 | enable = lib.mkOption { | ||
121 | type = lib.types.bool; | ||
122 | default = false; | ||
123 | description = '' | ||
124 | Whether to enable monitoring. | ||
125 | ''; | ||
126 | }; | ||
127 | master = lib.mkOption { | ||
128 | type = lib.types.bool; | ||
129 | default = false; | ||
130 | description = '' | ||
131 | This instance is the master instance | ||
132 | ''; | ||
133 | }; | ||
134 | hosts = lib.mkOption { | ||
135 | readOnly = true; | ||
136 | description = "Hosts list for this host"; | ||
137 | default = (commonObjects.host or {}) // (hostObjects.host or {}); | ||
138 | }; | ||
139 | services = lib.mkOption { | ||
140 | readOnly = true; | ||
141 | description = "Services list for this host"; | ||
142 | default = commonObjects.service ++ hostObjects.service; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | config = lib.mkIf cfg.enable { | ||
148 | services.nginx = lib.mkIf config.myServices.status.enable { | ||
149 | virtualHosts."status.immae.eu".locations = objectsFiles // { | ||
150 | "=/common/immae.cfg" = { | ||
151 | alias = pkgs.writeText "immae.cfg" '' | ||
152 | # put me for instance in /etc/naemon/module-conf.d/immae.cfg | ||
153 | # Make sure that you have include_dir=module-conf.d in | ||
154 | # naemon.cfg | ||
155 | log_initial_states=1 | ||
156 | date_format=iso8601 | ||
157 | admin_email=${config.myEnv.monitoring.email} | ||
158 | obsess_over_services=1 | ||
159 | ocsp_command=notify-master | ||
160 | ''; | ||
161 | }; | ||
162 | "=/common/resource.cfg" = { | ||
163 | alias = pkgs.writeText "resource.cfg" '' | ||
164 | # Resource.cfg file | ||
165 | # Replace this with path to monitoring plugins | ||
166 | $USER1$=@@COMMON_PLUGINS@@ | ||
167 | # Replace this with a path to scripts from | ||
168 | # https://git.immae.eu/cgit/perso/Immae/Config/Nix.git/tree/modules/private/monitoring/plugins | ||
169 | $USER2$=@@IMMAE_PLUGINS@@ | ||
170 | $USER200$=https://status.immae.eu/ | ||
171 | $USER201$=@@TOKEN@@ | ||
172 | ''; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | |||
177 | security.sudo.extraRules = let | ||
178 | pluginsSudo = lib.lists.remove null (lib.attrsets.mapAttrsToList (k: v: | ||
179 | if (v ? sudo) | ||
180 | then ({ users = [ "naemon" ]; } // (v.sudo myplugins)) | ||
181 | else null) mypluginsConfig); | ||
182 | in [ | ||
183 | { | ||
184 | commands = [ | ||
185 | { command = "${pkgs.mdadm}/bin/mdadm --monitor --scan -1"; options = [ "NOPASSWD" ]; } | ||
186 | { command = "${pkgs.postfix}/bin/mailq"; options = [ "NOPASSWD" ]; } | ||
187 | ]; | ||
188 | users = [ "naemon" ]; | ||
189 | runAs = "root"; | ||
190 | } | ||
191 | ] ++ pluginsSudo; | ||
192 | environment.etc."mdadm.conf" = { | ||
193 | enable = true; | ||
194 | mode = "0644"; | ||
195 | user = "root"; | ||
196 | text = "MAILADDR ${config.myEnv.monitoring.email}"; | ||
197 | }; | ||
198 | |||
199 | secrets.keys = { | ||
200 | "naemon/id_rsa" = { | ||
201 | user = "naemon"; | ||
202 | group = "naemon"; | ||
203 | permissions = "0400"; | ||
204 | text = config.myEnv.monitoring.ssh_secret_key; | ||
205 | }; | ||
206 | } // lib.optionalAttrs cfg.master ( | ||
207 | lib.mapAttrs' (k: v: lib.nameValuePair "${k}_access_key" { | ||
208 | user = "naemon"; | ||
209 | group = "naemon"; | ||
210 | permissions = "0400"; | ||
211 | text = '' | ||
212 | export AWS_ACCESS_KEY_ID="${v.accessKeyId}" | ||
213 | export AWS_SECRET_ACCESS_KEY="${v.secretAccessKey}" | ||
214 | export BASE_URL="${v.remote "immae-eldiron"}" | ||
215 | ''; | ||
216 | }) config.myEnv.backup.remotes | ||
217 | ); | ||
218 | # needed since extraResource is not in the closure | ||
219 | systemd.services.naemon.path = [ myplugins ]; | ||
220 | services.naemon = { | ||
221 | enable = true; | ||
222 | extraConfig = '' | ||
223 | use_syslog=1 | ||
224 | log_initial_states=1 | ||
225 | date_format=iso8601 | ||
226 | admin_email=${config.myEnv.monitoring.email} | ||
227 | '' + lib.optionalString (!cfg.master) '' | ||
228 | obsess_over_services=1 | ||
229 | ocsp_command=notify-master | ||
230 | '' + lib.optionalString (cfg.master) '' | ||
231 | broker_module=${pkgs.naemon-livestatus}/lib/naemon-livestatus/livestatus.so ${config.services.naemon.runDir}/live | ||
232 | broker_module=${pkgs.status_engine.module}/lib/status-engine/naemon/statusengine-${pkgs.naemon.status_engine_version}.o use_service_perfdata=1 use_process_data=0 use_system_command_data=0 use_external_command_data=0 use_flapping_data=0 use_program_status_data=0 use_notification_data=0 use_contact_status_data=0 use_contact_notification_data=0 use_event_handler_data=0 use_object_data=0 | ||
233 | ''; | ||
234 | extraResource = let | ||
235 | resources = [hostObjects.resources or {}] ++ (lib.mapAttrsToList (k: v: v.resources or {}) mypluginsConfig); | ||
236 | joined = lib.zipAttrsWith (n: v: if builtins.length (lib.unique v) == 1 then builtins.head v else abort "Non-unique resources names") resources; | ||
237 | joinedStr = builtins.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "$" + "${k}$=${v}") joined); | ||
238 | in '' | ||
239 | $USER2$=${myplugins} | ||
240 | ${joinedStr} | ||
241 | ''; | ||
242 | objectDefs = toObjects commonObjects | ||
243 | + toObjects hostObjects | ||
244 | + lib.optionalString cfg.master (toObjects masterObjects) | ||
245 | + lib.optionalString cfg.master (toObjects masterPassiveObjects) | ||
246 | + lib.optionalString cfg.master (builtins.concatStringsSep "\n" (map toObjects otherObjects)); | ||
247 | }; | ||
248 | }; | ||
249 | } | ||
diff --git a/modules/private/monitoring/myplugins.nix b/modules/private/monitoring/myplugins.nix deleted file mode 100644 index e59ddc4..0000000 --- a/modules/private/monitoring/myplugins.nix +++ /dev/null | |||
@@ -1,389 +0,0 @@ | |||
1 | { sudo, pkgs, lib, config }: | ||
2 | let | ||
3 | cfg = config.myServices.monitoring; | ||
4 | in | ||
5 | { | ||
6 | notify-secondary = { | ||
7 | resources = { | ||
8 | USER200 = config.myEnv.monitoring.status_url; | ||
9 | USER201 = config.myEnv.monitoring.status_token; | ||
10 | }; | ||
11 | commands = { | ||
12 | notify-master = "$USER2$/send_nrdp.sh -u \"$USER200$\" -t \"$USER201$\" -H \"$HOSTADDRESS$\" -s \"$SERVICEDESC$\" -S \"$SERVICESTATEID$\" -o \"$SERVICEOUTPUT$ | $SERVICEPERFDATA$\""; | ||
13 | }; | ||
14 | chunk = '' | ||
15 | cp ${./plugins}/send_nrdp.sh $out | ||
16 | patchShebangs $out/send_nrdp.sh | ||
17 | wrapProgram $out/send_nrdp.sh --prefix PATH : ${lib.makeBinPath [ | ||
18 | pkgs.curl pkgs.jq | ||
19 | ]} | ||
20 | ''; | ||
21 | }; | ||
22 | notify-primary = { | ||
23 | resources = { | ||
24 | USER206 = config.myEnv.monitoring.slack_channel; | ||
25 | USER207 = config.myEnv.monitoring.slack_url; | ||
26 | USER210 = config.myEnv.monitoring.eban.user; | ||
27 | USER211 = config.myEnv.monitoring.eban.password; | ||
28 | }; | ||
29 | commands = { | ||
30 | # $OVE is to force naemon to run via shell instead of execve which fails here | ||
31 | notify-host-by-email = "ADMINEMAIL=\"$ADMINEMAIL$\" SERVICENOTIFICATIONID=\"$SERVICENOTIFICATIONID$\" HOSTSTATE=\"$HOSTSTATE$\" HOSTOUTPUT=\"$HOSTOUTPUT$\" $USER2$/notify_by_email host \"$NOTIFICATIONTYPE$\" \"$HOSTALIAS$\" \"$LONGDATETIME$\" \"$CONTACTEMAIL$\" $OVE"; | ||
32 | # $OVE is to force naemon to run via shell instead of execve which fails here | ||
33 | notify-service-by-email = "ADMINEMAIL=\"$ADMINEMAIL$\" SERVICENOTIFICATIONID=\"$SERVICENOTIFICATIONID$\" SERVICEDESC=\"$SERVICEDESC$\" SERVICESTATE=\"$SERVICESTATE$\" SERVICEOUTPUT=\"$SERVICEOUTPUT$\" $USER2$/notify_by_email service \"$NOTIFICATIONTYPE$\" \"$HOSTALIAS$\" \"$LONGDATETIME$\" \"$CONTACTEMAIL$\" $OVE"; | ||
34 | notify-by-slack = "HOST=\"$HOSTALIAS$\" SERVICESTATE=\"$SERVICESTATE$\" SERVICEDESC=\"$SERVICEDESC$\" SERVICEOUTPUT=\"$SERVICEOUTPUT$\" $USER2$/notify_by_slack \"$ARG1$\" \"$ARG2$\""; | ||
35 | notify-host-eban-url = "STATUS_NAME=\"Server\" USER=\"$USER210$\" PASSWORD=\"$USER211$\" HOSTSTATE=\"$HOSTSTATE$\" $USER2$/notify_eban_url"; | ||
36 | notify-service-eban-url = "STATUS_NAME=\"$_SERVICEWEBSTATUS_NAME$\" USER=\"$USER210$\" PASSWORD=\"$USER211$\" SERVICESTATE=\"$SERVICESTATE$\" $USER2$/notify_eban_url"; | ||
37 | }; | ||
38 | chunk = '' | ||
39 | cp ${./plugins}/{notify_by_email,notify_by_slack,notify_eban_url} $out | ||
40 | patchShebangs $out/{notify_by_email,notify_by_slack,notify_eban_url} | ||
41 | wrapProgram $out/notify_by_email --prefix PATH : ${lib.makeBinPath [ | ||
42 | pkgs.mailutils | ||
43 | ]} | ||
44 | wrapProgram $out/notify_by_slack --prefix PATH : ${lib.makeBinPath [ | ||
45 | pkgs.curl pkgs.jq | ||
46 | ]} | ||
47 | wrapProgram $out/notify_eban_url --prefix PATH : ${lib.makeBinPath [ | ||
48 | pkgs.curl | ||
49 | ]} | ||
50 | ''; | ||
51 | }; | ||
52 | bandwidth = { | ||
53 | commands = { | ||
54 | check_local_bandwidth = "$USER2$/check_bandwidth -i=$ARG1$ -w $ARG2$ -c $ARG3$"; | ||
55 | }; | ||
56 | chunk = '' | ||
57 | cp ${./plugins}/check_bandwidth $out/ | ||
58 | patchShebangs $out/check_bandwidth | ||
59 | wrapProgram $out/check_bandwidth --prefix PATH : ${lib.makeBinPath [ | ||
60 | pkgs.iproute pkgs.bc | ||
61 | ]} | ||
62 | ''; | ||
63 | }; | ||
64 | command = { | ||
65 | commands = { | ||
66 | check_command_match = "$USER2$/check_command -c \"$ARG1$\" -C \"$ARG2$\" $ARG3$"; | ||
67 | check_command_output = "$USER2$/check_command -c \"$ARG1$\" -s 0 -o \"$ARG2$\" $ARG3$"; | ||
68 | check_command_status = "$USER2$/check_command -c \"$ARG1$\" -s \"$ARG2$\" $ARG3$"; | ||
69 | }; | ||
70 | chunk = '' | ||
71 | cp ${./plugins}/check_command $out/ | ||
72 | patchShebangs $out/check_command | ||
73 | wrapProgram $out/check_command --prefix PATH : ${config.security.wrapperDir} | ||
74 | ''; | ||
75 | }; | ||
76 | dns = { | ||
77 | commands = { | ||
78 | check_dns = "$USER1$/check_dns -H $ARG1$ -s $HOSTADDRESS$ $ARG2$"; | ||
79 | check_external_dns = "$USER1$/check_dns -H $ARG2$ -s $ARG1$ $ARG3$"; | ||
80 | }; | ||
81 | }; | ||
82 | emails = { | ||
83 | resources = { | ||
84 | USER203 = config.secrets.fullPaths."naemon/id_rsa"; | ||
85 | }; | ||
86 | commands = { | ||
87 | check_emails = "$USER2$/check_emails -H $HOSTADDRESS$ -i $USER203$ -l $ARG1$ -p $ARG2$ -s $ARG3$ -f $ARG4$"; | ||
88 | check_emails_local = "$USER2$/check_emails -H $HOSTADDRESS$ -n $ARG1$ -r $ADMINEMAIL$ -s $ARG2$ -f $ARG3$"; | ||
89 | }; | ||
90 | chunk = let | ||
91 | send_mails = pkgs.runCommand "send_mails" { | ||
92 | buildInputs = [ pkgs.makeWrapper ]; | ||
93 | } '' | ||
94 | mkdir -p $out/bin | ||
95 | cp ${./send_mails} $out/bin/send_mails | ||
96 | patchShebangs $out | ||
97 | wrapProgram $out/bin/send_mails --prefix PATH : ${lib.makeBinPath [ | ||
98 | pkgs.mailutils | ||
99 | ]} | ||
100 | ''; | ||
101 | in '' | ||
102 | cp ${./plugins}/check_emails $out/ | ||
103 | patchShebangs $out/check_emails | ||
104 | wrapProgram $out/check_emails --prefix PATH : ${lib.makeBinPath [ | ||
105 | pkgs.openssh send_mails | ||
106 | ]} --prefix PERL5LIB : ${pkgs.perlPackages.makePerlPath [ | ||
107 | pkgs.perlPackages.TimeDate | ||
108 | ]} | ||
109 | ''; | ||
110 | }; | ||
111 | eriomem = { | ||
112 | resources = { | ||
113 | USER208 = builtins.concatStringsSep "," (map (builtins.concatStringsSep ":") config.myEnv.monitoring.eriomem_keys); | ||
114 | }; | ||
115 | commands = { | ||
116 | check_backup_eriomem = "$USER2$/check_eriomem $USER208$"; | ||
117 | check_backup_eriomem_age = "$USER2$/check_backup_eriomem_age $ARG1$"; | ||
118 | }; | ||
119 | chunk = '' | ||
120 | cp ${./plugins}/check_eriomem $out/ | ||
121 | patchShebangs $out/check_eriomem | ||
122 | wrapProgram $out/check_eriomem --prefix PATH : ${lib.makeBinPath [ | ||
123 | pkgs.s3cmd pkgs.python3 | ||
124 | ]} | ||
125 | cp ${./plugins}/check_backup_age $out/check_backup_eriomem_age | ||
126 | patchShebangs $out/check_backup_eriomem_age | ||
127 | wrapProgram $out/check_backup_eriomem_age --prefix PATH : ${lib.makeBinPath [ | ||
128 | pkgs.duplicity | ||
129 | ]} --set SECRETS_PATH ${lib.optionalString cfg.master config.secrets.fullPaths."eriomem_access_key"} | ||
130 | ''; | ||
131 | }; | ||
132 | file_date = { | ||
133 | commands = { | ||
134 | check_last_file_date = "${sudo} -u \"$ARG3$\" $USER2$/check_last_file_date \"$ARG1$\" \"$ARG2$\""; | ||
135 | }; | ||
136 | chunk = '' | ||
137 | cp ${./plugins}/check_last_file_date $out/ | ||
138 | patchShebangs $out/check_last_file_date | ||
139 | ''; | ||
140 | sudo = myplugins: { | ||
141 | commands = [ | ||
142 | { command = "${myplugins}/check_last_file_date /backup2/*"; options = [ "NOPASSWD" ]; } | ||
143 | ]; | ||
144 | runAs = "ALL"; | ||
145 | }; | ||
146 | }; | ||
147 | ftp = { | ||
148 | commands = { | ||
149 | check_ftp_database = "$USER2$/check_ftp_database"; | ||
150 | }; | ||
151 | chunk = '' | ||
152 | cp ${./plugins}/check_ftp_database $out/ | ||
153 | patchShebangs $out/check_ftp_database | ||
154 | wrapProgram $out/check_ftp_database --prefix PATH : ${lib.makeBinPath [ | ||
155 | pkgs.lftp | ||
156 | ]} | ||
157 | ''; | ||
158 | }; | ||
159 | git = { | ||
160 | resources = { | ||
161 | USER203 = config.secrets.fullPaths."naemon/id_rsa"; | ||
162 | }; | ||
163 | commands = { | ||
164 | check_git = "$USER2$/check_git $USER203$"; | ||
165 | }; | ||
166 | chunk = '' | ||
167 | cp ${./plugins}/check_git $out/ | ||
168 | patchShebangs $out/check_git | ||
169 | wrapProgram $out/check_git --prefix PATH : ${lib.makeBinPath [ | ||
170 | pkgs.git pkgs.openssh | ||
171 | ]} | ||
172 | ''; | ||
173 | }; | ||
174 | http = { | ||
175 | resources = { | ||
176 | USER202 = config.myEnv.monitoring.http_user_password; | ||
177 | }; | ||
178 | commands = { | ||
179 | check_http = "$USER1$/check_http --sni -f stickyport -H \"$ARG1$\" -u \"$ARG2$\" -r \"$ARG3$\""; | ||
180 | check_https = "$USER1$/check_http --sni --ssl -f stickyport -H \"$ARG1$\" -u \"$ARG2$\" -r \"$ARG3$\""; | ||
181 | check_https_auth = "$USER1$/check_http --sni --ssl -a \"$USER202$\" -f stickyport -H \"$ARG1$\" -u \"$ARG2$\" -r \"$ARG3$\""; | ||
182 | check_https_certificate = "$USER1$/check_http --sni --ssl -H \"$ARG1$\" -C 21,15"; | ||
183 | check_https_code = "$USER1$/check_http --sni --ssl -f stickyport -H \"$ARG1$\" -u \"$ARG2$\" -e \"$ARG3$\" -r \"$ARG4$\""; | ||
184 | }; | ||
185 | }; | ||
186 | imap = { | ||
187 | resources = { | ||
188 | USER204 = config.myEnv.monitoring.imap_login; | ||
189 | USER205 = config.myEnv.monitoring.imap_password; | ||
190 | }; | ||
191 | commands = { | ||
192 | check_imap_connection = "$USER2$/check_imap_connection -u \"$USER204$\" -p \"$USER205$\" -H \"imap.immae.eu:143\""; | ||
193 | }; | ||
194 | chunk = '' | ||
195 | cp ${./plugins}/check_imap_connection $out/ | ||
196 | patchShebangs $out/check_imap_connection | ||
197 | wrapProgram $out/check_imap_connection --prefix PATH : ${lib.makeBinPath [ | ||
198 | pkgs.openssl | ||
199 | ]} | ||
200 | ''; | ||
201 | }; | ||
202 | megaraid = let | ||
203 | megacli = pkgs.megacli.overrideAttrs(old: { meta = old.meta // { license = null; }; }); | ||
204 | in { | ||
205 | commands = { | ||
206 | check_megaraid = "$USER2$/check_megaraid_sas --sudo"; | ||
207 | }; | ||
208 | chunk = let | ||
209 | megaCliPlugin = pkgs.runCommand "megaCliPlugin" { | ||
210 | plugin = pkgs.fetchurl { | ||
211 | name = "check_megaraid_sas"; | ||
212 | url = "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=6381&cf_id=24"; | ||
213 | sha256 = "0yf60p4c0hb4q3fng9fc14qc89bqm0f1sijayzygadaqcl44jx4p"; | ||
214 | }; | ||
215 | } '' | ||
216 | mkdir $out | ||
217 | cp $plugin $out/check_megaraid_sas | ||
218 | chmod +x $out/check_megaraid_sas | ||
219 | patchShebangs $out | ||
220 | substituteInPlace $out/check_megaraid_sas --replace /usr/sbin/MegaCli ${megacli}/bin/MegaCli64 | ||
221 | substituteInPlace $out/check_megaraid_sas --replace 'sudo $megacli' '${sudo} $megacli' | ||
222 | sed -i -e "s/use utils qw(%ERRORS);/my %ERRORS = ('OK' => 0, 'WARNING' => 1, 'CRITICAL' => 2, 'UNKNOWN' => 3);/" $out/check_megaraid_sas | ||
223 | ''; | ||
224 | in '' | ||
225 | cp ${megaCliPlugin}/check_megaraid_sas $out/ | ||
226 | patchShebangs $out/check_megaraid_sas | ||
227 | ''; | ||
228 | sudo = _: { | ||
229 | commands = [ | ||
230 | { command = "${megacli}/bin/MegaCli64"; options = [ "NOPASSWD" ]; } | ||
231 | ]; | ||
232 | runAs = "root"; | ||
233 | }; | ||
234 | }; | ||
235 | memory = { | ||
236 | commands = { | ||
237 | check_memory = "$USER2$/check_mem.sh -w $ARG1$ -c $ARG2$"; | ||
238 | }; | ||
239 | chunk = '' | ||
240 | cp ${./plugins}/check_mem.sh $out/ | ||
241 | patchShebangs $out/check_mem.sh | ||
242 | wrapProgram $out/check_mem.sh --prefix PATH : ${lib.makeBinPath [ | ||
243 | pkgs.gnugrep pkgs.gawk pkgs.procps-ng | ||
244 | ]} | ||
245 | ''; | ||
246 | }; | ||
247 | mysql = { | ||
248 | commands = { | ||
249 | check_mysql_replication = "${sudo} -u mysql $USER2$/check_mysql_replication \"$ARG1$\" \"$ARG2$\""; | ||
250 | }; | ||
251 | chunk = '' | ||
252 | cp ${./plugins}/check_mysql_replication $out/ | ||
253 | patchShebangs $out/check_mysql_replication | ||
254 | wrapProgram $out/check_mysql_replication --prefix PATH : ${lib.makeBinPath [ | ||
255 | pkgs.gnugrep pkgs.gnused pkgs.coreutils pkgs.mariadb | ||
256 | ]} | ||
257 | ''; | ||
258 | sudo = myplugins: { | ||
259 | commands = [ | ||
260 | { command = "${myplugins}/check_mysql_replication *"; options = [ "NOPASSWD" ]; } | ||
261 | ]; | ||
262 | runAs = "mysql"; | ||
263 | }; | ||
264 | }; | ||
265 | openldap = { | ||
266 | commands = { | ||
267 | check_openldap_replication = "${sudo} -u openldap $USER2$/check_openldap_replication \"$ARG1$\" \"$ARG2$\" \"$ARG3$\" \"$ARG4$\" \"$ARG5$\""; | ||
268 | }; | ||
269 | chunk = '' | ||
270 | cp ${./plugins}/check_openldap_replication $out/ | ||
271 | patchShebangs $out/check_openldap_replication | ||
272 | wrapProgram $out/check_openldap_replication --prefix PATH : ${lib.makeBinPath [ | ||
273 | pkgs.gnugrep pkgs.gnused pkgs.coreutils pkgs.openldap | ||
274 | ]} | ||
275 | ''; | ||
276 | sudo = myplugins: { | ||
277 | commands = [ | ||
278 | { command = "${myplugins}/check_openldap_replication *"; options = [ "NOPASSWD" ]; } | ||
279 | ]; | ||
280 | runAs = "openldap"; | ||
281 | }; | ||
282 | }; | ||
283 | ovh = { | ||
284 | resources = { | ||
285 | USER209 = builtins.concatStringsSep "," [ | ||
286 | config.myEnv.monitoring.ovh_sms.endpoint | ||
287 | config.myEnv.monitoring.ovh_sms.application_key | ||
288 | config.myEnv.monitoring.ovh_sms.application_secret | ||
289 | config.myEnv.monitoring.ovh_sms.consumer_key | ||
290 | config.myEnv.monitoring.ovh_sms.account | ||
291 | ]; | ||
292 | }; | ||
293 | commands = { | ||
294 | check_backup_ovh_age = "$USER2$/check_backup_ovh_age $ARG1$"; | ||
295 | check_ovh_sms = "$USER2$/check_ovh_sms \"$USER209$\""; | ||
296 | }; | ||
297 | chunk = '' | ||
298 | cp ${./plugins}/check_backup_age $out/check_backup_ovh_age | ||
299 | patchShebangs $out/check_backup_ovh_age | ||
300 | wrapProgram $out/check_backup_ovh_age --prefix PATH : ${lib.makeBinPath [ | ||
301 | pkgs.duplicity | ||
302 | ]} --set SECRETS_PATH ${lib.optionalString cfg.master config.secrets.fullPaths."ovh_access_key"} | ||
303 | cp ${./plugins}/check_ovh_sms $out/ | ||
304 | patchShebangs $out/check_ovh_sms | ||
305 | wrapProgram $out/check_ovh_sms --prefix PATH : ${lib.makeBinPath [ | ||
306 | (pkgs.python3.withPackages (ps: [ps.ovh])) | ||
307 | ]} | ||
308 | ''; | ||
309 | }; | ||
310 | postgresql = { | ||
311 | commands = { | ||
312 | check_postgresql_replication = "${sudo} -u postgres $USER2$/check_postgres_replication \"$ARG1$\" \"$ARG2$\" \"$ARG3$\""; | ||
313 | check_postgresql_database_count = "$USER2$/check_postgres_database_count \"$ARG1$\" \"$ARG2$\" \"$ARG3$\""; | ||
314 | }; | ||
315 | chunk = let | ||
316 | postgresqlBinary = if config.myServices.databasesReplication.postgresql.enable | ||
317 | then config.myServices.databasesReplication.postgresql.mainPackage | ||
318 | else if config.myServices.databases.enable | ||
319 | then config.myServices.databases.postgresql.package | ||
320 | else pkgs.postgresql; | ||
321 | in '' | ||
322 | cp ${./plugins}/check_postgres_replication $out/ | ||
323 | patchShebangs $out/check_postgres_replication | ||
324 | wrapProgram $out/check_postgres_replication --prefix PATH : ${lib.makeBinPath [ | ||
325 | postgresqlBinary | ||
326 | ]} | ||
327 | cp ${./plugins}/check_postgres_database_count $out/ | ||
328 | patchShebangs $out/check_postgres_database_count | ||
329 | wrapProgram $out/check_postgres_database_count --prefix PATH : ${lib.makeBinPath [ | ||
330 | postgresqlBinary | ||
331 | ]} | ||
332 | ''; | ||
333 | |||
334 | sudo = myplugins: { | ||
335 | commands = [ | ||
336 | { command = "${myplugins}/check_postgres_replication *"; options = [ "NOPASSWD" ]; } | ||
337 | ]; | ||
338 | runAs = "postgres"; | ||
339 | }; | ||
340 | }; | ||
341 | redis = { | ||
342 | commands = { | ||
343 | check_redis_replication = "${sudo} -u redis $USER2$/check_redis_replication \"$ARG1$\""; | ||
344 | }; | ||
345 | chunk = '' | ||
346 | cp ${./plugins}/check_redis_replication $out/ | ||
347 | patchShebangs $out/check_redis_replication | ||
348 | wrapProgram $out/check_redis_replication --prefix PATH : ${lib.makeBinPath [ | ||
349 | pkgs.gnugrep pkgs.coreutils pkgs.redis | ||
350 | ]} | ||
351 | ''; | ||
352 | sudo = myplugins: { | ||
353 | commands = [ | ||
354 | { command = "${myplugins}/check_redis_replication *"; options = [ "NOPASSWD" ]; } | ||
355 | ]; | ||
356 | runAs = "redis"; | ||
357 | }; | ||
358 | }; | ||
359 | tcp = { | ||
360 | commands = { | ||
361 | check_tcp = "$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -e \"$ARG2$\" -Mcrit"; | ||
362 | check_tcp_ssl = "$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -S -D 21,15"; | ||
363 | }; | ||
364 | }; | ||
365 | zfs = { | ||
366 | commands = { | ||
367 | check_zfs = "$USER2$/check_zpool.sh -p ALL -w 80 -c 90"; | ||
368 | check_zfs_snapshot = "$USER2$/check_zfs_snapshot -d $ARG1$ -c 18000 -w 14400"; | ||
369 | }; | ||
370 | chunk = let | ||
371 | zfsPlugin = pkgs.fetchurl { | ||
372 | url = "https://www.claudiokuenzler.com/monitoring-plugins/check_zpools.sh"; | ||
373 | sha256 = "0p9ms9340in80jkds4kfspw62xnzsv5s7ni9m28kxyd0bnzkbzhf"; | ||
374 | }; | ||
375 | in '' | ||
376 | cp ${zfsPlugin} $out/check_zpool.sh | ||
377 | chmod +x $out/check_zpool.sh | ||
378 | patchShebangs $out/check_zpool.sh | ||
379 | wrapProgram $out/check_zpool.sh --prefix PATH : ${lib.makeBinPath [ | ||
380 | pkgs.which pkgs.zfs pkgs.gawk | ||
381 | ]} | ||
382 | cp ${./plugins}/check_zfs_snapshot $out | ||
383 | patchShebangs $out/check_zfs_snapshot | ||
384 | wrapProgram $out/check_zfs_snapshot --prefix PATH : ${lib.makeBinPath [ | ||
385 | pkgs.zfs pkgs.coreutils pkgs.gawk pkgs.gnugrep | ||
386 | ]} | ||
387 | ''; | ||
388 | }; | ||
389 | } | ||
diff --git a/modules/private/monitoring/nagios-cli.cfg b/modules/private/monitoring/nagios-cli.cfg deleted file mode 100644 index 7bd30cb..0000000 --- a/modules/private/monitoring/nagios-cli.cfg +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | # -*- coding: utf-8; -*- | ||
2 | |||
3 | [cli] | ||
4 | history = /var/lib/naemon/nagios_cli_history | ||
5 | |||
6 | [ui] | ||
7 | color = 1 | ||
8 | prompt = naemon %s> | ||
9 | prompt_separator = " → " | ||
10 | |||
11 | [nagios] | ||
12 | log = /var/log/naemon | ||
13 | command_file = /run/naemon/naemon.cmd | ||
14 | log_file = %(log)s/naemon.log | ||
15 | object_cache_file = /var/lib/naemon/objects.cache | ||
16 | status_file = /var/lib/naemon/status.dat | ||
17 | |||
18 | [object] | ||
19 | host.status = | ||
20 | host_name | ||
21 | current_state | ||
22 | plugin_output | ||
23 | is_flapping | ||
24 | last_check | ||
25 | last_time_down | ||
26 | last_state_change | ||
27 | check_period | ||
28 | notification_period | ||
29 | current_attempt | ||
30 | max_attempts | ||
31 | service.status = | ||
32 | host_name | ||
33 | service_description | ||
34 | current_state | ||
35 | is_flapping | ||
36 | plugin_output | ||
37 | last_time_down | ||
38 | last_state_change | ||
39 | last_check | ||
40 | next_check | ||
41 | check_interval | ||
42 | check_latency | ||
43 | check_period | ||
44 | notification_period | ||
45 | current_attempt | ||
46 | max_attempts | ||
47 | |||
48 | [string] | ||
49 | level.ok = ↑ OK | ||
50 | level.warning = ! WARNING | ||
51 | level.critical = ↓ CRITICAL | ||
52 | level.unknown = ↕ UNKNOWN | ||
53 | |||
54 | [color] | ||
55 | error = bold_red | ||
56 | |||
57 | prompt = normal | ||
58 | prompt.object = bold | ||
59 | |||
60 | host.host_name = bold | ||
61 | host.plugin_output = bold | ||
62 | service.plugin_output = bold | ||
63 | |||
64 | level.ok = bold_green | ||
65 | level.warning = bold_yellow | ||
66 | level.critical = bold_red | ||
67 | level.unknown = bold_magenta | ||
68 | |||
diff --git a/modules/private/monitoring/objects_backup-2.nix b/modules/private/monitoring/objects_backup-2.nix deleted file mode 100644 index 28032a4..0000000 --- a/modules/private/monitoring/objects_backup-2.nix +++ /dev/null | |||
@@ -1,111 +0,0 @@ | |||
1 | { config, pkgs, lib, hostFQDN, emailCheck, ... }: | ||
2 | let | ||
3 | defaultPassiveInfo = { | ||
4 | filter = lib.attrsets.filterAttrs | ||
5 | (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); | ||
6 | use = "external-passive-service"; | ||
7 | freshness_threshold = "450"; | ||
8 | retry_interval = "1"; | ||
9 | servicegroups = "webstatus-resources"; | ||
10 | host_name = hostFQDN; | ||
11 | }; | ||
12 | in | ||
13 | { | ||
14 | activatedPlugins = [ "file_date" "mysql" "openldap" "redis" "emails" ]; | ||
15 | service = [ | ||
16 | (emailCheck "backup-2" hostFQDN // { | ||
17 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-email"; freshness_threshold = "1350"; }; | ||
18 | }) | ||
19 | { | ||
20 | passiveInfo = defaultPassiveInfo; | ||
21 | service_description = "Size on /backup2 partition"; | ||
22 | use = "local-service"; | ||
23 | check_command = ["check_local_disk" "10%" "5%" "/backup2"]; | ||
24 | } | ||
25 | { | ||
26 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-backup"; }; | ||
27 | service_description = "Last backup in /backup2/phare is not too old"; | ||
28 | use = "local-service"; | ||
29 | check_command = ["check_last_file_date" "/backup2/phare" "14" "backup"]; | ||
30 | } | ||
31 | { | ||
32 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-backup"; }; | ||
33 | service_description = "Last backup in /backup2/dilion is not too old"; | ||
34 | use = "local-service"; | ||
35 | check_command = ["check_last_file_date" "/backup2/dilion" "14" "backup"]; | ||
36 | } | ||
37 | { | ||
38 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-backup"; }; | ||
39 | service_description = "Last backup in /backup2/ulminfo is not too old"; | ||
40 | use = "local-service"; | ||
41 | check_command = ["check_last_file_date" "/backup2/ulminfo" "14" "backup"]; | ||
42 | } | ||
43 | { | ||
44 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases,webstatus-backup"; }; | ||
45 | service_description = "Last postgresql dump in /backup2/eldiron/postgresql_backup is not too old"; | ||
46 | use = "local-service"; | ||
47 | check_command = ["check_last_file_date" "/backup2/eldiron/postgresql_backup" "7" "postgres"]; | ||
48 | } | ||
49 | { | ||
50 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases"; }; | ||
51 | service_description = "Redis replication for eldiron is up to date"; | ||
52 | use = "local-service"; | ||
53 | check_command = ["check_redis_replication" "/run/redis_eldiron/redis.sock"]; | ||
54 | } | ||
55 | { | ||
56 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases,webstatus-backup"; }; | ||
57 | service_description = "Last redis dump in /backup2/eldiron/redis_backup is not too old"; | ||
58 | use = "local-service"; | ||
59 | check_command = ["check_last_file_date" "/backup2/eldiron/redis_backup" "7" "redis"]; | ||
60 | } | ||
61 | { | ||
62 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases"; }; | ||
63 | service_description = "Mysql replication for eldiron is up to date"; | ||
64 | use = "local-service"; | ||
65 | check_command = ["check_mysql_replication" "/run/mysqld_eldiron/mysqld.sock" config.secrets.fullPaths."mysql_replication/eldiron/client"]; | ||
66 | } | ||
67 | { | ||
68 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases,webstatus-backup"; }; | ||
69 | service_description = "Last mysql dump in /backup2/eldiron/mysql_backup is not too old"; | ||
70 | use = "local-service"; | ||
71 | check_command = ["check_last_file_date" "/backup2/eldiron/mysql_backup" "7" "mysql"]; | ||
72 | } | ||
73 | { | ||
74 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases"; }; | ||
75 | service_description = "Openldap replication for eldiron is up to date"; | ||
76 | use = "local-service"; | ||
77 | check_command = let | ||
78 | name = "eldiron"; | ||
79 | hcfg = config.myServices.databasesReplication.openldap.hosts.eldiron; | ||
80 | base = config.myServices.databasesReplication.openldap.base; | ||
81 | eldiron_schemas = pkgs.callPackage ../databases/openldap/eldiron_schemas.nix {}; | ||
82 | ldapConfig = pkgs.writeText "slapd.conf" '' | ||
83 | include ${pkgs.openldap}/etc/schema/core.schema | ||
84 | include ${pkgs.openldap}/etc/schema/cosine.schema | ||
85 | include ${pkgs.openldap}/etc/schema/inetorgperson.schema | ||
86 | include ${pkgs.openldap}/etc/schema/nis.schema | ||
87 | ${eldiron_schemas} | ||
88 | moduleload back_hdb | ||
89 | backend hdb | ||
90 | database hdb | ||
91 | |||
92 | suffix "${hcfg.base}" | ||
93 | directory ${base}/${name}/openldap | ||
94 | ''; | ||
95 | in [ | ||
96 | "check_openldap_replication" | ||
97 | hcfg.url | ||
98 | hcfg.dn | ||
99 | config.secrets.fullPaths."openldap_replication/eldiron/replication_password" | ||
100 | hcfg.base | ||
101 | ldapConfig | ||
102 | ]; | ||
103 | } | ||
104 | { | ||
105 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases,webstatus-backup"; }; | ||
106 | service_description = "Last openldap dump in /backup2/eldiron/openldap_backup is not too old"; | ||
107 | use = "local-service"; | ||
108 | check_command = ["check_last_file_date" "/backup2/eldiron/openldap_backup" "7" "openldap"]; | ||
109 | } | ||
110 | ]; | ||
111 | } | ||
diff --git a/modules/private/monitoring/objects_common.nix b/modules/private/monitoring/objects_common.nix deleted file mode 100644 index 7c9f642..0000000 --- a/modules/private/monitoring/objects_common.nix +++ /dev/null | |||
@@ -1,253 +0,0 @@ | |||
1 | { hostFQDN | ||
2 | , hostName | ||
3 | , interface ? "eth0" | ||
4 | , processWarn ? "250" | ||
5 | , processAlert ? "400" | ||
6 | , loadWarn ? "0.9" | ||
7 | , load5Warn ? loadWarn | ||
8 | , load15Warn ? load5Warn | ||
9 | , loadAlert ? "1.0" | ||
10 | , load5Alert ? loadAlert | ||
11 | , load15Alert ? load5Alert | ||
12 | , mdadm | ||
13 | , master | ||
14 | , lib | ||
15 | , mypluginsConfig | ||
16 | , ... | ||
17 | }: | ||
18 | let | ||
19 | defaultPassiveInfo = { | ||
20 | filter = lib.attrsets.filterAttrs | ||
21 | (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); | ||
22 | use = "external-passive-service"; | ||
23 | freshness_threshold = "450"; | ||
24 | retry_interval = "1"; | ||
25 | servicegroups = "webstatus-resources"; | ||
26 | host_name = hostFQDN; | ||
27 | }; | ||
28 | in | ||
29 | { | ||
30 | host = { | ||
31 | "${hostFQDN}" = { | ||
32 | alias = hostFQDN; | ||
33 | address = hostFQDN; | ||
34 | use = "linux-server"; | ||
35 | hostgroups = "webstatus-hosts"; | ||
36 | _webstatus_name = hostName; | ||
37 | _webstatus_vhost = "status.immae.eu"; | ||
38 | }; | ||
39 | }; | ||
40 | service = [ | ||
41 | { | ||
42 | passiveInfo = defaultPassiveInfo; | ||
43 | service_description = "Size on root partition"; | ||
44 | use = "local-service"; | ||
45 | check_command = ["check_local_disk" "20%" "10%" "/"]; | ||
46 | } | ||
47 | { | ||
48 | passiveInfo = defaultPassiveInfo; | ||
49 | service_description = "Total number of process"; | ||
50 | use = "local-service"; | ||
51 | check_command = [ | ||
52 | "check_local_procs" | ||
53 | processWarn | ||
54 | processAlert | ||
55 | "RSZDT" | ||
56 | ]; | ||
57 | } | ||
58 | { | ||
59 | passiveInfo = defaultPassiveInfo; | ||
60 | service_description = "Network bandwidth"; | ||
61 | use = "local-service"; | ||
62 | check_interval = "2"; | ||
63 | max_check_attempts = "20"; | ||
64 | retry_interval = "2"; | ||
65 | check_command = [ | ||
66 | "check_local_bandwidth" | ||
67 | interface | ||
68 | "20480" # kb/s | ||
69 | "51200" # kb/s | ||
70 | ]; | ||
71 | } | ||
72 | { | ||
73 | passiveInfo = defaultPassiveInfo; | ||
74 | service_description = "Average load"; | ||
75 | use = "local-service"; | ||
76 | check_command = [ | ||
77 | "check_local_load" | ||
78 | "${loadWarn},${load5Warn},${load15Warn}" | ||
79 | "${loadAlert},${load5Alert},${load15Alert}" | ||
80 | ]; | ||
81 | } | ||
82 | { | ||
83 | passiveInfo = defaultPassiveInfo; | ||
84 | service_description = "Swap usage"; | ||
85 | use = "local-service"; | ||
86 | check_command = ["check_local_swap" "20" "10"]; | ||
87 | } | ||
88 | { | ||
89 | passiveInfo = defaultPassiveInfo; | ||
90 | service_description = "Memory usage"; | ||
91 | use = "local-service"; | ||
92 | check_command = ["check_memory" "80" "90"]; | ||
93 | } | ||
94 | { | ||
95 | passiveInfo = defaultPassiveInfo; | ||
96 | service_description = "NTP is activated and working"; | ||
97 | use = "local-service"; | ||
98 | check_command = ["check_ntp"]; | ||
99 | } | ||
100 | { | ||
101 | passiveInfo = defaultPassiveInfo; | ||
102 | service_description = "No mdadm array is degraded"; | ||
103 | use = "local-service"; | ||
104 | check_command = [ | ||
105 | "check_command_output" | ||
106 | "${mdadm}/bin/mdadm --monitor --scan -1" | ||
107 | "^$" | ||
108 | "-s 0 -r root" | ||
109 | ]; | ||
110 | } | ||
111 | ]; | ||
112 | command = lib.foldr (v: o: o // (v.commands or {})) {} (builtins.attrValues mypluginsConfig) // { | ||
113 | check_local_disk = "$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$"; | ||
114 | check_local_procs = "$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$"; | ||
115 | check_local_load = "$USER1$/check_load -r -w $ARG1$ -c $ARG2$"; | ||
116 | check_local_swap = "$USER1$/check_swap -n ok -w $ARG1$ -c $ARG2$"; | ||
117 | check_ntp = "$USER1$/check_ntp_time -t 30 -q -H 0.arch.pool.ntp.org"; | ||
118 | check_mailq = "$USER1$/check_mailq -s -w 1 -c 2"; | ||
119 | check_smtp = "$USER1$/check_smtp -H $HOSTADDRESS$ -p 25 -S -D 21,15"; | ||
120 | |||
121 | check_host_alive = "$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5"; | ||
122 | check_ok = "$USER1$/check_dummy 0 \"Dummy OK\""; | ||
123 | check_critical = "$USER1$/check_dummy 2 \"Dummy CRITICAL\""; | ||
124 | }; | ||
125 | timeperiod = { | ||
126 | "24x7" = { | ||
127 | alias = "24 Hours A Day, 7 Days A Week"; | ||
128 | monday = "00:00-24:00"; | ||
129 | tuesday = "00:00-24:00"; | ||
130 | wednesday = "00:00-24:00"; | ||
131 | thursday = "00:00-24:00"; | ||
132 | friday = "00:00-24:00"; | ||
133 | saturday = "00:00-24:00"; | ||
134 | sunday = "00:00-24:00"; | ||
135 | }; | ||
136 | }; | ||
137 | servicegroup = { | ||
138 | webstatus-webapps = { alias = "Web applications"; }; | ||
139 | webstatus-websites = { alias = "Personal websites"; }; | ||
140 | webstatus-ssl = { alias = "SSL certificates"; }; | ||
141 | webstatus-dns = { alias = "DNS resolution"; }; | ||
142 | webstatus-remote-services = { alias = "Other remote services"; }; | ||
143 | webstatus-local-services = { alias = "Other local services"; }; | ||
144 | webstatus-email = { alias = "E-mail services"; }; | ||
145 | webstatus-resources = { alias = "Local resources"; }; | ||
146 | webstatus-databases = { alias = "Databases resources"; }; | ||
147 | webstatus-backup = { alias = "Backup resources"; }; | ||
148 | }; | ||
149 | hostgroup = { | ||
150 | webstatus-hosts = { alias = "Hosts"; }; | ||
151 | }; | ||
152 | contactgroup = { | ||
153 | admins = { alias = "Naemon Administrators"; }; | ||
154 | }; | ||
155 | templates = { | ||
156 | service = { | ||
157 | generic-service = { | ||
158 | active_checks_enabled = "1"; | ||
159 | check_freshness = "0"; | ||
160 | check_interval = "10"; | ||
161 | check_period = "24x7"; | ||
162 | contact_groups = "admins"; | ||
163 | event_handler_enabled = "1"; | ||
164 | flap_detection_enabled = "1"; | ||
165 | is_volatile = "0"; | ||
166 | max_check_attempts = "3"; | ||
167 | notification_interval = "60"; | ||
168 | notification_options = "w,u,c,r,f,s"; | ||
169 | notification_period = "24x7"; | ||
170 | notifications_enabled = if master then "1" else "0"; | ||
171 | obsess_over_service = "1"; | ||
172 | passive_checks_enabled = "1"; | ||
173 | process_perf_data = "1"; | ||
174 | retain_nonstatus_information = "1"; | ||
175 | retain_status_information = "1"; | ||
176 | retry_interval = "2"; | ||
177 | _webstatus_namespace = "immae"; | ||
178 | }; | ||
179 | local-service = { | ||
180 | use = "generic-service"; | ||
181 | host_name = hostFQDN; | ||
182 | check_interval = "5"; | ||
183 | max_check_attempts = "4"; | ||
184 | retry_interval = "1"; | ||
185 | servicegroups = "webstatus-resources"; | ||
186 | }; | ||
187 | external-service = { | ||
188 | use = "generic-service"; | ||
189 | check_interval = "5"; | ||
190 | max_check_attempts = "4"; | ||
191 | retry_interval = "1"; | ||
192 | }; | ||
193 | web-service = { | ||
194 | use = "generic-service"; | ||
195 | check_interval = "20"; | ||
196 | max_check_attempts = "2"; | ||
197 | retry_interval = "1"; | ||
198 | }; | ||
199 | external-web-service = { | ||
200 | use = "generic-service"; | ||
201 | check_interval = "20"; | ||
202 | max_check_attempts = "2"; | ||
203 | retry_interval = "1"; | ||
204 | }; | ||
205 | mail-service = { | ||
206 | use = "generic-service"; | ||
207 | check_interval = "15"; | ||
208 | max_check_attempts = "1"; | ||
209 | retry_interval = "1"; | ||
210 | }; | ||
211 | dns-service = { | ||
212 | use = "generic-service"; | ||
213 | check_interval = "120"; | ||
214 | notification_interval = "120"; | ||
215 | max_check_attempts = "5"; | ||
216 | retry_interval = "5"; | ||
217 | }; | ||
218 | }; | ||
219 | # No contact, we go through master | ||
220 | contact = { | ||
221 | generic-contact = { | ||
222 | host_notification_commands = "notify-host-by-email"; | ||
223 | host_notification_options = "d,u,r,f,s"; | ||
224 | host_notification_period = "24x7"; | ||
225 | service_notification_commands = "notify-service-by-email"; | ||
226 | service_notification_options = "w,u,c,r,f,s"; | ||
227 | service_notification_period = "24x7"; | ||
228 | }; | ||
229 | }; | ||
230 | host = { | ||
231 | generic-host = { | ||
232 | event_handler_enabled = "1"; | ||
233 | flap_detection_enabled = "1"; | ||
234 | notification_period = "24x7"; | ||
235 | notifications_enabled = "1"; | ||
236 | process_perf_data = "1"; | ||
237 | retain_nonstatus_information = "1"; | ||
238 | retain_status_information = "1"; | ||
239 | }; | ||
240 | linux-server = { | ||
241 | check_command = "check_host_alive"; | ||
242 | check_interval = "5"; | ||
243 | check_period = "24x7"; | ||
244 | contact_groups = "admins"; | ||
245 | max_check_attempts = "10"; | ||
246 | notification_interval = "120"; | ||
247 | notification_options = "d,u,r,f"; | ||
248 | retry_interval = "1"; | ||
249 | _webstatus_namespace = "immae"; | ||
250 | }; | ||
251 | }; | ||
252 | }; | ||
253 | } | ||
diff --git a/modules/private/monitoring/objects_dilion.nix b/modules/private/monitoring/objects_dilion.nix deleted file mode 100644 index 16b3c64..0000000 --- a/modules/private/monitoring/objects_dilion.nix +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | { lib, hostFQDN, emailCheck, ... }: | ||
2 | let | ||
3 | defaultPassiveInfo = { | ||
4 | filter = lib.attrsets.filterAttrs | ||
5 | (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); | ||
6 | use = "external-passive-service"; | ||
7 | freshness_threshold = "450"; | ||
8 | retry_interval = "1"; | ||
9 | servicegroups = "webstatus-resources"; | ||
10 | host_name = hostFQDN; | ||
11 | }; | ||
12 | zfs_snapshot = name: { | ||
13 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-resources"; }; | ||
14 | service_description = "ZFS snapshot ${name} happened not too long ago"; | ||
15 | use = "local-service"; | ||
16 | check_command = ["check_zfs_snapshot" name]; | ||
17 | }; | ||
18 | in | ||
19 | { | ||
20 | activatedPlugins = [ "zfs" ]; | ||
21 | service = [ | ||
22 | { | ||
23 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-resources"; }; | ||
24 | service_description = "No ZFS pool is degraded"; | ||
25 | use = "local-service"; | ||
26 | check_command = ["check_zfs"]; | ||
27 | } | ||
28 | (zfs_snapshot "zpool/backup/eldiron/zpool/root") | ||
29 | (zfs_snapshot "zpool/backup/eldiron/zpool/root/etc") | ||
30 | (zfs_snapshot "zpool/backup/eldiron/zpool/root/var") | ||
31 | ]; | ||
32 | } | ||
diff --git a/modules/private/monitoring/objects_eban.nix b/modules/private/monitoring/objects_eban.nix deleted file mode 100644 index df54f6a..0000000 --- a/modules/private/monitoring/objects_eban.nix +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | { ... }: | ||
2 | let | ||
3 | serviceTemplate = rest: { | ||
4 | host_name = "eban.bzh"; | ||
5 | use = "external-web-service"; | ||
6 | contacts = "eban"; | ||
7 | contact_groups = "null"; | ||
8 | check_interval = "15"; | ||
9 | |||
10 | servicegroups = "webstatus-resources"; | ||
11 | _webstatus_namespace = "eban"; | ||
12 | } // rest; | ||
13 | in | ||
14 | { | ||
15 | activatedPlugins = [ "http" ]; | ||
16 | contact = { | ||
17 | eban = { | ||
18 | use = "generic-contact"; | ||
19 | host_notification_commands = "notify-host-eban-url"; | ||
20 | service_notification_commands = "notify-service-eban-url"; | ||
21 | }; | ||
22 | }; | ||
23 | host = { | ||
24 | "eban.bzh" = { | ||
25 | alias = "eban.bzh"; | ||
26 | address = "eban.bzh"; | ||
27 | use = "linux-server"; | ||
28 | hostgroups = "webstatus-hosts"; | ||
29 | contacts = "eban"; | ||
30 | contact_groups = "null"; | ||
31 | _webstatus_name = "Eban"; | ||
32 | _webstatus_vhost = "status.eban.bzh"; | ||
33 | _webstatus_namespace = "eban"; | ||
34 | }; | ||
35 | }; | ||
36 | service = [ | ||
37 | (serviceTemplate { | ||
38 | service_description = "Eban website is up and running"; | ||
39 | check_command = ["check_https" "eban.bzh" "/" "<title>"]; | ||
40 | _webstatus_name = "Main Website"; | ||
41 | _webstatus_url = "https://eban.bzh/"; | ||
42 | }) | ||
43 | (serviceTemplate { | ||
44 | service_description = "Eban blog is up and running"; | ||
45 | check_command = ["check_https" "blog.eban.bzh" "/" "<title>"]; | ||
46 | _webstatus_name = "Blog"; | ||
47 | _webstatus_url = "https://blog.eban.bzh/"; | ||
48 | }) | ||
49 | (serviceTemplate { | ||
50 | service_description = "Eban gitea is up and running"; | ||
51 | check_command = ["check_https" "git.eban.bzh" "/" "<title>"]; | ||
52 | _webstatus_name = "Git"; | ||
53 | _webstatus_url = "https://git.eban.bzh/"; | ||
54 | }) | ||
55 | (serviceTemplate { | ||
56 | service_description = "I Learned website is up and running"; | ||
57 | check_command = [ "check_https" "ilearned.eu.org" "/" "<title" ]; | ||
58 | |||
59 | _webstatus_name = "I Learned website"; | ||
60 | _webstatus_url = "https://ilearned.eu.org/"; | ||
61 | }) | ||
62 | (serviceTemplate { | ||
63 | service_description = "I Learned gitea is up and running"; | ||
64 | check_command = [ "check_https" "git.ilearned.eu.org" "/" "<title" ]; | ||
65 | |||
66 | _webstatus_name = "I Learned Git"; | ||
67 | _webstatus_url = "https://git.ilearned.eu.org/"; | ||
68 | }) | ||
69 | ]; | ||
70 | } | ||
diff --git a/modules/private/monitoring/objects_eldiron.nix b/modules/private/monitoring/objects_eldiron.nix deleted file mode 100644 index 75e7b0e..0000000 --- a/modules/private/monitoring/objects_eldiron.nix +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | { lib, hostFQDN, emailCheck, ... }: | ||
2 | let | ||
3 | defaultPassiveInfo = { | ||
4 | filter = lib.attrsets.filterAttrs | ||
5 | (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); | ||
6 | use = "external-passive-service"; | ||
7 | freshness_threshold = "450"; | ||
8 | retry_interval = "1"; | ||
9 | servicegroups = "webstatus-resources"; | ||
10 | host_name = hostFQDN; | ||
11 | }; | ||
12 | in | ||
13 | { | ||
14 | activatedPlugins = [ "emails" "postgresql" "zfs" ]; | ||
15 | service = [ | ||
16 | { | ||
17 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-databases"; }; | ||
18 | service_description = "Postgresql replication for backup-2 is up to date"; | ||
19 | use = "local-service"; | ||
20 | check_command = ["check_postgresql_replication" "backup-2" "/run/postgresql" "5432"]; | ||
21 | } | ||
22 | { | ||
23 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-resources"; }; | ||
24 | service_description = "No ZFS pool is degraded"; | ||
25 | use = "local-service"; | ||
26 | check_command = ["check_zfs"]; | ||
27 | } | ||
28 | { | ||
29 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-email"; }; | ||
30 | service_description = "mailq is empty"; | ||
31 | use = "local-service"; | ||
32 | check_command = ["check_mailq"]; | ||
33 | } | ||
34 | (emailCheck "eldiron" hostFQDN // { | ||
35 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-email"; freshness_threshold = "1350"; }; | ||
36 | }) | ||
37 | ]; | ||
38 | } | ||
diff --git a/modules/private/monitoring/objects_master.nix b/modules/private/monitoring/objects_master.nix deleted file mode 100644 index 30bfe73..0000000 --- a/modules/private/monitoring/objects_master.nix +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | { config, ... }: | ||
2 | { | ||
3 | contact = { | ||
4 | immae = config.myEnv.monitoring.contacts.immae // { | ||
5 | use = "generic-contact"; | ||
6 | contactgroups = "admins"; | ||
7 | host_notification_commands = "notify-host-by-email,notify-by-slack!$USER206$!$USER207$"; | ||
8 | service_notification_commands = "notify-service-by-email,notify-by-slack!$USER206$!$USER207$"; | ||
9 | }; | ||
10 | }; | ||
11 | command = { | ||
12 | check_passive = "$USER1$/check_dummy 3 \"Service result are stale\""; | ||
13 | }; | ||
14 | templates = { | ||
15 | service = { | ||
16 | external-passive-service = { | ||
17 | active_checks_enabled = "0"; | ||
18 | check_freshness = "1"; | ||
19 | check_period = "24x7"; | ||
20 | contact_groups = "admins"; | ||
21 | event_handler_enabled = "1"; | ||
22 | flap_detection_enabled = "1"; | ||
23 | is_volatile = "0"; | ||
24 | max_check_attempts = "3"; | ||
25 | notification_interval = "60"; | ||
26 | notification_options = "w,u,c,r,f,s"; | ||
27 | notification_period = "24x7"; | ||
28 | notifications_enabled = "1"; | ||
29 | passive_checks_enabled = "1"; | ||
30 | process_perf_data = "1"; | ||
31 | retain_nonstatus_information = "1"; | ||
32 | retain_status_information = "1"; | ||
33 | retry_interval = "2"; | ||
34 | check_command = "check_passive"; | ||
35 | _webstatus_namespace = "immae"; | ||
36 | }; | ||
37 | }; | ||
38 | }; | ||
39 | } | ||
diff --git a/modules/private/monitoring/objects_monitoring-1.nix b/modules/private/monitoring/objects_monitoring-1.nix deleted file mode 100644 index 563be16..0000000 --- a/modules/private/monitoring/objects_monitoring-1.nix +++ /dev/null | |||
@@ -1,714 +0,0 @@ | |||
1 | { config, pkgs, nodes, hostFQDN, emailCheck, lib, ... }: | ||
2 | { | ||
3 | activatedPlugins = [ "dns" "ftp" "git" "http" "imap" "ovh" "tcp" ]; | ||
4 | host = { | ||
5 | # Dummy host for testing | ||
6 | # "dummy-host" = { | ||
7 | # alias = "dummy.host"; | ||
8 | # address = "dummy.host"; | ||
9 | # use = "linux-server"; | ||
10 | # check_command = "check_ok"; | ||
11 | # }; | ||
12 | }; | ||
13 | service = [ | ||
14 | # Dummy service for testing | ||
15 | # { | ||
16 | # service_description = "Dummy failing test"; | ||
17 | # host_name = "dummy-host"; | ||
18 | # use = "local-service"; | ||
19 | # check_interval = "0.3"; | ||
20 | # max_check_attempts = "1"; | ||
21 | # flap_detection_enabled = "0"; | ||
22 | # notification_interval = "0.1"; | ||
23 | # check_command = "check_critical"; | ||
24 | # } | ||
25 | |||
26 | (emailCheck "monitoring-1" hostFQDN) | ||
27 | |||
28 | { | ||
29 | service_description = "ftp has access to database for authentication"; | ||
30 | host_name = "eldiron.immae.eu"; | ||
31 | use = "external-service"; | ||
32 | check_command = "check_ftp_database"; | ||
33 | |||
34 | servicegroups = "webstatus-remote-services"; | ||
35 | _webstatus_name = "FTP"; | ||
36 | _webstatus_url = "ftp.immae.eu"; | ||
37 | } | ||
38 | |||
39 | { | ||
40 | service_description = "gitolite is working"; | ||
41 | host_name = "eldiron.immae.eu"; | ||
42 | use = "external-web-service"; | ||
43 | check_command = "check_git"; | ||
44 | |||
45 | servicegroups = "webstatus-remote-services"; | ||
46 | _webstatus_name = "Git"; | ||
47 | _webstatus_url = "git.immae.eu"; | ||
48 | } | ||
49 | |||
50 | { | ||
51 | service_description = "postfix SSL is up to date"; | ||
52 | host_name = "eldiron.immae.eu"; | ||
53 | use = "external-service"; | ||
54 | check_command = "check_smtp"; | ||
55 | |||
56 | servicegroups = "webstatus-ssl"; | ||
57 | _webstatus_name = "SMTP"; | ||
58 | _webstatus_url = "smtp.immae.eu"; | ||
59 | } | ||
60 | |||
61 | { | ||
62 | service_description = "imap SSL is up to date"; | ||
63 | host_name = "eldiron.immae.eu"; | ||
64 | use = "external-service"; | ||
65 | check_command = ["check_tcp_ssl" "993"]; | ||
66 | |||
67 | servicegroups = "webstatus-ssl"; | ||
68 | _webstatus_name = "IMAP"; | ||
69 | _webstatus_url = "imap.immae.eu"; | ||
70 | } | ||
71 | |||
72 | { | ||
73 | service_description = "imap connection works"; | ||
74 | host_name = "eldiron.immae.eu"; | ||
75 | use = "external-service"; | ||
76 | check_command = "check_imap_connection"; | ||
77 | |||
78 | servicegroups = "webstatus-remote-services,webstatus-email"; | ||
79 | _webstatus_name = "IMAP"; | ||
80 | _webstatus_url = "imap.immae.eu"; | ||
81 | } | ||
82 | |||
83 | # Third party services | ||
84 | { | ||
85 | service_description = "OVH account has enough sms"; | ||
86 | host_name = "eldiron.immae.eu"; | ||
87 | use = "external-service"; | ||
88 | check_command = "check_ovh_sms"; | ||
89 | |||
90 | check_interval = "120"; | ||
91 | notification_interval = "1440"; | ||
92 | } | ||
93 | |||
94 | # Backup services | ||
95 | # { | ||
96 | # service_description = "eriomem backup is up and not full"; | ||
97 | # host_name = "eldiron.immae.eu"; | ||
98 | # use = "external-service"; | ||
99 | # check_command = "check_backup_eriomem"; | ||
100 | |||
101 | # check_interval = "120"; | ||
102 | # notification_interval = "1440"; | ||
103 | |||
104 | # servicegroups = "webstatus-backup"; | ||
105 | # } | ||
106 | { | ||
107 | service_description = "ovh backup is up and not full"; | ||
108 | host_name = "eldiron.immae.eu"; | ||
109 | use = "external-service"; | ||
110 | check_command = "check_ok"; | ||
111 | |||
112 | check_interval = "120"; | ||
113 | notification_interval = "1440"; | ||
114 | |||
115 | servicegroups = "webstatus-backup"; | ||
116 | } | ||
117 | |||
118 | # DNS services | ||
119 | { | ||
120 | service_description = "eldiron dns is active and authoritative for aten.pro"; | ||
121 | host_name = "eldiron.immae.eu"; | ||
122 | use = "dns-service"; | ||
123 | check_command = ["check_dns" "aten.pro" "-A"]; | ||
124 | |||
125 | servicegroups = "webstatus-dns"; | ||
126 | _webstatus_name = "aten.pro"; | ||
127 | } | ||
128 | |||
129 | { | ||
130 | service_description = "eldiron dns is active and authoritative for bouya.org"; | ||
131 | host_name = "eldiron.immae.eu"; | ||
132 | use = "dns-service"; | ||
133 | check_command = ["check_dns" "bouya.org" "-A"]; | ||
134 | |||
135 | servicegroups = "webstatus-dns"; | ||
136 | _webstatus_name = "bouya.org"; | ||
137 | } | ||
138 | |||
139 | { | ||
140 | service_description = "eldiron dns is active and authoritative for filedesreves.fr"; | ||
141 | host_name = "eldiron.immae.eu"; | ||
142 | use = "dns-service"; | ||
143 | check_command = ["check_dns" "filedesreves.fr" "-A"]; | ||
144 | |||
145 | servicegroups = "webstatus-dns"; | ||
146 | _webstatus_name = "filedesreves.fr"; | ||
147 | } | ||
148 | |||
149 | { | ||
150 | service_description = "eldiron dns is active and authoritative for ludivinecassal.com"; | ||
151 | host_name = "eldiron.immae.eu"; | ||
152 | use = "dns-service"; | ||
153 | check_command = ["check_dns" "ludivinecassal.com" "-A"]; | ||
154 | |||
155 | servicegroups = "webstatus-dns"; | ||
156 | _webstatus_name = "ludivinecassal.com"; | ||
157 | } | ||
158 | |||
159 | { | ||
160 | service_description = "eldiron dns is active and authoritative for icommandeur.org"; | ||
161 | host_name = "eldiron.immae.eu"; | ||
162 | use = "dns-service"; | ||
163 | check_command = ["check_dns" "icommandeur.org" "-A"]; | ||
164 | |||
165 | servicegroups = "webstatus-dns"; | ||
166 | _webstatus_name = "icommandeur.org"; | ||
167 | } | ||
168 | |||
169 | { | ||
170 | service_description = "eldiron dns is active and authoritative for immae.eu"; | ||
171 | host_name = "eldiron.immae.eu"; | ||
172 | use = "dns-service"; | ||
173 | check_command = ["check_dns" "immae.eu" "-A"]; | ||
174 | |||
175 | servicegroups = "webstatus-dns"; | ||
176 | _webstatus_name = "immae.eu"; | ||
177 | } | ||
178 | |||
179 | { | ||
180 | service_description = "eldiron dns is active and authoritative for immae.fr"; | ||
181 | host_name = "eldiron.immae.eu"; | ||
182 | use = "dns-service"; | ||
183 | check_command = ["check_dns" "immae.fr" "-A"]; | ||
184 | |||
185 | servicegroups = "webstatus-dns"; | ||
186 | _webstatus_name = "immae.fr"; | ||
187 | } | ||
188 | |||
189 | { | ||
190 | service_description = "eldiron dns is active and authoritative for piedsjaloux.fr"; | ||
191 | host_name = "eldiron.immae.eu"; | ||
192 | use = "dns-service"; | ||
193 | check_command = ["check_dns" "piedsjaloux.fr" "-A"]; | ||
194 | |||
195 | servicegroups = "webstatus-dns"; | ||
196 | _webstatus_name = "piedsjaloux.fr"; | ||
197 | } | ||
198 | |||
199 | { | ||
200 | service_description = "eldiron dns is active and authoritative for saison-photo.org"; | ||
201 | host_name = "eldiron.immae.eu"; | ||
202 | use = "dns-service"; | ||
203 | check_command = ["check_dns" "saison-photo.org" "-A"]; | ||
204 | |||
205 | servicegroups = "webstatus-dns"; | ||
206 | _webstatus_name = "saison-photo.org"; | ||
207 | } | ||
208 | |||
209 | { | ||
210 | service_description = "eldiron dns is active and authoritative for tellesflorian.com"; | ||
211 | host_name = "eldiron.immae.eu"; | ||
212 | use = "dns-service"; | ||
213 | check_command = ["check_dns" "tellesflorian.com" "-A"]; | ||
214 | |||
215 | servicegroups = "webstatus-dns"; | ||
216 | _webstatus_name = "tellesflorian.com"; | ||
217 | } | ||
218 | |||
219 | { | ||
220 | service_description = "eldiron dns is active and authoritative for capitaines.fr"; | ||
221 | host_name = "eldiron.immae.eu"; | ||
222 | use = "dns-service"; | ||
223 | check_command = ["check_dns" "capitaines.fr" "-A"]; | ||
224 | |||
225 | servicegroups = "webstatus-dns"; | ||
226 | _webstatus_name = "capitaines.fr"; | ||
227 | } | ||
228 | |||
229 | { | ||
230 | service_description = "cloudns dns is active and authoritative for aten.pro"; | ||
231 | host_name = "eldiron.immae.eu"; | ||
232 | use = "dns-service"; | ||
233 | check_command = ["check_external_dns" "pns1.cloudns.net" "aten.pro" "-A"]; | ||
234 | |||
235 | servicegroups = "webstatus-dns"; | ||
236 | _webstatus_name = "aten.pro (Secondary DNS ClouDNS)"; | ||
237 | } | ||
238 | |||
239 | { | ||
240 | service_description = "cloudns dns is active and authoritative for bouya.org"; | ||
241 | host_name = "eldiron.immae.eu"; | ||
242 | use = "dns-service"; | ||
243 | check_command = ["check_external_dns" "pns1.cloudns.net" "bouya.org" "-A"]; | ||
244 | |||
245 | servicegroups = "webstatus-dns"; | ||
246 | _webstatus_name = "bouya.org (Secondary DNS ClouDNS)"; | ||
247 | } | ||
248 | |||
249 | { | ||
250 | service_description = "cloudns dns is active and authoritative for filedesreves.fr"; | ||
251 | host_name = "eldiron.immae.eu"; | ||
252 | use = "dns-service"; | ||
253 | check_command = ["check_external_dns" "pns1.cloudns.net" "filedesreves.fr" "-A"]; | ||
254 | |||
255 | servicegroups = "webstatus-dns"; | ||
256 | _webstatus_name = "filedesreves.fr (Secondary DNS ClouDNS)"; | ||
257 | } | ||
258 | |||
259 | { | ||
260 | service_description = "cloudns dns is active and authoritative for ludivinecassal.com"; | ||
261 | host_name = "eldiron.immae.eu"; | ||
262 | use = "dns-service"; | ||
263 | check_command = ["check_external_dns" "pns1.cloudns.net" "ludivinecassal.com" "-A"]; | ||
264 | |||
265 | servicegroups = "webstatus-dns"; | ||
266 | _webstatus_name = "ludivinecassal.com (Secondary DNS ClouDNS)"; | ||
267 | } | ||
268 | |||
269 | { | ||
270 | service_description = "cloudns dns is active and authoritative for icommandeur.org"; | ||
271 | host_name = "eldiron.immae.eu"; | ||
272 | use = "dns-service"; | ||
273 | check_command = ["check_external_dns" "pns1.cloudns.net" "icommandeur.org" "-A"]; | ||
274 | |||
275 | servicegroups = "webstatus-dns"; | ||
276 | _webstatus_name = "icommandeur.org (Secondary DNS ClouDNS)"; | ||
277 | } | ||
278 | |||
279 | { | ||
280 | service_description = "cloudns dns is active and authoritative for immae.eu"; | ||
281 | host_name = "eldiron.immae.eu"; | ||
282 | use = "dns-service"; | ||
283 | check_command = ["check_external_dns" "pns1.cloudns.net" "immae.eu" "-A"]; | ||
284 | |||
285 | servicegroups = "webstatus-dns"; | ||
286 | _webstatus_name = "immae.eu (Secondary DNS ClouDNS)"; | ||
287 | } | ||
288 | |||
289 | { | ||
290 | service_description = "cloudns dns is active and authoritative for immae.fr"; | ||
291 | host_name = "eldiron.immae.eu"; | ||
292 | use = "dns-service"; | ||
293 | check_command = ["check_external_dns" "pns1.cloudns.net" "immae.fr" "-A"]; | ||
294 | |||
295 | servicegroups = "webstatus-dns"; | ||
296 | _webstatus_name = "immae.fr (Secondary DNS ClouDNS)"; | ||
297 | } | ||
298 | |||
299 | { | ||
300 | service_description = "cloudns dns is active and authoritative for piedsjaloux.fr"; | ||
301 | host_name = "eldiron.immae.eu"; | ||
302 | use = "dns-service"; | ||
303 | check_command = ["check_external_dns" "pns1.cloudns.net" "piedsjaloux.fr" "-A"]; | ||
304 | |||
305 | servicegroups = "webstatus-dns"; | ||
306 | _webstatus_name = "piedsjaloux.fr (Secondary DNS ClouDNS)"; | ||
307 | } | ||
308 | |||
309 | { | ||
310 | service_description = "cloudns dns is active and authoritative for tellesflorian.com"; | ||
311 | host_name = "eldiron.immae.eu"; | ||
312 | use = "dns-service"; | ||
313 | check_command = ["check_external_dns" "pns1.cloudns.net" "tellesflorian.com" "-A"]; | ||
314 | |||
315 | servicegroups = "webstatus-dns"; | ||
316 | _webstatus_name = "tellesflorian.com (Secondary DNS ClouDNS)"; | ||
317 | } | ||
318 | |||
319 | { | ||
320 | service_description = "cloudns dns is active and authoritative for saison-photo.org"; | ||
321 | host_name = "eldiron.immae.eu"; | ||
322 | use = "dns-service"; | ||
323 | check_command = ["check_external_dns" "pns1.cloudns.net" "saison-photo.org" "-A"]; | ||
324 | |||
325 | servicegroups = "webstatus-dns"; | ||
326 | _webstatus_name = "saison-photo.org (Secondary DNS ClouDNS)"; | ||
327 | } | ||
328 | |||
329 | #### Web scenarios | ||
330 | { | ||
331 | service_description = "blog website is running on immae.eu"; | ||
332 | host_name = "eldiron.immae.eu"; | ||
333 | use = "external-web-service"; | ||
334 | check_command = ["check_https" "www.immae.eu" "/blog/" "egrep -ri TODO /etc"]; | ||
335 | |||
336 | servicegroups = "webstatus-websites"; | ||
337 | _webstatus_name = "Immae’s Blog"; | ||
338 | _webstatus_url = "https://www.immae.eu/blog"; | ||
339 | } | ||
340 | |||
341 | { | ||
342 | service_description = "owncloud website is running on cloud.immae.eu"; | ||
343 | host_name = "eldiron.immae.eu"; | ||
344 | use = "external-web-service"; | ||
345 | check_command = ["check_https" "cloud.immae.eu" "/" "a safe home for all your data"]; | ||
346 | |||
347 | servicegroups = "webstatus-webapps"; | ||
348 | _webstatus_name = "Nextcloud"; | ||
349 | _webstatus_url = "https://cloud.immae.eu"; | ||
350 | } | ||
351 | |||
352 | { | ||
353 | service_description = "nextcloud website is running on nextcloud.4c.salle-s.org"; | ||
354 | host_name = "quatresaisons.immae.eu"; | ||
355 | use = "external-web-service"; | ||
356 | check_command = ["check_https" "nextcloud.4c.salle-s.org" "/" "a safe home for all your data"]; | ||
357 | |||
358 | servicegroups = "webstatus-webapps"; | ||
359 | _webstatus_name = "Nextcloud"; | ||
360 | _webstatus_url = "https://nextcloud.4c.salle-s.org"; | ||
361 | } | ||
362 | |||
363 | { | ||
364 | service_description = "davical website is running on dav.immae.eu"; | ||
365 | host_name = "eldiron.immae.eu"; | ||
366 | use = "external-web-service"; | ||
367 | check_command = ["check_https" "dav.immae.eu" "/davical/" "Log On Please"]; | ||
368 | |||
369 | servicegroups = "webstatus-webapps"; | ||
370 | _webstatus_name = "Davical"; | ||
371 | _webstatus_url = "https://dav.immae.eu/davical"; | ||
372 | } | ||
373 | |||
374 | { | ||
375 | service_description = "adminer website is running on tools.immae.eu"; | ||
376 | host_name = "eldiron.immae.eu"; | ||
377 | use = "external-web-service"; | ||
378 | check_command = ["check_https_auth" "tools.immae.eu" "/adminer/" "www.adminer.org"]; | ||
379 | |||
380 | servicegroups = "webstatus-webapps"; | ||
381 | _webstatus_name = "Adminer"; | ||
382 | _webstatus_url = "https://tools.immae.eu/adminer/"; | ||
383 | } | ||
384 | |||
385 | { | ||
386 | service_description = "ttrss website is running on tools.immae.eu"; | ||
387 | host_name = "eldiron.immae.eu"; | ||
388 | use = "external-web-service"; | ||
389 | check_command = ["check_https" "tools.immae.eu" "/ttrss/" "<title>Tiny Tiny RSS"]; | ||
390 | |||
391 | servicegroups = "webstatus-webapps"; | ||
392 | _webstatus_name = "TT-RSS"; | ||
393 | _webstatus_url = "https://tools.immae.eu/ttrss/"; | ||
394 | } | ||
395 | |||
396 | { | ||
397 | service_description = "mpd website is running on tools.immae.eu"; | ||
398 | host_name = "eldiron.immae.eu"; | ||
399 | use = "external-web-service"; | ||
400 | check_command = ["check_https_auth" "tools.immae.eu" "/mpd/" "<title>ympd"]; | ||
401 | |||
402 | servicegroups = "webstatus-webapps"; | ||
403 | _webstatus_name = "MPD (YMPD)"; | ||
404 | _webstatus_url = "https://tools.immae.eu/mpd/"; | ||
405 | } | ||
406 | |||
407 | { | ||
408 | service_description = "rompr mpd website is running on tools.immae.eu"; | ||
409 | host_name = "eldiron.immae.eu"; | ||
410 | use = "external-web-service"; | ||
411 | check_command = ["check_https_auth" "tools.immae.eu" "/rompr/" "<title>RompЯ"]; | ||
412 | |||
413 | servicegroups = "webstatus-webapps"; | ||
414 | _webstatus_name = "MPD (ROMPR)"; | ||
415 | _webstatus_url = "https://tools.immae.eu/rompr/"; | ||
416 | } | ||
417 | |||
418 | { | ||
419 | service_description = "wallabag website is running on tools.immae.eu"; | ||
420 | host_name = "eldiron.immae.eu"; | ||
421 | use = "external-web-service"; | ||
422 | check_command = ["check_https" "tools.immae.eu" "/wallabag/" "<title>Bienvenue sur wallabag"]; | ||
423 | |||
424 | servicegroups = "webstatus-webapps"; | ||
425 | _webstatus_name = "Wallabag"; | ||
426 | _webstatus_url = "https://tools.immae.eu/wallabag/"; | ||
427 | } | ||
428 | |||
429 | { | ||
430 | service_description = "yourl website is running on tools.immae.eu"; | ||
431 | host_name = "eldiron.immae.eu"; | ||
432 | use = "external-web-service"; | ||
433 | check_command = ["check_https" "tools.immae.eu" "/url/admin/" "<title>YOURLS"]; | ||
434 | |||
435 | servicegroups = "webstatus-webapps"; | ||
436 | _webstatus_name = "YOURLS"; | ||
437 | _webstatus_url = "https://tools.immae.eu/url/admin/"; | ||
438 | } | ||
439 | |||
440 | { | ||
441 | service_description = "roundcube website is running on mail.immae.eu"; | ||
442 | host_name = "eldiron.immae.eu"; | ||
443 | use = "external-web-service"; | ||
444 | check_command = ["check_https" "mail.immae.eu" "/roundcube/" "<title>Roundcube"]; | ||
445 | |||
446 | servicegroups = "webstatus-webapps,webstatus-email"; | ||
447 | _webstatus_name = "Roundcube"; | ||
448 | _webstatus_url = "https://mail.immae.eu/roundcube/"; | ||
449 | } | ||
450 | |||
451 | { | ||
452 | service_description = "dokuwiki website is running on tools.immae.eu"; | ||
453 | host_name = "eldiron.immae.eu"; | ||
454 | use = "external-web-service"; | ||
455 | check_command = ["check_https" "tools.immae.eu" "/dokuwiki/" "<title>start"]; | ||
456 | |||
457 | servicegroups = "webstatus-webapps"; | ||
458 | _webstatus_name = "Dokuwiki"; | ||
459 | _webstatus_url = "https://tools.immae.eu/dokuwiki/"; | ||
460 | } | ||
461 | |||
462 | { | ||
463 | service_description = "shaarli website is running on tools.immae.eu"; | ||
464 | host_name = "eldiron.immae.eu"; | ||
465 | use = "external-web-service"; | ||
466 | check_command = ["check_https" "tools.immae.eu" "/Shaarli/immae" "<title>Immae"]; | ||
467 | |||
468 | servicegroups = "webstatus-webapps"; | ||
469 | _webstatus_name = "Shaarli"; | ||
470 | _webstatus_url = "https://tools.immae.eu/Shaarli/"; | ||
471 | } | ||
472 | |||
473 | { | ||
474 | service_description = "ldap website is running on tools.immae.eu"; | ||
475 | host_name = "eldiron.immae.eu"; | ||
476 | use = "external-web-service"; | ||
477 | check_command = ["check_https" "tools.immae.eu" "/ldap/" "<title>phpLDAPadmin"]; | ||
478 | |||
479 | servicegroups = "webstatus-webapps"; | ||
480 | _webstatus_name = "LDAP"; | ||
481 | _webstatus_url = "https://tools.immae.eu/ldap/"; | ||
482 | } | ||
483 | |||
484 | { | ||
485 | service_description = "gitweb website is running on git.immae.eu"; | ||
486 | host_name = "eldiron.immae.eu"; | ||
487 | use = "external-web-service"; | ||
488 | check_command = ["check_https" "git.immae.eu" "/cgit" "<title>Immae’s git"]; | ||
489 | |||
490 | servicegroups = "webstatus-webapps"; | ||
491 | _webstatus_name = "Git"; | ||
492 | _webstatus_url = "https://git.immae.eu/"; | ||
493 | } | ||
494 | |||
495 | { | ||
496 | service_description = "mantisbt website is running on git.immae.eu"; | ||
497 | host_name = "eldiron.immae.eu"; | ||
498 | use = "external-web-service"; | ||
499 | check_command = ["check_https" "git.immae.eu" "/mantisbt/" "<title>My View - MantisBT"]; | ||
500 | |||
501 | servicegroups = "webstatus-webapps"; | ||
502 | _webstatus_name = "Mantisbt"; | ||
503 | _webstatus_url = "https://git.immae.eu/mantisbt"; | ||
504 | } | ||
505 | |||
506 | { | ||
507 | service_description = "diaspora website is running on diaspora.immae.eu"; | ||
508 | host_name = "eldiron.immae.eu"; | ||
509 | use = "external-web-service"; | ||
510 | check_command = ["check_https" "diaspora.immae.eu" "/" "is the online social world where you are in control"]; | ||
511 | |||
512 | servicegroups = "webstatus-webapps"; | ||
513 | _webstatus_name = "Diaspora"; | ||
514 | _webstatus_url = "https://diaspora.immae.eu/"; | ||
515 | } | ||
516 | |||
517 | { | ||
518 | service_description = "peertube website is running on peertube.immae.eu"; | ||
519 | host_name = "eldiron.immae.eu"; | ||
520 | use = "external-web-service"; | ||
521 | check_command = ["check_https" "peertube.immae.eu" "/" "<title>Immae’s PeerTube"]; | ||
522 | |||
523 | servicegroups = "webstatus-webapps"; | ||
524 | _webstatus_name = "Peertube"; | ||
525 | _webstatus_url = "https://peertube.immae.eu/"; | ||
526 | } | ||
527 | |||
528 | { | ||
529 | service_description = "etherpad website is running on ether.immae.eu"; | ||
530 | host_name = "eldiron.immae.eu"; | ||
531 | use = "external-web-service"; | ||
532 | check_command = ["check_https" "ether.immae.eu" "/" "<title>Etherpad"]; | ||
533 | |||
534 | servicegroups = "webstatus-webapps"; | ||
535 | _webstatus_name = "Etherpad"; | ||
536 | _webstatus_url = "https://ether.immae.eu/"; | ||
537 | } | ||
538 | |||
539 | { | ||
540 | service_description = "mediagoblin website is running on mgoblin.immae.eu"; | ||
541 | host_name = "eldiron.immae.eu"; | ||
542 | use = "external-web-service"; | ||
543 | check_command = ["check_https" "mgoblin.immae.eu" "/" "<title>GNU MediaGoblin"]; | ||
544 | |||
545 | servicegroups = "webstatus-webapps"; | ||
546 | _webstatus_name = "Mediagoblin"; | ||
547 | _webstatus_url = "https://mgoblin.immae.eu/"; | ||
548 | } | ||
549 | |||
550 | { | ||
551 | service_description = "mastodon website is running on mastodon.immae.eu"; | ||
552 | host_name = "eldiron.immae.eu"; | ||
553 | use = "external-web-service"; | ||
554 | check_command = ["check_https" "mastodon.immae.eu" "/" "Mastodon</title>"]; | ||
555 | |||
556 | servicegroups = "webstatus-webapps"; | ||
557 | _webstatus_name = "Mastodon"; | ||
558 | _webstatus_url = "https://mastodon.immae.eu/"; | ||
559 | } | ||
560 | |||
561 | # Other web pages | ||
562 | { | ||
563 | service_description = "Jerome website is running on naturaloutil.immae.eu"; | ||
564 | host_name = "eldiron.immae.eu"; | ||
565 | use = "external-web-service"; | ||
566 | check_command = ["check_https" "naturaloutil.immae.eu" "/ping.php" "YES"]; | ||
567 | |||
568 | servicegroups = "webstatus-websites"; | ||
569 | _webstatus_name = "naturaloutil.immae.eu"; | ||
570 | _webstatus_url = "https://naturaloutil.immae.eu/"; | ||
571 | } | ||
572 | |||
573 | { | ||
574 | service_description = "Telio website is running on realistesmedia.fr"; | ||
575 | host_name = "eldiron.immae.eu"; | ||
576 | use = "external-web-service"; | ||
577 | check_command = ["check_https" "realistesmedia.fr" "/" "doctype html"]; | ||
578 | contact_groups = "telio-tortay"; | ||
579 | } | ||
580 | |||
581 | { | ||
582 | service_description = "Chloe website site is running on osteopathe-cc.fr"; | ||
583 | host_name = "eldiron.immae.eu"; | ||
584 | use = "external-web-service"; | ||
585 | check_command = ["check_https" "www.osteopathe-cc.fr" "/" "<title>Chloé Condamin ostéopathe D.O."]; | ||
586 | |||
587 | servicegroups = "webstatus-websites"; | ||
588 | _webstatus_name = "osteopathe-cc.fr"; | ||
589 | _webstatus_url = "https://www.osteopathe-cc.fr/"; | ||
590 | } | ||
591 | |||
592 | { | ||
593 | service_description = "Richie website is running on europe-richie.org"; | ||
594 | host_name = "eldiron.immae.eu"; | ||
595 | use = "external-web-service"; | ||
596 | check_command = ["check_https" "www.europe-richie.org" "/" "<title>.Europe Richie]"]; | ||
597 | |||
598 | servicegroups = "webstatus-websites"; | ||
599 | _webstatus_name = "europe-richie.org"; | ||
600 | _webstatus_url = "https://www.europe-richie.org/"; | ||
601 | } | ||
602 | |||
603 | { | ||
604 | service_description = "Ludivine website site is running on ludivinecassal.com"; | ||
605 | host_name = "eldiron.immae.eu"; | ||
606 | use = "external-web-service"; | ||
607 | check_command = ["check_https" "www.ludivinecassal.com" "/" "<title>Ludivine Cassal"]; | ||
608 | |||
609 | servicegroups = "webstatus-websites"; | ||
610 | _webstatus_name = "ludivinecassal.com"; | ||
611 | _webstatus_url = "https://www.ludivinecassal.com/"; | ||
612 | } | ||
613 | |||
614 | { | ||
615 | service_description = "Aten website site is running on aten.pro"; | ||
616 | host_name = "eldiron.immae.eu"; | ||
617 | use = "external-web-service"; | ||
618 | check_command = ["check_https" "aten.pro" "/" "<title>ATEN"]; | ||
619 | |||
620 | servicegroups = "webstatus-websites"; | ||
621 | _webstatus_name = "aten.pro"; | ||
622 | _webstatus_url = "https://aten.pro/"; | ||
623 | } | ||
624 | |||
625 | { | ||
626 | service_description = "PiedsJaloux website site is running on piedsjaloux.fr"; | ||
627 | host_name = "eldiron.immae.eu"; | ||
628 | use = "external-web-service"; | ||
629 | check_command = ["check_https" "www.piedsjaloux.fr" "/" "<title>Les Pieds Jaloux"]; | ||
630 | |||
631 | servicegroups = "webstatus-websites"; | ||
632 | _webstatus_name = "piedsjaloux.fr"; | ||
633 | _webstatus_url = "https://www.piedsjaloux.fr/"; | ||
634 | } | ||
635 | |||
636 | { | ||
637 | service_description = "Denise and Jerome website site is running on denisejerome.piedsjaloux.fr"; | ||
638 | host_name = "eldiron.immae.eu"; | ||
639 | use = "external-web-service"; | ||
640 | check_command = ["check_https" "denisejerome.piedsjaloux.fr" "/" "<title>Accueil - Mariage"]; | ||
641 | |||
642 | servicegroups = "webstatus-websites"; | ||
643 | _webstatus_name = "denisejerome.piedsjaloux.fr"; | ||
644 | _webstatus_url = "https://denisejerome.piedsjaloux.fr/"; | ||
645 | } | ||
646 | |||
647 | { | ||
648 | service_description = "Connexionswing website site is running on connexionswing.com"; | ||
649 | host_name = "eldiron.immae.eu"; | ||
650 | use = "external-web-service"; | ||
651 | check_command = ["check_https" "www.connexionswing.com" "/" "<title>Cours, stages"]; | ||
652 | |||
653 | servicegroups = "webstatus-websites"; | ||
654 | _webstatus_name = "connexionswing.com"; | ||
655 | _webstatus_url = "https://www.connexionswing.com/"; | ||
656 | } | ||
657 | |||
658 | { | ||
659 | service_description = "Sandetludo website site is running on sandetludo.com"; | ||
660 | host_name = "eldiron.immae.eu"; | ||
661 | use = "external-web-service"; | ||
662 | check_command = ["check_https" "www.sandetludo.com" "/" "<title>Cours de West Coast"]; | ||
663 | |||
664 | servicegroups = "webstatus-websites"; | ||
665 | _webstatus_name = "sandetludo.com"; | ||
666 | _webstatus_url = "https://www.sandetludo.com/"; | ||
667 | } | ||
668 | |||
669 | # SSL | ||
670 | { | ||
671 | service_description = "ldap SSL is up to date"; | ||
672 | host_name = "eldiron.immae.eu"; | ||
673 | use = "external-service"; | ||
674 | check_command = ["check_tcp_ssl" "636"]; | ||
675 | |||
676 | servicegroups = "webstatus-ssl"; | ||
677 | _webstatus_name = "LDAP"; | ||
678 | _webstatus_url = "ldap.immae.eu"; | ||
679 | } | ||
680 | |||
681 | # Tiboqorl | ||
682 | { | ||
683 | service_description = "Cyllene support page is running"; | ||
684 | host_name = "tiboqorl.fr"; | ||
685 | use = "external-web-service"; | ||
686 | contact_groups = "tiboqorl"; | ||
687 | check_command = [ "check_https" "sc.groupe-cyllene.com" "/" "<title>Support Client Cyllene" ]; | ||
688 | _webstatus_namespace = "tiboqorl"; | ||
689 | } | ||
690 | |||
691 | { | ||
692 | service_description = "Origny page is running"; | ||
693 | host_name = "tiboqorl.fr"; | ||
694 | use = "external-web-service"; | ||
695 | contact_groups = "tiboqorl"; | ||
696 | check_command = [ "check_https" "origny.tiboqorl.fr" "/" "<title>Home Assistant" ]; | ||
697 | _webstatus_namespace = "tiboqorl"; | ||
698 | } | ||
699 | ]; | ||
700 | contact = { | ||
701 | telio-tortay = config.myEnv.monitoring.contacts.telio-tortay // { | ||
702 | use = "generic-contact"; | ||
703 | contactgroups = "telio-tortay"; | ||
704 | }; | ||
705 | thibault = config.myEnv.monitoring.contacts.thibault // { | ||
706 | use = "generic-contact"; | ||
707 | contactgroups = "tiboqorl"; | ||
708 | }; | ||
709 | }; | ||
710 | contactgroup = { | ||
711 | telio-tortay = { alias = "Telio Tortay"; members = "immae"; }; | ||
712 | tiboqorl = { alias = "Tiboqorl"; members = "immae"; }; | ||
713 | }; | ||
714 | } | ||
diff --git a/modules/private/monitoring/objects_phare.nix b/modules/private/monitoring/objects_phare.nix deleted file mode 100644 index 082e7e3..0000000 --- a/modules/private/monitoring/objects_phare.nix +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | { emailCheck, ... }: | ||
2 | { | ||
3 | activatedPlugins = [ "emails" ]; | ||
4 | host = { | ||
5 | "phare.normalesup.org" = { | ||
6 | alias = "phare.normalesup.org"; | ||
7 | address = "phare.normalesup.org"; | ||
8 | use = "linux-server"; | ||
9 | hostgroups = "webstatus-hosts"; | ||
10 | _webstatus_name = "phare"; | ||
11 | _webstatus_vhost = "status.immae.eu"; | ||
12 | }; | ||
13 | }; | ||
14 | service = [ | ||
15 | (emailCheck "phare" "phare.normalesup.org") | ||
16 | ]; | ||
17 | } | ||
diff --git a/modules/private/monitoring/objects_quatresaisons.nix b/modules/private/monitoring/objects_quatresaisons.nix deleted file mode 100644 index f30cf81..0000000 --- a/modules/private/monitoring/objects_quatresaisons.nix +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | { lib, hostFQDN, emailCheck, openldap, ... }: | ||
2 | let | ||
3 | defaultPassiveInfo = { | ||
4 | filter = lib.attrsets.filterAttrs | ||
5 | (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); | ||
6 | use = "external-passive-service"; | ||
7 | freshness_threshold = "450"; | ||
8 | retry_interval = "1"; | ||
9 | servicegroups = "webstatus-resources"; | ||
10 | host_name = hostFQDN; | ||
11 | }; | ||
12 | in | ||
13 | { | ||
14 | resources = { | ||
15 | USER212 = "{{ .monitoring.quatresaisons.naemon_ldap }}"; | ||
16 | }; | ||
17 | activatedPlugins = [ "megaraid" "command" "postgresql" ]; | ||
18 | service = [ | ||
19 | { | ||
20 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-resources"; }; | ||
21 | service_description = "No RAID device is degraded"; | ||
22 | use = "local-service"; | ||
23 | check_command = ["check_megaraid"]; | ||
24 | } | ||
25 | { | ||
26 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-resources"; }; | ||
27 | service_description = "LDAP is running"; | ||
28 | use = "local-service"; | ||
29 | check_command = [ "check_command_status" "${openldap}/bin/ldapwhoami -D uid=naemon,ou=services,dc=salle-s,dc=org -w $USER212$" "0" ""]; | ||
30 | } | ||
31 | { | ||
32 | passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-resources"; }; | ||
33 | service_description = "Postgresql is running"; | ||
34 | use = "local-service"; | ||
35 | check_command = [ "check_postgresql_database_count" "/run/postgresql" "5432" "3" ]; | ||
36 | } | ||
37 | ]; | ||
38 | } | ||
diff --git a/modules/private/monitoring/objects_tiboqorl-fr.nix b/modules/private/monitoring/objects_tiboqorl-fr.nix deleted file mode 100644 index b49a1d8..0000000 --- a/modules/private/monitoring/objects_tiboqorl-fr.nix +++ /dev/null | |||
@@ -1,174 +0,0 @@ | |||
1 | { lib, ... }: | ||
2 | let | ||
3 | hostFQDN = "tiboqorl.fr"; | ||
4 | defaultPassiveInfo = { | ||
5 | filter = lib.attrsets.filterAttrs | ||
6 | (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); | ||
7 | use = "external-passive-service"; | ||
8 | contact_groups = "tiboqorl"; | ||
9 | freshness_threshold = "450"; | ||
10 | notification_interval = "240"; | ||
11 | retry_interval = "1"; | ||
12 | servicegroups = "webstatus-resources"; | ||
13 | _webstatus_namespace = "tiboqorl"; | ||
14 | host_name = hostFQDN; | ||
15 | }; | ||
16 | in | ||
17 | { | ||
18 | host = { | ||
19 | "tiboqorl.fr" = { | ||
20 | alias = "tiboqorl.fr"; | ||
21 | address = "tiboqorl.fr"; | ||
22 | use = "linux-server"; | ||
23 | contact_groups = "tiboqorl"; | ||
24 | hostgroups = "webstatus-hosts"; | ||
25 | _webstatus_name = "tiboqorl"; | ||
26 | _webstatus_vhost = "status.immae.eu"; | ||
27 | _webstatus_namespace = "tiboqorl"; | ||
28 | }; | ||
29 | }; | ||
30 | service = [ | ||
31 | { | ||
32 | passiveInfo = defaultPassiveInfo; | ||
33 | service_description = "Size on root partition"; | ||
34 | use = "local-service"; | ||
35 | check_command = ["check_local_disk" "20%" "10%" "/"]; | ||
36 | } | ||
37 | { | ||
38 | passiveInfo = defaultPassiveInfo; | ||
39 | service_description = "Total number of process"; | ||
40 | use = "local-service"; | ||
41 | check_command = [ "check_local_procs" "250" "400" "RSZDT" ]; | ||
42 | } | ||
43 | { | ||
44 | passiveInfo = defaultPassiveInfo; | ||
45 | service_description = "Network bandwidth"; | ||
46 | use = "local-service"; | ||
47 | check_interval = "2"; | ||
48 | max_check_attempts = "20"; | ||
49 | retry_interval = "2"; | ||
50 | check_command = [ | ||
51 | "check_local_bandwidth" | ||
52 | "eth0" | ||
53 | "20480" # kb/s | ||
54 | "51200" # kb/s | ||
55 | ]; | ||
56 | } | ||
57 | { | ||
58 | passiveInfo = defaultPassiveInfo; | ||
59 | service_description = "Average load"; | ||
60 | use = "local-service"; | ||
61 | check_command = [ | ||
62 | "check_local_load" | ||
63 | "0.75,0.75,0.75" # warn | ||
64 | "1.0,1.0,1.0" # alert | ||
65 | ]; | ||
66 | } | ||
67 | { | ||
68 | passiveInfo = defaultPassiveInfo; | ||
69 | service_description = "Swap usage"; | ||
70 | use = "local-service"; | ||
71 | check_command = ["check_local_swap" "20" "10"]; | ||
72 | } | ||
73 | { | ||
74 | passiveInfo = defaultPassiveInfo; | ||
75 | service_description = "Memory usage"; | ||
76 | use = "local-service"; | ||
77 | check_command = ["check_memory" "80" "90"]; | ||
78 | } | ||
79 | { | ||
80 | passiveInfo = defaultPassiveInfo; | ||
81 | service_description = "NTP is activated and working"; | ||
82 | use = "local-service"; | ||
83 | check_command = ["check_ntp"]; | ||
84 | } | ||
85 | ]; | ||
86 | command = { | ||
87 | check_local_disk = "$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$"; | ||
88 | check_local_procs = "$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$"; | ||
89 | check_local_load = "$USER1$/check_load -w $ARG1$ -c $ARG2$"; | ||
90 | check_local_swap = "$USER1$/check_swap -n ok -w $ARG1$ -c $ARG2$"; | ||
91 | check_local_bandwidth = "$USER2$/check_bandwidth -i=$ARG1$ -w $ARG2$ -c $ARG3$"; | ||
92 | check_memory = "$USER2$/check_mem.sh -w $ARG1$ -c $ARG2$"; | ||
93 | check_ntp = "$USER1$/check_ntp_time -t 30 -q -H 0.arch.pool.ntp.org"; | ||
94 | |||
95 | check_host_alive = "$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5"; | ||
96 | |||
97 | notify-master = "$USER2$/send_nrdp.sh -u \"$USER200$\" -t \"$USER201$\" -H \"$HOSTADDRESS$\" -s \"$SERVICEDESC$\" -S \"$SERVICESTATEID$\" -o \"$SERVICEOUTPUT$ | $SERVICEPERFDATA$\""; | ||
98 | }; | ||
99 | timeperiod = { | ||
100 | "24x7" = { | ||
101 | alias = "24 Hours A Day, 7 Days A Week"; | ||
102 | monday = "00:00-24:00"; | ||
103 | tuesday = "00:00-24:00"; | ||
104 | wednesday = "00:00-24:00"; | ||
105 | thursday = "00:00-24:00"; | ||
106 | friday = "00:00-24:00"; | ||
107 | saturday = "00:00-24:00"; | ||
108 | sunday = "00:00-24:00"; | ||
109 | }; | ||
110 | }; | ||
111 | servicegroup = { | ||
112 | webstatus-resources = { alias = "Local resources"; }; | ||
113 | }; | ||
114 | hostgroup = { | ||
115 | webstatus-hosts = { alias = "Hosts"; }; | ||
116 | }; | ||
117 | contactgroup = { | ||
118 | tiboqorl = { alias = "Naemon Administrators"; }; | ||
119 | }; | ||
120 | templates = { | ||
121 | service = { | ||
122 | generic-service = { | ||
123 | active_checks_enabled = "1"; | ||
124 | check_freshness = "0"; | ||
125 | check_interval = "10"; | ||
126 | check_period = "24x7"; | ||
127 | contact_groups = "tiboqorl"; | ||
128 | event_handler_enabled = "1"; | ||
129 | flap_detection_enabled = "1"; | ||
130 | is_volatile = "0"; | ||
131 | max_check_attempts = "3"; | ||
132 | notification_interval = "60"; | ||
133 | notification_options = "w,u,c,r,f,s"; | ||
134 | notification_period = "24x7"; | ||
135 | notifications_enabled = "0"; | ||
136 | obsess_over_service = "1"; | ||
137 | passive_checks_enabled = "1"; | ||
138 | process_perf_data = "1"; | ||
139 | retain_nonstatus_information = "1"; | ||
140 | retain_status_information = "1"; | ||
141 | retry_interval = "2"; | ||
142 | }; | ||
143 | local-service = { | ||
144 | use = "generic-service"; | ||
145 | host_name = hostFQDN; | ||
146 | check_interval = "5"; | ||
147 | max_check_attempts = "4"; | ||
148 | retry_interval = "1"; | ||
149 | servicegroups = "webstatus-resources"; | ||
150 | }; | ||
151 | }; | ||
152 | host = { | ||
153 | generic-host = { | ||
154 | event_handler_enabled = "1"; | ||
155 | flap_detection_enabled = "1"; | ||
156 | notification_period = "24x7"; | ||
157 | notifications_enabled = "1"; | ||
158 | process_perf_data = "1"; | ||
159 | retain_nonstatus_information = "1"; | ||
160 | retain_status_information = "1"; | ||
161 | }; | ||
162 | linux-server = { | ||
163 | check_command = "check_host_alive"; | ||
164 | check_interval = "5"; | ||
165 | check_period = "24x7"; | ||
166 | contact_groups = "tiboqorl"; | ||
167 | max_check_attempts = "10"; | ||
168 | notification_interval = "120"; | ||
169 | notification_options = "d,u,r,f"; | ||
170 | retry_interval = "1"; | ||
171 | }; | ||
172 | }; | ||
173 | }; | ||
174 | } | ||
diff --git a/modules/private/monitoring/objects_ulminfo-fr.nix b/modules/private/monitoring/objects_ulminfo-fr.nix deleted file mode 100644 index bd2804b..0000000 --- a/modules/private/monitoring/objects_ulminfo-fr.nix +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | { emailCheck, ... }: | ||
2 | { | ||
3 | activatedPlugins = [ "emails" ]; | ||
4 | host = { | ||
5 | "ulminfo.fr" = { | ||
6 | alias = "ulminfo.fr"; | ||
7 | address = "ulminfo.fr"; | ||
8 | use = "linux-server"; | ||
9 | hostgroups = "webstatus-hosts"; | ||
10 | _webstatus_name = "ulminfo"; | ||
11 | _webstatus_vhost = "status.immae.eu"; | ||
12 | }; | ||
13 | }; | ||
14 | service = [ | ||
15 | (emailCheck "ulminfo" "ulminfo.fr") | ||
16 | ]; | ||
17 | } | ||
diff --git a/modules/private/monitoring/plugins/check_backup_age b/modules/private/monitoring/plugins/check_backup_age deleted file mode 100755 index d873bdc..0000000 --- a/modules/private/monitoring/plugins/check_backup_age +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | set -euo pipefail | ||
4 | |||
5 | source $SECRETS_PATH | ||
6 | export HOME=$(mktemp -d) | ||
7 | |||
8 | trap "rm -rf $HOME" EXIT | ||
9 | folder=$1 | ||
10 | |||
11 | parse_date() { | ||
12 | d=$1 | ||
13 | echo $d | sed -e "s/^\(....\)\(..\)\(..\)T\(..\)\(..\)\(..\)/\1-\2-\3T\4:\5:\6/" | ||
14 | } | ||
15 | |||
16 | output=$(duplicity collection-status --log-fd 2 "$BASE_URL$folder" 2>&1 > /dev/null) | ||
17 | |||
18 | output=$(echo "$output" | grep -v "^\.") | ||
19 | |||
20 | last_full=$(parse_date "$(echo "$output" | grep "^ full " | cut -d' ' -f3 | sort | tail -n1)") | ||
21 | last_bkp=$(parse_date "$(echo "$output" | grep -E "^ (full|inc) " | cut -d' ' -f3 | sort | tail -n1)") | ||
22 | orphaned_sets=$(echo "$output" | grep "^orphaned-sets-num" | cut -d' ' -f2) | ||
23 | incomplete_sets=$(echo "$output" | grep "^incomplete-sets-num" | cut -d' ' -f2) | ||
24 | |||
25 | if [[ -z "$last_full" || -z "$last_bkp" || -z "$orphaned_sets" || -z "$incomplete_sets" ]]; then | ||
26 | echo "duply-backup $folder UNKNOWN - impossible to parse result" | ||
27 | exit 3 | ||
28 | fi | ||
29 | |||
30 | last_full_age=$(( ($(date "+%s") - $(date -d "$last_full" "+%s")) / (60*60*24) )) | ||
31 | last_bkp_age=$(( ($(date "+%s") - $(date -d "$last_bkp" "+%s")) / (60*60) )) | ||
32 | |||
33 | PERFS="orphan=$orphaned_sets;1;;0; incomplete=$incomplete_sets;1;;0; age=${last_bkp_age}h;30;48;0; full_age=${last_full_age}d;35;45;0;" | ||
34 | |||
35 | |||
36 | WARNINGS="" | ||
37 | ERRORS="" | ||
38 | if [[ "$incomplete_sets" -gt 0 ]]; then | ||
39 | WARNINGS="$WARNINGS - Incomplete sets is $incomplete_sets" | ||
40 | fi | ||
41 | |||
42 | if [[ "$orphaned_sets" -gt 0 ]]; then | ||
43 | WARNINGS="$WARNINGS - Orphaned sets is $orphaned_sets" | ||
44 | fi | ||
45 | |||
46 | if [[ "$last_full_age" -gt 45 ]]; then | ||
47 | ERRORS="$ERRORS - Last full backup is too old $last_full" | ||
48 | elif [[ "$last_full_age" -gt 35 ]]; then | ||
49 | WARNINGS="$WARNINGS - Last full backup is getting old $last_full" | ||
50 | fi | ||
51 | |||
52 | if [[ "$last_bkp_age" -gt 48 ]]; then | ||
53 | ERRORS="$ERRORS - Last backup is too old $last_bkp" | ||
54 | elif [[ "$last_bkp_age" -gt 30 ]]; then | ||
55 | WARNINGS="$WARNINGS - Last backup is getting old $last_bkp" | ||
56 | fi | ||
57 | |||
58 | if [[ -n "$ERRORS" ]]; then | ||
59 | echo "duply-backup $folder CRITICAL$ERRORS$WARNINGS | $PERFS" | ||
60 | exit 2 | ||
61 | elif [[ -n "$WARNINGS" ]]; then | ||
62 | echo "duply-backup $folder WARNING$WARNINGS | $PERFS" | ||
63 | exit 1 | ||
64 | else | ||
65 | echo "duply-backup $folder OK | $PERFS" | ||
66 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_bandwidth b/modules/private/monitoring/plugins/check_bandwidth deleted file mode 100755 index 53c5d85..0000000 --- a/modules/private/monitoring/plugins/check_bandwidth +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | # ============================== SUMMARY ===================================== | ||
4 | #Author : Ken Roulamellah | ||
5 | #Date : 19/07/2018 | ||
6 | #Version : 1.0 | ||
7 | # Licence : GPL | ||
8 | # ===================== INFORMATION ABOUT THIS PLUGIN ======================== | ||
9 | # | ||
10 | # This plugin checks the average RX and TX bandwidth utilisation. It use | ||
11 | # kbytes as measure unite. | ||
12 | # | ||
13 | # ========================== START OF PROGRAM CODE =========================== | ||
14 | |||
15 | STATE_OK=0 | ||
16 | STATE_WARNING=1 | ||
17 | STATE_CRITICAL=2 | ||
18 | STATE_UNKNOWN=3 | ||
19 | |||
20 | interface=$( ip route | grep default | awk '{print $5}' | head -n1) | ||
21 | function print_usage() | ||
22 | { | ||
23 | echo "Usage :" | ||
24 | echo "$0 [ -i=INTERFACE] [ -ct=COUNT ] -w WARNING -c CRITICAL" | ||
25 | echo "This script calculate the average bandwith usage." | ||
26 | echo "Default values | interface: ${interface}, counter: 10" | ||
27 | } | ||
28 | |||
29 | counter=10 | ||
30 | warning=-1 | ||
31 | critical=-1 | ||
32 | |||
33 | sum_rx=0 | ||
34 | sum_tx=0 | ||
35 | avg_rx= | ||
36 | avg_tx= | ||
37 | i= | ||
38 | |||
39 | |||
40 | if [[ $# -lt 4 ]]; | ||
41 | then | ||
42 | echo "Error: Arguments are missing" | ||
43 | print_usage | ||
44 | exit $STATE_UNKNOWN | ||
45 | fi | ||
46 | |||
47 | while [[ $# -gt 0 ]]; do | ||
48 | case "$1" in | ||
49 | -i=*) | ||
50 | interface="$(cut -d'=' -f2 <<<"$1")" | ||
51 | shift | ||
52 | ;; | ||
53 | -ct=*) | ||
54 | counter="$(cut -d'=' -f2 <<<"$1")" | ||
55 | shift | ||
56 | ;; | ||
57 | -w) | ||
58 | warning=$2 | ||
59 | shift 2 | ||
60 | ;; | ||
61 | -c) | ||
62 | critical=$2 | ||
63 | shift 2 | ||
64 | ;; | ||
65 | *) | ||
66 | printf "\nError: Invalid option '$1'" | ||
67 | print_usage | ||
68 | exit $STATE_UNKNOWN | ||
69 | ;; | ||
70 | esac | ||
71 | done | ||
72 | |||
73 | if [ $warning -lt 0 ] || [ $critical -lt 0 ]; | ||
74 | then | ||
75 | echo "Error: You need to specify a warning and critical treshold" | ||
76 | print_usage | ||
77 | exit $STATE_UNKNOWN | ||
78 | fi | ||
79 | |||
80 | grep -q "up" /sys/class/net/$interface/operstate || exec echo "$interface: no such device or down" | ||
81 | |||
82 | read rx <"/sys/class/net/$interface/statistics/rx_bytes" | ||
83 | read tx <"/sys/class/net/$interface/statistics/tx_bytes" | ||
84 | |||
85 | i=$counter | ||
86 | while [ $i -gt 0 ]; do | ||
87 | sleep 1 | ||
88 | read newrx <"/sys/class/net/$interface/statistics/rx_bytes" | ||
89 | read newtx <"/sys/class/net/$interface/statistics/tx_bytes" | ||
90 | |||
91 | #echo "old rx :$rx" | ||
92 | #echo "new rx :$newrx" | ||
93 | rx_cal=$(bc <<< "scale=2; ($newrx-$rx) / 1000") | ||
94 | tx_cal=$(bc <<< "scale=2; ($newtx-$tx) / 1000") | ||
95 | |||
96 | sum_rx=$(bc <<< "scale=2;$sum_rx+$rx_cal") | ||
97 | sum_tx=$(bc <<< "scale=2;$sum_tx+$tx_cal") | ||
98 | |||
99 | #echo "$interface {rx: $rx_cal ko/s, tx: $tx_cal ko/s}" | ||
100 | rx=$newrx | ||
101 | tx=$newtx | ||
102 | ((i --)) | ||
103 | done | ||
104 | |||
105 | avg_rx=$(bc <<< "scale=2;$sum_rx/$counter") | ||
106 | avg_tx=$(bc <<< "scale=2;$sum_tx/$counter") | ||
107 | |||
108 | #echo "$avg_rx" | ||
109 | #echo "$avg_tx" | ||
110 | |||
111 | |||
112 | if [ $(bc <<< "$avg_rx > $critical || $avg_tx > $critical") -eq 1 ]; then | ||
113 | echo "$interface CRITICAL - AVG_RX: $avg_rx kb/s, AVG_TX: | ||
114 | $avg_tx kb/s | RX="$avg_rx"kbps;0;0;0; TX="$avg_tx"kbps;0;0;0;" | ||
115 | exit $STATE_CRITICAL | ||
116 | elif [ $(bc <<< "$avg_rx > $warning || $avg_tx > $warning") -eq 1 ]; then | ||
117 | echo "$interface WARNING - AVG_RX: $avg_rx kb/s, AVG_TX: $avg_tx kb/s | RX="$avg_rx"kbps;0;0;0; TX="$avg_tx"kbps;0;0;0;" | ||
118 | exit $STATE_WARNING | ||
119 | else | ||
120 | echo "$interface - OK AVG_RX: $avg_rx kb/s, AVG_TX: $avg_tx kb/s | RX="$avg_rx"kbps;0;0;0; TX="$avg_tx"kbps;0;0;0;" | ||
121 | exit $STATE_OK | ||
122 | fi | ||
123 | exit 3 | ||
diff --git a/modules/private/monitoring/plugins/check_command b/modules/private/monitoring/plugins/check_command deleted file mode 100755 index 2b546c1..0000000 --- a/modules/private/monitoring/plugins/check_command +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | |||
3 | use strict; | ||
4 | use Getopt::Std; | ||
5 | $| = 1; | ||
6 | |||
7 | my %opts; | ||
8 | getopts('hr:C:c:s:o:', \%opts); | ||
9 | |||
10 | my $STATE_OK = 0; | ||
11 | my $STATE_WARNING = 1; | ||
12 | my $STATE_CRITICAL = 2; | ||
13 | my $STATE_UNKNOWN = 3; | ||
14 | |||
15 | if ($opts{'h'} || scalar(%opts) == 0) { | ||
16 | &print_help(); | ||
17 | exit($STATE_OK); | ||
18 | } | ||
19 | |||
20 | my $command = $opts{'c'}; | ||
21 | if ($command eq '') { | ||
22 | print "You must provide a command to check.\n"; | ||
23 | exit($STATE_UNKNOWN); | ||
24 | } | ||
25 | |||
26 | my $expected_output = $opts{'o'}; | ||
27 | my $expected_status = $opts{'s'}; | ||
28 | my $other_command = $opts{'C'}; | ||
29 | |||
30 | if ($other_command eq '' and $expected_status eq '' and $expected_output eq '') { | ||
31 | $expected_status = 0; | ||
32 | } | ||
33 | |||
34 | my $cmd = $command . ' 2>&1'; | ||
35 | my $other_cmd; | ||
36 | if ($other_command ne '') { | ||
37 | $other_cmd = $other_command . ' 2>&1'; | ||
38 | } | ||
39 | |||
40 | my $run_as; | ||
41 | if ($opts{'r'}) { | ||
42 | $run_as = $opts{'r'}; | ||
43 | $cmd = "sudo -u $run_as -n $cmd"; | ||
44 | |||
45 | if ($other_command ne '') { | ||
46 | $other_cmd = "sudo -u $run_as -n $other_cmd"; | ||
47 | } | ||
48 | |||
49 | } | ||
50 | |||
51 | my $cmd_result = `$cmd`; | ||
52 | my $other_cmd_result; | ||
53 | if ($other_command ne '') { | ||
54 | $other_cmd_result = `$other_cmd`; | ||
55 | chomp($other_cmd_result); | ||
56 | } | ||
57 | |||
58 | chomp($cmd_result); | ||
59 | if ($cmd_result =~ /sudo/i) { | ||
60 | print "$command CRITICAL - No sudo right to run the command | result=1;;;;\n"; | ||
61 | exit($STATE_UNKNOWN); | ||
62 | } elsif ($expected_status ne '') { | ||
63 | if ($? != $expected_status) { | ||
64 | print "$command CRITICAL - Response status $? | result=1;;;;\n"; | ||
65 | exit($STATE_CRITICAL); | ||
66 | } else { | ||
67 | print "$command OK - Response status $? | result=0;;;;\n"; | ||
68 | exit($STATE_OK); | ||
69 | } | ||
70 | } elsif ($other_command ne '') { | ||
71 | if ($cmd_result ne $other_cmd_result) { | ||
72 | print "$command CRITICAL - Expected output not matching other command output | result=1;;;;\n"; | ||
73 | exit($STATE_CRITICAL); | ||
74 | } else { | ||
75 | print "$command OK - Expected output matching other command output | result=0;;;;\n"; | ||
76 | exit($STATE_OK); | ||
77 | } | ||
78 | } else { | ||
79 | if ($cmd_result !~ /$expected_output/) { | ||
80 | print "$command CRITICAL - Expected output not matching | result=1;;;;\n"; | ||
81 | exit($STATE_CRITICAL); | ||
82 | } else { | ||
83 | print "$command OK - Expected output matching | result=0;;;;\n"; | ||
84 | exit($STATE_OK); | ||
85 | } | ||
86 | } | ||
87 | |||
88 | sub print_help() { | ||
89 | print << "EOF"; | ||
90 | Check whether the given command responds as expected. One of -o -C or -s must be selected. | ||
91 | |||
92 | Options: | ||
93 | -h | ||
94 | Print detailed help screen | ||
95 | |||
96 | -c | ||
97 | command to run (required) | ||
98 | |||
99 | -C | ||
100 | other command to compare output | ||
101 | |||
102 | -r user | ||
103 | Run as user via sudo. | ||
104 | |||
105 | -s | ||
106 | status code to check | ||
107 | |||
108 | -o | ||
109 | output to check | ||
110 | |||
111 | EOF | ||
112 | } | ||
113 | |||
diff --git a/modules/private/monitoring/plugins/check_emails b/modules/private/monitoring/plugins/check_emails deleted file mode 100755 index 534e5a5..0000000 --- a/modules/private/monitoring/plugins/check_emails +++ /dev/null | |||
@@ -1,121 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | |||
3 | use strict; | ||
4 | use Getopt::Std; | ||
5 | use File::Basename; | ||
6 | use Date::Parse; | ||
7 | use POSIX qw(strftime); | ||
8 | |||
9 | $| = 1; | ||
10 | |||
11 | my %opts; | ||
12 | getopts('hH:l:s:p:f:i:n:r:', \%opts); | ||
13 | |||
14 | my $STATE_OK = 0; | ||
15 | my $STATE_WARNING = 1; | ||
16 | my $STATE_CRITICAL = 2; | ||
17 | my $STATE_UNKNOWN = 3; | ||
18 | |||
19 | if ($opts{'h'} || scalar(%opts) == 0) { | ||
20 | &print_help(); | ||
21 | exit($STATE_OK); | ||
22 | } | ||
23 | |||
24 | my $port = $opts{'p'}; | ||
25 | my $host = $opts{'H'}; | ||
26 | my $login = $opts{'l'}; | ||
27 | if ($login ne '') { | ||
28 | $login = "$login@"; | ||
29 | } | ||
30 | |||
31 | my $identity = $opts{'i'}; | ||
32 | my $local_directory = $opts{'n'}; | ||
33 | my $return_path = $opts{'r'}; | ||
34 | |||
35 | my @emails_to_send = split(/,/, $opts{'s'}); | ||
36 | my @emails_to_expect = split(/,/, $opts{'f'}); | ||
37 | |||
38 | my $cmd_result; | ||
39 | if ($local_directory ne '') { | ||
40 | if (@emails_to_expect and ! -d $local_directory) { | ||
41 | print "Emails $host UNKNOWN - Could not find local directory"; | ||
42 | exit($STATE_UNKNOWN); | ||
43 | } | ||
44 | $cmd_result = `send_mails $local_directory $return_path @emails_to_send 2>&1`; | ||
45 | } else { | ||
46 | $cmd_result = `ssh -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -p $port -i $identity $login$host send_mails @emails_to_send 2>&1`; | ||
47 | |||
48 | if ($cmd_result =~ /Host key verification failed./) { | ||
49 | print "Emails $host UNKNOWN - Could not connect to host with ssh key\n"; | ||
50 | exit($STATE_UNKNOWN); | ||
51 | } | ||
52 | } | ||
53 | |||
54 | my @lines = split(/\n/, $cmd_result); | ||
55 | |||
56 | my %found_emails; | ||
57 | |||
58 | foreach my $line (@lines) { | ||
59 | my @split_line = split(/;/, $line, 2); | ||
60 | $found_emails{$split_line[0]} = $split_line[1]; | ||
61 | } | ||
62 | |||
63 | my $output = ""; | ||
64 | my $old = 0; | ||
65 | foreach my $email_from (@emails_to_expect) { | ||
66 | my @email_split = split(/:/, $email_from); | ||
67 | my $email = $email_split[0]; | ||
68 | my $from = $email_split[1]; | ||
69 | |||
70 | if ( exists $found_emails{$email} ) { | ||
71 | my $email_date = str2time($found_emails{$email}); | ||
72 | my $current_date = strftime "%s", localtime; | ||
73 | |||
74 | if ($current_date - $email_date > 60*30) { | ||
75 | $output = "$output$email ($found_emails{$email} from $from) "; | ||
76 | } | ||
77 | $old = ($current_date - $email_date) > $old ? ($current_date - $email_date) : $old; | ||
78 | } else { | ||
79 | $output = "$output$email (missing) " | ||
80 | } | ||
81 | } | ||
82 | |||
83 | if ($output ne '') { | ||
84 | print "Emails $host CRITICAL - expecting emails: $output | timestamp=${old}s;;;;\n"; | ||
85 | exit($STATE_CRITICAL); | ||
86 | } else { | ||
87 | print "Emails $host OK | timestamp=${old}s;;;;\n"; | ||
88 | exit($STATE_OK); | ||
89 | } | ||
90 | |||
91 | sub print_help() { | ||
92 | print << "EOF"; | ||
93 | Check sent emails | ||
94 | |||
95 | Options: | ||
96 | -h | ||
97 | Print detailed help screen | ||
98 | |||
99 | -H | ||
100 | Host to check | ||
101 | |||
102 | -l | ||
103 | Login | ||
104 | |||
105 | -i | ||
106 | Identity file | ||
107 | |||
108 | -n | ||
109 | Don’t use ssh, pass that directory to script | ||
110 | |||
111 | -r | ||
112 | Return path for local e-mails | ||
113 | |||
114 | -s | ||
115 | Comma separated list of emails to send from the host. | ||
116 | |||
117 | -f | ||
118 | Comma separated list of emails to expect on the host. | ||
119 | EOF | ||
120 | } | ||
121 | |||
diff --git a/modules/private/monitoring/plugins/check_eriomem b/modules/private/monitoring/plugins/check_eriomem deleted file mode 100755 index 880b88a..0000000 --- a/modules/private/monitoring/plugins/check_eriomem +++ /dev/null | |||
@@ -1,83 +0,0 @@ | |||
1 | #!/usr/bin/env python | ||
2 | import os | ||
3 | import sys | ||
4 | import getopt | ||
5 | import signal | ||
6 | from subprocess import Popen, PIPE | ||
7 | |||
8 | STATE_OK = 0 | ||
9 | STATE_WARNING = 1 | ||
10 | STATE_CRITICAL = 2 | ||
11 | STATE_UNKNOWN = 3 | ||
12 | |||
13 | keys = sys.argv[1].split(",") | ||
14 | |||
15 | def to_args(k): | ||
16 | access, secret = k.split(":", 1) | ||
17 | return [ | ||
18 | "s3cmd", | ||
19 | '-c=/dev/null', | ||
20 | '--no-check-certificate', | ||
21 | '--access_key={}'.format(access), | ||
22 | '--secret_key={}'.format(secret), | ||
23 | '--host=e.eriomem.net', | ||
24 | '--host-bucket=%(bucket)s.e.eriomem.net', | ||
25 | 'du' | ||
26 | ] | ||
27 | |||
28 | max_size = 1024*1024*1024*1024 | ||
29 | warning_percent = 99.75 | ||
30 | critical_percent = 99.95 | ||
31 | |||
32 | def output(code, msg): | ||
33 | print(msg) | ||
34 | sys.exit(code) | ||
35 | |||
36 | def main(): | ||
37 | def handler(signum, frame): | ||
38 | raise IOError | ||
39 | signal.signal(signal.SIGALRM, handler) | ||
40 | signal.alarm(60) | ||
41 | |||
42 | try: | ||
43 | ps = [Popen(to_args(a), stdout=PIPE, stderr=PIPE) for a in keys] | ||
44 | outs = [p.communicate() for p in ps] | ||
45 | rets = [p.wait() for p in ps] | ||
46 | except IOError: | ||
47 | for p in ps: | ||
48 | os.kill(p.pid, signal.SIGTERM) | ||
49 | output(STATE_UNKNOWN, | ||
50 | "Eriomem UNKNOWN - Command timeout after 60 seconds!") | ||
51 | |||
52 | signal.alarm(0) | ||
53 | |||
54 | if sum(rets) == 0: | ||
55 | usages = [int(out[0].decode().split("\n")[-2].split()[0]) for out in outs] | ||
56 | usage = sum(usages) | ||
57 | use_percent = 100 * usage / max_size | ||
58 | if use_percent > critical_percent: | ||
59 | output(STATE_CRITICAL, | ||
60 | "Eriomem CRITICAL - bucket usage: %s (%s%%);| size=%s;;;;" % | ||
61 | (sizeof_fmt(usage), use_percent, sizeof_fmt(usage))) | ||
62 | elif use_percent > warning_percent: | ||
63 | output(STATE_WARNING, | ||
64 | "Eriomem WARNING - bucket usage: %s (%s%%);| size=%s;;;;" % | ||
65 | (sizeof_fmt(usage), use_percent, sizeof_fmt(usage))) | ||
66 | else: | ||
67 | output(STATE_OK, | ||
68 | "Eriomem OK - bucket usage: %s (%d%%);| size=%s;;;;" % | ||
69 | (sizeof_fmt(usage), use_percent, sizeof_fmt(usage))) | ||
70 | else: | ||
71 | messages = "\n".join([out[0].decode() + out[1].decode() for out in outs]) | ||
72 | output(STATE_UNKNOWN, | ||
73 | "Eriomem UNKNOWN - Error in command") | ||
74 | |||
75 | def sizeof_fmt(num): | ||
76 | for unit in ['','ko','Mo','Go','To','Po','Eo','Zo']: | ||
77 | if abs(num) < 1024.0: | ||
78 | return "%3.1f%s" % (num, unit) | ||
79 | num /= 1024.0 | ||
80 | return "%.1f%s%s" % (num, 'Yo') | ||
81 | |||
82 | if __name__ == '__main__': | ||
83 | main() | ||
diff --git a/modules/private/monitoring/plugins/check_ftp_database b/modules/private/monitoring/plugins/check_ftp_database deleted file mode 100755 index f9cf579..0000000 --- a/modules/private/monitoring/plugins/check_ftp_database +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | OUT=$(echo "ls" | lftp -u test_ftp,test_ftp eldiron.immae.eu | grep it_works | wc -l) | ||
4 | |||
5 | if [ "$OUT" -eq 1 ]; then | ||
6 | echo "ftp connection OK - access to ftp is working | ftp=1;;;;" | ||
7 | exit 0 | ||
8 | else | ||
9 | echo "ftp connection CRITICAL - no access to ftp | ftp=0;;;;" | ||
10 | exit 2 | ||
11 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_git b/modules/private/monitoring/plugins/check_git deleted file mode 100755 index e8fbb29..0000000 --- a/modules/private/monitoring/plugins/check_git +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | SSH_KEY="$1" | ||
4 | |||
5 | TMPDIR=$(mktemp -d) | ||
6 | |||
7 | if [ ! -d "$TMPDIR" ]; then | ||
8 | echo "gitolite UNKNOWN - impossible to create temp dir" | ||
9 | exit 3 | ||
10 | fi | ||
11 | |||
12 | trap "rm -rf $TMPDIR" EXIT | ||
13 | |||
14 | ERRORS="" | ||
15 | OUTPUT="" | ||
16 | PERFS="" | ||
17 | |||
18 | cd "$TMPDIR" | ||
19 | OUT=$(git clone -q git://git.immae.eu/perso/Immae/Projets/Ruby/Monitor.git 2>&1) | ||
20 | ERR=$? | ||
21 | if [ -n "$OUT" ]; then | ||
22 | OUTPUT="$OUTPUT | ||
23 | $OUT" | ||
24 | fi | ||
25 | if [ "$ERR" != 0 ]; then | ||
26 | PERFS="$PERFS git=0;;;;" | ||
27 | ERRORS="$ERRORS git://" | ||
28 | else | ||
29 | PERFS="$PERFS git=1;;;;" | ||
30 | fi | ||
31 | rm -rf Monitor | ||
32 | |||
33 | OUT=$(git clone -q http://git.immae.eu/perso/Immae/Projets/Ruby/Monitor.git 2>&1) | ||
34 | ERR=$? | ||
35 | if [ -n "$OUT" ]; then | ||
36 | OUTPUT="$OUTPUT | ||
37 | $OUT" | ||
38 | fi | ||
39 | if [ "$ERR" != 0 ]; then | ||
40 | ERRORS="$ERRORS http://" | ||
41 | PERFS="$PERFS http=0;;;;" | ||
42 | else | ||
43 | PERFS="$PERFS http=1;;;;" | ||
44 | fi | ||
45 | rm -rf Monitor | ||
46 | |||
47 | OUT=$(git clone -q https://git.immae.eu/perso/Immae/Projets/Ruby/Monitor.git 2>&1) | ||
48 | ERR=$? | ||
49 | if [ -n "$OUT" ]; then | ||
50 | OUTPUT="$OUTPUT | ||
51 | $OUT" | ||
52 | fi | ||
53 | if [ "$ERR" != 0 ]; then | ||
54 | ERRORS="$ERRORS https://" | ||
55 | PERFS="$PERFS https=0;;;;" | ||
56 | else | ||
57 | PERFS="$PERFS https=1;;;;" | ||
58 | fi | ||
59 | rm -rf Monitor | ||
60 | |||
61 | OUT=$(GIT_SSH_COMMAND="ssh -i $SSH_KEY -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no" git clone -q gitolite@git.immae.eu:perso/Immae/Projets/Ruby/Monitor 2>&1) | ||
62 | ERR=$? | ||
63 | if [ -n "$OUT" ]; then | ||
64 | OUTPUT="$OUTPUT | ||
65 | $OUT" | ||
66 | fi | ||
67 | if [ "$ERR" != 0 ]; then | ||
68 | ERRORS="$ERRORS ssh" | ||
69 | PERFS="$PERFS ssh=0;;;;" | ||
70 | else | ||
71 | PERFS="$PERFS ssh=1;;;;" | ||
72 | fi | ||
73 | rm -rf Monitor | ||
74 | |||
75 | if [ -n "$ERRORS" ]; then | ||
76 | echo "gitolite CRITICAL - impossible to clone via$ERRORS | $PERFS" | ||
77 | exit 2 | ||
78 | else | ||
79 | echo "gitolite OK - ssh, git, http and https work | $PERFS" | ||
80 | exit 0 | ||
81 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_imap_connection b/modules/private/monitoring/plugins/check_imap_connection deleted file mode 100755 index c1ab0dd..0000000 --- a/modules/private/monitoring/plugins/check_imap_connection +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | |||
3 | use strict; | ||
4 | use Getopt::Std; | ||
5 | $| = 1; | ||
6 | |||
7 | my %opts; | ||
8 | getopts('h:u:p:H:', \%opts); | ||
9 | |||
10 | my $STATE_OK = 0; | ||
11 | my $STATE_WARNING = 1; | ||
12 | my $STATE_CRITICAL = 2; | ||
13 | my $STATE_UNKNOWN = 3; | ||
14 | |||
15 | if ($opts{'h'} || !$opts{'u'} || !$opts{'p'} || !$opts{'H'}) { | ||
16 | &print_help(); | ||
17 | exit($STATE_UNKNOWN); | ||
18 | } | ||
19 | |||
20 | my $user = $opts{'u'}; | ||
21 | my $password = $opts{'p'}; | ||
22 | my $host = $opts{'H'}; | ||
23 | |||
24 | my $cmd_result = `(echo "a login $user $password"; echo "b logout") | openssl s_client -quiet -ign_eof -connect $host -starttls imap 2>&1`; | ||
25 | my $expected_result = "a OK Logged in"; | ||
26 | |||
27 | chomp($cmd_result); | ||
28 | if ($cmd_result !~ /$expected_result/) { | ||
29 | print "IMAP CRITICAL - Unable to connect via imaps | imap=0;;;;\n"; | ||
30 | exit($STATE_CRITICAL); | ||
31 | } else { | ||
32 | print "IMAP OK - imaps connected successfully | imap=1;;;;\n"; | ||
33 | exit($STATE_OK); | ||
34 | } | ||
35 | |||
36 | sub print_help() { | ||
37 | print << "EOF"; | ||
38 | Check whether imap works via ssl and is able to connect its database. | ||
39 | |||
40 | Options: | ||
41 | -h | ||
42 | Print detailed help screen | ||
43 | -u | ||
44 | User to log in as | ||
45 | -p | ||
46 | Password to log in | ||
47 | -H | ||
48 | Host to log in to | ||
49 | |||
50 | EOF | ||
51 | } | ||
52 | |||
diff --git a/modules/private/monitoring/plugins/check_last_file_date b/modules/private/monitoring/plugins/check_last_file_date deleted file mode 100755 index f51a258..0000000 --- a/modules/private/monitoring/plugins/check_last_file_date +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | STATE_OK=0 | ||
4 | STATE_WARNING=1 | ||
5 | STATE_CRITICAL=2 | ||
6 | STATE_UNKNOWN=3 | ||
7 | |||
8 | base_path=$1 | ||
9 | hours=$2 | ||
10 | |||
11 | last_date=$(find $base_path -mindepth 1 -maxdepth 1 -printf "%T@\n" 2>/dev/null | sort | tail -n 1) | ||
12 | |||
13 | if [ -z "$last_date" ]; then | ||
14 | echo "UNKNOWN: Could not read folder" | ||
15 | exit $STATE_UNKNOWN | ||
16 | else | ||
17 | LC_ALL=C last_date=$(printf "%.*f" 0 $last_date) | ||
18 | LC_ALL=C age=$(( $(date "+%s") - $last_date)) | ||
19 | max_age=$(( $hours * 60 * 60 )) | ||
20 | min_date=$(date -d "$hours hours ago" "+%s") | ||
21 | if [ "$min_date" -lt "$last_date" ]; then | ||
22 | echo "OK: Last file $(date -d @$last_date) | age=${age}s;;$max_age;;" | ||
23 | exit $STATE_OK | ||
24 | else | ||
25 | echo "CRITICAL: Last file $(date -d @$last_date) | age=${age}s;;$max_age;;" | ||
26 | exit $STATE_CRITICAL | ||
27 | fi | ||
28 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_mem.sh b/modules/private/monitoring/plugins/check_mem.sh deleted file mode 100755 index cc97ae2..0000000 --- a/modules/private/monitoring/plugins/check_mem.sh +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then | ||
4 | FreeM=`free -m` | ||
5 | memTotal_m=`echo "$FreeM" |grep Mem |awk '{print $2}'` | ||
6 | memUsed_m=`echo "$FreeM" |grep Mem |awk '{print $3}'` | ||
7 | memFree_m=`echo "$FreeM" |grep Mem |awk '{print $4}'` | ||
8 | memBuffer_m=`echo "$FreeM" |grep Mem |awk '{print $6}'` | ||
9 | memCache_m=`echo "$FreeM" |grep Mem |awk '{print $7}'` | ||
10 | memUsedPrc=`echo $((($memUsed_m*100)/$memTotal_m))||cut -d. -f1` | ||
11 | if [ "$memUsedPrc" -ge "$4" ]; then | ||
12 | echo "Memory: CRITICAL Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; CACHE=$memCache_m;;;; BUFFER=$memBuffer_m;;;;" | ||
13 | exit 2 | ||
14 | elif [ "$memUsedPrc" -ge "$2" ]; then | ||
15 | echo "Memory: WARNING Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; CACHE=$memCache_m;;;; BUFFER=$memBuffer_m;;;;" | ||
16 | exit 1 | ||
17 | else | ||
18 | echo "Memory: OK Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used|TOTAL=$memTotal_m;;;; USED=$memUsed_m;;;; CACHE=$memCache_m;;;; BUFFER=$memBuffer_m;;;;" | ||
19 | exit 0 | ||
20 | fi | ||
21 | else # If inputs are not as expected, print help. | ||
22 | sName="`echo $0|awk -F '/' '{print $NF}'`" | ||
23 | echo -e "\n\n\t\t### $sName Version 2.0###\n" | ||
24 | echo -e "# Usage:\t$sName -w <warnlevel> -c <critlevel>" | ||
25 | echo -e "\t\t= warnlevel and critlevel is percentage value without %\n" | ||
26 | echo "# EXAMPLE:\t/usr/lib64/nagios/plugins/$sName -w 80 -c 90" | ||
27 | echo -e "\nCopyright (C) 2012 Lukasz Gogolin (lukasz.gogolin@gmail.com), improved by Nestor 2015\n\n" | ||
28 | exit | ||
29 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_mysql_replication b/modules/private/monitoring/plugins/check_mysql_replication deleted file mode 100755 index 1ee5de1..0000000 --- a/modules/private/monitoring/plugins/check_mysql_replication +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | STATE_OK=0 | ||
4 | STATE_WARNING=1 | ||
5 | STATE_CRITICAL=2 | ||
6 | STATE_UNKNOWN=3 | ||
7 | |||
8 | socket=$1 | ||
9 | config_file=$2 | ||
10 | info=$(mysql --defaults-file=${config_file} -S $socket -e "show slave status" --vertical) | ||
11 | exit_code=$? | ||
12 | |||
13 | lag=$(echo "$info" | grep "\bSeconds_Behind_Master\b" | cut -d':' -f2 | sed -e "s/\s//g") | ||
14 | |||
15 | IO_running=$(echo "$info" | grep "\bSlave_IO_Running\b" | cut -d':' -f2 | sed -e "s/\s//g") | ||
16 | SQL_running=$(echo "$info" | grep "\bSlave_SQL_Running\b" | cut -d':' -f2 | sed -e "s/\s//g") | ||
17 | |||
18 | if [[ $exit_code -ne 0 ]]; then | ||
19 | echo "UNKNOWN - Impossible to run mysql command" | ||
20 | exit $STATE_UNKNOWN | ||
21 | elif [[ -z "$lag" ]]; then | ||
22 | echo "UNKNOWN - No replication found for mysql" | ||
23 | exit $STATE_UNKNOWN | ||
24 | elif [[ "$IO_running" != "Yes" || "$SQL_running" != "Yes" ]]; then | ||
25 | echo "UNKNOWN - Replication is not running" | ||
26 | exit $STATE_UNKNOWN | ||
27 | else | ||
28 | output="Replication lag for mysql is ${lag}s" | ||
29 | LC_ALL=C lag=$(printf "%.*f" 0 $lag) | ||
30 | |||
31 | if [[ $lag -lt 5 ]]; then | ||
32 | echo "OK - $output | time=${lag}s;5;10;;" | ||
33 | exit $STATE_OK | ||
34 | elif [[ $lag -lt 10 ]]; then | ||
35 | echo "WARNING - $output | time=${lag}s;5;10;;" | ||
36 | exit $STATE_WARNING | ||
37 | else | ||
38 | echo "CRITICAL - $output | time=${lag}s;5;10;;" | ||
39 | exit $STATE_CRITICAL | ||
40 | fi | ||
41 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_openldap_replication b/modules/private/monitoring/plugins/check_openldap_replication deleted file mode 100755 index 7136ad5..0000000 --- a/modules/private/monitoring/plugins/check_openldap_replication +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | STATE_OK=0 | ||
4 | STATE_WARNING=1 | ||
5 | STATE_CRITICAL=2 | ||
6 | STATE_UNKNOWN=3 | ||
7 | |||
8 | distant_host="$1" | ||
9 | replication_dn="$2" | ||
10 | replication_pw="$3" | ||
11 | base="$4" | ||
12 | config="$5" | ||
13 | |||
14 | to_date() { | ||
15 | i="$1" | ||
16 | i=$(echo "$i" | grep contextCSN | cut -d":" -f2 | sed -e "s/\s//g") | ||
17 | i=$(echo "$i" | cut -d"#" -f1) | ||
18 | i=$(echo "$i" | cut -d"." -f1) | ||
19 | echo "$i" | ||
20 | } | ||
21 | |||
22 | # ldap | ||
23 | remote_ldap=$(ldapsearch -H $distant_host -D "$replication_dn" -y "$replication_pw" -b "$base" -s base -LLL contextCSN ) | ||
24 | exit_code_remote=$? | ||
25 | remote_ldap=$(to_date "$remote_ldap") | ||
26 | |||
27 | # slapcat | ||
28 | local_ldap=$(slapcat -b "$base" -f "$config" -a "(entryDN=$base)") | ||
29 | exit_code_local=$? | ||
30 | local_ldap=$(to_date "$local_ldap") | ||
31 | |||
32 | offset=$(($remote_ldap - $local_ldap)) | ||
33 | |||
34 | if [[ $exit_code_remote -ne 0 || $exit_code_local -ne 0 ]]; then | ||
35 | echo "UNKNOWN - Impossible to run ldap command" | ||
36 | exit $STATE_UNKNOWN | ||
37 | elif [[ -z "$offset" ]]; then | ||
38 | echo "UNKNOWN - No replication found" | ||
39 | exit $STATE_UNKNOWN | ||
40 | else | ||
41 | output="Replication lag for openldap is ${offset}s" | ||
42 | LC_ALL=C lag=$(printf "%.*f" 0 $lag) | ||
43 | |||
44 | if [[ $offset -lt 5 ]]; then | ||
45 | echo "OK - $output | time=${offset}s;5;10;;" | ||
46 | exit $STATE_OK | ||
47 | elif [[ $offset -lt 10 ]]; then | ||
48 | echo "WARNING - $output | time=${offset}s;5;10;;" | ||
49 | exit $STATE_WARNING | ||
50 | else | ||
51 | echo "CRITICAL - $output | time=${offset}s;5;10;;" | ||
52 | exit $STATE_CRITICAL | ||
53 | fi | ||
54 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_ovh_sms b/modules/private/monitoring/plugins/check_ovh_sms deleted file mode 100755 index caf279c..0000000 --- a/modules/private/monitoring/plugins/check_ovh_sms +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | #!/usr/bin/env python | ||
2 | |||
3 | import sys | ||
4 | try: | ||
5 | import ovh | ||
6 | |||
7 | [endpoint, application_key, application_secret, consumer_key, account] = sys.argv[1].split(",") | ||
8 | client = ovh.Client( | ||
9 | endpoint=endpoint, | ||
10 | application_key=application_key, | ||
11 | application_secret=application_secret, | ||
12 | consumer_key=consumer_key, | ||
13 | ) | ||
14 | |||
15 | result = client.get('/sms/{}'.format(account))["creditsLeft"] | ||
16 | |||
17 | if result < 20: | ||
18 | print("SMS OVH Critical - Not enough sms left ({})|SMS={};;;;".format(result, result)) | ||
19 | sys.exit(2) | ||
20 | else: | ||
21 | print("SMS OVH Ok - Enough sms left ({})|SMS={};;;;".format(result, result)) | ||
22 | sys.exit(0) | ||
23 | except Exception: | ||
24 | print("SMS OVH UNKNOWN - Error during script") | ||
25 | sys.exit(3) | ||
diff --git a/modules/private/monitoring/plugins/check_postgres_database_count b/modules/private/monitoring/plugins/check_postgres_database_count deleted file mode 100755 index 43bdd8c..0000000 --- a/modules/private/monitoring/plugins/check_postgres_database_count +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | STATE_OK=0 | ||
4 | STATE_WARNING=1 | ||
5 | STATE_CRITICAL=2 | ||
6 | STATE_UNKNOWN=3 | ||
7 | |||
8 | host=$1 | ||
9 | port=$2 | ||
10 | min=$3 | ||
11 | |||
12 | count=$(psql -h $host -p $port -A -q -c '\t' -c 'select count(datname) from pg_catalog.pg_database' postgres 2>&1) | ||
13 | exit_code=$? | ||
14 | |||
15 | if [[ $exit_code -ne 0 ]]; then | ||
16 | echo "UNKNOWN - Impossible to run psql command: $count" | ||
17 | exit $STATE_UNKNOWN | ||
18 | elif [[ -z "$count" ]]; then | ||
19 | echo "UNKNOWN - No database found" | ||
20 | exit $STATE_UNKNOWN | ||
21 | else | ||
22 | output="Database count is $count" | ||
23 | LC_ALL=C count=$(printf "%.*f" 0 $count) | ||
24 | |||
25 | if [[ $count -gt $min ]]; then | ||
26 | echo "OK - $output | count=${count};$min;$min;0;" | ||
27 | exit $STATE_OK | ||
28 | else | ||
29 | echo "CRITICAL - $output | count=${count};$min;$min;0;" | ||
30 | exit $STATE_CRITICAL | ||
31 | fi | ||
32 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_postgres_replication b/modules/private/monitoring/plugins/check_postgres_replication deleted file mode 100755 index ff257a3..0000000 --- a/modules/private/monitoring/plugins/check_postgres_replication +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | STATE_OK=0 | ||
4 | STATE_WARNING=1 | ||
5 | STATE_CRITICAL=2 | ||
6 | STATE_UNKNOWN=3 | ||
7 | |||
8 | user=$1 | ||
9 | host=$2 | ||
10 | port=$3 | ||
11 | |||
12 | lag=$(psql -h $host -p $port -A -t -c "SELECT COALESCE(EXTRACT(EPOCH FROM replay_lag),0) FROM pg_stat_replication WHERE usename='$user'" 2>/dev/null) | ||
13 | exit_code=$? | ||
14 | |||
15 | if [[ $exit_code -ne 0 ]]; then | ||
16 | echo "UNKNOWN - Impossible to run psql command" | ||
17 | exit $STATE_UNKNOWN | ||
18 | elif [[ -z "$lag" ]]; then | ||
19 | echo "UNKNOWN - No replication found for $user" | ||
20 | exit $STATE_UNKNOWN | ||
21 | else | ||
22 | output="Replication lag for $user is ${lag}s" | ||
23 | LC_ALL=C lag=$(printf "%.*f" 0 $lag) | ||
24 | |||
25 | if [[ $lag -lt 5 ]]; then | ||
26 | echo "OK - $output | time=${lag}s;5;10;0;" | ||
27 | exit $STATE_OK | ||
28 | elif [[ $lag -lt 10 ]]; then | ||
29 | echo "WARNING - $output | time=${lag}s;5;10;0;" | ||
30 | exit $STATE_WARNING | ||
31 | else | ||
32 | echo "CRITICAL - $output | time=${lag}s;5;10;0;" | ||
33 | exit $STATE_CRITICAL | ||
34 | fi | ||
35 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_redis_replication b/modules/private/monitoring/plugins/check_redis_replication deleted file mode 100755 index 6dbe4c4..0000000 --- a/modules/private/monitoring/plugins/check_redis_replication +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | STATE_OK=0 | ||
4 | STATE_WARNING=1 | ||
5 | STATE_CRITICAL=2 | ||
6 | STATE_UNKNOWN=3 | ||
7 | |||
8 | socket=$1 | ||
9 | |||
10 | info=$(redis-cli -s $socket info replication) | ||
11 | lag=$(echo "$info" | grep master_last_io_seconds_ago | cut -d":" -f2 | sed -e "s/\s//g") | ||
12 | slave_offset=$(echo "$info" | grep slave_repl_offset | cut -d":" -f2 | sed -e "s/\s//g") | ||
13 | master_offset=$(echo "$info" | grep master_repl_offset | cut -d":" -f2 | sed -e "s/\s//g") | ||
14 | offset=$(($master_offset - $slave_offset)) | ||
15 | |||
16 | exit_code=$? | ||
17 | |||
18 | if [[ $exit_code -ne 0 ]]; then | ||
19 | echo "UNKNOWN - Impossible to run redis command" | ||
20 | exit $STATE_UNKNOWN | ||
21 | elif [[ -z "$lag" ]]; then | ||
22 | echo "UNKNOWN - No replication found" | ||
23 | exit $STATE_UNKNOWN | ||
24 | else | ||
25 | output="Replication lag for redis is ${lag}s and offset is ${offset}" | ||
26 | LC_ALL=C lag=$(printf "%.*f" 0 $lag) | ||
27 | |||
28 | if [[ $lag -lt 5 && $offset -lt 5 ]]; then | ||
29 | echo "OK - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;" | ||
30 | exit $STATE_OK | ||
31 | elif [[ $lag -lt 10 && $offset -lt 10 ]]; then | ||
32 | echo "WARNING - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;" | ||
33 | exit $STATE_WARNING | ||
34 | else | ||
35 | echo "CRITICAL - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;" | ||
36 | exit $STATE_CRITICAL | ||
37 | fi | ||
38 | fi | ||
diff --git a/modules/private/monitoring/plugins/check_zfs_snapshot b/modules/private/monitoring/plugins/check_zfs_snapshot deleted file mode 100755 index 56f8c4f..0000000 --- a/modules/private/monitoring/plugins/check_zfs_snapshot +++ /dev/null | |||
@@ -1,325 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | |||
3 | OS=$(uname) | ||
4 | |||
5 | # MIT License | ||
6 | # | ||
7 | # Copyright (c) 2016 Josef Friedrich <josef@friedrich.rocks> | ||
8 | # | ||
9 | # Permission is hereby granted, free of charge, to any person obtaining | ||
10 | # a copy of this software and associated documentation files (the | ||
11 | # "Software"), to deal in the Software without restriction, including | ||
12 | # without limitation the rights to use, copy, modify, merge, publish, | ||
13 | # distribute, sublicense, and/or sell copies of the Software, and to | ||
14 | # permit persons to whom the Software is furnished to do so, subject to | ||
15 | # the following conditions: | ||
16 | # | ||
17 | # The above copyright notice and this permission notice shall be | ||
18 | # included in all copies or substantial portions of the Software. | ||
19 | # | ||
20 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
21 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
22 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
23 | # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||
24 | # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
25 | # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
26 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
27 | |||
28 | ######################################################################## | ||
29 | # Date functions | ||
30 | ######################################################################## | ||
31 | |||
32 | # This date function must be placed on the top of this file because | ||
33 | # they are used in some global variables. | ||
34 | |||
35 | # to_year ### | ||
36 | |||
37 | ## | ||
38 | # Get the four digit year integer from now. | ||
39 | # | ||
40 | # Return: | ||
41 | # The current 4 digit year. | ||
42 | ## | ||
43 | _now_to_year() { | ||
44 | date +%Y | ||
45 | } | ||
46 | |||
47 | ## | ||
48 | # Convert a date in the format YYYY-MM-DD to a four digit year integer. | ||
49 | # | ||
50 | # Parameters: | ||
51 | # a date in the format YYYY-MM-DD | ||
52 | # | ||
53 | # Return: | ||
54 | # four digit year integer | ||
55 | ## | ||
56 | _date_to_year() { | ||
57 | local OPTIONS | ||
58 | if [ "$OS" = 'Linux' ]; then | ||
59 | OPTIONS="--date $1" | ||
60 | # FreeBSD, Darwin | ||
61 | else | ||
62 | OPTIONS="-j -f %Y-%m-%d $1" | ||
63 | fi | ||
64 | date $OPTIONS +%Y | ||
65 | } | ||
66 | |||
67 | # to_datetime ### | ||
68 | |||
69 | ## | ||
70 | # Convert a UNIX timestamp to a datetime string. | ||
71 | # | ||
72 | # Parameters: | ||
73 | # UNIX timestamp | ||
74 | # | ||
75 | # Return: | ||
76 | # %Y-%m-%d.%H:%M:%S | ||
77 | ## | ||
78 | _timestamp_to_datetime() { | ||
79 | local OPTIONS | ||
80 | if [ "$OS" = 'Linux' ]; then | ||
81 | OPTIONS="--date @$1" | ||
82 | # FreeBSD, Darwin | ||
83 | else | ||
84 | OPTIONS="-j -f %s $1" | ||
85 | fi | ||
86 | date $OPTIONS +%Y-%m-%d.%H:%M:%S | ||
87 | } | ||
88 | |||
89 | # to_timestamp ### | ||
90 | |||
91 | ## | ||
92 | # Get the current UNIX timestamp. | ||
93 | # | ||
94 | # Return: | ||
95 | # %current UNIX timestamp | ||
96 | ## | ||
97 | _now_to_timestamp() { | ||
98 | date +%s | ||
99 | } | ||
100 | |||
101 | PROJECT_PAGES='https://github.com/Josef-Friedrich/check_zfs_snapshot | ||
102 | https://exchange.icinga.com/joseffriedrich/check_zfs_snapshot | ||
103 | https://exchange.nagios.org/directory/Plugins/System-Metrics/File-System/check_zfs_snapshot/details' | ||
104 | |||
105 | VERSION=1.2 | ||
106 | FIRST_RELEASE=2016-09-08 | ||
107 | SHORT_DESCRIPTION="Monitoring plugin to check how long ago the last \ | ||
108 | snapshot of a ZFS dataset was created." | ||
109 | USAGE="check_zfs_snapshot v$VERSION | ||
110 | Copyright (c) $(_date_to_year $FIRST_RELEASE)-$(_now_to_year) \ | ||
111 | Josef Friedrich <josef@friedrich.rocks> | ||
112 | |||
113 | $SHORT_DESCRIPTION | ||
114 | |||
115 | |||
116 | Usage: check_zfs_snapshot <options> | ||
117 | |||
118 | Options: | ||
119 | -c, --critical=OPT_CRITICAL | ||
120 | Interval in seconds for critical state. | ||
121 | -d, --dataset=OPT_DATASET | ||
122 | The ZFS dataset to check. | ||
123 | -h, --help | ||
124 | Show this help. | ||
125 | -s, --short-description | ||
126 | Show a short description of the command. | ||
127 | -v, --version | ||
128 | Show the version number. | ||
129 | -w, --warning=OPT_WARNING | ||
130 | Interval in seconds for warning state. Must be lower than -c | ||
131 | |||
132 | Performance data: | ||
133 | - last_ago | ||
134 | Time interval in seconds for last snapshot. | ||
135 | - warning | ||
136 | Interval in seconds. | ||
137 | - critical | ||
138 | Interval in seconds. | ||
139 | - snapshot_count | ||
140 | How many snapshot exists in the given dataset and all child | ||
141 | datasets exists. | ||
142 | " | ||
143 | |||
144 | # Exit codes | ||
145 | STATE_OK=0 | ||
146 | STATE_WARNING=1 | ||
147 | STATE_CRITICAL=2 | ||
148 | STATE_UNKNOWN=3 | ||
149 | |||
150 | _get_last_snapshot() { | ||
151 | zfs get creation -Hpr -t snapshot "$1" | \ | ||
152 | awk 'BEGIN {max = 0} {if ($3>max) max=$3} END {print max}' | ||
153 | } | ||
154 | |||
155 | _getopts() { | ||
156 | while getopts ':c:d:hsvw:-:' OPT ; do | ||
157 | case $OPT in | ||
158 | |||
159 | c) | ||
160 | OPT_CRITICAL=$OPTARG | ||
161 | ;; | ||
162 | |||
163 | d) | ||
164 | OPT_DATASET="$OPTARG" | ||
165 | ;; | ||
166 | |||
167 | h) | ||
168 | echo "$USAGE" | ||
169 | exit 0 | ||
170 | ;; | ||
171 | |||
172 | s) | ||
173 | echo "$SHORT_DESCRIPTION" | ||
174 | exit 0 | ||
175 | ;; | ||
176 | |||
177 | v) | ||
178 | echo "$VERSION" | ||
179 | exit 0 | ||
180 | ;; | ||
181 | |||
182 | w) | ||
183 | OPT_WARNING=$OPTARG | ||
184 | ;; | ||
185 | |||
186 | \?) | ||
187 | echo "Invalid option “-$OPTARG”!" >&2 | ||
188 | exit 2 | ||
189 | ;; | ||
190 | |||
191 | :) | ||
192 | echo "Option “-$OPTARG” requires an argument!" >&2 | ||
193 | exit 3 | ||
194 | ;; | ||
195 | |||
196 | -) | ||
197 | LONG_OPTARG="${OPTARG#*=}" | ||
198 | |||
199 | case $OPTARG in | ||
200 | |||
201 | critical=?*) | ||
202 | OPT_CRITICAL=$LONG_OPTARG | ||
203 | ;; | ||
204 | |||
205 | dataset=?*) | ||
206 | OPT_DATASET="$LONG_OPTARG" | ||
207 | ;; | ||
208 | |||
209 | help) | ||
210 | echo "$USAGE" | ||
211 | exit 0 | ||
212 | ;; | ||
213 | |||
214 | short-description) | ||
215 | echo "$SHORT_DESCRIPTION" | ||
216 | exit 0 | ||
217 | ;; | ||
218 | |||
219 | version) | ||
220 | echo "$VERSION" | ||
221 | exit 0 | ||
222 | ;; | ||
223 | |||
224 | warning=?*) | ||
225 | OPT_WARNING=$LONG_OPTARG | ||
226 | ;; | ||
227 | |||
228 | critical*|dataset*|warning*) | ||
229 | echo "Option “--$OPTARG” requires an argument!" >&2 | ||
230 | exit 3 | ||
231 | ;; | ||
232 | |||
233 | help*|short-description*|version*) | ||
234 | echo "No argument allowed for the option “--$OPTARG”!" >&2 | ||
235 | exit 4 | ||
236 | ;; | ||
237 | |||
238 | '') # "--" terminates argument processing | ||
239 | break | ||
240 | ;; | ||
241 | |||
242 | *) | ||
243 | echo "Invalid option “--$OPTARG”!" >&2 | ||
244 | exit 2 | ||
245 | ;; | ||
246 | |||
247 | esac | ||
248 | ;; | ||
249 | |||
250 | esac | ||
251 | done | ||
252 | } | ||
253 | |||
254 | _snapshot_count() { | ||
255 | # FreeBSD wc adds some whitespaces before the number! | ||
256 | # cat $HOME/debug | wc -l | ||
257 | # 7 | ||
258 | local COUNT | ||
259 | COUNT="$(zfs list -t snapshot | grep "$1" | wc -l)" | ||
260 | echo $COUNT | ||
261 | } | ||
262 | |||
263 | _performance_data() { | ||
264 | echo "| \ | ||
265 | last_ago=${DIFF}s;$OPT_WARNING;$OPT_CRITICAL;0 \ | ||
266 | count=$(_snapshot_count "$OPT_DATASET");;;0\ | ||
267 | " | ||
268 | } | ||
269 | |||
270 | ## This SEPARATOR is required for test purposes. Please don’t remove! ## | ||
271 | |||
272 | _getopts $@ | ||
273 | |||
274 | if [ -z "$OPT_WARNING" ]; then | ||
275 | # 1 day | ||
276 | OPT_WARNING=86400 | ||
277 | fi | ||
278 | |||
279 | if [ -z "$OPT_CRITICAL" ]; then | ||
280 | # 3 day | ||
281 | OPT_CRITICAL=259200 | ||
282 | fi | ||
283 | |||
284 | if [ -z "$OPT_DATASET" ]; then | ||
285 | echo "Dataset has to be set! Use option -d <dataset>" >&2 | ||
286 | echo "$USAGE" >&2 | ||
287 | exit $STATE_UNKNOWN | ||
288 | fi | ||
289 | |||
290 | if ! zfs list "$OPT_DATASET" > /dev/null 2>&1; then | ||
291 | echo "'$OPT_DATASET' is no ZFS dataset!" >&2 | ||
292 | echo "$USAGE" >&2 | ||
293 | exit $STATE_UNKNOWN | ||
294 | fi | ||
295 | |||
296 | NOW=$(_now_to_timestamp) | ||
297 | |||
298 | CREATION_DATE=$(_get_last_snapshot "$OPT_DATASET") | ||
299 | |||
300 | DIFF=$((NOW - CREATION_DATE)) | ||
301 | |||
302 | if [ "$OPT_WARNING" -gt "$OPT_CRITICAL" ]; then | ||
303 | echo '-w OPT_WARNING must be smaller than -c OPT_CRITICAL' | ||
304 | _usage >&2 | ||
305 | exit $STATE_UNKNOWN | ||
306 | fi | ||
307 | |||
308 | RETURN=STATE_UNKNOWN | ||
309 | |||
310 | if [ "$DIFF" -gt "$OPT_CRITICAL" ]; then | ||
311 | RETURN=$STATE_CRITICAL | ||
312 | MESSAGE="CRITICAL:" | ||
313 | elif [ "$DIFF" -gt "$OPT_WARNING" ]; then | ||
314 | RETURN=$STATE_WARNING | ||
315 | MESSAGE="WARNING:" | ||
316 | else | ||
317 | RETURN=$STATE_OK | ||
318 | MESSAGE="OK:" | ||
319 | fi | ||
320 | |||
321 | DATE="$(_timestamp_to_datetime "$CREATION_DATE")" | ||
322 | |||
323 | echo "$MESSAGE Last snapshot for dataset '$OPT_DATASET' was created on $DATE $(_performance_data)" | ||
324 | |||
325 | exit $RETURN | ||
diff --git a/modules/private/monitoring/plugins/notify_by_email b/modules/private/monitoring/plugins/notify_by_email deleted file mode 100755 index 959db26..0000000 --- a/modules/private/monitoring/plugins/notify_by_email +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | # $1 = service/host | ||
4 | |||
5 | # $2 = type (PROBLEM RECOVERY ACKNOWLEDGEMENT FLAPPINGSTART FLAPPINGSTOP FLAPPINGDISABLED DOWNTIMESTART DOWNTIMESTOP DOWNTIMECANCELLED) | ||
6 | # http://www.naemon.org/documentation/usersguide/macrolist.html#notificationtype | ||
7 | |||
8 | # $3 = host alias | ||
9 | |||
10 | # $4 = date (YYYY-MM-DDTHH:MM:SS) | ||
11 | |||
12 | # $5 = E-mail | ||
13 | |||
14 | NOTIFICATION_TYPE="$2" | ||
15 | HOST_ALIAS="$3" | ||
16 | DATE="$4" | ||
17 | CONTACT="$5" | ||
18 | |||
19 | message="" | ||
20 | |||
21 | if [ "$1" = "host" ]; then | ||
22 | message=$(printf "%b" "***** Naemon *****\n\nNotification Type: $NOTIFICATION_TYPE\n\nHost: $HOST_ALIAS\nState: $HOSTSTATE\nInfo: $HOSTOUTPUT\n\nDate/Time: $DATE\n") | ||
23 | subject="** $NOTIFICATION_TYPE Host Alert: $HOST_ALIAS is $HOSTSTATE **" | ||
24 | else | ||
25 | message=$(printf "%b" "***** Naemon *****\n\nNotification Type: $NOTIFICATION_TYPE\n\nService: $SERVICEDESC\nHost: $HOST_ALIAS\nState: $SERVICESTATE\n\nDate/Time: $DATE\n\nAdditional Info:\n\n$SERVICEOUTPUT\n") | ||
26 | subject="** $NOTIFICATION_TYPE Service Alert: $HOST_ALIAS/$SERVICEDESC is $SERVICESTATE **" | ||
27 | fi | ||
28 | |||
29 | echo "$message" | MAILRC=/dev/null mail -r "$ADMINEMAIL" -n -s "$subject" "$CONTACT" | ||
diff --git a/modules/private/monitoring/plugins/notify_by_slack b/modules/private/monitoring/plugins/notify_by_slack deleted file mode 100755 index 1b16a0d..0000000 --- a/modules/private/monitoring/plugins/notify_by_slack +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | SLACK_CHANNEL="$1" | ||
4 | SLACK_USERNAME="Naemon" | ||
5 | SLACK_URL="$2" | ||
6 | SLACK_USERICON="https://assets.immae.eu/monitoring.png" | ||
7 | |||
8 | if [ "$SERVICESTATE" = "CRITICAL" ]; then | ||
9 | ICON=":exclamation:" | ||
10 | COLOR="#DA0505" | ||
11 | elif [ "$SERVICESTATE" = "WARNING" ]; then | ||
12 | ICON=":warning:" | ||
13 | COLOR="#F1E903" | ||
14 | elif [ "$SERVICESTATE" = "OK" ]; then | ||
15 | ICON=":white_check_mark:" | ||
16 | COLOR="#36a64f" | ||
17 | elif [ "$SERVICESTATE" = "UNKNOWN" ]; then | ||
18 | ICON=":question:" | ||
19 | COLOR="#000000" | ||
20 | else | ||
21 | ICON=":white_medium_square:" | ||
22 | COLOR="#ffffff" | ||
23 | fi | ||
24 | |||
25 | payload=$(echo "{}" | jq -r \ | ||
26 | --arg "icon_url" "$SLACK_USERICON" \ | ||
27 | --arg "channel" "$SLACK_CHANNEL" \ | ||
28 | --arg "username" "$SLACK_USERNAME" \ | ||
29 | --arg "text" "${ICON} ${SERVICEDESC} on ${HOST} is ${SERVICESTATE}" \ | ||
30 | --arg "color" "$COLOR" \ | ||
31 | --arg "host" "$HOST" \ | ||
32 | --arg "desc" "$SERVICEDESC" \ | ||
33 | --arg "state" "$SERVICESTATE" \ | ||
34 | --arg "output" "$SERVICEOUTPUT" \ | ||
35 | '.icon_url = $icon_url | | ||
36 | .channel = $channel | | ||
37 | .username = $username | | ||
38 | .text = $text | | ||
39 | .attachments = [{fallback:"", color:$color,fields: [{},{},{},{}]}] | | ||
40 | .attachments[0].fields[0] = {title:"Host",value:$host,short:true} | | ||
41 | .attachments[0].fields[1] = {title:"Service description",value:$desc,short:true} | | ||
42 | .attachments[0].fields[2] = {title:"Status",value:$state,short:true} | | ||
43 | .attachments[0].fields[3] = {title:"Message",value:$output,short:false} | ||
44 | ') | ||
45 | |||
46 | curl -X POST --data "payload=$payload" $SLACK_URL | ||
diff --git a/modules/private/monitoring/plugins/notify_eban_url b/modules/private/monitoring/plugins/notify_eban_url deleted file mode 100755 index 107b5de..0000000 --- a/modules/private/monitoring/plugins/notify_eban_url +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | if [ "$SERVICESTATE" = "CRITICAL" -o "$SERVICESTATE" = "UNKNOWN" -o "$HOSTSTATE" = "DOWN" -o "$HOSTSTATE" = "UNREACHABLE" ]; then | ||
4 | MESSAGE="$STATUS_NAME seems down!" | ||
5 | curl -X GET -G --data-urlencode "user=$USER" --data-urlencode "pass=$PASSWORD" --data-urlencode "msg=$MESSAGE" https://smsapi.free-mobile.fr/sendmsg | ||
6 | fi | ||
diff --git a/modules/private/monitoring/plugins/send_nrdp.sh b/modules/private/monitoring/plugins/send_nrdp.sh deleted file mode 100755 index c83c8cb..0000000 --- a/modules/private/monitoring/plugins/send_nrdp.sh +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | TEMPLATE='{ | ||
4 | "cmd": "submitcheck", | ||
5 | "token": $token, | ||
6 | "checkresult": [{ | ||
7 | "hostname": $hostname, | ||
8 | "state": $state, | ||
9 | "output": $output, | ||
10 | "type": $type, | ||
11 | "servicename": $servicename | ||
12 | }] | ||
13 | }' | ||
14 | |||
15 | while getopts "u:t:H:s:S:o:" option | ||
16 | do | ||
17 | case $option in | ||
18 | u) url=$OPTARG ;; | ||
19 | t) token=$OPTARG ;; | ||
20 | H) hostname=$OPTARG ;; | ||
21 | s) servicename=$OPTARG ;; | ||
22 | S) state=$OPTARG ;; | ||
23 | o) output=$OPTARG ;; | ||
24 | esac | ||
25 | done | ||
26 | |||
27 | if [ -n "$servicename" ]; then | ||
28 | checktype="service" | ||
29 | else | ||
30 | checktype="host" | ||
31 | fi | ||
32 | |||
33 | payload=$(jq -n \ | ||
34 | --arg type "$checktype" \ | ||
35 | --arg hostname "$hostname" \ | ||
36 | --arg servicename "$servicename" \ | ||
37 | --arg output "$output" \ | ||
38 | --arg token "$token" \ | ||
39 | --arg state "$state" \ | ||
40 | "$TEMPLATE") | ||
41 | |||
42 | rslt=$(curl -f --silent --insecure -d "$payload" -H "Content-Type: application/json" "$url") | ||
43 | ret=$? | ||
44 | |||
45 | if [ $ret != 0 ];then | ||
46 | echo "ERROR: could not connect to NRDP server at $url" | ||
47 | exit 1 | ||
48 | fi | ||
49 | |||
50 | status=$(echo "$rslt" | jq -r .status) | ||
51 | message=$(echo "$rslt" | jq -r .message) | ||
52 | |||
53 | if [ "$status" != "ok" ];then | ||
54 | echo "ERROR: The NRDP Server said $message" | ||
55 | exit 2 | ||
56 | fi | ||
57 | echo "Sent 1 checks to $url" | ||
diff --git a/modules/private/monitoring/send_mails b/modules/private/monitoring/send_mails deleted file mode 100755 index 105c505..0000000 --- a/modules/private/monitoring/send_mails +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | CHECK_DIR=$1 | ||
4 | shift | ||
5 | RETURN_PATH=$1 | ||
6 | shift | ||
7 | |||
8 | for mail in "$@"; do | ||
9 | echo "Test Mail" | MAILRC=/dev/null mail -n -r "$RETURN_PATH" -s "TestMailImmae " "$mail" | ||
10 | done | ||
11 | |||
12 | if [ -d "$CHECK_DIR" ]; then | ||
13 | cd $CHECK_DIR | ||
14 | stat -c '%n;%y' * | ||
15 | fi | ||
diff --git a/modules/private/monitoring/status.nix b/modules/private/monitoring/status.nix deleted file mode 100644 index ab0290c..0000000 --- a/modules/private/monitoring/status.nix +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
1 | { config, pkgs, lib, name, ... }: | ||
2 | { | ||
3 | options = { | ||
4 | myServices.status = { | ||
5 | enable = lib.mkOption { | ||
6 | type = lib.types.bool; | ||
7 | default = false; | ||
8 | description = '' | ||
9 | Whether to enable status app. | ||
10 | ''; | ||
11 | }; | ||
12 | }; | ||
13 | }; | ||
14 | config = lib.mkIf config.myServices.status.enable { | ||
15 | secrets.keys."naemon-status/environment" = { | ||
16 | user = "naemon"; | ||
17 | group = "naemon"; | ||
18 | permissions = "0400"; | ||
19 | text = '' | ||
20 | TOKENS=${builtins.concatStringsSep " " config.myEnv.monitoring.nrdp_tokens} | ||
21 | ''; | ||
22 | }; | ||
23 | services.nginx = { | ||
24 | enable = true; | ||
25 | recommendedOptimisation = true; | ||
26 | recommendedGzipSettings = true; | ||
27 | recommendedProxySettings = true; | ||
28 | upstreams."netdata".servers = { "127.0.0.1:19999" = {}; }; | ||
29 | upstreams."netdata".extraConfig = '' | ||
30 | keepalive 64; | ||
31 | ''; | ||
32 | virtualHosts."status.eban.bzh" = { | ||
33 | acmeRoot = config.myServices.certificates.webroot; | ||
34 | useACMEHost = name; | ||
35 | forceSSL = true; | ||
36 | locations."/".proxyPass = "http://unix:/run/naemon-status/socket.sock:/"; | ||
37 | }; | ||
38 | virtualHosts."status.immae.eu" = { | ||
39 | acmeRoot = config.myServices.certificates.webroot; | ||
40 | useACMEHost = name; | ||
41 | forceSSL = true; | ||
42 | locations."/".proxyPass = "http://unix:/run/naemon-status/socket.sock:/"; | ||
43 | |||
44 | locations."= /netdata".return = "301 /netdata/"; | ||
45 | locations."~ /netdata/(?<ndpath>.*)".extraConfig = '' | ||
46 | proxy_redirect off; | ||
47 | proxy_set_header Host $host; | ||
48 | |||
49 | proxy_set_header X-Forwarded-Host $host; | ||
50 | proxy_set_header X-Forwarded-Server $host; | ||
51 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
52 | proxy_http_version 1.1; | ||
53 | proxy_pass_request_headers on; | ||
54 | proxy_set_header Connection "keep-alive"; | ||
55 | proxy_store off; | ||
56 | proxy_pass http://netdata/$ndpath$is_args$args; | ||
57 | |||
58 | gzip on; | ||
59 | gzip_proxied any; | ||
60 | gzip_types *; | ||
61 | ''; | ||
62 | }; | ||
63 | }; | ||
64 | security.acme.certs."${name}" = { | ||
65 | extraDomains."status.immae.eu" = null; | ||
66 | extraDomains."status.eban.bzh" = null; | ||
67 | user = config.services.nginx.user; | ||
68 | group = config.services.nginx.group; | ||
69 | }; | ||
70 | |||
71 | myServices.certificates.enable = true; | ||
72 | networking.firewall.allowedTCPPorts = [ 80 443 ]; | ||
73 | systemd.services.naemon-status = { | ||
74 | description = "Naemon status"; | ||
75 | after = [ "network.target" ]; | ||
76 | wantedBy = [ "multi-user.target" ]; | ||
77 | |||
78 | serviceConfig = { | ||
79 | EnvironmentFile = config.secrets.fullPaths."naemon-status/environment"; | ||
80 | Type = "simple"; | ||
81 | WorkingDirectory = "${./status}"; | ||
82 | ExecStart = let | ||
83 | python = pkgs.python3.withPackages (p: [ p.gunicorn p.flask p.flask_login ]); | ||
84 | in | ||
85 | "${python}/bin/gunicorn -w4 --bind unix:/run/naemon-status/socket.sock app:app"; | ||
86 | User = "naemon"; | ||
87 | RuntimeDirectory = "naemon-status"; | ||
88 | StandardOutput = "journal"; | ||
89 | StandardError = "inherit"; | ||
90 | }; | ||
91 | }; | ||
92 | }; | ||
93 | } | ||
diff --git a/modules/private/monitoring/status/app.py b/modules/private/monitoring/status/app.py deleted file mode 100755 index ff92891..0000000 --- a/modules/private/monitoring/status/app.py +++ /dev/null | |||
@@ -1,414 +0,0 @@ | |||
1 | from flask import Flask, request, render_template_string, jsonify, make_response | ||
2 | from flask_login import LoginManager, UserMixin, login_required | ||
3 | import socket | ||
4 | import json | ||
5 | import time | ||
6 | import os | ||
7 | |||
8 | login_manager = LoginManager() | ||
9 | app = Flask(__name__) | ||
10 | login_manager.init_app(app) | ||
11 | |||
12 | STATUS = [ | ||
13 | "ok", | ||
14 | "warning", | ||
15 | "error", | ||
16 | "unknown" | ||
17 | ] | ||
18 | |||
19 | HOST_STATUS = [ | ||
20 | "up", | ||
21 | "down", | ||
22 | "unreachable", | ||
23 | ] | ||
24 | |||
25 | #### Push | ||
26 | AUTHORIZED_KEYS = os.environ.get("TOKENS", "").split() | ||
27 | COMMAND_FILE = "/var/run/naemon/naemon.cmd" | ||
28 | |||
29 | ERROR_NO_REQUEST_HANDLER="NO REQUEST HANDLER" | ||
30 | ERROR_NO_TOKEN_SUPPLIED="NO TOKEN" | ||
31 | ERROR_BAD_TOKEN_SUPPLIED="BAD TOKEN" | ||
32 | |||
33 | ERROR_BAD_COMMAND_FILE="BAD COMMAND FILE" | ||
34 | ERROR_COMMAND_FILE_OPEN_WRITE="COMMAND FILE UNWRITEABLE" | ||
35 | ERROR_COMMAND_FILE_OPEN="CANNOT OPEN COMMAND FILE" | ||
36 | ERROR_BAD_WRITE="WRITE ERROR" | ||
37 | |||
38 | ERROR_BAD_DATA="BAD DATA" | ||
39 | ERROR_BAD_JSON="BAD JSON" | ||
40 | |||
41 | ERROR_NO_CORRECT_STATUS="NO STATUS WAS CORRECT" | ||
42 | #### /Push | ||
43 | |||
44 | def get_lq(request): | ||
45 | # https://mathias-kettner.de/checkmk_livestatus.html | ||
46 | socket_path="/var/run/naemon/live" | ||
47 | s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | ||
48 | s.connect(socket_path) | ||
49 | s.send(request.encode()) | ||
50 | s.shutdown(socket.SHUT_WR) | ||
51 | chunks = [] | ||
52 | while len(chunks) == 0 or len(chunks[-1]) > 0: | ||
53 | chunks.append(s.recv(4096)) | ||
54 | s.close() | ||
55 | return b"".join(chunks).decode() | ||
56 | |||
57 | class Host: | ||
58 | def __init__(self, name, alias, status, webname, vhost): | ||
59 | self.name = name | ||
60 | self.alias = alias | ||
61 | self.webname = webname or alias | ||
62 | self.vhost = vhost | ||
63 | self.status = status | ||
64 | self.services = [] | ||
65 | |||
66 | @classmethod | ||
67 | def parse_hosts(cls, payload, vhost): | ||
68 | parsed = filter(lambda x: x.vhost == vhost, [cls.parse(p) for p in json.loads(payload)]) | ||
69 | return {p.name: p for p in parsed} | ||
70 | |||
71 | @classmethod | ||
72 | def parse(cls, payload): | ||
73 | return cls(payload[0], payload[1], HOST_STATUS[payload[2]], payload[3].get("WEBSTATUS_NAME"), payload[3].get("WEBSTATUS_VHOST")) | ||
74 | |||
75 | def __repr__(self): | ||
76 | return "Host {}: {} ({})".format(self.name, self.alias, self.webname) | ||
77 | |||
78 | @classmethod | ||
79 | def query(cls, vhost): | ||
80 | answer = get_lq("""GET hosts | ||
81 | Filter: groups >= webstatus-hosts | ||
82 | Columns: name alias state custom_variables | ||
83 | OutputFormat: json | ||
84 | """) | ||
85 | return cls.parse_hosts(answer, vhost) | ||
86 | |||
87 | def fill_services(self, services): | ||
88 | self.services = [service for service in services if service.host == self.name] | ||
89 | |||
90 | class ServiceGroup: | ||
91 | def __init__(self, name, alias): | ||
92 | self.name = name | ||
93 | self.alias = alias | ||
94 | self.services = [] | ||
95 | |||
96 | @classmethod | ||
97 | def parse_groups(cls, payload): | ||
98 | parsed = [cls.parse(p) for p in json.loads(payload)] | ||
99 | return {p.name: p for p in parsed} | ||
100 | |||
101 | @classmethod | ||
102 | def parse(cls, payload): | ||
103 | return cls(payload[0], payload[1]) | ||
104 | |||
105 | @classmethod | ||
106 | def query(cls): | ||
107 | answer = get_lq("""GET servicegroups | ||
108 | Filter: name ~ ^webstatus- | ||
109 | Columns: name alias custom_variables | ||
110 | OutputFormat: json | ||
111 | """) | ||
112 | return cls.parse_groups(answer) | ||
113 | |||
114 | def fill_services(self, services, hosts): | ||
115 | self.services = [service for service in services if any([group == self.name for group in service.groups]) and service.host in hosts] | ||
116 | |||
117 | def __repr__(self): | ||
118 | return "ServiceGroup {}: {}".format(self.name, self.alias) | ||
119 | |||
120 | class Service: | ||
121 | def __init__(self, name, host, groups, status, webname, url, description, infos): | ||
122 | self.name = name | ||
123 | self.host = host | ||
124 | self.groups = groups | ||
125 | self.status = status | ||
126 | self.webname = webname | ||
127 | self.url = url | ||
128 | self.description = description | ||
129 | self.infos = infos | ||
130 | |||
131 | @classmethod | ||
132 | def parse_services(cls, payload): | ||
133 | parsed = json.loads(payload) | ||
134 | return [cls.parse(p) for p in parsed if cls.valid(p[2])] | ||
135 | |||
136 | @staticmethod | ||
137 | def valid(groups): | ||
138 | return any([b.startswith("webstatus-") for b in groups]) | ||
139 | |||
140 | @classmethod | ||
141 | def parse(cls, payload): | ||
142 | return cls(payload[0], | ||
143 | payload[1], | ||
144 | payload[2], | ||
145 | STATUS[payload[3]], | ||
146 | payload[4].get("WEBSTATUS_NAME"), | ||
147 | payload[4].get("WEBSTATUS_URL"), | ||
148 | payload[5], | ||
149 | payload[6]) | ||
150 | |||
151 | @classmethod | ||
152 | def query(cls): | ||
153 | answer = get_lq("""GET services | ||
154 | Columns: display_name host_name groups state custom_variables description plugin_output | ||
155 | OutputFormat: json | ||
156 | """) | ||
157 | return cls.parse_services(answer) | ||
158 | |||
159 | def __repr__(self): | ||
160 | return "Service {}: {}".format(self.name, self.webname) | ||
161 | |||
162 | def get_infos(vhost): | ||
163 | hosts = Host.query(vhost) | ||
164 | servicegroups = ServiceGroup.query() | ||
165 | services = Service.query() | ||
166 | |||
167 | for host in hosts: | ||
168 | hosts[host].fill_services(services) | ||
169 | for group in servicegroups: | ||
170 | servicegroups[group].fill_services(services, hosts) | ||
171 | return (hosts, servicegroups, services) | ||
172 | |||
173 | TEMPLATE='''<?xml version="1.0" encoding="UTF-8"?> | ||
174 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | ||
175 | <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> | ||
176 | <head> | ||
177 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
178 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
179 | <title>Status</title> | ||
180 | <meta name="referrer" content="no-referrer" /> | ||
181 | <style type="text/css"> | ||
182 | ul { | ||
183 | list-style: none; | ||
184 | margin: 0px; | ||
185 | } | ||
186 | ul li:nth-child(2n) { | ||
187 | background-color: rgb(240, 240, 240); | ||
188 | } | ||
189 | li.resource, li.service { | ||
190 | margin: 1px 0px; | ||
191 | } | ||
192 | span.status { | ||
193 | display: inline-block; | ||
194 | width: 150px; | ||
195 | text-align: center; | ||
196 | margin-right: 5px; | ||
197 | font-variant: small-caps; | ||
198 | font-size: 1.2em; | ||
199 | } | ||
200 | .status_ok,.status_up { | ||
201 | background-color: rgba(0, 255, 0, 0.5);; | ||
202 | } | ||
203 | .status_warning { | ||
204 | background-color: rgba(255, 255, 0, 0.5);; | ||
205 | } | ||
206 | .status_error,.status_down { | ||
207 | background-color: rgba(255, 0, 0, 0.5);; | ||
208 | } | ||
209 | .status_unknown,.status_unreachable { | ||
210 | background-color: rgba(0, 0, 255, 0.5);; | ||
211 | } | ||
212 | .infos { | ||
213 | margin-left: 40px; | ||
214 | color: rgb(100, 100, 100); | ||
215 | } | ||
216 | div#services { | ||
217 | column-count: auto; | ||
218 | column-width: 36em; | ||
219 | } | ||
220 | div.servicegroup { | ||
221 | -webkit-column-break-inside: avoid; | ||
222 | break-inside: avoid; | ||
223 | } | ||
224 | h3.servicegroup_title, h3.host_title { | ||
225 | margin: 1px 0px; | ||
226 | } | ||
227 | span.service_host, span.infos { | ||
228 | float: right; | ||
229 | display: inline-block; | ||
230 | color: rgb(100, 100, 100); | ||
231 | } | ||
232 | </style> | ||
233 | </head> | ||
234 | <body> | ||
235 | <h2>Hosts</h2> | ||
236 | {%- for host in hosts.values() %} | ||
237 | <h3 class="host_title"> | ||
238 | <span class="status status_{{ host.status }}">{{ host.status }}</span> | ||
239 | <span class="host">{{ host.webname }}</span> | ||
240 | </h3> | ||
241 | {%- for service in servicegroups["webstatus-resources"].services if service.host == host.name -%} | ||
242 | {%- if loop.first %} | ||
243 | <ul class="resources"> | ||
244 | {% endif %} | ||
245 | |||
246 | <li class="resource"> | ||
247 | <span class="status status_{{ service.status }}">{{ service.status }}</span> | ||
248 | <span class="description">{{ service.description }}</span> | ||
249 | <span class="infos">{{ service.infos }}</span> | ||
250 | </li> | ||
251 | |||
252 | {%- if loop.last %} | ||
253 | </ul> | ||
254 | {% endif %} | ||
255 | {% endfor %} | ||
256 | {%- endfor %} | ||
257 | |||
258 | {%- for group in servicegroups.values() if group.services and group.name != "webstatus-resources" %} | ||
259 | {%- if loop.first %} | ||
260 | <h2>Services</h2> | ||
261 | <div id="services"> | ||
262 | {%- endif %} | ||
263 | <div class="servicegroup"> | ||
264 | <h3 class="servicegroup_title">{{ group.alias }}</h3> | ||
265 | {%- for service in group.services if service.host in hosts -%} | ||
266 | {%- if loop.first %} | ||
267 | <ul class="services"> | ||
268 | {% endif %} | ||
269 | |||
270 | <li class="service" title="{{ service.infos }}"> | ||
271 | <span class="status status_{{ service.status }}">{{ service.status }}</span> | ||
272 | <span class="description"> | ||
273 | {% if service.url and service.url.startswith("https://") %} | ||
274 | <a href="{{ service.url }}">{{ service.webname or service.description }}</a> | ||
275 | {% else %} | ||
276 | {{ service.webname or service.description }} | ||
277 | {% endif %} | ||
278 | </span> | ||
279 | <span class="service_host">{{ hosts[service.host].webname }}</span> | ||
280 | </li> | ||
281 | |||
282 | {%- if loop.last %} | ||
283 | </ul> | ||
284 | {% endif %} | ||
285 | {%- endfor -%} | ||
286 | </div> | ||
287 | {%- if loop.last %} | ||
288 | </div> | ||
289 | {% endif %} | ||
290 | {%- endfor %} | ||
291 | </body> | ||
292 | </html> | ||
293 | ''' | ||
294 | |||
295 | @login_manager.request_loader | ||
296 | def load_user_from_request(request): | ||
297 | api_key = request.headers.get('Token') | ||
298 | if api_key in AUTHORIZED_KEYS: | ||
299 | return UserMixin() | ||
300 | content = request.get_json(force=True, silent=True) | ||
301 | if content is not None and content.get("token") in AUTHORIZED_KEYS: | ||
302 | return UserMixin() | ||
303 | |||
304 | @app.route("/live", methods=["POST"]) | ||
305 | @login_required | ||
306 | def live(): | ||
307 | query = request.get_data() | ||
308 | result = get_lq(query.decode() + "\n") | ||
309 | resp = make_response(result) | ||
310 | resp.content_type = "text/plain" | ||
311 | return resp | ||
312 | |||
313 | @app.route("/", methods=["GET"]) | ||
314 | def get(): | ||
315 | (hosts, servicegroups, services) = get_infos(request.host) | ||
316 | resp = make_response(render_template_string(TEMPLATE, hosts=hosts, servicegroups=servicegroups)) | ||
317 | resp.content_type = "text/html" | ||
318 | return resp | ||
319 | |||
320 | @app.route("/", methods=["POST"]) | ||
321 | @login_required | ||
322 | def push(): | ||
323 | content = request.get_json(force=True, silent=True) | ||
324 | if content is None: | ||
325 | return ERROR_BAD_JSON | ||
326 | if content.get("cmd") != "submitcheck": | ||
327 | return render_error(ERROR_NO_REQUEST_HANDLER) | ||
328 | if "checkresult" not in content or not isinstance(content["checkresult"], list): | ||
329 | return render_error(ERROR_BAD_DATA) | ||
330 | |||
331 | checks = 0 | ||
332 | errors = 0 | ||
333 | for check in map(lambda x: CheckResult.from_json(x), content["checkresult"]): | ||
334 | if check is None: | ||
335 | errors += 1 | ||
336 | continue | ||
337 | try: | ||
338 | write_check_output(check) | ||
339 | except Exception as e: | ||
340 | return render_error(str(e)) | ||
341 | checks += 1 | ||
342 | return render_response(checks, errors) | ||
343 | |||
344 | def write_check_output(check): | ||
345 | if check.type== "service": | ||
346 | command = "[{time}] PROCESS_SERVICE_CHECK_RESULT;{hostname};{servicename};{state};{output}"; | ||
347 | else: | ||
348 | command = "[{time}] PROCESS_HOST_CHECK_RESULT;{hostname};{state};{output}"; | ||
349 | formatted = command.format( | ||
350 | time=int(time.time()), | ||
351 | hostname=check.hostname, | ||
352 | state=check.state, | ||
353 | output=check.output, | ||
354 | servicename=check.servicename, | ||
355 | ) | ||
356 | |||
357 | if not os.path.exists(COMMAND_FILE): | ||
358 | raise Exception(ERROR_BAD_COMMAND_FILE) | ||
359 | if not os.access(COMMAND_FILE, os.W_OK): | ||
360 | raise Exception(ERROR_COMMAND_FILE_OPEN_WRITE) | ||
361 | if not os.access(COMMAND_FILE, os.W_OK): | ||
362 | raise Exception(ERROR_COMMAND_FILE_OPEN_WRITE) | ||
363 | try: | ||
364 | with open(COMMAND_FILE, "w") as c: | ||
365 | c.write(formatted + "\n") | ||
366 | except Exception as e: | ||
367 | raise Exception(ERROR_BAD_WRITE) | ||
368 | |||
369 | def render_error(error): | ||
370 | return jsonify({ | ||
371 | "status": "error", | ||
372 | "message": error, | ||
373 | }) | ||
374 | |||
375 | def render_response(checks, errors): | ||
376 | if checks > 0: | ||
377 | return jsonify({ | ||
378 | "status": "ok", | ||
379 | "result": { | ||
380 | "checks": checks, | ||
381 | "errors": errors, | ||
382 | } | ||
383 | }) | ||
384 | else: | ||
385 | return jsonify({ | ||
386 | "status": "error", | ||
387 | "message": ERROR_NO_CORRECT_STATUS, | ||
388 | }) | ||
389 | |||
390 | class CheckResult: | ||
391 | def __init__(self, hostname, state, output, servicename, checktype): | ||
392 | self.hostname = hostname | ||
393 | self.state = state | ||
394 | self.output = output | ||
395 | self.servicename = servicename | ||
396 | self.type = checktype | ||
397 | |||
398 | @classmethod | ||
399 | def from_json(klass, j): | ||
400 | if not isinstance(j, dict): | ||
401 | return None | ||
402 | for key in ["hostname", "state", "output"]: | ||
403 | if key not in j or not isinstance(j[key], str): | ||
404 | return None | ||
405 | for key in ["servicename", "type"]: | ||
406 | if key in j and not isinstance(j[key], str): | ||
407 | return None | ||
408 | return klass( | ||
409 | j["hostname"], | ||
410 | j["state"], | ||
411 | j["output"], | ||
412 | j.get("servicename", ""), | ||
413 | j.get("type", "host")) | ||
414 | |||
diff --git a/modules/private/monitoring/status_engine.nix b/modules/private/monitoring/status_engine.nix deleted file mode 100644 index 39a753a..0000000 --- a/modules/private/monitoring/status_engine.nix +++ /dev/null | |||
@@ -1,115 +0,0 @@ | |||
1 | { config, pkgs, lib, name, ... }: | ||
2 | let | ||
3 | package = pkgs.status_engine.worker.override { config_file = config.secrets.fullPaths."status_engine"; }; | ||
4 | env = config.myEnv.tools.status_engine; | ||
5 | in | ||
6 | { | ||
7 | config = lib.mkIf config.myServices.status.enable { | ||
8 | systemd.services.gearmand = { | ||
9 | description = "Gearman daemon"; | ||
10 | after = [ "network.target" ]; | ||
11 | wantedBy = [ "multi-user.target" ]; | ||
12 | serviceConfig = { | ||
13 | DynamicUser = true; | ||
14 | User = "gearmand"; | ||
15 | Type = "simple"; | ||
16 | ExecStart = "${pkgs.gearmand}/bin/gearmand --syslog -L 127.0.0.1 -q libsqlite3 --libsqlite3-db /var/lib/gearmand/gearmand.db --store-queue-on-shutdown -l stderr -P /run/gearmand/gearmand.pid"; | ||
17 | RuntimeDirectory = "gearmand"; | ||
18 | StateDirectory = "gearmand"; | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | secrets.keys."status_engine" = { | ||
23 | permissions = "0400"; | ||
24 | user = "naemon"; | ||
25 | group = "naemon"; | ||
26 | text = '' | ||
27 | node_name: ${name} | ||
28 | use_gearman: 1 | ||
29 | gearman: | ||
30 | address: 127.0.0.1 | ||
31 | port: 4730 | ||
32 | timeout: 1000 | ||
33 | use_rabbitmq: 0 | ||
34 | use_redis: 1 | ||
35 | redis: | ||
36 | address: 127.0.0.1 | ||
37 | port: 6379 | ||
38 | db: 0 | ||
39 | store_live_data_in_archive_backend: 1 | ||
40 | use_mysql: 1 | ||
41 | mysql: | ||
42 | host: ${env.mysql.remoteHost} | ||
43 | port: ${env.mysql.port} | ||
44 | username: ${env.mysql.user} | ||
45 | password: ${env.mysql.password} | ||
46 | database: ${env.mysql.database} | ||
47 | use_crate: 0 | ||
48 | number_of_bulk_records: 100 | ||
49 | max_bulk_delay: 5 | ||
50 | number_servicestatus_worker: 1 | ||
51 | number_hoststatus_worker: 1 | ||
52 | number_logentry_worker: 1 | ||
53 | number_statechange_worker: 1 | ||
54 | number_hostcheck_worker: 1 | ||
55 | number_servicecheck_worker: 1 | ||
56 | number_misc_worker: 1 | ||
57 | |||
58 | process_perfdata: 1 | ||
59 | number_perfdata_worker: 1 | ||
60 | perfdata_backend: | ||
61 | - mysql | ||
62 | |||
63 | check_for_commands: 1 | ||
64 | command_check_interval: 15 | ||
65 | external_command_file: /run/naemon/naemon.cmd | ||
66 | query_handler: /run/naemon/naemon.qh | ||
67 | submit_method: qh | ||
68 | |||
69 | syslog_enabled: 1 | ||
70 | syslog_tag: statusengine-worker | ||
71 | |||
72 | # Archive age | ||
73 | age_hostchecks: 5 | ||
74 | age_host_acknowledgements: 60 | ||
75 | age_host_notifications: 60 | ||
76 | age_host_statehistory: 365 | ||
77 | age_host_downtimes: 60 | ||
78 | age_servicechecks: 5 | ||
79 | age_service_acknowledgements: 60 | ||
80 | age_service_notifications: 60 | ||
81 | age_service_statehistory: 365 | ||
82 | age_service_downtimes: 60 | ||
83 | age_logentries: 5 | ||
84 | age_tasks: 1 | ||
85 | age_perfdata: 90 | ||
86 | |||
87 | disable_http_proxy: 1 | ||
88 | ''; | ||
89 | }; | ||
90 | |||
91 | services.redis = rec { | ||
92 | enable = true; | ||
93 | bind = "127.0.0.1"; | ||
94 | }; | ||
95 | |||
96 | services.cron = { | ||
97 | mailto = "cron@immae.eu"; | ||
98 | systemCronJobs = [ | ||
99 | "0 0 * * * naemon cd ${package} && ./bin/Console.php cleanup" | ||
100 | ]; | ||
101 | }; | ||
102 | |||
103 | systemd.services.status_engine_worker = { | ||
104 | description = "Status engine worker"; | ||
105 | after = [ "network.target" ]; | ||
106 | wantedBy = [ "multi-user.target" ]; | ||
107 | serviceConfig = { | ||
108 | Type = "simple"; | ||
109 | Restart = "on-failure"; | ||
110 | User = "naemon"; | ||
111 | ExecStart = "${package}/bin/StatusengineWorker.php"; | ||
112 | }; | ||
113 | }; | ||
114 | }; | ||
115 | } | ||
diff --git a/modules/private/monitoring/to_objects.nix b/modules/private/monitoring/to_objects.nix deleted file mode 100644 index 12721d2..0000000 --- a/modules/private/monitoring/to_objects.nix +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | { lib }: | ||
2 | with lib.attrsets; | ||
3 | with lib.strings; | ||
4 | with lib.lists; | ||
5 | with lib.trivial; | ||
6 | let | ||
7 | pad = width: str: let | ||
8 | padWidth = width - stringLength str; | ||
9 | padding = concatStrings (genList (const " ") padWidth); | ||
10 | in str + optionalString (padWidth > 0) padding; | ||
11 | toStr = k: v: | ||
12 | if k == "check_command" && builtins.isList v | ||
13 | then builtins.concatStringsSep "!" v | ||
14 | else v; | ||
15 | |||
16 | toService = service: '' | ||
17 | define service { | ||
18 | ${builtins.concatStringsSep "\n" (mapAttrsToList (k: v: | ||
19 | " ${pad 30 k} ${toStr k v}" | ||
20 | ) (filterAttrs (k: v: ! builtins.elem k ["passiveInfo" "filter"]) service))} | ||
21 | } | ||
22 | ''; | ||
23 | toServices = services: builtins.concatStringsSep "\n" (map toService services); | ||
24 | |||
25 | toCommand = k: v: '' | ||
26 | define command { | ||
27 | ${pad 30 "command_name"} ${k} | ||
28 | ${pad 30 "command_line"} ${v} | ||
29 | } | ||
30 | ''; | ||
31 | toCommands = a: builtins.concatStringsSep "\n" (mapAttrsToList toCommand a); | ||
32 | |||
33 | toOther = keyname: k: v: '' | ||
34 | define ${keyname} { | ||
35 | ${pad 30 "${keyname}_name"} ${k} | ||
36 | ${builtins.concatStringsSep "\n" (mapAttrsToList (kk: vv: | ||
37 | " ${pad 30 kk} ${vv}" | ||
38 | ) v)} | ||
39 | } | ||
40 | ''; | ||
41 | toOtherNoName = keyname: v: '' | ||
42 | define ${keyname} { | ||
43 | ${builtins.concatStringsSep "\n" (mapAttrsToList (kk: vv: | ||
44 | " ${pad 30 kk} ${vv}" | ||
45 | ) v)} | ||
46 | } | ||
47 | ''; | ||
48 | toOthers = keyname: a: builtins.concatStringsSep "\n" (mapAttrsToList (toOther keyname) a); | ||
49 | toOthersArray = keyname: a: builtins.concatStringsSep "\n" (map (toOtherNoName keyname) a); | ||
50 | |||
51 | toTemplate = keyname: k: v: '' | ||
52 | define ${keyname} { | ||
53 | ${pad 30 "name"} ${k} | ||
54 | ${pad 30 "register"} 0 | ||
55 | ${builtins.concatStringsSep "\n" (mapAttrsToList (kk: vv: | ||
56 | " ${pad 30 kk} ${vv}" | ||
57 | ) v)} | ||
58 | } | ||
59 | ''; | ||
60 | toTemplates' = keyname: a: builtins.concatStringsSep "\n" (mapAttrsToList (toTemplate keyname) a); | ||
61 | toTemplates = v: builtins.concatStringsSep "\n" (mapAttrsToList toTemplates' v); | ||
62 | |||
63 | toObjects' = keyname: v: | ||
64 | if keyname == "service" | ||
65 | then toServices v | ||
66 | else if keyname == "command" | ||
67 | then toCommands v | ||
68 | else if keyname == "templates" | ||
69 | then toTemplates v | ||
70 | else if builtins.elem keyname ["hostgroup" "host" "contactgroup" "contact" "timeperiod" "servicegroup"] | ||
71 | then toOthers keyname v | ||
72 | else if builtins.elem keyname ["servicedependency"] | ||
73 | then toOthersArray keyname v | ||
74 | else ""; | ||
75 | toObjects = v: builtins.concatStringsSep "\n" (mapAttrsToList toObjects' v); | ||
76 | in | ||
77 | toObjects | ||
diff --git a/modules/private/mpd.nix b/modules/private/mpd.nix deleted file mode 100644 index 640b001..0000000 --- a/modules/private/mpd.nix +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | { | ||
3 | options.myServices.mpd.enable = lib.mkEnableOption "enable MPD"; | ||
4 | config = lib.mkIf config.myServices.mpd.enable { | ||
5 | secrets.keys = { | ||
6 | "mpd" = { | ||
7 | permissions = "0400"; | ||
8 | text = config.myEnv.mpd.password; | ||
9 | }; | ||
10 | "mpd-config" = { | ||
11 | permissions = "0400"; | ||
12 | user = "mpd"; | ||
13 | group = "mpd"; | ||
14 | text = '' | ||
15 | password "${config.myEnv.mpd.password}@read,add,control,admin" | ||
16 | ''; | ||
17 | }; | ||
18 | }; | ||
19 | networking.firewall.allowedTCPPorts = [ 6600 ]; | ||
20 | users.users.mpd.extraGroups = [ "wwwrun" "keys" ]; | ||
21 | systemd.services.mpd.serviceConfig.RuntimeDirectory = "mpd"; | ||
22 | services.filesWatcher.mpd = { | ||
23 | restart = true; | ||
24 | paths = [ config.secrets.fullPaths."mpd-config" ]; | ||
25 | }; | ||
26 | |||
27 | services.mpd = { | ||
28 | enable = true; | ||
29 | network.listenAddress = "any"; | ||
30 | musicDirectory = config.myEnv.mpd.folder; | ||
31 | extraConfig = '' | ||
32 | include "${config.secrets.fullPaths."mpd-config"}" | ||
33 | audio_output { | ||
34 | type "null" | ||
35 | name "No Output" | ||
36 | mixer_type "none" | ||
37 | } | ||
38 | audio_output { | ||
39 | type "httpd" | ||
40 | name "OGG" | ||
41 | encoder "vorbis" | ||
42 | bind_to_address "/run/mpd/ogg.sock" | ||
43 | quality "5.0" | ||
44 | format "44100:16:1" | ||
45 | } | ||
46 | audio_output { | ||
47 | type "httpd" | ||
48 | name "MP3" | ||
49 | encoder "lame" | ||
50 | bind_to_address "/run/mpd/mp3.sock" | ||
51 | quality "5.0" | ||
52 | format "44100:16:1" | ||
53 | } | ||
54 | |||
55 | |||
56 | ''; | ||
57 | }; | ||
58 | }; | ||
59 | } | ||
60 | |||
diff --git a/modules/private/pub/default.nix b/modules/private/pub/default.nix deleted file mode 100644 index c419530..0000000 --- a/modules/private/pub/default.nix +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | { | ||
3 | options = { | ||
4 | myServices.pub.enable = lib.mkOption { | ||
5 | type = lib.types.bool; | ||
6 | default = false; | ||
7 | description = '' | ||
8 | Whether to enable pub user. | ||
9 | ''; | ||
10 | }; | ||
11 | }; | ||
12 | |||
13 | config = lib.mkIf config.myServices.pub.enable { | ||
14 | myServices.ssh.modules = [{ | ||
15 | snippet = builtins.readFile ./ldap_pub.sh; | ||
16 | dependencies = [ pkgs.coreutils ]; | ||
17 | }]; | ||
18 | users.users.pub = let | ||
19 | restrict = pkgs.runCommand "restrict" { | ||
20 | file = ./restrict; | ||
21 | buildInputs = [ pkgs.makeWrapper ]; | ||
22 | } '' | ||
23 | mkdir -p $out/bin | ||
24 | cp $file $out/bin/restrict | ||
25 | chmod a+x $out/bin/restrict | ||
26 | patchShebangs $out/bin/restrict | ||
27 | wrapProgram $out/bin/restrict \ | ||
28 | --prefix PATH : ${lib.makeBinPath [ pkgs.bubblewrap pkgs.rrsync ]} \ | ||
29 | --set TMUX_RESTRICT ${./tmux.restrict.conf} | ||
30 | ''; | ||
31 | purple-hangouts = pkgs.purple-hangouts.overrideAttrs(old: { | ||
32 | installPhase = '' | ||
33 | install -Dm755 -t $out/lib/purple-2/ libhangouts.so | ||
34 | for size in 16 22 24 48; do | ||
35 | install -TDm644 hangouts$size.png $out/share/pixmaps/pidgin/protocols/$size/hangouts.png | ||
36 | done | ||
37 | ''; | ||
38 | }); | ||
39 | in { | ||
40 | createHome = true; | ||
41 | description = "Restricted shell user"; | ||
42 | home = "/var/lib/pub"; | ||
43 | uid = config.myEnv.users.pub.uid; | ||
44 | useDefaultShell = true; | ||
45 | packages = [ | ||
46 | restrict | ||
47 | pkgs.tmux | ||
48 | (pkgs.pidgin.override { plugins = [ | ||
49 | pkgs.purple-plugin-pack purple-hangouts | ||
50 | pkgs.purple-discord pkgs.purple-facebook | ||
51 | pkgs.telegram-purple | ||
52 | ]; }) | ||
53 | ]; | ||
54 | }; | ||
55 | }; | ||
56 | } | ||
diff --git a/modules/private/pub/ldap_pub.sh b/modules/private/pub/ldap_pub.sh deleted file mode 100644 index bbbefdc..0000000 --- a/modules/private/pub/ldap_pub.sh +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | ### This snippet is not standalone and must be integrated in the global ldap_authorized_keys.sh | ||
2 | LDAP_PUB_RESTRICT_MEMBER="cn=restrict,cn=pub,ou=services,dc=immae,dc=eu" | ||
3 | LDAP_PUB_FORWARD_MEMBER="cn=forward,cn=pub,ou=services,dc=immae,dc=eu" | ||
4 | ECHO=$(which echo) | ||
5 | |||
6 | if [[ $user == pub ]]; then | ||
7 | ldap_search '(&(memberOf='$LDAP_PUB_RESTRICT_MEMBER')('$KEY'=*))' $KEY | \ | ||
8 | while read line ; | ||
9 | do | ||
10 | if [ ! -z "$line" ]; then | ||
11 | if [[ $line == dn* ]]; then | ||
12 | echo "" | ||
13 | user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line") | ||
14 | echo "# $user" | ||
15 | elif [[ $line == $KEY* ]]; then | ||
16 | key=$(clean_key_line pub "$line") | ||
17 | key_forward=$(clean_key_line forward "$line") | ||
18 | if [ ! -z "$key" ]; then | ||
19 | if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then | ||
20 | echo -n 'command="/etc/profiles/per-user/pub/bin/restrict '$user'" ' | ||
21 | echo $key | ||
22 | fi | ||
23 | elif [ ! -z "$key_forward" ]; then | ||
24 | if [[ $key_forward != *$'\n'* ]] && [[ $key_forward == ssh-* ]]; then | ||
25 | echo "# forward only" | ||
26 | echo -n 'no-pty,no-X11-forwarding,command="'$ECHO' forward only" ' | ||
27 | echo $key_forward | ||
28 | fi | ||
29 | fi | ||
30 | fi | ||
31 | fi | ||
32 | done | ||
33 | |||
34 | echo "" | ||
35 | ldap_search '(&(memberOf='$LDAP_PUB_FORWARD_MEMBER')('$KEY'=*))' $KEY | \ | ||
36 | while read line ; | ||
37 | do | ||
38 | if [ ! -z "$line" ]; then | ||
39 | if [[ $line == dn* ]]; then | ||
40 | echo "" | ||
41 | user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line") | ||
42 | echo "# $user" | ||
43 | elif [[ $line == $KEY* ]]; then | ||
44 | key=$(clean_key_line forward "$line") | ||
45 | if [ ! -z "$key" ]; then | ||
46 | if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then | ||
47 | echo -n 'no-pty,no-X11-forwarding,command="'$ECHO' forward only" ' | ||
48 | echo $key | ||
49 | fi | ||
50 | fi | ||
51 | fi | ||
52 | fi | ||
53 | done | ||
54 | exit 0 | ||
55 | fi | ||
56 | |||
diff --git a/modules/private/pub/restrict b/modules/private/pub/restrict deleted file mode 100644 index b2f3be3..0000000 --- a/modules/private/pub/restrict +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | user="$1" | ||
3 | rootuser="$HOME/$user/" | ||
4 | mkdir -p $rootuser | ||
5 | |||
6 | orig="$SSH_ORIGINAL_COMMAND" | ||
7 | if [ -z "$orig" ]; then | ||
8 | orig="/bin/bash -l" | ||
9 | fi | ||
10 | if [ "${orig:0:7}" = "command" ]; then | ||
11 | orig="${orig:8}" | ||
12 | fi | ||
13 | |||
14 | case "$orig" in | ||
15 | rsync*) | ||
16 | rrsync $HOME/$user/ | ||
17 | ;; | ||
18 | *) | ||
19 | nix_store_paths() { | ||
20 | nix-store -q -R \ | ||
21 | /run/current-system/sw \ | ||
22 | /etc/profiles/per-user/pub \ | ||
23 | /etc/ssl/certs/ca-bundle.crt \ | ||
24 | | while read i; do | ||
25 | printf '%s--ro-bind\0'$i'\0'$i'\0' '' | ||
26 | done | ||
27 | } | ||
28 | |||
29 | set -euo pipefail | ||
30 | (exec -c bwrap --ro-bind /usr /usr \ | ||
31 | --args 10 \ | ||
32 | --dir /tmp \ | ||
33 | --dir /var \ | ||
34 | --symlink ../tmp var/tmp \ | ||
35 | --proc /proc \ | ||
36 | --dev /dev \ | ||
37 | --ro-bind /etc/resolv.conf /etc/resolv.conf \ | ||
38 | --ro-bind /etc/zoneinfo /etc/zoneinfo \ | ||
39 | --ro-bind /etc/ssl /etc/ssl \ | ||
40 | --ro-bind /etc/static/ssl/certs /etc/static/ssl/certs \ | ||
41 | --ro-bind /run/current-system/sw/lib/locale/locale-archive /etc/locale-archive \ | ||
42 | --ro-bind /run/current-system/sw/bin /bin \ | ||
43 | --ro-bind /etc/profiles/per-user/pub/bin /bin-pub \ | ||
44 | --bind /var/lib/pub/$user /var/lib/pub \ | ||
45 | --dir /var/lib/commons \ | ||
46 | --ro-bind $TMUX_RESTRICT /var/lib/commons/tmux.restrict.conf \ | ||
47 | --chdir /var/lib/pub \ | ||
48 | --unshare-all \ | ||
49 | --share-net \ | ||
50 | --dir /run/user/$(id -u) \ | ||
51 | --setenv TERM "$TERM" \ | ||
52 | --setenv LOCALE_ARCHIVE "/etc/locale-archive" \ | ||
53 | --setenv XDG_RUNTIME_DIR "/run/user/`id -u`" \ | ||
54 | --setenv PS1 "$user@pub $ " \ | ||
55 | --setenv PATH "/bin:/bin-pub" \ | ||
56 | --setenv HOME "/var/lib/pub" \ | ||
57 | --file 11 /etc/passwd \ | ||
58 | --file 12 /etc/group \ | ||
59 | -- $orig) \ | ||
60 | 10< <(nix_store_paths) \ | ||
61 | 11< <(getent passwd $UID 65534) \ | ||
62 | 12< <(getent group $(id -g) 65534) | ||
63 | ;; | ||
64 | esac | ||
diff --git a/modules/private/pub/tmux.restrict.conf b/modules/private/pub/tmux.restrict.conf deleted file mode 100644 index 5aefd1c..0000000 --- a/modules/private/pub/tmux.restrict.conf +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | # Pour les nostalgiques de screen | ||
2 | # comme les raccourcis ne sont pas les mêmes, j'évite | ||
3 | set -g prefix C-a | ||
4 | unbind-key C-b | ||
5 | |||
6 | unbind-key -a | ||
7 | bind-key -n C-h list-keys | ||
8 | bind-key C-d detach | ||
9 | bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window | ||
10 | |||
11 | # même hack que sur screen lorsqu'on veut profiter du scroll du terminal | ||
12 | # (xterm ...) | ||
13 | set -g terminal-overrides 'xterm*:smcup@:rmcup@' | ||
14 | |||
15 | #Pour les ctrl+arrow | ||
16 | set-option -g xterm-keys on | ||
17 | |||
18 | # c'est un minimum (defaut 2000) | ||
19 | set-option -g history-limit 10000 | ||
20 | |||
21 | # lorsque j'ai encore un tmux ailleurs seule | ||
22 | # sa fenetre active réduit la taille de ma fenetre locale | ||
23 | setw -g aggressive-resize on | ||
24 | |||
25 | # Pour etre alerté sur un changement dans une autre fenêtre | ||
26 | setw -g monitor-activity on | ||
27 | #set -g visual-activity on | ||
28 | #set -g visual-bell on | ||
29 | |||
30 | set -g base-index 1 | ||
31 | |||
32 | # repercuter le contenu de la fenetre dans la barre de titre | ||
33 | # reference des string : man tmux (status-left) | ||
34 | set -g set-titles on | ||
35 | set -g set-titles-string '#H #W #T' # host window command | ||
36 | |||
37 | #Dans les valeurs par defaut deja, avec le ssh-agent | ||
38 | set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY PATH" | ||
39 | |||
40 | set -g status off | ||
41 | set -g status-left '' | ||
42 | set -g status-right '' | ||
43 | |||
diff --git a/modules/private/ssh/default.nix b/modules/private/ssh/default.nix deleted file mode 100644 index ee5dda5..0000000 --- a/modules/private/ssh/default.nix +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.ssh; | ||
4 | in | ||
5 | { | ||
6 | options.myServices.ssh = let | ||
7 | module = lib.types.submodule { | ||
8 | options = { | ||
9 | snippet = lib.mkOption { | ||
10 | type = lib.types.lines; | ||
11 | description = '' | ||
12 | Snippet to use | ||
13 | ''; | ||
14 | }; | ||
15 | dependencies = lib.mkOption { | ||
16 | type = lib.types.listOf lib.types.package; | ||
17 | default = []; | ||
18 | description = '' | ||
19 | Dependencies of the package | ||
20 | ''; | ||
21 | }; | ||
22 | }; | ||
23 | }; | ||
24 | in { | ||
25 | predefinedModules = lib.mkOption { | ||
26 | type = lib.types.attrsOf module; | ||
27 | default = { | ||
28 | regular = { | ||
29 | snippet = builtins.readFile ./ldap_regular.sh; | ||
30 | }; | ||
31 | }; | ||
32 | readOnly = true; | ||
33 | description = '' | ||
34 | Predefined modules | ||
35 | ''; | ||
36 | }; | ||
37 | modules = lib.mkOption { | ||
38 | type = lib.types.listOf module; | ||
39 | default = []; | ||
40 | description = '' | ||
41 | List of modules to enable | ||
42 | ''; | ||
43 | }; | ||
44 | }; | ||
45 | config = { | ||
46 | networking.firewall.allowedTCPPorts = [ 22 ]; | ||
47 | } // (lib.mkIf (builtins.length cfg.modules > 0) { | ||
48 | |||
49 | services.openssh.extraConfig = '' | ||
50 | AuthorizedKeysCommand /etc/ssh/ldap_authorized_keys | ||
51 | AuthorizedKeysCommandUser nobody | ||
52 | ''; | ||
53 | |||
54 | secrets.keys."ssh-ldap" = { | ||
55 | user = "nobody"; | ||
56 | group = "nogroup"; | ||
57 | permissions = "0400"; | ||
58 | text = config.myEnv.sshd.ldap.password; | ||
59 | }; | ||
60 | system.activationScripts.sshd = { | ||
61 | deps = [ "secrets" ]; | ||
62 | text = '' | ||
63 | install -Dm400 -o nobody -g nogroup -T ${config.secrets.fullPaths."ssh-ldap"} /etc/ssh/ldap_password | ||
64 | ''; | ||
65 | }; | ||
66 | # ssh is strict about parent directory having correct rights, don't | ||
67 | # move it in the nix store. | ||
68 | environment.etc."ssh/ldap_authorized_keys" = let | ||
69 | deps = lib.lists.unique ( | ||
70 | [ pkgs.which pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.gnused pkgs.coreutils ] | ||
71 | ++ lib.flatten (map (v: v.dependencies) cfg.modules) | ||
72 | ); | ||
73 | fullScript = pkgs.runCommand "ldap_authorized_keys" { | ||
74 | snippets = builtins.concatStringsSep "\n" (map (v: v.snippet) cfg.modules); | ||
75 | } '' | ||
76 | substituteAll ${./ldap_authorized_keys.sh} $out | ||
77 | chmod a+x $out | ||
78 | ''; | ||
79 | ldap_authorized_keys = pkgs.runCommand "ldap_authorized_keys" { | ||
80 | buildInputs = [ pkgs.makeWrapper ]; | ||
81 | } '' | ||
82 | makeWrapper "${fullScript}" "$out" --prefix PATH : ${lib.makeBinPath deps} | ||
83 | ''; | ||
84 | in { | ||
85 | enable = true; | ||
86 | mode = "0755"; | ||
87 | user = "root"; | ||
88 | source = ldap_authorized_keys; | ||
89 | }; | ||
90 | }); | ||
91 | } | ||
diff --git a/modules/private/ssh/ldap_authorized_keys.sh b/modules/private/ssh/ldap_authorized_keys.sh deleted file mode 100755 index 402f283..0000000 --- a/modules/private/ssh/ldap_authorized_keys.sh +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | LDAPSEARCH=ldapsearch | ||
4 | KEY="immaeSshKey" | ||
5 | LDAP_BIND="cn=ssh,ou=services,dc=immae,dc=eu" | ||
6 | LDAP_PASS=$(cat /etc/ssh/ldap_password) | ||
7 | LDAP_HOST="ldap.immae.eu" | ||
8 | LDAP_BASE="dc=immae,dc=eu" | ||
9 | |||
10 | suitable_for() { | ||
11 | type_for="$1" | ||
12 | key="$2" | ||
13 | |||
14 | if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then | ||
15 | echo "$key" | ||
16 | else | ||
17 | key_type=$(cut -d " " -f 1 <<< "$key") | ||
18 | |||
19 | if grep -q "\b-$type_for\b" <<< "$key_type"; then | ||
20 | echo "" | ||
21 | elif grep -q "\b$type_for\b" <<< "$key_type"; then | ||
22 | echo $(sed -e "s/^[^ ]* //g" <<< "$key") | ||
23 | else | ||
24 | echo "" | ||
25 | fi | ||
26 | fi | ||
27 | } | ||
28 | |||
29 | clean_key_line() { | ||
30 | type_for="$1" | ||
31 | line="$2" | ||
32 | |||
33 | if [[ "$line" == $KEY::* ]]; then | ||
34 | # base64 keys should't happen, unless wrong copy-pasting | ||
35 | key="" | ||
36 | else | ||
37 | key=$(sed -e "s/^$KEY: *//" -e "s/ *$//" <<< "$line") | ||
38 | fi | ||
39 | |||
40 | suitable_for "$type_for" "$key" | ||
41 | } | ||
42 | |||
43 | ldap_search() { | ||
44 | $LDAPSEARCH -h $LDAP_HOST -ZZ -b $LDAP_BASE -D $LDAP_BIND -w "$LDAP_PASS" -x -o ldif-wrap=no -LLL "$@" | ||
45 | } | ||
46 | |||
47 | ldap_keys() { | ||
48 | user=$1; | ||
49 | @snippets@ | ||
50 | } | ||
51 | |||
52 | ldap_keys $@ | ||
diff --git a/modules/private/ssh/ldap_regular.sh b/modules/private/ssh/ldap_regular.sh deleted file mode 100644 index 4c2f47e..0000000 --- a/modules/private/ssh/ldap_regular.sh +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | ### This snippet is not standalone and must be integrated in the global ldap_authorized_keys.sh | ||
2 | LDAP_MEMBER="cn=users,cn=ssh,ou=services,dc=immae,dc=eu" | ||
3 | |||
4 | ldap_search '(&(memberOf='$LDAP_MEMBER')('$KEY'=*)(uid='$user'))' $KEY | \ | ||
5 | while read line ; | ||
6 | do | ||
7 | if [ ! -z "$line" ]; then | ||
8 | if [[ $line == dn* ]]; then | ||
9 | user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line") | ||
10 | elif [[ $line == $KEY* ]]; then | ||
11 | key=$(clean_key_line ssh "$line") | ||
12 | if [ ! -z "$key" ]; then | ||
13 | if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then | ||
14 | echo $key | ||
15 | fi | ||
16 | fi | ||
17 | fi | ||
18 | fi | ||
19 | done | ||
diff --git a/modules/private/system.nix b/modules/private/system.nix deleted file mode 100644 index 5f3d79e..0000000 --- a/modules/private/system.nix +++ /dev/null | |||
@@ -1,98 +0,0 @@ | |||
1 | { pkgs, lib, config, name, nodes, ... }: | ||
2 | { | ||
3 | config = { | ||
4 | deployment.secrets."secret_vars.yml" = { | ||
5 | source = builtins.toString ../../nixops/secrets/vars.yml; | ||
6 | destination = config.secrets.secretsVars; | ||
7 | owner.user = "root"; | ||
8 | owner.group = "root"; | ||
9 | permissions = "0400"; | ||
10 | }; | ||
11 | |||
12 | networking.extraHosts = builtins.concatStringsSep "\n" | ||
13 | (lib.mapAttrsToList (n: v: "${v.config.hostEnv.ips.main.ip4} ${n}") nodes); | ||
14 | |||
15 | users.extraUsers.root.openssh.authorizedKeys.keys = [ config.myEnv.sshd.rootKeys.nix_repository ]; | ||
16 | secrets.deleteSecretsVars = true; | ||
17 | secrets.gpgKeys = [ | ||
18 | ../../nixops/public_keys/Immae.pub | ||
19 | ]; | ||
20 | secrets.secretsVars = "/run/keys/vars.yml"; | ||
21 | |||
22 | services.openssh.enable = true; | ||
23 | |||
24 | nixpkgs.overlays = builtins.attrValues (import ../../overlays) ++ [ | ||
25 | (self: super: { | ||
26 | postgresql = self.postgresql_pam; | ||
27 | mariadb = self.mariadb_pam; | ||
28 | }) # don’t put them as generic overlay because of home-manager | ||
29 | ]; | ||
30 | |||
31 | services.journald.extraConfig = '' | ||
32 | #Should be "warning" but disabled for now, it prevents anything from being stored | ||
33 | MaxLevelStore=info | ||
34 | MaxRetentionSec=1year | ||
35 | ''; | ||
36 | |||
37 | users.users = | ||
38 | builtins.listToAttrs (map (x: lib.attrsets.nameValuePair x.name ({ | ||
39 | isNormalUser = true; | ||
40 | home = "/home/${x.name}"; | ||
41 | createHome = true; | ||
42 | linger = true; | ||
43 | } // x)) (config.hostEnv.users pkgs)) | ||
44 | // { | ||
45 | root.packages = let | ||
46 | nagios-cli = pkgs.writeScriptBin "nagios-cli" '' | ||
47 | #!${pkgs.stdenv.shell} | ||
48 | sudo -u naemon ${pkgs.nagios-cli}/bin/nagios-cli -c ${./monitoring/nagios-cli.cfg} | ||
49 | ''; | ||
50 | in | ||
51 | [ | ||
52 | pkgs.telnet | ||
53 | pkgs.htop | ||
54 | pkgs.iftop | ||
55 | pkgs.bind.dnsutils | ||
56 | pkgs.httpie | ||
57 | pkgs.iotop | ||
58 | pkgs.whois | ||
59 | pkgs.ngrep | ||
60 | pkgs.tcpdump | ||
61 | pkgs.tshark | ||
62 | pkgs.tcpflow | ||
63 | # pkgs.mitmproxy # failing | ||
64 | pkgs.nmap | ||
65 | pkgs.p0f | ||
66 | pkgs.socat | ||
67 | pkgs.lsof | ||
68 | pkgs.psmisc | ||
69 | pkgs.openssl | ||
70 | pkgs.wget | ||
71 | |||
72 | pkgs.cnagios | ||
73 | nagios-cli | ||
74 | |||
75 | pkgs.pv | ||
76 | pkgs.smartmontools | ||
77 | ]; | ||
78 | }; | ||
79 | |||
80 | users.mutableUsers = lib.mkDefault false; | ||
81 | |||
82 | environment.etc.cnagios.source = "${pkgs.cnagios}/share/doc/cnagios"; | ||
83 | environment.systemPackages = [ | ||
84 | pkgs.git | ||
85 | pkgs.vim | ||
86 | pkgs.rsync | ||
87 | pkgs.strace | ||
88 | ] ++ | ||
89 | (lib.optional (builtins.length (config.hostEnv.users pkgs) > 0) pkgs.home-manager); | ||
90 | |||
91 | systemd.targets.maintenance = { | ||
92 | description = "Maintenance target with only sshd"; | ||
93 | after = [ "network-online.target" "sshd.service" ]; | ||
94 | requires = [ "network-online.target" "sshd.service" ]; | ||
95 | unitConfig.AllowIsolate = "yes"; | ||
96 | }; | ||
97 | }; | ||
98 | } | ||
diff --git a/modules/private/system/backup-2.nix b/modules/private/system/backup-2.nix deleted file mode 100644 index c01a666..0000000 --- a/modules/private/system/backup-2.nix +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | { config, pkgs, resources, name, ... }: | ||
2 | { | ||
3 | deployment = { | ||
4 | targetUser = "root"; | ||
5 | targetHost = config.hostEnv.ips.main.ip4; | ||
6 | substituteOnDestination = true; | ||
7 | }; | ||
8 | # ssh-keyscan backup-2 | nix-shell -p ssh-to-age --run ssh-to-age | ||
9 | secrets.ageKeys = [ "age1kk3nr27qu42j28mcfdag5lhq0zu2pky7gfanvne8l4z2ctevjpgskmw0sr" ]; | ||
10 | secrets.keys = { | ||
11 | "rsync_backup/identity" = { | ||
12 | user = "backup"; | ||
13 | group = "backup"; | ||
14 | permissions = "0400"; | ||
15 | text = config.myEnv.rsync_backup.ssh_key.private; | ||
16 | }; | ||
17 | "rsync_backup/identity.pub" = { | ||
18 | user = "backup"; | ||
19 | group = "backup"; | ||
20 | permissions = "0444"; | ||
21 | text = config.myEnv.rsync_backup.ssh_key.public; | ||
22 | }; | ||
23 | }; | ||
24 | boot.kernelPackages = pkgs.linuxPackages_latest; | ||
25 | myEnv = import ../../../nixops/secrets/environment.nix; | ||
26 | |||
27 | imports = [ <nixpkgs/nixos/modules/profiles/qemu-guest.nix> ] ++ builtins.attrValues (import ../..); | ||
28 | |||
29 | fileSystems = { | ||
30 | "/backup2" = { | ||
31 | fsType = "ext4"; | ||
32 | device = "UUID=b9425333-f567-435d-94d8-b26c22d93426"; | ||
33 | }; | ||
34 | "/" = { device = "/dev/sda1"; fsType = "ext4"; }; | ||
35 | }; | ||
36 | |||
37 | networking = { | ||
38 | firewall.enable = true; | ||
39 | interfaces."ens3".ipv4.addresses = pkgs.lib.attrsets.mapAttrsToList | ||
40 | (n: ips: { address = ips.ip4; prefixLength = 32; }) | ||
41 | (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") config.hostEnv.ips); | ||
42 | interfaces."ens3".ipv6.addresses = pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList | ||
43 | (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or [])) | ||
44 | config.hostEnv.ips); | ||
45 | defaultGateway6 = { address = "fe80::1"; interface = "ens3"; }; | ||
46 | }; | ||
47 | |||
48 | boot.loader.grub.device = "nodev"; | ||
49 | |||
50 | myServices.certificates.enable = true; | ||
51 | security.acme.certs."${name}" = { | ||
52 | user = config.services.nginx.user; | ||
53 | group = config.services.nginx.group; | ||
54 | }; | ||
55 | services.nginx = { | ||
56 | enable = true; | ||
57 | recommendedOptimisation = true; | ||
58 | recommendedGzipSettings = true; | ||
59 | recommendedProxySettings = true; | ||
60 | }; | ||
61 | networking.firewall.allowedTCPPorts = [ 80 443 ]; | ||
62 | |||
63 | services.cron = { | ||
64 | mailto = "cron@immae.eu"; | ||
65 | enable = true; | ||
66 | }; | ||
67 | |||
68 | services.rsyncBackup = { | ||
69 | mountpoint = "/backup2"; | ||
70 | profiles = config.myEnv.rsync_backup.profiles; | ||
71 | ssh_key_public = config.secrets.fullPaths."rsync_backup/identity.pub"; | ||
72 | ssh_key_private = config.secrets.fullPaths."rsync_backup/identity"; | ||
73 | }; | ||
74 | |||
75 | myServices.mailRelay.enable = true; | ||
76 | myServices.mailBackup.enable = true; | ||
77 | myServices.monitoring.enable = true; | ||
78 | myServices.databasesReplication = { | ||
79 | postgresql = { | ||
80 | enable = true; | ||
81 | base = "/backup2"; | ||
82 | mainPackage = pkgs.postgresql; | ||
83 | hosts = { | ||
84 | eldiron = { | ||
85 | slot = "backup_2"; | ||
86 | connection = "postgresql://backup-2:${config.hostEnv.ldap.password}@eldiron.immae.eu"; | ||
87 | package = pkgs.postgresql; | ||
88 | }; | ||
89 | }; | ||
90 | }; | ||
91 | mariadb = { | ||
92 | enable = true; | ||
93 | base = "/backup2"; | ||
94 | hosts = { | ||
95 | eldiron = { | ||
96 | serverId = 2; | ||
97 | # mysql resolves "backup-2" host and checks the ip, but uses /etc/hosts which only contains ip4 | ||
98 | host = config.myEnv.servers.eldiron.ips.main.ip4; | ||
99 | port = "3306"; | ||
100 | user = "backup-2"; | ||
101 | password = config.hostEnv.ldap.password; | ||
102 | dumpUser = "root"; | ||
103 | dumpPassword = config.myEnv.databases.mysql.systemUsers.root; | ||
104 | }; | ||
105 | }; | ||
106 | }; | ||
107 | redis = { | ||
108 | enable = true; | ||
109 | base = "/backup2"; | ||
110 | hosts = { | ||
111 | eldiron = { | ||
112 | host = "127.0.0.1"; | ||
113 | port = "16379"; | ||
114 | }; | ||
115 | }; | ||
116 | }; | ||
117 | openldap = { | ||
118 | enable = true; | ||
119 | base = "/backup2"; | ||
120 | hosts = { | ||
121 | eldiron = { | ||
122 | url = "ldaps://${config.myEnv.ldap.host}:636"; | ||
123 | dn = config.myEnv.ldap.replication_dn; | ||
124 | password = config.myEnv.ldap.replication_pw; | ||
125 | base = config.myEnv.ldap.base; | ||
126 | }; | ||
127 | }; | ||
128 | }; | ||
129 | }; | ||
130 | |||
131 | # This value determines the NixOS release with which your system is | ||
132 | # to be compatible, in order to avoid breaking some software such as | ||
133 | # database servers. You should change this only after NixOS release | ||
134 | # notes say you should. | ||
135 | # https://nixos.org/nixos/manual/release-notes.html | ||
136 | system.stateVersion = "20.03"; # Did you read the comment? | ||
137 | } | ||
diff --git a/modules/private/system/dilion.nix b/modules/private/system/dilion.nix deleted file mode 100644 index fa92cd9..0000000 --- a/modules/private/system/dilion.nix +++ /dev/null | |||
@@ -1,242 +0,0 @@ | |||
1 | { config, pkgs, name, lib, ... }: | ||
2 | { | ||
3 | deployment = { | ||
4 | targetUser = "root"; | ||
5 | targetHost = config.hostEnv.ips.main.ip4; | ||
6 | substituteOnDestination = true; | ||
7 | }; | ||
8 | # ssh-keyscan dilion | nix-shell -p ssh-to-age --run ssh-to-age | ||
9 | secrets.ageKeys = [ "age1x49n6qa0arkdpq8530s7umgm0gqkq90exv4jep97q30rfnzknpaqate06a" ]; | ||
10 | nixpkgs.system = lib.mkOverride 900 "x86_64-linux"; | ||
11 | boot = { | ||
12 | loader = { | ||
13 | grub = { | ||
14 | version = 2; | ||
15 | devices = [ "/dev/sda" "/dev/sdb" "/dev/sdc" "/dev/sdd" ]; | ||
16 | }; | ||
17 | timeout = 1; | ||
18 | }; | ||
19 | blacklistedKernelModules = [ "nvidiafb" ]; | ||
20 | supportedFilesystems = [ "zfs" ]; | ||
21 | kernelPackages = pkgs.linuxPackages_latest; | ||
22 | kernelModules = [ "kvm-intel" ]; | ||
23 | initrd.availableKernelModules = [ "ahci" "sd_mod" ]; | ||
24 | initrd.secrets = { | ||
25 | "/boot/pass.key" = "/boot/pass.key"; | ||
26 | }; | ||
27 | kernel.sysctl."vm.nr_hugepages" = 256; # for xmr-stak | ||
28 | # available in nixos-20.09 | ||
29 | #zfs.requestEncryptionCredentials = [ "zpool/root" ]; | ||
30 | }; | ||
31 | nix.maxJobs = 8; | ||
32 | powerManagement.cpuFreqGovernor = "powersave"; | ||
33 | hardware.enableRedistributableFirmware = true; | ||
34 | |||
35 | myEnv = import ../../../nixops/secrets/environment.nix; | ||
36 | |||
37 | swapDevices = [ { label = "swap"; } ]; | ||
38 | fileSystems = { | ||
39 | "/" = { fsType = "zfs"; device = "zpool/root"; }; | ||
40 | "/boot" = { fsType = "ext4"; device = "/dev/disk/by-uuid/fd1c511e-2bc0-49d5-b8bb-95e7e8c8c816"; }; | ||
41 | "/etc" = { fsType = "zfs"; device = "zpool/root/etc"; }; | ||
42 | "/home" = { fsType = "zfs"; device = "zpool/root/home"; }; | ||
43 | "/home/immae" = { fsType = "zfs"; device = "zpool/root/home/immae"; }; | ||
44 | "/tmp" = { fsType = "zfs"; device = "zpool/root/tmp"; }; | ||
45 | "/var" = { fsType = "zfs"; device = "zpool/root/var"; }; | ||
46 | "/data" = { fsType = "ext4"; label = "data"; }; | ||
47 | "/nix" = { fsType = "ext4"; label = "nix"; }; | ||
48 | }; | ||
49 | |||
50 | services.udev.extraRules = '' | ||
51 | ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="10:bf:48:7f:e6:3b", NAME="eth0" | ||
52 | ''; | ||
53 | |||
54 | networking = { | ||
55 | hostId = "27c3048d"; # generated with head -c4 /dev/urandom | od -A none -t x4 | ||
56 | firewall.enable = false; | ||
57 | interfaces."eth0".ipv4.addresses = | ||
58 | [ { address = config.hostEnv.ips.main.ip4; prefixLength = 27; } ] | ||
59 | ++ pkgs.lib.attrsets.mapAttrsToList | ||
60 | (n: ips: { address = ips.ip4; prefixLength = 32; }) | ||
61 | (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") config.hostEnv.ips); | ||
62 | interfaces."eth0".ipv6.addresses = | ||
63 | [ { address = "2a01:4f8:141:53e7::"; prefixLength = 64; } ] | ||
64 | ++ pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList | ||
65 | (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or [])) | ||
66 | config.hostEnv.ips); | ||
67 | defaultGateway = { address = "176.9.10.225"; interface = "eth0"; }; | ||
68 | defaultGateway6 = { address = "fe80::1"; interface = "eth0"; }; | ||
69 | nameservers = [ | ||
70 | "213.133.98.98" | ||
71 | "213.133.99.99" | ||
72 | "213.133.100.100" | ||
73 | "2a01:4f8:0:a0a1::add:1010" | ||
74 | "2a01:4f8:0:a102::add:9999" | ||
75 | "2a01:4f8:0:a111::add:9898" | ||
76 | ]; | ||
77 | }; | ||
78 | |||
79 | myServices.ssh.modules = [ config.myServices.ssh.predefinedModules.regular ]; | ||
80 | imports = builtins.attrValues (import ../..) ++ [ ./dilion/vms.nix ]; | ||
81 | |||
82 | system.nssModules = [ pkgs.libvirt ]; | ||
83 | system.nssDatabases.hosts = lib.mkForce [ "files" "libvirt_guest" "mymachines" "dns" "myhostname" ]; | ||
84 | programs.zsh.enable = true; | ||
85 | |||
86 | users.users.libvirt = { | ||
87 | hashedPassword = "!"; | ||
88 | shell = pkgs.bashInteractive; | ||
89 | isSystemUser = true; | ||
90 | group = "libvirtd"; | ||
91 | packages = [ pkgs.netcat-openbsd ]; | ||
92 | openssh.authorizedKeys.keys = [ | ||
93 | config.myEnv.buildbot.ssh_key.public | ||
94 | config.myEnv.sshd.rootKeys.ismael_flony | ||
95 | ]; | ||
96 | }; | ||
97 | |||
98 | users.users.backup = { | ||
99 | hashedPassword = "!"; | ||
100 | isSystemUser = true; | ||
101 | extraGroups = [ "keys" ]; | ||
102 | shell = pkgs.bashInteractive; | ||
103 | openssh.authorizedKeys.keys = let | ||
104 | zreplConfig = config.secrets.fullPaths."zrepl/zrepl.yml"; | ||
105 | in | ||
106 | ["command=\"${pkgs.zrepl}/bin/zrepl stdinserver --config ${zreplConfig} eldiron\",restrict ${config.myEnv.zrepl_backup.ssh_key.public}"]; | ||
107 | }; | ||
108 | security.sudo.extraRules = pkgs.lib.mkAfter [ | ||
109 | { | ||
110 | commands = [ | ||
111 | { command = "/home/immae/.nix-profile/root_scripts/*"; options = [ "NOPASSWD" ]; } | ||
112 | ]; | ||
113 | users = [ "immae" ]; | ||
114 | runAs = "root"; | ||
115 | } | ||
116 | ]; | ||
117 | |||
118 | system.activationScripts.libvirtd_exports = '' | ||
119 | install -m 0755 -o root -g root -d /var/lib/caldance | ||
120 | ''; | ||
121 | virtualisation.docker.enable = true; | ||
122 | virtualisation.docker.storageDriver = "zfs"; | ||
123 | virtualisation.libvirtd.enable = true; | ||
124 | users.extraUsers.immae.extraGroups = [ "libvirtd" "docker" ]; | ||
125 | systemd.services.libvirtd.postStart = '' | ||
126 | install -m 0770 -g libvirtd -d /var/lib/libvirt/images | ||
127 | ''; | ||
128 | systemd.services.socat-caldance = { | ||
129 | description = "Forward ssh port to caldance"; | ||
130 | wantedBy = [ "multi-user.target" ]; | ||
131 | after = [ "network.target" ]; | ||
132 | |||
133 | serviceConfig = { | ||
134 | ExecStart = "${pkgs.socat}/bin/socat TCP-LISTEN:8022,fork TCP:caldance:22"; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | time.timeZone = "Europe/Paris"; | ||
139 | nix = { | ||
140 | useSandbox = "relaxed"; | ||
141 | extraOptions = '' | ||
142 | keep-outputs = true | ||
143 | keep-derivations = true | ||
144 | allow-unsafe-native-code-during-evaluation = true | ||
145 | experimental-features = nix-command flakes | ||
146 | #Assumed in NUR | ||
147 | allow-import-from-derivation = true | ||
148 | ''; | ||
149 | }; | ||
150 | |||
151 | security.pki.certificateFiles = [ | ||
152 | (pkgs.fetchurl { | ||
153 | url = "http://downloads.e.eriomem.net/eriomemca.pem"; | ||
154 | sha256 = "1ixx4c6j3m26j8dp9a3dkvxc80v1nr5aqgmawwgs06bskasqkvvh"; | ||
155 | }) | ||
156 | ]; | ||
157 | |||
158 | # This is equivalent to setting environment.sessionVariables.NIX_PATH | ||
159 | nix.nixPath = [ | ||
160 | "home-manager=${pkgs.sources.home-manager.url}" | ||
161 | "nixpkgs=${pkgs.sources.nixpkgs-home-manager.url}" | ||
162 | ]; | ||
163 | nix.binaryCaches = [ "https://hydra.iohk.io" "https://cache.nixos.org" ]; | ||
164 | nix.binaryCachePublicKeys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; | ||
165 | |||
166 | myServices.monitoring.enable = true; | ||
167 | myServices.certificates.enable = true; | ||
168 | security.acme.certs."${name}-immae" = config.myServices.certificates.certConfig // { | ||
169 | user = "immae"; | ||
170 | domain = "dilion.immae.eu"; | ||
171 | }; | ||
172 | security.acme.certs."${name}" = { | ||
173 | user = config.services.nginx.user; | ||
174 | group = config.services.nginx.group; | ||
175 | extraDomains = { | ||
176 | "dilion.immae.dev" = null; | ||
177 | "caldance.cs.immae.dev" = null; | ||
178 | }; | ||
179 | }; | ||
180 | services.nginx = { | ||
181 | enable = true; | ||
182 | recommendedOptimisation = true; | ||
183 | recommendedGzipSettings = true; | ||
184 | recommendedProxySettings = true; | ||
185 | upstreams = { | ||
186 | caldance.servers."caldance:3031" = {}; | ||
187 | }; | ||
188 | virtualHosts = { | ||
189 | "dilion.immae.dev" = { | ||
190 | acmeRoot = config.myServices.certificates.webroot; | ||
191 | useACMEHost = name; | ||
192 | forceSSL = true; | ||
193 | root = "/home/immae/www"; | ||
194 | }; | ||
195 | "caldance.cs.immae.dev" = { | ||
196 | acmeRoot = config.myServices.certificates.webroot; | ||
197 | useACMEHost = name; | ||
198 | forceSSL = true; | ||
199 | locations."/".extraConfig = '' | ||
200 | uwsgi_pass caldance; | ||
201 | ''; | ||
202 | locations."/static/".alias = "/var/lib/caldance/caldance/app/www/static/"; | ||
203 | locations."/media/".alias = "/var/lib/caldance/caldance/media/"; | ||
204 | extraConfig = '' | ||
205 | auth_basic "Authentification requise"; | ||
206 | auth_basic_user_file ${pkgs.writeText "htpasswd" config.myEnv.websites.caldance.integration.password}; | ||
207 | ''; | ||
208 | }; | ||
209 | }; | ||
210 | }; | ||
211 | |||
212 | systemd.services.zrepl.serviceConfig.RuntimeDirectory = lib.mkForce "zrepl zrepl/stdinserver"; | ||
213 | systemd.services.zrepl.serviceConfig.User = "backup"; | ||
214 | # zfs allow backup create,mount,receive,destroy,rename,snapshot,hold,bookmark,release zpool/backup | ||
215 | services.zrepl = { | ||
216 | enable = true; | ||
217 | config = '' | ||
218 | global: | ||
219 | control: | ||
220 | sockpath: /run/zrepl/control | ||
221 | serve: | ||
222 | stdinserver: | ||
223 | sockdir: /run/zrepl/stdinserver | ||
224 | jobs: | ||
225 | - type: sink | ||
226 | # must not change | ||
227 | name: "backup-from-eldiron" | ||
228 | root_fs: "zpool/backup" | ||
229 | serve: | ||
230 | type: stdinserver | ||
231 | client_identities: | ||
232 | - eldiron | ||
233 | ''; | ||
234 | }; | ||
235 | # This value determines the NixOS release with which your system is | ||
236 | # to be compatible, in order to avoid breaking some software such as | ||
237 | # database servers. You should change this only after NixOS release | ||
238 | # notes say you should. | ||
239 | # https://nixos.org/nixos/manual/release-notes.html | ||
240 | system.stateVersion = "20.03"; # Did you read the comment? | ||
241 | } | ||
242 | |||
diff --git a/modules/private/system/dilion/vms.nix b/modules/private/system/dilion/vms.nix deleted file mode 100644 index af96622..0000000 --- a/modules/private/system/dilion/vms.nix +++ /dev/null | |||
@@ -1,185 +0,0 @@ | |||
1 | # inspired from https://nixos.wiki/wiki/Virtualization_in_NixOS | ||
2 | { config, pkgs, lib, ... }@args: | ||
3 | let | ||
4 | pools = { | ||
5 | niximages = { | ||
6 | type = "dir"; | ||
7 | target = "/etc/libvirtd/base-images"; | ||
8 | }; | ||
9 | buildbot-disks = rec { | ||
10 | preStart = '' | ||
11 | mkdir -p ${target} | ||
12 | ''; | ||
13 | type = "dir"; | ||
14 | target = "/var/lib/libvirt/images/buildbot-disks"; | ||
15 | }; | ||
16 | zfspool = { | ||
17 | # pool-define-as --name zfspool --source-name zpool/libvirt --type zfs | ||
18 | type = "zfs"; | ||
19 | xml = '' | ||
20 | <source> | ||
21 | <name>zpool/libvirt</name> | ||
22 | </source> | ||
23 | ''; | ||
24 | }; | ||
25 | }; | ||
26 | networks = { | ||
27 | immae = { | ||
28 | bridgeNumber = "1"; | ||
29 | ipRange = "192.168.100"; | ||
30 | }; | ||
31 | }; | ||
32 | guests = { | ||
33 | caldance = { | ||
34 | pool = "zfspool"; | ||
35 | cpus = "1"; | ||
36 | memory = "2"; | ||
37 | network = "immae"; | ||
38 | diskSize = "10GiB"; | ||
39 | extraDevicesXML = '' | ||
40 | <filesystem type="mount"> | ||
41 | <source dir="/var/lib/caldance"/> | ||
42 | <target dir="home"/> | ||
43 | </filesystem> | ||
44 | ''; | ||
45 | }; | ||
46 | buildbot = { | ||
47 | pool = "zfspool"; | ||
48 | cpus = "1"; | ||
49 | memory = "3"; | ||
50 | network = "immae"; | ||
51 | diskSize = "10GiB"; | ||
52 | destroyVolumeOnExit = true; | ||
53 | }; | ||
54 | }; | ||
55 | toImage = f: "${import ./vms/base_image.nix f (args // { myEnv = config.myEnv; })}/nixos.qcow2"; | ||
56 | in | ||
57 | { | ||
58 | environment.etc."libvirtd/base-images/nixos.qcow2".source = toImage ./vms/base_configuration.nix; | ||
59 | environment.etc."libvirtd/base-images/buildbot.qcow2".source = toImage ./vms/buildbot_configuration.nix; | ||
60 | systemd.services = lib.mapAttrs' (name: guest: lib.nameValuePair "libvirtd-guest-${name}" { | ||
61 | after = [ "libvirtd.service" "libvirtd-pool-${guest.pool}.service" "libvirtd-network-${guest.network}.service" ]; | ||
62 | requires = [ "libvirtd.service" "libvirtd-pool-${guest.pool}.service" "libvirtd-network-${guest.network}.service" ]; | ||
63 | wantedBy = [ "multi-user.target" ]; | ||
64 | serviceConfig = { | ||
65 | Type = "oneshot"; | ||
66 | RemainAfterExit = "yes"; | ||
67 | }; | ||
68 | script = | ||
69 | let | ||
70 | xml = pkgs.writeText "libvirt-guest-${name}.xml" | ||
71 | '' | ||
72 | <domain type="kvm"> | ||
73 | <name>${name}</name> | ||
74 | <uuid>UUID</uuid> | ||
75 | <memory unit="GiB">${guest.memory}</memory> | ||
76 | <vcpu>${guest.cpus}</vcpu> | ||
77 | <os> | ||
78 | <type arch="x86_64">hvm</type> | ||
79 | </os> | ||
80 | <devices> | ||
81 | <emulator>/run/current-system/sw/bin/qemu-system-x86_64</emulator> | ||
82 | <disk type="volume"> | ||
83 | <source pool="${guest.pool}" volume="guest-${name}" /> | ||
84 | <target dev="vda" bus="virtio"/> | ||
85 | </disk> | ||
86 | ${guest.extraDevicesXML or ""} | ||
87 | <input type="keyboard" bus="usb"/> | ||
88 | <graphics type="vnc" port="-1" autoport="yes"/> | ||
89 | <interface type="network"> | ||
90 | <source network="${guest.network}" /> | ||
91 | </interface> | ||
92 | </devices> | ||
93 | <features> | ||
94 | <acpi/> | ||
95 | </features> | ||
96 | </domain> | ||
97 | ''; | ||
98 | in | ||
99 | guest.preStart or "" + '' | ||
100 | if ! ${pkgs.libvirt}/bin/virsh vol-key 'guest-${name}' --pool ${guest.pool} &> /dev/null; then | ||
101 | ${pkgs.libvirt}/bin/virsh vol-create-as --pool ${guest.pool} --name 'guest-${name}' --capacity '${guest.diskSize}' | ||
102 | volume_path=$(${pkgs.libvirt}/bin/virsh vol-path --pool ${guest.pool} --vol 'guest-${name}') | ||
103 | ${pkgs.qemu}/bin/qemu-img convert /etc/libvirtd/base-images/nixos.qcow2 $volume_path | ||
104 | fi | ||
105 | uuid="$(${pkgs.libvirt}/bin/virsh domuuid '${name}' || true)" | ||
106 | ${pkgs.libvirt}/bin/virsh define <(sed "s/UUID/$uuid/" '${xml}') | ||
107 | ${pkgs.libvirt}/bin/virsh start '${name}' | ||
108 | ''; | ||
109 | preStop = '' | ||
110 | ${pkgs.libvirt}/bin/virsh shutdown '${name}' | ||
111 | let "timeout = $(date +%s) + 10" | ||
112 | while [ "$(${pkgs.libvirt}/bin/virsh list --name | grep --count '^${name}$')" -gt 0 ]; do | ||
113 | if [ "$(date +%s)" -ge "$timeout" ]; then | ||
114 | # Meh, we warned it... | ||
115 | ${pkgs.libvirt}/bin/virsh destroy '${name}' | ||
116 | else | ||
117 | # The machine is still running, let's give it some time to shut down | ||
118 | sleep 0.5 | ||
119 | fi | ||
120 | done | ||
121 | '' + lib.optionalString (guest.destroyVolumeOnExit or false) '' | ||
122 | if ${pkgs.libvirt}/bin/virsh vol-key 'guest-${name}' --pool ${guest.pool} &> /dev/null; then | ||
123 | ${pkgs.libvirt}/bin/virsh vol-wipe --pool ${guest.pool} --vol 'guest-${name}' || true | ||
124 | ${pkgs.libvirt}/bin/virsh vol-delete --pool ${guest.pool} --vol 'guest-${name}' | ||
125 | fi | ||
126 | ''; | ||
127 | }) guests // (lib.mapAttrs' (name: network: lib.nameValuePair "libvirtd-network-${name}" { | ||
128 | after = [ "libvirtd.service" ]; | ||
129 | requires = [ "libvirtd.service" ]; | ||
130 | wantedBy = [ "multi-user.target" ]; | ||
131 | serviceConfig = { | ||
132 | Type = "oneshot"; | ||
133 | RemainAfterExit = "yes"; | ||
134 | }; | ||
135 | script = let | ||
136 | xml = pkgs.writeText "libvirt-network-${name}.xml" '' | ||
137 | <network> | ||
138 | <name>${name}</name> | ||
139 | <uuid>UUID</uuid> | ||
140 | <forward mode='nat' /> | ||
141 | <bridge name='virbr${network.bridgeNumber}' /> | ||
142 | <domain name='${name}' localOnly='yes'/> | ||
143 | <ip address='${network.ipRange}.1' netmask='255.255.255.0'> | ||
144 | <dhcp> | ||
145 | <range start='${network.ipRange}.2' end='${network.ipRange}.254'/> | ||
146 | </dhcp> | ||
147 | </ip> | ||
148 | </network> | ||
149 | ''; | ||
150 | in '' | ||
151 | uuid="$(${pkgs.libvirt}/bin/virsh net-uuid '${name}' || true)" | ||
152 | ${pkgs.libvirt}/bin/virsh net-define <(sed "s/UUID/$uuid/" '${xml}') | ||
153 | ${pkgs.libvirt}/bin/virsh net-start '${name}' | ||
154 | ''; | ||
155 | preStop = '' | ||
156 | ${pkgs.libvirt}/bin/virsh net-destroy '${name}' | ||
157 | ''; | ||
158 | }) networks) // (lib.mapAttrs' (name: pool: lib.nameValuePair "libvirtd-pool-${name}" { | ||
159 | after = [ "libvirtd.service" ]; | ||
160 | requires = [ "libvirtd.service" ]; | ||
161 | wantedBy = [ "multi-user.target" ]; | ||
162 | serviceConfig = { | ||
163 | Type = "oneshot"; | ||
164 | RemainAfterExit = "yes"; | ||
165 | }; | ||
166 | script = let | ||
167 | xml = pkgs.writeText "libvirt-pool-${name}.xml" '' | ||
168 | <pool type="${pool.type}"> | ||
169 | <name>${name}</name> | ||
170 | <uuid>UUID</uuid> | ||
171 | ${pool.xml or ""} | ||
172 | ${if pool ? target then '' | ||
173 | <target> | ||
174 | <path>${pool.target}</path> | ||
175 | </target> | ||
176 | '' else ""} | ||
177 | </pool> | ||
178 | ''; | ||
179 | in pool.preStart or "" + '' | ||
180 | uuid="$(${pkgs.libvirt}/bin/virsh pool-uuid '${name}' || true)" | ||
181 | ${pkgs.libvirt}/bin/virsh pool-define <(sed "s/UUID/$uuid/" '${xml}') | ||
182 | ${pkgs.libvirt}/bin/virsh pool-start '${name}' || true | ||
183 | ''; | ||
184 | }) pools); | ||
185 | } | ||
diff --git a/modules/private/system/dilion/vms/base_configuration.nix b/modules/private/system/dilion/vms/base_configuration.nix deleted file mode 100644 index e2caba2..0000000 --- a/modules/private/system/dilion/vms/base_configuration.nix +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | { lib, config, ... }@args: | ||
2 | { | ||
3 | options.myEnv = (import ../../../environment.nix (args // { name = "dummy"; })).options.myEnv; | ||
4 | config = { | ||
5 | fileSystems."/".device = "/dev/disk/by-label/nixos"; | ||
6 | boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "virtio_balloon" "virtio_blk" "virtio_pci" "virtio_ring" ]; | ||
7 | boot.loader = { | ||
8 | grub = { | ||
9 | version = 2; | ||
10 | device = "/dev/vda"; | ||
11 | }; | ||
12 | timeout = 0; | ||
13 | }; | ||
14 | services.openssh.enable = true; | ||
15 | networking.firewall.allowedTCPPorts = [ 22 ]; | ||
16 | users = { | ||
17 | mutableUsers = false; | ||
18 | users.root.openssh.authorizedKeys.keys = [ config.myEnv.sshd.rootKeys.immae_dilion ]; | ||
19 | }; | ||
20 | }; | ||
21 | } | ||
diff --git a/modules/private/system/dilion/vms/base_image.nix b/modules/private/system/dilion/vms/base_image.nix deleted file mode 100644 index 8de8560..0000000 --- a/modules/private/system/dilion/vms/base_image.nix +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | configuration_file: { pkgs ? import <nixpkgs> {}, system ? builtins.currentSystem, myEnv, ... }: | ||
2 | let | ||
3 | config = (import <nixpkgs/nixos/lib/eval-config.nix> { | ||
4 | inherit system; | ||
5 | modules = [ { | ||
6 | myEnv = myEnv; | ||
7 | imports = [ configuration_file ]; | ||
8 | |||
9 | # We want our template image to be as small as possible, but the deployed image should be able to be | ||
10 | # of any size. Hence we resize on the first boot. | ||
11 | systemd.services.resize-main-fs = { | ||
12 | wantedBy = [ "multi-user.target" ]; | ||
13 | serviceConfig.Type = "oneshot"; | ||
14 | script = | ||
15 | '' | ||
16 | # Resize main partition to fill whole disk | ||
17 | echo ", +" | ${pkgs.utillinux}/bin/sfdisk /dev/vda --no-reread -N 1 | ||
18 | ${pkgs.parted}/bin/partprobe | ||
19 | # Resize filesystem | ||
20 | ${pkgs.e2fsprogs}/bin/resize2fs /dev/vda1 | ||
21 | ''; | ||
22 | }; | ||
23 | } ]; | ||
24 | }).config; | ||
25 | in pkgs.vmTools.runInLinuxVM ( | ||
26 | pkgs.runCommand "nixos-base-image" | ||
27 | { | ||
28 | memSize = 768; | ||
29 | preVM = | ||
30 | '' | ||
31 | mkdir $out | ||
32 | diskImage=image.qcow2 | ||
33 | ${pkgs.vmTools.qemu}/bin/qemu-img create -f qcow2 $diskImage 2G | ||
34 | mv closure xchg/ | ||
35 | ''; | ||
36 | postVM = | ||
37 | '' | ||
38 | echo compressing VM image... | ||
39 | ${pkgs.vmTools.qemu}/bin/qemu-img convert -c $diskImage -O qcow2 $out/nixos.qcow2 | ||
40 | ''; | ||
41 | buildInputs = [ pkgs.utillinux pkgs.perl pkgs.parted pkgs.e2fsprogs ]; | ||
42 | exportReferencesGraph = | ||
43 | [ "closure" config.system.build.toplevel ]; | ||
44 | } | ||
45 | '' | ||
46 | # Create the partition | ||
47 | parted /dev/vda mklabel msdos | ||
48 | parted /dev/vda -- mkpart primary ext4 1M -1s | ||
49 | |||
50 | # Format the partition | ||
51 | mkfs.ext4 -L nixos /dev/vda1 | ||
52 | mkdir /mnt | ||
53 | mount /dev/vda1 /mnt | ||
54 | |||
55 | for dir in dev proc sys; do | ||
56 | mkdir /mnt/$dir | ||
57 | mount --bind /$dir /mnt/$dir | ||
58 | done | ||
59 | |||
60 | storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure) | ||
61 | echo filling Nix store... | ||
62 | mkdir -p /mnt/nix/store | ||
63 | set -f | ||
64 | cp -prd $storePaths /mnt/nix/store | ||
65 | # The permissions will be set up incorrectly if the host machine is not running NixOS | ||
66 | chown -R 0:30000 /mnt/nix/store | ||
67 | |||
68 | mkdir -p /mnt/etc/nix | ||
69 | echo 'build-users-group = ' > /mnt/etc/nix/nix.conf | ||
70 | |||
71 | # Register the paths in the Nix database. | ||
72 | export USER=root | ||
73 | printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \ | ||
74 | chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db | ||
75 | |||
76 | # Create the system profile to allow nixos-rebuild to work. | ||
77 | chroot /mnt ${config.nix.package.out}/bin/nix-env \ | ||
78 | -p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} | ||
79 | |||
80 | # `nixos-rebuild' requires an /etc/NIXOS. | ||
81 | mkdir -p /mnt/etc/nixos | ||
82 | touch /mnt/etc/NIXOS | ||
83 | |||
84 | # `switch-to-configuration' requires a /bin/sh | ||
85 | mkdir -p /mnt/bin | ||
86 | ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh | ||
87 | |||
88 | # Generate the GRUB menu. | ||
89 | chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot | ||
90 | |||
91 | umount /mnt/{proc,dev,sys} | ||
92 | umount /mnt | ||
93 | '' | ||
94 | ) | ||
diff --git a/modules/private/system/dilion/vms/buildbot_configuration.nix b/modules/private/system/dilion/vms/buildbot_configuration.nix deleted file mode 100644 index 05b02d4..0000000 --- a/modules/private/system/dilion/vms/buildbot_configuration.nix +++ /dev/null | |||
@@ -1,67 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | { | ||
3 | imports = [ | ||
4 | <nixpkgs/nixos/modules/profiles/qemu-guest.nix> | ||
5 | ./base_configuration.nix | ||
6 | ]; | ||
7 | systemd.services.buildbot-worker.serviceConfig.ExecStartPre = let | ||
8 | cfg = config.services.buildbot-worker; | ||
9 | script = pkgs.writeScript "decode-dmi" '' | ||
10 | #!${pkgs.stdenv.shell} | ||
11 | |||
12 | mkdir -vp "${cfg.buildbotDir}" | ||
13 | varfile=${cfg.buildbotDir}/variables | ||
14 | rm $varfile || true | ||
15 | echo "[DEFAULT]" > $varfile | ||
16 | strings=$(${pkgs.dmidecode}/bin/dmidecode --oem-string count) | ||
17 | for i in $(seq 1 $strings); do | ||
18 | ${pkgs.dmidecode}/bin/dmidecode --oem-string $i >> $varfile | ||
19 | done | ||
20 | chown -R ${cfg.user}:${cfg.group} ${cfg.buildbotDir} | ||
21 | ''; | ||
22 | in | ||
23 | lib.mkForce ["+${script}"]; | ||
24 | systemd.services.buildbot-worker.serviceConfig.ExecStart = let | ||
25 | cfg = config.services.buildbot-worker; | ||
26 | tacFile = pkgs.writeText "buildbot-worker.tac" '' | ||
27 | import os | ||
28 | from io import open | ||
29 | |||
30 | from buildbot_worker.bot import Worker | ||
31 | from twisted.application import service | ||
32 | |||
33 | basedir = '${cfg.buildbotDir}' | ||
34 | |||
35 | # note: this line is matched against to check that this is a worker | ||
36 | # directory; do not edit it. | ||
37 | application = service.Application('buildbot-worker') | ||
38 | |||
39 | import configparser | ||
40 | config = config = configparser.ConfigParser() | ||
41 | config.read("${cfg.buildbotDir}/variables") | ||
42 | master_url_split = config["DEFAULT"]["buildbot_master_url"].split(':') | ||
43 | buildmaster_host = master_url_split[0] | ||
44 | port = int(master_url_split[1]) | ||
45 | workername = config["DEFAULT"]["buildbot_worker_name"] | ||
46 | |||
47 | with open('${cfg.workerPassFile}', 'r', encoding='utf-8') as passwd_file: | ||
48 | passwd = passwd_file.read().strip('\r\n') | ||
49 | keepalive = ${toString cfg.keepalive} | ||
50 | umask = None | ||
51 | maxdelay = 300 | ||
52 | numcpus = None | ||
53 | allow_shutdown = None | ||
54 | |||
55 | s = Worker(buildmaster_host, port, workername, passwd, basedir, | ||
56 | keepalive, umask=umask, maxdelay=maxdelay, | ||
57 | numcpus=numcpus, allow_shutdown=allow_shutdown) | ||
58 | s.setServiceParent(application) | ||
59 | ''; | ||
60 | in | ||
61 | lib.mkForce "${cfg.package.pythonModule.pkgs.twisted}/bin/twistd --nodaemon --pidfile= --logfile - --python ${tacFile}"; | ||
62 | services.buildbot-worker = { | ||
63 | enable = true; | ||
64 | workerPass = config.myEnv.buildbot.workerPassword; | ||
65 | packages = [ pkgs.git pkgs.gzip pkgs.openssh ]; | ||
66 | }; | ||
67 | } | ||
diff --git a/modules/private/system/eldiron.nix b/modules/private/system/eldiron.nix deleted file mode 100644 index 8b2784d..0000000 --- a/modules/private/system/eldiron.nix +++ /dev/null | |||
@@ -1,228 +0,0 @@ | |||
1 | { config, pkgs, lib, ... }: | ||
2 | { | ||
3 | deployment = { | ||
4 | targetUser = "root"; | ||
5 | targetHost = config.hostEnv.ips.main.ip4; | ||
6 | substituteOnDestination = true; | ||
7 | }; | ||
8 | # ssh-keyscan eldiron | nix-shell -p ssh-to-age --run ssh-to-age | ||
9 | secrets.ageKeys = [ "age1dxr5lhvtnjssfaqpnf6qx80h8gfwkxg3tdf35m6n9wljmk7wadfs3kmahj" ]; | ||
10 | boot = { | ||
11 | kernelModules = [ "kvm-intel" ]; | ||
12 | blacklistedKernelModules = [ "nvidiafb" ]; | ||
13 | loader.timeout = 1; | ||
14 | loader.grub.devices = [ "/dev/sda" "/dev/sdb" ]; | ||
15 | kernel.sysctl = { | ||
16 | # https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md | ||
17 | "net.ipv4.tcp_sack" = 0; | ||
18 | }; | ||
19 | supportedFilesystems = [ "zfs" ]; | ||
20 | kernelParams = ["zfs.zfs_arc_max=6442450944"]; | ||
21 | kernelPackages = pkgs.linuxPackages_latest; | ||
22 | initrd.availableKernelModules = [ "ahci" "sd_mod" ]; | ||
23 | initrd.secrets = { | ||
24 | "/boot/pass.key" = "/boot/pass.key"; | ||
25 | }; | ||
26 | }; | ||
27 | services.udev.extraRules = '' | ||
28 | ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="c8:60:00:56:a0:88", NAME="eth0" | ||
29 | ''; | ||
30 | nix.maxJobs = 8; | ||
31 | powerManagement.cpuFreqGovernor = "powersave"; | ||
32 | myEnv = import ../../../nixops/secrets/environment.nix; | ||
33 | |||
34 | fileSystems = { | ||
35 | # pools: | ||
36 | # zpool: ashift=12 | ||
37 | # zfast: ashift=12 | ||
38 | # zfs: | ||
39 | # zpool/: acltype=posixacl ; xattr=sa ; atime=off ; mountpoint=legacy | ||
40 | # zpool/root: encryption=on ; keyformat=passphrase ; keylocation=file:///boot/pass.key | ||
41 | # zpool/root/var: atime=on | ||
42 | # zfast/: acltype=posixacl ; xattr=sa ; atime=off ; mountpoint=legacy | ||
43 | # zfast/root: encryption=on ; keyformat=passphrase ; keylocation=file:///boot/pass.key | ||
44 | # zfast/root/etc: ø | ||
45 | # zfast/root/nix: ø | ||
46 | # zfast/root/tmp: async=disabled | ||
47 | # zfast/root/var: atime=on | ||
48 | # zfast/root/var/lib: ø | ||
49 | # zfast/root/var/lib/mysql: logbias=throughput ; atime=off ; primarycache=metadata | ||
50 | # zfast/root/var/lib/postgresql: recordsize=8K ; atime=off ; logbias=throughput | ||
51 | # zfast/root/var/lib/postgresql/11.0: ø | ||
52 | # zfast/root/var/lib/postgresql/11.0/pg_wal: ø | ||
53 | "/" = { fsType = "zfs"; device = "zpool/root"; }; | ||
54 | "/boot" = { fsType = "ext4"; device = "/dev/disk/by-uuid/e6bb18fb-ff56-4b5f-ae9f-e60d40dc0622"; }; | ||
55 | "/etc" = { fsType = "zfs"; device = "zpool/root/etc"; }; | ||
56 | "/nix" = { fsType = "zfs"; device = "zfast/root/nix"; }; | ||
57 | "/tmp" = { fsType = "zfs"; device = "zfast/root/tmp"; }; | ||
58 | "/var" = { fsType = "zfs"; device = "zpool/root/var"; }; | ||
59 | "/var/lib/mysql" = { fsType = "zfs"; device = "zfast/root/var/lib/mysql"; }; | ||
60 | "/var/lib/postgresql" = { fsType = "zfs"; device = "zfast/root/var/lib/postgresql"; }; | ||
61 | "/var/lib/postgresql/11.0" = { fsType = "zfs"; device = "zfast/root/var/lib/postgresql/11.0"; }; | ||
62 | "/var/lib/postgresql/11.0/pg_wal" = { fsType = "zfs"; device = "zfast/root/var/lib/postgresql/11.0/pg_wal"; }; | ||
63 | }; | ||
64 | swapDevices = [ { label = "swap1"; } { label = "swap2"; } ]; | ||
65 | hardware.enableRedistributableFirmware = true; | ||
66 | |||
67 | services.zfs = { | ||
68 | autoScrub = { | ||
69 | enable = false; | ||
70 | }; | ||
71 | }; | ||
72 | networking = { | ||
73 | hostId = "8262ca33"; # generated with head -c4 /dev/urandom | od -A none -t x4 | ||
74 | firewall.enable = true; | ||
75 | # FIXME: on next reboot, remove the /27 and the localCommands | ||
76 | interfaces."eth0".ipv4.addresses = | ||
77 | pkgs.lib.attrsets.mapAttrsToList | ||
78 | (n: ips: { address = ips.ip4; prefixLength = 32; }) | ||
79 | (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") config.hostEnv.ips) | ||
80 | ++ [ { address = config.hostEnv.ips.main.ip4; prefixLength = 27; } ]; | ||
81 | interfaces."eth0".ipv6.addresses = pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList | ||
82 | (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or [])) | ||
83 | config.hostEnv.ips); | ||
84 | defaultGateway = "176.9.151.65"; | ||
85 | localCommands = '' | ||
86 | # FIXME: Those commands were added by nixops and may not be | ||
87 | # actually needed | ||
88 | ip -6 addr add '2a01:4f8:160:3445::/64' dev 'eth0' || true | ||
89 | ip -4 route change '176.9.151.64/27' via '176.9.151.65' dev 'eth0' || true | ||
90 | ip -6 route add default via 'fe80::1' dev eth0 || true | ||
91 | ''; | ||
92 | nameservers = [ | ||
93 | "213.133.98.98" | ||
94 | "213.133.99.99" | ||
95 | "213.133.100.100" | ||
96 | "2a01:4f8:0:a0a1::add:1010" | ||
97 | "2a01:4f8:0:a102::add:9999" | ||
98 | "2a01:4f8:0:a111::add:9898" | ||
99 | ]; | ||
100 | }; | ||
101 | |||
102 | imports = builtins.attrValues (import ../..); | ||
103 | |||
104 | myServices.buildbot.enable = true; | ||
105 | myServices.databases.enable = true; | ||
106 | myServices.gitolite.enable = true; | ||
107 | myServices.monitoring.enable = true; | ||
108 | myServices.irc.enable = true; | ||
109 | myServices.pub.enable = true; | ||
110 | myServices.tasks.enable = true; | ||
111 | myServices.mpd.enable = true; | ||
112 | myServices.dns.enable = true; | ||
113 | myServices.certificates.enable = true; | ||
114 | myServices.websites.enable = true; | ||
115 | myServices.gemini.enable = true; | ||
116 | myServices.mail.enable = true; | ||
117 | myServices.ejabberd.enable = true; | ||
118 | myServices.vpn.enable = true; | ||
119 | myServices.ftp.enable = true; | ||
120 | |||
121 | services.netdata.enable = true; | ||
122 | services.netdata.config.global."memory mode" = "none"; | ||
123 | services.netdata.config.health."enabled" = "no"; | ||
124 | services.netdata.config.web.mode = "none"; | ||
125 | users.users."${config.services.netdata.user}".extraGroups = [ "keys" ]; | ||
126 | environment.etc."netdata/stream.conf".source = config.secrets.fullPaths."netdata-stream.conf"; | ||
127 | secrets.keys = { | ||
128 | "netdata-stream.conf" = { | ||
129 | user = config.services.netdata.user; | ||
130 | group = config.services.netdata.group; | ||
131 | permissions = "0400"; | ||
132 | text = '' | ||
133 | [stream] | ||
134 | enabled = yes | ||
135 | destination = ${config.myEnv.monitoring.netdata_aggregator} | ||
136 | api key = ${config.myEnv.monitoring.netdata_keys.eldiron} | ||
137 | ''; | ||
138 | }; | ||
139 | "zrepl_backup/identity" = { | ||
140 | user = "root"; | ||
141 | group = "root"; | ||
142 | permissions = "0400"; | ||
143 | text = config.myEnv.zrepl_backup.ssh_key.private; | ||
144 | }; | ||
145 | }; | ||
146 | programs.ssh.knownHosts.dilion = { | ||
147 | hostNames = ["dilion.immae.eu"]; | ||
148 | publicKey = let | ||
149 | profile = config.myEnv.rsync_backup.profiles.dilion; | ||
150 | in | ||
151 | "${profile.host_key_type} ${profile.host_key}"; | ||
152 | }; | ||
153 | |||
154 | services.cron = { | ||
155 | enable = true; | ||
156 | mailto = "cron@immae.eu"; | ||
157 | systemCronJobs = [ | ||
158 | '' | ||
159 | 0 0 * * * root journalctl -q --since="25 hours ago" -u postfix -t postfix/smtpd -g "immae.eu.*Recipient address rejected" | ||
160 | # Need a way to blacklist properly | ||
161 | # 0 0 * * * root journalctl -q --since="25 hours ago" -u postfix -t postfix/smtpd -g "NOQUEUE:" | ||
162 | 0 0 * * * root journalctl -q --since="25 hours ago" -u postfix -t postfix/smtp -g "status=bounced" | ||
163 | '' | ||
164 | ]; | ||
165 | }; | ||
166 | |||
167 | environment.systemPackages = [ pkgs.bindfs ]; | ||
168 | |||
169 | services.zrepl = { | ||
170 | enable = true; | ||
171 | config = let | ||
172 | redis_dump = pkgs.writeScript "redis-dump" '' | ||
173 | #! ${pkgs.stdenv.shell} | ||
174 | ${pkgs.redis}/bin/redis-cli bgsave | ||
175 | ''; | ||
176 | in '' | ||
177 | jobs: | ||
178 | - type: push | ||
179 | # must not change | ||
180 | name: "backup-to-dilion" | ||
181 | filesystems: | ||
182 | "zpool/root": true | ||
183 | "zpool/root/etc": true | ||
184 | "zpool/root/var<": true | ||
185 | connect: | ||
186 | type: ssh+stdinserver | ||
187 | host: dilion.immae.eu | ||
188 | user: backup | ||
189 | port: 22 | ||
190 | identity_file: ${config.secrets.fullPaths."zrepl_backup/identity"} | ||
191 | snapshotting: | ||
192 | type: periodic | ||
193 | prefix: zrepl_ | ||
194 | interval: 1h | ||
195 | #hooks: | ||
196 | # - type: mysql-lock-tables | ||
197 | # dsn: "${config.myEnv.zrepl_backup.mysql.user}:${config.myEnv.zrepl_backup.mysql.password}@tcp(localhost)/" | ||
198 | # filesystems: | ||
199 | # "zpool/root/var": true | ||
200 | # - type: command | ||
201 | # path: ${redis_dump} | ||
202 | # err_is_fatal: false | ||
203 | # filesystems: | ||
204 | # "zpool/root/var": true | ||
205 | send: | ||
206 | encrypted: true | ||
207 | pruning: | ||
208 | keep_sender: | ||
209 | - type: regex | ||
210 | regex: "^manual_.*" | ||
211 | - type: grid | ||
212 | grid: 24x1h | 7x1d | 4x7d | 6x30d | ||
213 | regex: "^zrepl_.*" | ||
214 | keep_receiver: | ||
215 | - type: regex | ||
216 | regex: "^manual_.*" | ||
217 | - type: grid | ||
218 | grid: 6x4h | 7x1d | 4x7d | 6x30d | ||
219 | regex: "^zrepl_.*" | ||
220 | ''; | ||
221 | }; | ||
222 | # This value determines the NixOS release with which your system is | ||
223 | # to be compatible, in order to avoid breaking some software such as | ||
224 | # database servers. You should change this only after NixOS release | ||
225 | # notes say you should. | ||
226 | # https://nixos.org/nixos/manual/release-notes.html | ||
227 | system.stateVersion = "20.03"; # Did you read the comment? | ||
228 | } | ||
diff --git a/modules/private/system/monitoring-1.nix b/modules/private/system/monitoring-1.nix deleted file mode 100644 index dea5f45..0000000 --- a/modules/private/system/monitoring-1.nix +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | { config, pkgs, resources, ... }: | ||
2 | { | ||
3 | deployment = { | ||
4 | targetUser = "root"; | ||
5 | targetHost = config.hostEnv.ips.main.ip4; | ||
6 | substituteOnDestination = true; | ||
7 | }; | ||
8 | # ssh-keyscan monitoring-1 | nix-shell -p ssh-to-age --run ssh-to-age | ||
9 | secrets.ageKeys = [ "age1dn4lzhgxusqrpjjnzm7w8ml39ptf326htuzmpqdqs2gg3wq7cqzqxuvx8k" ]; | ||
10 | boot.kernelPackages = pkgs.linuxPackages_latest; | ||
11 | myEnv = import ../../../nixops/secrets/environment.nix; | ||
12 | |||
13 | imports = [ <nixpkgs/nixos/modules/profiles/qemu-guest.nix> ] ++ builtins.attrValues (import ../..); | ||
14 | |||
15 | myServices.monitoring.enable = true; | ||
16 | myServices.monitoring.master = true; | ||
17 | myServices.status.enable = true; | ||
18 | networking = { | ||
19 | firewall.enable = true; | ||
20 | interfaces."ens3".ipv4.addresses = pkgs.lib.attrsets.mapAttrsToList | ||
21 | (n: ips: { address = ips.ip4; prefixLength = 32; }) | ||
22 | (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") config.hostEnv.ips); | ||
23 | interfaces."ens3".ipv6.addresses = pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList | ||
24 | (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or [])) | ||
25 | config.hostEnv.ips); | ||
26 | defaultGateway6 = { address = "fe80::1"; interface = "ens3"; }; | ||
27 | }; | ||
28 | boot.loader.grub.device = "nodev"; | ||
29 | fileSystems."/" = { device = "/dev/sda1"; fsType = "ext4"; }; | ||
30 | myServices.mailRelay.enable = true; | ||
31 | |||
32 | security.pki.certificateFiles = [ | ||
33 | (pkgs.fetchurl { | ||
34 | url = "http://downloads.e.eriomem.net/eriomemca.pem"; | ||
35 | sha256 = "1ixx4c6j3m26j8dp9a3dkvxc80v1nr5aqgmawwgs06bskasqkvvh"; | ||
36 | }) | ||
37 | ]; | ||
38 | |||
39 | services.netdata.enable = true; | ||
40 | services.netdata.config.web."allow dashboard from" = "localhost"; | ||
41 | services.netdata.config.web."allow badges from" = "*"; | ||
42 | services.netdata.config.web."allow streaming from" = "*"; | ||
43 | services.netdata.config.web."allow netdata.conf from" = "fd*"; | ||
44 | services.netdata.config.web."allow management from" = "fd*"; | ||
45 | networking.firewall.allowedTCPPorts = [ 19999 ]; | ||
46 | environment.etc."netdata/stream.conf".source = config.secrets.fullPaths."netdata-stream.conf"; | ||
47 | |||
48 | secrets.keys = { | ||
49 | "netdata-stream.conf" = { | ||
50 | user = config.services.netdata.user; | ||
51 | group = config.services.netdata.group; | ||
52 | permissions = "0400"; | ||
53 | text = builtins.concatStringsSep "\n" (pkgs.lib.mapAttrsToList (_: key: '' | ||
54 | [${key}] | ||
55 | enabled = yes | ||
56 | default history = 3600 | ||
57 | default memory = ram | ||
58 | health enabled by default = auto | ||
59 | '') config.myEnv.monitoring.netdata_keys); | ||
60 | }; | ||
61 | }; | ||
62 | users.users."${config.services.netdata.user}".extraGroups = [ "keys" ]; | ||
63 | # This value determines the NixOS release with which your system is | ||
64 | # to be compatible, in order to avoid breaking some software such as | ||
65 | # database servers. You should change this only after NixOS release | ||
66 | # notes say you should. | ||
67 | # https://nixos.org/nixos/manual/release-notes.html | ||
68 | system.stateVersion = "20.03"; # Did you read the comment? | ||
69 | } | ||
diff --git a/modules/private/system/quatresaisons.nix b/modules/private/system/quatresaisons.nix deleted file mode 100644 index 82db70f..0000000 --- a/modules/private/system/quatresaisons.nix +++ /dev/null | |||
@@ -1,436 +0,0 @@ | |||
1 | { config, pkgs, lib, ... }: | ||
2 | let | ||
3 | serverSpecificConfig = config.myEnv.serverSpecific.quatresaisons; | ||
4 | yarnModules = pkgs.yarn2nix-moretea.mkYarnModules rec { | ||
5 | name = "landing"; | ||
6 | pname = name; | ||
7 | version = "v1.0.0"; | ||
8 | packageJSON = "${pkgs.sources.webapps-landing}/package.json"; | ||
9 | yarnLock = "${pkgs.sources.webapps-landing}/yarn.lock"; | ||
10 | yarnNix = ../websites/tools/tools/landing/yarn-packages.nix; | ||
11 | }; | ||
12 | toLanding = landingConfig: pkgs.stdenv.mkDerivation rec { | ||
13 | pname = "landing"; | ||
14 | version = "v1.0.0"; | ||
15 | src = pkgs.sources.webapps-landing; | ||
16 | |||
17 | buildInputs = [ yarnModules pkgs.yarn2nix-moretea.yarn ]; | ||
18 | configurePhase = '' | ||
19 | ln -s ${yarnModules}/node_modules . | ||
20 | ''; | ||
21 | buildPhase = '' | ||
22 | yarn build | ||
23 | ''; | ||
24 | installPhase = '' | ||
25 | cp -a dist $out | ||
26 | cp -f ${landingConfig} $out/config.yml | ||
27 | ln -s service-worker.js $out/worker.js | ||
28 | ''; | ||
29 | }; | ||
30 | normalUsers = serverSpecificConfig.users; | ||
31 | sponsoredUser = pkgs.writeScriptBin "sponsored_user" '' | ||
32 | #!/usr/bin/env bash | ||
33 | |||
34 | set -euo pipefail | ||
35 | [ -z "''${SUDO_USER+x}" ] && echo "Must be run with sudo" && exit 1 | ||
36 | |||
37 | mygroup=$(id -ng $SUDO_USER) | ||
38 | |||
39 | sponsored=$(getent group $mygroup | cut -d':' -f4) | ||
40 | |||
41 | echo "Sponsored users: ''${sponsored:-<none>}" | ||
42 | |||
43 | log () { | ||
44 | touch /var/log/sponsored_users | ||
45 | chmod go-rwx /var/log/sponsored_users | ||
46 | echo "`date` $mygroup $1" | LANG=C cat -v | tr '\012' ' ' | sed 's:$:\x0a:' >> /var/log/sponsored_users | ||
47 | } | ||
48 | |||
49 | create_user () { | ||
50 | log "creates $1: $2" | ||
51 | useradd -m -G users,$mygroup -g $mygroup -p '!' "$1" | ||
52 | touch /var/lib/nixos/sponsored_users | ||
53 | chmod go-rwx /var/lib/nixos/sponsored_users | ||
54 | echo "$mygroup $1 $2" >> /var/lib/nixos/sponsored_users | ||
55 | (${pkgs.openldap}/bin/ldapadd -c -D cn=root,dc=salle-s,dc=org \ | ||
56 | -y ${config.secrets.fullPaths."ldap/sync_password"} 2>/dev/null >/dev/null || true) <<EOF | ||
57 | dn: uid=$1,uid=$mygroup,ou=users,dc=salle-s,dc=org | ||
58 | objectClass: inetOrgPerson | ||
59 | cn: $1 | ||
60 | description:: $(echo -n "$2" | base64) | ||
61 | sn: $1 | ||
62 | uid: $1 | ||
63 | EOF | ||
64 | while ! passwd "$1"; do | ||
65 | echo "please give an initial password" | ||
66 | done | ||
67 | } | ||
68 | |||
69 | delete_user () { | ||
70 | IFS=","; | ||
71 | for u in $sponsored; do | ||
72 | if [ "$u" = "$1" ]; then | ||
73 | log "deletes $1" | ||
74 | userdel -r "$1" | ||
75 | sed -i -e "/^$mygroup $1/d" /var/lib/nixos/sponsored_users | ||
76 | ${pkgs.openldap}/bin/ldapdelete -D cn=root,dc=salle-s,dc=org \ | ||
77 | -y ${config.secrets.fullPaths."ldap/sync_password"} \ | ||
78 | "uid=$1,uid=$mygroup,ou=users,dc=salle-s,dc=org" | ||
79 | echo "deleted" | ||
80 | exit 0 | ||
81 | fi | ||
82 | done | ||
83 | |||
84 | echo "User does not exist or does not belong to you"; | ||
85 | exit 1 | ||
86 | } | ||
87 | |||
88 | reset_password () { | ||
89 | IFS=","; | ||
90 | for u in $sponsored; do | ||
91 | if [ "$u" = "$1" ]; then | ||
92 | log "resets password for $1" | ||
93 | passwd "$1" | ||
94 | exit 0 | ||
95 | fi | ||
96 | done | ||
97 | |||
98 | echo "User does not exist or does not belong to you"; | ||
99 | exit 1 | ||
100 | } | ||
101 | |||
102 | reset_ldap_password () { | ||
103 | if [ "$1" = "$mygroup" ]; then | ||
104 | log "resets web password" | ||
105 | ${pkgs.openldap}/bin/ldappasswd -D cn=root,dc=salle-s,dc=org \ | ||
106 | -y ${config.secrets.fullPaths."ldap/sync_password"} \ | ||
107 | -S "uid=$mygroup,ou=users,dc=salle-s,dc=org" | ||
108 | else | ||
109 | IFS=","; | ||
110 | for u in $sponsored; do | ||
111 | if [ "$u" = "$1" ]; then | ||
112 | log "resets web password of $1" | ||
113 | ${pkgs.openldap}/bin/ldappasswd -D cn=root,dc=salle-s,dc=org \ | ||
114 | -y ${config.secrets.fullPaths."ldap/sync_password"} \ | ||
115 | -S "uid=$1,uid=$mygroup,ou=users,dc=salle-s,dc=org" | ||
116 | exit 0 | ||
117 | fi | ||
118 | done | ||
119 | |||
120 | echo "User does not exist or does not belong to you"; | ||
121 | exit 1 | ||
122 | fi | ||
123 | } | ||
124 | |||
125 | show_help () { | ||
126 | echo "sponsored_users create username realname" | ||
127 | echo " create a new sub-user attached to your account" | ||
128 | echo "sponsored_users (delete|reset_password) username" | ||
129 | echo " delete a sub-user attached to your account or reset his password" | ||
130 | echo "sponsored_users reset_ldap_password username" | ||
131 | echo " reset the web password of a sub-user or yourself" | ||
132 | } | ||
133 | |||
134 | [ -z "''${1+x}" -o -z "''${2+x}" ] && { show_help ; exit 0; } | ||
135 | action="$1" | ||
136 | username="$2" | ||
137 | shift | ||
138 | shift | ||
139 | |||
140 | case "$action" in | ||
141 | create) | ||
142 | [ -z "''${1+x}" ] && { show_help ; echo "Conformément à la charte https://4c.salle-s.org/charte veuillez préciser le nom réel du futur utilisateur du compte $username, juste pour root." ; exit 1; } | ||
143 | create_user "$username" "$*"; | ||
144 | ;; | ||
145 | delete) | ||
146 | delete_user "$username"; | ||
147 | ;; | ||
148 | reset_password) | ||
149 | reset_password "$username"; | ||
150 | ;; | ||
151 | reset_ldap_password) | ||
152 | reset_ldap_password "$username"; | ||
153 | ;; | ||
154 | *) | ||
155 | show_help | ||
156 | ;; | ||
157 | esac | ||
158 | ''; | ||
159 | in | ||
160 | { | ||
161 | deployment = { | ||
162 | targetUser = "root"; | ||
163 | targetHost = config.hostEnv.ips.main.ip4; | ||
164 | substituteOnDestination = true; | ||
165 | }; | ||
166 | # ssh-keyscan quatresaison | nix-shell -p ssh-to-age --run ssh-to-age | ||
167 | secrets.ageKeys = [ "age1yz8u6xvh2fltvyp96ep8crce3qx4tuceyhun6pwddfe0uvcrkarscxl7e7" ]; | ||
168 | |||
169 | programs.ssh.package = pkgs.openssh.overrideAttrs(old: { | ||
170 | PATH_PASSWD_PROG = "/run/wrappers/bin/passwd"; | ||
171 | buildFlags = [ "SSH_KEYSIGN=/run/wrappers/bin/ssh-keysign" ]; | ||
172 | }); | ||
173 | |||
174 | imports = builtins.attrValues (import ../..) ++ | ||
175 | [ ./quatresaisons/nextcloud.nix ./quatresaisons/databases.nix ]; | ||
176 | |||
177 | myEnv = import ../../../nixops/secrets/environment.nix; | ||
178 | |||
179 | fileSystems = { | ||
180 | "/" = { device = "/dev/disk/by-uuid/865931b4-c5cc-439f-8e42-8072c7a30634"; fsType = "ext4"; }; | ||
181 | "/home" = { device = "/dev/disk/by-uuid/76020bc4-5b88-464c-8952-9a59072c597f"; fsType = "ext4"; neededForBoot = true; }; | ||
182 | "/boot" = { device = "/dev/disk/by-uuid/0fb8421a-61e5-4ed5-a795-4dd3a9b2152a"; fsType = "ext4"; }; | ||
183 | "/var/lib" = { device = "/home/var_lib"; fsType = "none"; options = [ "defaults,bind" ]; }; | ||
184 | }; | ||
185 | powerManagement.cpuFreqGovernor = "powersave"; | ||
186 | hardware.enableRedistributableFirmware = true; | ||
187 | |||
188 | boot.initrd.availableKernelModules = [ "ahci" "megaraid_sas" "sd_mod" ]; | ||
189 | boot.initrd.kernelModules = [ "dm-snapshot" ]; | ||
190 | boot.kernelModules = [ "kvm-intel" ]; | ||
191 | |||
192 | boot.loader.grub.enable = true; | ||
193 | boot.loader.grub.version = 2; | ||
194 | boot.loader.grub.device = "/dev/sda"; | ||
195 | |||
196 | networking.firewall.enable = false; | ||
197 | networking.firewall.allowedTCPPorts = [ 80 443 ]; | ||
198 | networking.useDHCP = false; | ||
199 | networking.interfaces.eth0.useDHCP = true; | ||
200 | networking.interfaces.eth0.ipv6.addresses = [ | ||
201 | { address = pkgs.lib.head config.hostEnv.ips.main.ip6; prefixLength = 64; } | ||
202 | ]; | ||
203 | networking.defaultGateway6 = { address = "fe80::1"; interface = "eth0"; }; | ||
204 | services.udev.extraRules = '' | ||
205 | ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="c8:60:00:8b:2f:f0", NAME="eth0" | ||
206 | ''; | ||
207 | security.pam.services.chage.text = '' | ||
208 | auth sufficient pam_rootok.so | ||
209 | auth required pam_unix.so | ||
210 | account required pam_unix.so | ||
211 | session required pam_unix.so | ||
212 | password required pam_permit.so | ||
213 | ''; | ||
214 | security.pam.services.sshd.makeHomeDir = true; | ||
215 | security.pam.services.passwd_default = {}; | ||
216 | security.pam.services.passwd.text = '' | ||
217 | password required pam_cracklib.so enforce_for_root difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 | ||
218 | '' + config.security.pam.services.passwd_default.text; | ||
219 | |||
220 | system.activationScripts.ldapSync = { | ||
221 | deps = [ "secrets" "users" ]; | ||
222 | text = | ||
223 | let | ||
224 | com = "-D cn=root,dc=salle-s,dc=org -y ${config.secrets.fullPaths."ldap/sync_password"}"; | ||
225 | in '' | ||
226 | # Add users | ||
227 | ${pkgs.openldap}/bin/ldapadd -c ${com} -f ${config.secrets.fullPaths."ldap/ldaptree.ldif"} 2>/dev/null >/dev/null || true | ||
228 | |||
229 | # Remove obsolete users | ||
230 | ${pkgs.openldap}/bin/ldapsearch -LLL ${com} -s one -b "ou=users,dc=salle-s,dc=org" "uid" |\ | ||
231 | grep "^uid" | ${pkgs.gnused}/bin/sed -e "s/uid: //" | while read ldapuser; do | ||
232 | |||
233 | for user in ${builtins.concatStringsSep " " (builtins.attrNames normalUsers)}; do | ||
234 | if [ "$user" = "$ldapuser" ]; then | ||
235 | continue 2 | ||
236 | fi | ||
237 | done | ||
238 | ${pkgs.openldap}/bin/ldapdelete -r ${com} uid=$ldapuser,ou=users,dc=salle-s,dc=org | ||
239 | done | ||
240 | |||
241 | # Subusers | ||
242 | if [ -f /var/lib/nixos/sponsored_users ]; then | ||
243 | cat /var/lib/nixos/sponsored_users | while read mainUser subUser name; do | ||
244 | (${pkgs.openldap}/bin/ldapadd -c ${com} 2>/dev/null >/dev/null || true) <<EOF | ||
245 | dn: uid=$subUser,uid=$mainUser,ou=users,dc=salle-s,dc=org | ||
246 | objectClass: inetOrgPerson | ||
247 | cn: $subUser | ||
248 | description:: $(echo -n "$name" | base64) | ||
249 | sn: $subUser | ||
250 | uid: $subUser | ||
251 | EOF | ||
252 | done | ||
253 | fi | ||
254 | ''; | ||
255 | }; | ||
256 | |||
257 | secrets.keys = { | ||
258 | "ldap/sync_password" = { | ||
259 | permissions = "0400"; | ||
260 | text = serverSpecificConfig.ldap_sync_password; | ||
261 | }; | ||
262 | "ldap/ldaptree.ldif" = { | ||
263 | permissions = "0400"; | ||
264 | text = serverSpecificConfig.ldap_service_users | ||
265 | + (builtins.concatStringsSep "\n" (lib.mapAttrsToList (n: v: '' | ||
266 | dn: uid=${n},ou=users,dc=salle-s,dc=org | ||
267 | objectClass: inetOrgPerson | ||
268 | cn: ${n} | ||
269 | description: ${v._meta.name or n} ${v._meta.email} | ||
270 | sn: ${n} | ||
271 | uid: ${n} | ||
272 | '') normalUsers)); | ||
273 | }; | ||
274 | }; | ||
275 | |||
276 | myServices.monitoring.enable = true; | ||
277 | myServices.certificates.enable = true; | ||
278 | users.mutableUsers = true; | ||
279 | system.stateVersion = "21.03"; | ||
280 | programs.zsh.enable = true; | ||
281 | |||
282 | users.motd = '' | ||
283 | Bienvenue sur quatresaisons.salle-s.org ! | ||
284 | |||
285 | * Charte : | ||
286 | https://4c.salle-s.org/charte | ||
287 | * Gérer les utilisateurs unix additionnels : | ||
288 | sudo sponsored_user -h | ||
289 | * Applications web : | ||
290 | * tableau de bord : https://4c.salle-s.org/ | ||
291 | * nextcloud : https://nextcloud.4c.salle-s.org/ | ||
292 | ''; | ||
293 | |||
294 | users.groups = | ||
295 | lib.mapAttrs (n: v: { gid = v.uid; }) normalUsers | ||
296 | // { wwwrun = { gid = config.ids.gids.wwwrun; }; }; | ||
297 | users.users = | ||
298 | let | ||
299 | defaultNormal = n: { | ||
300 | group = n; | ||
301 | extraGroups = [ "users" ]; | ||
302 | isNormalUser = true; | ||
303 | }; | ||
304 | in | ||
305 | lib.mapAttrs (n: v: defaultNormal n // (lib.filterAttrs (k: _: k != "_meta") v)) normalUsers | ||
306 | // { | ||
307 | sponsored-separator = { | ||
308 | uid = 10000; | ||
309 | group = "users"; | ||
310 | home = "/var/empty"; | ||
311 | extraGroups = []; | ||
312 | isNormalUser = true; | ||
313 | createHome = false; | ||
314 | }; | ||
315 | wwwrun = { | ||
316 | group = "wwwrun"; | ||
317 | description = "Apache httpd user"; | ||
318 | uid = config.ids.uids.wwwrun; | ||
319 | extraGroups = [ "keys" ]; | ||
320 | }; | ||
321 | }; | ||
322 | |||
323 | system.activationScripts.usersPost = { | ||
324 | deps = [ "users" "groups" ]; | ||
325 | text = builtins.concatStringsSep "\n" (lib.mapAttrsToList (n: v: '' | ||
326 | if getent shadow "${n}" | grep -q '^${n}:${v.initialHashedPassword or "!"}:1'; then | ||
327 | chage -d 0 "${n}" | ||
328 | [ '${v.initialHashedPassword or "!"}' = '!' ] && passwd -d "${n}" | ||
329 | fi | ||
330 | '') normalUsers); | ||
331 | }; | ||
332 | security.sudo.extraRules = [ | ||
333 | { | ||
334 | commands = [ | ||
335 | { command = "${sponsoredUser}/bin/sponsored_user"; options = [ "NOPASSWD" ]; } | ||
336 | { command = "/run/current-system/sw/bin/sponsored_user"; options = [ "NOPASSWD" ]; } | ||
337 | ]; | ||
338 | users = builtins.attrNames normalUsers; | ||
339 | runAs = "root"; | ||
340 | } | ||
341 | ]; | ||
342 | |||
343 | environment.systemPackages = [ | ||
344 | sponsoredUser | ||
345 | pkgs.git pkgs.vim pkgs.rsync pkgs.strace pkgs.home-manager | ||
346 | pkgs.telnet pkgs.htop pkgs.iftop pkgs.bind.dnsutils pkgs.httpie | ||
347 | pkgs.iotop pkgs.whois pkgs.ngrep pkgs.tcpdump pkgs.tshark | ||
348 | pkgs.tcpflow pkgs.nmap pkgs.p0f pkgs.socat pkgs.lsof pkgs.psmisc | ||
349 | pkgs.openssl pkgs.wget pkgs.pv pkgs.smartmontools pkgs.youtube-dl | ||
350 | pkgs.unzip pkgs.octave pkgs.feh pkgs.xv pkgs.sshfs pkgs.gdb | ||
351 | pkgs.file pkgs.lynx pkgs.tmux pkgs.awesome pkgs.libreoffice | ||
352 | pkgs.evince pkgs.firefox pkgs.xcalib pkgs.python3 pkgs.python2 | ||
353 | pkgs.xorg.xkbcomp pkgs.subversion pkgs.xclip pkgs.imagemagick | ||
354 | pkgs.bc pkgs.sox pkgs.zip pkgs.gnome3.gnome-screenshot | ||
355 | pkgs.datadog-process-agent | ||
356 | ]; | ||
357 | |||
358 | services.websites.env.production = { | ||
359 | enable = true; | ||
360 | adminAddr = "httpd@immae.eu"; | ||
361 | httpdName = "Prod"; | ||
362 | modules = [ "http2" "deflate" "filter" ]; | ||
363 | extraConfig = [ | ||
364 | '' | ||
365 | LogFormat "%{Host}i:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost | ||
366 | Protocols h2 http/1.1 | ||
367 | AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript | ||
368 | '' ]; | ||
369 | ips = | ||
370 | let ips = config.hostEnv.ips.main; | ||
371 | in [ips.ip4] ++ (ips.ip6 or []); | ||
372 | |||
373 | fallbackVhost = { | ||
374 | certName = "quatresaisons"; | ||
375 | hosts = [ "quatresaisons.immae.eu" ]; | ||
376 | root = pkgs.runCommand "empty" {} "mkdir $out && touch $out/index.html"; | ||
377 | extraConfig = [ "DirectoryIndex index.html" ]; | ||
378 | }; | ||
379 | vhostConfs.salle-s = { | ||
380 | certName = "quatresaisons"; | ||
381 | addToCerts = true; | ||
382 | hosts = [ "salle-s.org" ]; | ||
383 | root = toLanding ./quatresaisons/landing.yml; | ||
384 | extraConfig = [ | ||
385 | '' | ||
386 | <Directory ${toLanding ./quatresaisons/landing.yml}> | ||
387 | AllowOverride None | ||
388 | Require all granted | ||
389 | DirectoryIndex index.html | ||
390 | </Directory> | ||
391 | '' | ||
392 | ]; | ||
393 | }; | ||
394 | vhostConfs.tools = { | ||
395 | certName = "quatresaisons"; | ||
396 | addToCerts = true; | ||
397 | hosts = [ "4c.salle-s.org" "quatresaisons.salle-s.org" "quatre-saisons.salle-s.org" ]; | ||
398 | root = toLanding ./quatresaisons/landing_4c.yml; | ||
399 | extraConfig = [ | ||
400 | '' | ||
401 | Alias /charte ${serverSpecificConfig.charte_path} | ||
402 | <Directory ${serverSpecificConfig.charte_path}> | ||
403 | AllowOverride None | ||
404 | Require all granted | ||
405 | DirectoryIndex index.html index.txt | ||
406 | </Directory> | ||
407 | |||
408 | <Directory ${toLanding ./quatresaisons/landing_4c.yml}> | ||
409 | AllowOverride None | ||
410 | Require all granted | ||
411 | DirectoryIndex index.html | ||
412 | </Directory> | ||
413 | '' | ||
414 | ]; | ||
415 | }; | ||
416 | }; | ||
417 | system.activationScripts.httpd = '' | ||
418 | install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php | ||
419 | install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions | ||
420 | ''; | ||
421 | |||
422 | services.phpfpm = { | ||
423 | phpOptions = '' | ||
424 | session.save_path = "/var/lib/php/sessions" | ||
425 | post_max_size = 20M | ||
426 | ; 15 days (seconds) | ||
427 | session.gc_maxlifetime = 1296000 | ||
428 | ; 30 days (minutes) | ||
429 | session.cache_expire = 43200 | ||
430 | ''; | ||
431 | settings = { | ||
432 | log_level = "notice"; | ||
433 | }; | ||
434 | }; | ||
435 | |||
436 | } | ||
diff --git a/modules/private/system/quatresaisons/databases.nix b/modules/private/system/quatresaisons/databases.nix deleted file mode 100644 index f7b27e0..0000000 --- a/modules/private/system/quatresaisons/databases.nix +++ /dev/null | |||
@@ -1,147 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | { | ||
3 | config = let | ||
4 | serverSpecificConfig = config.myEnv.serverSpecific.quatresaisons; | ||
5 | phpLdapAdmin = pkgs.webapps.phpldapadmin.override { config = config.secrets.fullPaths."webapps/tools-ldap"; }; | ||
6 | in { | ||
7 | services.postgresql.enable = true; | ||
8 | services.postgresql.package = pkgs.postgresql_12; | ||
9 | services.postgresql.ensureUsers = [ | ||
10 | { name = "naemon"; } | ||
11 | ]; | ||
12 | secrets.keys = { | ||
13 | "ldap/password" = { | ||
14 | permissions = "0400"; | ||
15 | user = "openldap"; | ||
16 | group = "openldap"; | ||
17 | text = "rootpw ${serverSpecificConfig.ldap_root_pw}"; | ||
18 | }; | ||
19 | "webapps/tools-ldap" = { | ||
20 | user = "wwwrun"; | ||
21 | group = "wwwrun"; | ||
22 | permissions = "0400"; | ||
23 | text = '' | ||
24 | <?php | ||
25 | $config->custom->appearance['show_clear_password'] = true; | ||
26 | $config->custom->appearance['hide_template_warning'] = true; | ||
27 | $config->custom->appearance['theme'] = "tango"; | ||
28 | $config->custom->appearance['minimalMode'] = false; | ||
29 | $config->custom->appearance['tree'] = 'AJAXTree'; | ||
30 | |||
31 | $servers = new Datastore(); | ||
32 | |||
33 | $servers->newServer('ldap_pla'); | ||
34 | $servers->setValue('server','name','LDAP'); | ||
35 | $servers->setValue('server','host','ldap://localhost'); | ||
36 | $servers->setValue('login','auth_type','cookie'); | ||
37 | $servers->setValue('login','bind_id','${serverSpecificConfig.ldap_phpldapadmin_dn}'); | ||
38 | $servers->setValue('login','bind_pass','${serverSpecificConfig.ldap_phpldapadmin_password}'); | ||
39 | $servers->setValue('appearance','pla_password_hash','ssha'); | ||
40 | $servers->setValue('login','attr','uid'); | ||
41 | $servers->setValue('login','fallback_dn',true); | ||
42 | ''; | ||
43 | }; | ||
44 | }; | ||
45 | |||
46 | users.users.openldap.extraGroups = [ "keys" ]; | ||
47 | services.openldap = { | ||
48 | enable = true; | ||
49 | dataDir = "/var/lib/openldap"; | ||
50 | urlList = [ "ldap://localhost" ]; | ||
51 | logLevel = "none"; | ||
52 | extraConfig = '' | ||
53 | pidfile /run/slapd/slapd.pid | ||
54 | argsfile /run/slapd/slapd.args | ||
55 | |||
56 | moduleload back_hdb | ||
57 | backend hdb | ||
58 | ''; | ||
59 | |||
60 | extraDatabaseConfig = '' | ||
61 | moduleload memberof | ||
62 | overlay memberof | ||
63 | |||
64 | moduleload syncprov | ||
65 | overlay syncprov | ||
66 | syncprov-checkpoint 100 10 | ||
67 | |||
68 | index objectClass eq | ||
69 | index uid pres,eq | ||
70 | #index uidMember pres,eq | ||
71 | index mail pres,sub,eq | ||
72 | index cn pres,sub,eq | ||
73 | index sn pres,sub,eq | ||
74 | index dc eq | ||
75 | index member eq | ||
76 | index memberOf eq | ||
77 | |||
78 | # No one must access that information except root | ||
79 | access to attrs=description | ||
80 | by * none | ||
81 | |||
82 | access to attrs=entry,uid filter="(uid=*)" | ||
83 | by dn.exact="${serverSpecificConfig.ldap_phpldapadmin_dn}" read | ||
84 | by * break | ||
85 | |||
86 | access to dn.subtree="ou=users,dc=salle-s,dc=org" | ||
87 | by dn.subtree="ou=services,dc=salle-s,dc=org" read | ||
88 | by * break | ||
89 | |||
90 | access to * | ||
91 | by self read | ||
92 | by anonymous auth | ||
93 | by * break | ||
94 | ''; | ||
95 | rootpwFile = config.secrets.fullPaths."ldap/password"; | ||
96 | suffix = "dc=salle-s,dc=org"; | ||
97 | rootdn = "cn=root,dc=salle-s,dc=org"; | ||
98 | database = "hdb"; | ||
99 | }; | ||
100 | |||
101 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
102 | services.websites.env.production.vhostConfs.tools.extraConfig = [ | ||
103 | '' | ||
104 | Alias /ldap "${phpLdapAdmin}/htdocs" | ||
105 | <Directory "${phpLdapAdmin}/htdocs"> | ||
106 | DirectoryIndex index.php | ||
107 | <FilesMatch "\.php$"> | ||
108 | SetHandler "proxy:unix:${config.services.phpfpm.pools.ldap.socket}|fcgi://localhost" | ||
109 | </FilesMatch> | ||
110 | |||
111 | AllowOverride None | ||
112 | Require all granted | ||
113 | </Directory> | ||
114 | '' | ||
115 | ]; | ||
116 | services.phpfpm.pools.ldap = { | ||
117 | user = "wwwrun"; | ||
118 | group = "wwwrun"; | ||
119 | settings = | ||
120 | let | ||
121 | basedir = builtins.concatStringsSep ":" [ phpLdapAdmin config.secrets.fullPaths."webapps/tools-ldap" ]; | ||
122 | in { | ||
123 | "listen.owner" = "wwwrun"; | ||
124 | "listen.group" = "wwwrun"; | ||
125 | "pm" = "ondemand"; | ||
126 | "pm.max_children" = "60"; | ||
127 | "pm.process_idle_timeout" = "60"; | ||
128 | |||
129 | # Needed to avoid clashes in browser cookies (same domain) | ||
130 | "php_value[session.name]" = "LdapPHPSESSID"; | ||
131 | "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/phpldapadmin"; | ||
132 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/phpldapadmin"; | ||
133 | }; | ||
134 | phpPackage = pkgs.php72; | ||
135 | }; | ||
136 | system.activationScripts.ldap = { | ||
137 | deps = [ "users" ]; | ||
138 | text = '' | ||
139 | install -m 0755 -o wwwrun -g wwwrun -d /var/lib/php/sessions/phpldapadmin | ||
140 | ''; | ||
141 | }; | ||
142 | systemd.services.phpfpm-ldap = { | ||
143 | after = lib.mkAfter [ "openldap.service" ]; | ||
144 | wants = [ "openldap.service" ]; | ||
145 | }; | ||
146 | }; | ||
147 | } | ||
diff --git a/modules/private/system/quatresaisons/landing.yml b/modules/private/system/quatresaisons/landing.yml deleted file mode 100644 index cf4ba87..0000000 --- a/modules/private/system/quatresaisons/landing.yml +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | --- | ||
2 | # Homepage configuration | ||
3 | # See https://fontawesome.com/icons for icons options | ||
4 | |||
5 | title: "Websites dashboard" | ||
6 | subtitle: "Salle-S" | ||
7 | footer: false | ||
8 | #footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it. | ||
9 | |||
10 | # Optional navbar | ||
11 | # links: [] # Allows for navbar (dark mode, layout, and search) without any links | ||
12 | links: [] | ||
13 | |||
14 | # Services | ||
15 | # First level array represent a group. | ||
16 | # Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed). | ||
17 | services: | ||
18 | - name: "Quatramaran" | ||
19 | items: | ||
20 | - name: "Roundcube" | ||
21 | logo: "assets/tools/roundcube.svg" | ||
22 | url: "https://quatramaran.salle-s.org/roundcube/" | ||
23 | - name: "Les dessous de paillasse" | ||
24 | url: "https://dessous-de-paillasse.salle-s.org" | ||
25 | - name: "Quatre Saisons" | ||
26 | items: | ||
27 | - name: "Charte d’utilisation" | ||
28 | icon: "fas fa-scroll" | ||
29 | url: "https://4c.salle-s.org/charte/" | ||
30 | - name: "Nextcloud" | ||
31 | logo: "assets/tools/nextcloud.png" | ||
32 | url: "https://nextcloud.4c.salle-s.org" | ||
diff --git a/modules/private/system/quatresaisons/landing_4c.yml b/modules/private/system/quatresaisons/landing_4c.yml deleted file mode 100644 index 0b9f6b6..0000000 --- a/modules/private/system/quatresaisons/landing_4c.yml +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | --- | ||
2 | # Homepage configuration | ||
3 | # See https://fontawesome.com/icons for icons options | ||
4 | |||
5 | title: "Websites dashboard" | ||
6 | subtitle: "Quatre saisons" | ||
7 | footer: false | ||
8 | #footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it. | ||
9 | |||
10 | # Optional navbar | ||
11 | # links: [] # Allows for navbar (dark mode, layout, and search) without any links | ||
12 | links: [] | ||
13 | |||
14 | # Services | ||
15 | # First level array represent a group. | ||
16 | # Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed). | ||
17 | services: | ||
18 | - items: | ||
19 | - name: "Charte d’utilisation" | ||
20 | icon: "fas fa-scroll" | ||
21 | url: "https://4c.salle-s.org/charte/" | ||
22 | - name: "Nextcloud" | ||
23 | logo: "assets/tools/nextcloud.png" | ||
24 | url: "https://nextcloud.4c.salle-s.org" | ||
diff --git a/modules/private/system/quatresaisons/nextcloud.nix b/modules/private/system/quatresaisons/nextcloud.nix deleted file mode 100644 index 89d69d5..0000000 --- a/modules/private/system/quatresaisons/nextcloud.nix +++ /dev/null | |||
@@ -1,141 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | nextcloud = pkgs.webapps.nextcloud.withApps (a: [ | ||
4 | a.apporder a.audioplayer a.bookmarks a.calendar a.carnet a.circles | ||
5 | a.contacts a.cookbook a.deck a.extract a.files_markdown | ||
6 | a.files_readmemd a.flowupload a.gpxedit a.gpxpod a.keeweb a.maps | ||
7 | a.metadata a.music a.notes a.ocsms a.passman a.polls a.spreed | ||
8 | a.social a.tasks | ||
9 | ]); | ||
10 | varDir = "/var/lib/nextcloud"; | ||
11 | phpFpm = rec { | ||
12 | basedir = builtins.concatStringsSep ":" ([ nextcloud varDir ] ++ nextcloud.apps); | ||
13 | pool = { | ||
14 | "listen.owner" = "wwwrun"; | ||
15 | "listen.group" = "wwwrun"; | ||
16 | "pm" = "ondemand"; | ||
17 | "pm.max_children" = "60"; | ||
18 | "pm.process_idle_timeout" = "60"; | ||
19 | |||
20 | "php_admin_value[output_buffering]" = "0"; | ||
21 | "php_admin_value[max_execution_time]" = "1800"; | ||
22 | "php_admin_value[zend_extension]" = "opcache"; | ||
23 | #already enabled by default? | ||
24 | #"php_value[opcache.enable]" = "1"; | ||
25 | "php_value[opcache.enable_cli]" = "1"; | ||
26 | "php_value[opcache.interned_strings_buffer]" = "8"; | ||
27 | "php_value[opcache.max_accelerated_files]" = "10000"; | ||
28 | "php_value[opcache.memory_consumption]" = "128"; | ||
29 | "php_value[opcache.save_comments]" = "1"; | ||
30 | "php_value[opcache.revalidate_freq]" = "1"; | ||
31 | "php_admin_value[memory_limit]" = "512M"; | ||
32 | |||
33 | "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${basedir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp"; | ||
34 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
35 | }; | ||
36 | }; | ||
37 | in { | ||
38 | config = { | ||
39 | services.postgresql.ensureDatabases = [ "nextcloud" ]; | ||
40 | services.postgresql.ensureUsers = [ | ||
41 | { name = "nextcloud"; ensurePermissions = { "DATABASE nextcloud" = "ALL PRIVILEGES"; }; } | ||
42 | ]; | ||
43 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
44 | |||
45 | services.websites.env.production.vhostConfs.cloud = { | ||
46 | certName = "quatresaisons"; | ||
47 | addToCerts = true; | ||
48 | hosts = ["nextcloud.4c.salle-s.org" ]; | ||
49 | root = nextcloud; | ||
50 | extraConfig = | ||
51 | [ | ||
52 | '' | ||
53 | SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 | ||
54 | <Directory ${nextcloud}> | ||
55 | AcceptPathInfo On | ||
56 | DirectoryIndex index.php | ||
57 | Options FollowSymlinks | ||
58 | Require all granted | ||
59 | AllowOverride all | ||
60 | |||
61 | <IfModule mod_headers.c> | ||
62 | Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" | ||
63 | </IfModule> | ||
64 | <FilesMatch "\.php$"> | ||
65 | CGIPassAuth on | ||
66 | SetHandler "proxy:unix:${config.services.phpfpm.pools.nextcloud.socket}|fcgi://localhost" | ||
67 | </FilesMatch> | ||
68 | |||
69 | </Directory> | ||
70 | '' | ||
71 | ]; | ||
72 | }; | ||
73 | services.websites.env.production.vhostConfs.cloud_wait = let | ||
74 | content = pkgs.writeText "contenu" '' | ||
75 | nextcloud est un service qui a besoin de pérennité du nom | ||
76 | "nextcloud.salle-s.org", on va peut-etre y arriver, c'est une | ||
77 | question de jours, voir le message informatique.internet:8017 | ||
78 | ''; | ||
79 | in { | ||
80 | certName = "quatresaisons"; | ||
81 | addToCerts = true; | ||
82 | hosts = ["nextcloud.salle-s.org" ]; | ||
83 | root = content; | ||
84 | extraConfig = | ||
85 | [ | ||
86 | '' | ||
87 | Alias / ${content} | ||
88 | '' | ||
89 | ]; | ||
90 | }; | ||
91 | |||
92 | users.users.root.packages = let | ||
93 | occ = pkgs.writeScriptBin "nextcloud-occ" '' | ||
94 | #! ${pkgs.stdenv.shell} | ||
95 | cd ${nextcloud} | ||
96 | NEXTCLOUD_CONFIG_DIR="${nextcloud}/config" \ | ||
97 | exec \ | ||
98 | sudo -E -u wwwrun ${pkgs.php74}/bin/php \ | ||
99 | -c ${pkgs.php74}/etc/php.ini \ | ||
100 | occ $* | ||
101 | ''; | ||
102 | in [ occ ]; | ||
103 | |||
104 | system.activationScripts.nextcloud = { | ||
105 | deps = [ "users" ]; | ||
106 | text = let | ||
107 | confs = lib.attrsets.mapAttrs (n: v: pkgs.writeText "${n}.json" (builtins.toJSON v)) nextcloud.otherConfig; | ||
108 | in | ||
109 | '' | ||
110 | install -m 0755 -o wwwrun -g wwwrun -d ${varDir} | ||
111 | install -m 0755 -o wwwrun -g wwwrun -d ${varDir}/config | ||
112 | install -m 0750 -o wwwrun -g wwwrun -d ${varDir}/phpSessions | ||
113 | ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: v: | ||
114 | "install -D -m 0644 -o wwwrun -g wwwrun -T ${v} ${varDir}/config/${n}.json" | ||
115 | ) confs)} | ||
116 | ''; | ||
117 | }; | ||
118 | services.phpfpm.pools.nextcloud = { | ||
119 | user = "wwwrun"; | ||
120 | group = "wwwrun"; | ||
121 | settings = phpFpm.pool; | ||
122 | phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache all.imagick ]); | ||
123 | }; | ||
124 | |||
125 | services.cron = { | ||
126 | enable = true; | ||
127 | systemCronJobs = let | ||
128 | script = pkgs.writeScriptBin "nextcloud-cron" '' | ||
129 | #! ${pkgs.stdenv.shell} | ||
130 | export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive | ||
131 | export PATH=/run/wrappers/bin:$PATH | ||
132 | ${pkgs.php74}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php | ||
133 | ''; | ||
134 | in [ | ||
135 | '' | ||
136 | */15 * * * * wwwrun ${script}/bin/nextcloud-cron | ||
137 | '' | ||
138 | ]; | ||
139 | }; | ||
140 | }; | ||
141 | } | ||
diff --git a/modules/private/tasks/default.nix b/modules/private/tasks/default.nix deleted file mode 100644 index 6480255..0000000 --- a/modules/private/tasks/default.nix +++ /dev/null | |||
@@ -1,355 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.tasks; | ||
4 | server_vardir = config.services.taskserver.dataDir; | ||
5 | fqdn = "task.immae.eu"; | ||
6 | user = config.services.taskserver.user; | ||
7 | env = config.myEnv.tools.task; | ||
8 | group = config.services.taskserver.group; | ||
9 | taskserver-user-certs = pkgs.runCommand "taskserver-user-certs" {} '' | ||
10 | mkdir -p $out/bin | ||
11 | cat > $out/bin/taskserver-user-certs <<"EOF" | ||
12 | #!/usr/bin/env bash | ||
13 | |||
14 | user=$1 | ||
15 | |||
16 | silent_certtool() { | ||
17 | if ! output="$("${pkgs.gnutls.bin}/bin/certtool" "$@" 2>&1)"; then | ||
18 | echo "GNUTLS certtool invocation failed with output:" >&2 | ||
19 | echo "$output" >&2 | ||
20 | fi | ||
21 | } | ||
22 | |||
23 | silent_certtool -p \ | ||
24 | --bits 4096 \ | ||
25 | --outfile "${server_vardir}/userkeys/$user.key.pem" | ||
26 | ${pkgs.gnused}/bin/sed -i -n -e '/^-----BEGIN RSA PRIVATE KEY-----$/,$p' "${server_vardir}/userkeys/$user.key.pem" | ||
27 | |||
28 | silent_certtool -c \ | ||
29 | --template "${pkgs.writeText "taskserver-ca.template" '' | ||
30 | tls_www_client | ||
31 | encryption_key | ||
32 | signing_key | ||
33 | expiration_days = 3650 | ||
34 | ''}" \ | ||
35 | --load-ca-certificate "${server_vardir}/keys/ca.cert" \ | ||
36 | --load-ca-privkey "${server_vardir}/keys/ca.key" \ | ||
37 | --load-privkey "${server_vardir}/userkeys/$user.key.pem" \ | ||
38 | --outfile "${server_vardir}/userkeys/$user.cert.pem" | ||
39 | EOF | ||
40 | chmod a+x $out/bin/taskserver-user-certs | ||
41 | patchShebangs $out/bin/taskserver-user-certs | ||
42 | ''; | ||
43 | taskwarrior-web = pkgs.webapps.taskwarrior-web; | ||
44 | socketsDir = "/run/taskwarrior-web"; | ||
45 | varDir = "/var/lib/taskwarrior-web"; | ||
46 | taskwebPages = let | ||
47 | uidPages = lib.attrsets.zipAttrs ( | ||
48 | lib.lists.flatten | ||
49 | (lib.attrsets.mapAttrsToList (k: c: map (v: { "${v}" = k; }) c.uid) env.taskwarrior-web) | ||
50 | ); | ||
51 | pages = lib.attrsets.mapAttrs (uid: items: | ||
52 | if lib.lists.length items == 1 then | ||
53 | '' | ||
54 | <html> | ||
55 | <head> | ||
56 | <meta http-equiv="refresh" content="0; url=/taskweb/${lib.lists.head items}/" /> | ||
57 | </head> | ||
58 | <body></body> | ||
59 | </html> | ||
60 | '' | ||
61 | else | ||
62 | '' | ||
63 | <html> | ||
64 | <head> | ||
65 | <title>To-do list disponibles</title> | ||
66 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
67 | <meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
68 | </head> | ||
69 | <body> | ||
70 | <ul> | ||
71 | ${builtins.concatStringsSep "\n" (map (item: "<li><a href='/taskweb/${item}'>${item}</a></li>") items)} | ||
72 | </ul> | ||
73 | </body> | ||
74 | </html> | ||
75 | '' | ||
76 | ) uidPages; | ||
77 | in | ||
78 | pkgs.runCommand "taskwerver-pages" {} '' | ||
79 | mkdir -p $out/ | ||
80 | ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (k: v: "cp ${pkgs.writeText k v} $out/${k}.html") pages)} | ||
81 | echo "Please login" > $out/index.html | ||
82 | ''; | ||
83 | in { | ||
84 | options.myServices.tasks = { | ||
85 | enable = lib.mkEnableOption "my tasks service"; | ||
86 | }; | ||
87 | |||
88 | config = lib.mkIf cfg.enable { | ||
89 | secrets.keys = { | ||
90 | "webapps/tools-taskwarrior-web" = { | ||
91 | user = "wwwrun"; | ||
92 | group = "wwwrun"; | ||
93 | permissions = "0400"; | ||
94 | text = '' | ||
95 | SetEnv TASKD_HOST "${fqdn}:${toString config.services.taskserver.listenPort}" | ||
96 | SetEnv TASKD_VARDIR "${server_vardir}" | ||
97 | SetEnv TASKD_LDAP_HOST "ldaps://${env.ldap.host}" | ||
98 | SetEnv TASKD_LDAP_DN "${env.ldap.dn}" | ||
99 | SetEnv TASKD_LDAP_PASSWORD "${env.ldap.password}" | ||
100 | SetEnv TASKD_LDAP_BASE "${env.ldap.base}" | ||
101 | SetEnv TASKD_LDAP_FILTER "${env.ldap.filter}" | ||
102 | ''; | ||
103 | }; | ||
104 | } // (lib.mapAttrs' (name: userConfig: lib.nameValuePair "webapps/tools-taskwarrior/${name}-taskrc" { | ||
105 | inherit user group; | ||
106 | permissions = "0400"; | ||
107 | text = let | ||
108 | credentials = "${userConfig.org}/${name}/${userConfig.key}"; | ||
109 | dateFormat = userConfig.date; | ||
110 | in '' | ||
111 | data.location=${varDir}/${name} | ||
112 | taskd.certificate=${server_vardir}/userkeys/taskwarrior-web.cert.pem | ||
113 | taskd.key=${server_vardir}/userkeys/taskwarrior-web.key.pem | ||
114 | # IdenTrust DST Root CA X3 | ||
115 | # obtained here: https://letsencrypt.org/fr/certificates/ | ||
116 | taskd.ca=${pkgs.writeText "ca.cert" '' | ||
117 | -----BEGIN CERTIFICATE----- | ||
118 | MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw | ||
119 | TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh | ||
120 | cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 | ||
121 | WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu | ||
122 | ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY | ||
123 | MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc | ||
124 | h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ | ||
125 | 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U | ||
126 | A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW | ||
127 | T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH | ||
128 | B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC | ||
129 | B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv | ||
130 | KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn | ||
131 | OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn | ||
132 | jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw | ||
133 | qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI | ||
134 | rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV | ||
135 | HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq | ||
136 | hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL | ||
137 | ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ | ||
138 | 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK | ||
139 | NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 | ||
140 | ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur | ||
141 | TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC | ||
142 | jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc | ||
143 | oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq | ||
144 | 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA | ||
145 | mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d | ||
146 | emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= | ||
147 | -----END CERTIFICATE-----''} | ||
148 | taskd.server=${fqdn}:${toString config.services.taskserver.listenPort} | ||
149 | taskd.credentials=${credentials} | ||
150 | dateformat=${dateFormat} | ||
151 | ''; | ||
152 | }) env.taskwarrior-web); | ||
153 | services.websites.env.tools.watchPaths = [ config.secrets.fullPaths."webapps/tools-taskwarrior-web" ]; | ||
154 | services.websites.env.tools.modules = [ "proxy_fcgi" "sed" ]; | ||
155 | services.websites.env.tools.vhostConfs.task = { | ||
156 | certName = "eldiron"; | ||
157 | addToCerts = true; | ||
158 | hosts = [ "task.immae.eu" ]; | ||
159 | root = ./www; | ||
160 | extraConfig = [ '' | ||
161 | <Directory ${./www}> | ||
162 | DirectoryIndex index.php | ||
163 | Use LDAPConnect | ||
164 | Require ldap-group cn=users,cn=taskwarrior,ou=services,dc=immae,dc=eu | ||
165 | <FilesMatch "\.php$"> | ||
166 | SetHandler "proxy:unix:${config.services.phpfpm.pools.tasks.socket}|fcgi://localhost" | ||
167 | </FilesMatch> | ||
168 | Include ${config.secrets.fullPaths."webapps/tools-taskwarrior-web"} | ||
169 | </Directory> | ||
170 | '' | ||
171 | '' | ||
172 | <Macro Taskwarrior %{folderName}> | ||
173 | ProxyPass "unix://${socketsDir}/%{folderName}.sock|http://localhost-%{folderName}/" | ||
174 | ProxyPassReverse "unix://${socketsDir}/%{folderName}.sock|http://localhost-%{folderName}/" | ||
175 | ProxyPassReverse http://${fqdn}/ | ||
176 | |||
177 | SetOutputFilter Sed | ||
178 | OutputSed "s|/ajax|/taskweb/%{folderName}/ajax|g" | ||
179 | OutputSed "s|\([^x]\)/tasks|\1/taskweb/%{folderName}/tasks|g" | ||
180 | OutputSed "s|\([^x]\)/projects|\1/taskweb/%{folderName}/projects|g" | ||
181 | OutputSed "s|http://${fqdn}/|/taskweb/%{folderName}/|g" | ||
182 | OutputSed "s|/img/relax.jpg|/taskweb/%{folderName}/img/relax.jpg|g" | ||
183 | </Macro> | ||
184 | '' | ||
185 | '' | ||
186 | Alias /taskweb ${taskwebPages} | ||
187 | <Directory "${taskwebPages}"> | ||
188 | DirectoryIndex index.html | ||
189 | Require all granted | ||
190 | </Directory> | ||
191 | |||
192 | RewriteEngine on | ||
193 | RewriteRule ^/taskweb$ /taskweb/ [R=301,L] | ||
194 | RedirectMatch permanent ^/taskweb/([^/]+)$ /taskweb/$1/ | ||
195 | |||
196 | RewriteCond %{LA-U:REMOTE_USER} !="" | ||
197 | RewriteCond ${taskwebPages}/%{LA-U:REMOTE_USER}.html -f | ||
198 | RewriteRule ^/taskweb/?$ ${taskwebPages}/%{LA-U:REMOTE_USER}.html [L] | ||
199 | |||
200 | <Location /taskweb/> | ||
201 | Use LDAPConnect | ||
202 | Require ldap-group cn=users,cn=taskwarrior,ou=services,dc=immae,dc=eu | ||
203 | </Location> | ||
204 | '' | ||
205 | ] ++ (lib.attrsets.mapAttrsToList (k: v: '' | ||
206 | <Location /taskweb/${k}/> | ||
207 | ${builtins.concatStringsSep "\n" (map (uid: "Require ldap-attribute uid=${uid}") v.uid)} | ||
208 | |||
209 | Use Taskwarrior ${k} | ||
210 | </Location> | ||
211 | '') env.taskwarrior-web); | ||
212 | }; | ||
213 | services.phpfpm.pools = { | ||
214 | tasks = { | ||
215 | user = user; | ||
216 | group = group; | ||
217 | settings = { | ||
218 | "listen.owner" = "wwwrun"; | ||
219 | "listen.group" = "wwwrun"; | ||
220 | "pm" = "dynamic"; | ||
221 | "pm.max_children" = "60"; | ||
222 | "pm.start_servers" = "2"; | ||
223 | "pm.min_spare_servers" = "1"; | ||
224 | "pm.max_spare_servers" = "10"; | ||
225 | |||
226 | # Needed to avoid clashes in browser cookies (same domain) | ||
227 | "php_value[session.name]" = "TaskPHPSESSID"; | ||
228 | "php_admin_value[open_basedir]" = "${./www}:/tmp:${server_vardir}:/etc/profiles/per-user/${user}/bin/"; | ||
229 | }; | ||
230 | phpEnv = { | ||
231 | PATH = "/etc/profiles/per-user/${user}/bin"; | ||
232 | }; | ||
233 | phpPackage = pkgs.php72; | ||
234 | }; | ||
235 | }; | ||
236 | |||
237 | security.acme.certs."task" = config.myServices.certificates.certConfig // { | ||
238 | inherit user group; | ||
239 | domain = fqdn; | ||
240 | postRun = '' | ||
241 | systemctl restart taskserver.service | ||
242 | ''; | ||
243 | }; | ||
244 | |||
245 | users.users.${user} = { | ||
246 | extraGroups = [ "keys" ]; | ||
247 | packages = [ taskserver-user-certs ]; | ||
248 | }; | ||
249 | |||
250 | system.activationScripts.taskserver = { | ||
251 | deps = [ "users" ]; | ||
252 | text = '' | ||
253 | install -m 0750 -o ${user} -g ${group} -d ${server_vardir} | ||
254 | install -m 0750 -o ${user} -g ${group} -d ${server_vardir}/userkeys | ||
255 | install -m 0750 -o ${user} -g ${group} -d ${server_vardir}/keys | ||
256 | |||
257 | if [ ! -e "${server_vardir}/keys/ca.key" ]; then | ||
258 | silent_certtool() { | ||
259 | if ! output="$("${pkgs.gnutls.bin}/bin/certtool" "$@" 2>&1)"; then | ||
260 | echo "GNUTLS certtool invocation failed with output:" >&2 | ||
261 | echo "$output" >&2 | ||
262 | fi | ||
263 | } | ||
264 | |||
265 | silent_certtool -p \ | ||
266 | --bits 4096 \ | ||
267 | --outfile "${server_vardir}/keys/ca.key" | ||
268 | |||
269 | silent_certtool -s \ | ||
270 | --template "${pkgs.writeText "taskserver-ca.template" '' | ||
271 | cn = ${fqdn} | ||
272 | expiration_days = -1 | ||
273 | cert_signing_key | ||
274 | ca | ||
275 | ''}" \ | ||
276 | --load-privkey "${server_vardir}/keys/ca.key" \ | ||
277 | --outfile "${server_vardir}/keys/ca.cert" | ||
278 | |||
279 | chown :${group} "${server_vardir}/keys/ca.key" | ||
280 | chmod g+r "${server_vardir}/keys/ca.key" | ||
281 | fi | ||
282 | ''; | ||
283 | }; | ||
284 | |||
285 | services.taskserver = { | ||
286 | enable = true; | ||
287 | allowedClientIDs = [ "^task [2-9]" "^Mirakel [1-9]" ]; | ||
288 | inherit fqdn; | ||
289 | listenHost = "::"; | ||
290 | pki.manual.ca.cert = "${server_vardir}/keys/ca.cert"; | ||
291 | pki.manual.server.cert = "${config.security.acme.certs.task.directory}/fullchain.pem"; | ||
292 | pki.manual.server.crl = "${config.security.acme.certs.task.directory}/invalid.crl"; | ||
293 | pki.manual.server.key = "${config.security.acme.certs.task.directory}/key.pem"; | ||
294 | requestLimit = 104857600; | ||
295 | }; | ||
296 | |||
297 | system.activationScripts.taskwarrior-web = { | ||
298 | deps = [ "users" ]; | ||
299 | text = '' | ||
300 | if [ ! -f ${server_vardir}/userkeys/taskwarrior-web.cert.pem ]; then | ||
301 | ${taskserver-user-certs}/bin/taskserver-user-certs taskwarrior-web | ||
302 | chown taskd:taskd ${server_vardir}/userkeys/taskwarrior-web.cert.pem ${server_vardir}/userkeys/taskwarrior-web.key.pem | ||
303 | fi | ||
304 | ''; | ||
305 | }; | ||
306 | |||
307 | systemd.slices.taskwarrior = { | ||
308 | description = "Taskwarrior slice"; | ||
309 | }; | ||
310 | |||
311 | systemd.services = (lib.attrsets.mapAttrs' (name: userConfig: | ||
312 | lib.attrsets.nameValuePair "taskwarrior-web-${name}" { | ||
313 | description = "Taskwarrior webapp for ${name}"; | ||
314 | wantedBy = [ "multi-user.target" ]; | ||
315 | after = [ "network.target" ]; | ||
316 | path = [ pkgs.taskwarrior ]; | ||
317 | |||
318 | environment.TASKRC = config.secrets.fullPaths."webapps/tools-taskwarrior/${name}-taskrc"; | ||
319 | environment.BUNDLE_PATH = "${taskwarrior-web.gems}/${taskwarrior-web.gems.ruby.gemPath}"; | ||
320 | environment.BUNDLE_GEMFILE = "${taskwarrior-web.gems.confFiles}/Gemfile"; | ||
321 | environment.LC_ALL = "fr_FR.UTF-8"; | ||
322 | |||
323 | script = '' | ||
324 | exec ${taskwarrior-web.gems}/${taskwarrior-web.gems.ruby.gemPath}/bin/bundle exec thin start -R config.ru -S ${socketsDir}/${name}.sock | ||
325 | ''; | ||
326 | |||
327 | serviceConfig = { | ||
328 | Slice = "taskwarrior.slice"; | ||
329 | User = user; | ||
330 | PrivateTmp = true; | ||
331 | Restart = "always"; | ||
332 | TimeoutSec = 60; | ||
333 | Type = "simple"; | ||
334 | WorkingDirectory = taskwarrior-web; | ||
335 | StateDirectoryMode = 0750; | ||
336 | StateDirectory = assert lib.strings.hasPrefix "/var/lib/" varDir; | ||
337 | (lib.strings.removePrefix "/var/lib/" varDir + "/${name}"); | ||
338 | RuntimeDirectoryPreserve = "yes"; | ||
339 | RuntimeDirectory = assert lib.strings.hasPrefix "/run/" socketsDir; | ||
340 | lib.strings.removePrefix "/run/" socketsDir; | ||
341 | }; | ||
342 | |||
343 | unitConfig.RequiresMountsFor = varDir; | ||
344 | }) env.taskwarrior-web) // { | ||
345 | taskserver-ca.postStart = '' | ||
346 | chown :${group} "${server_vardir}/keys/ca.key" | ||
347 | chmod g+r "${server_vardir}/keys/ca.key" | ||
348 | ''; | ||
349 | taskserver-ca.serviceConfig.Slice = "taskwarrior.slice"; | ||
350 | taskserver-init.serviceConfig.Slice = "taskwarrior.slice"; | ||
351 | taskserver.serviceConfig.Slice = "taskwarrior.slice"; | ||
352 | }; | ||
353 | |||
354 | }; | ||
355 | } | ||
diff --git a/modules/private/tasks/www/index.php b/modules/private/tasks/www/index.php deleted file mode 100644 index 49ccd24..0000000 --- a/modules/private/tasks/www/index.php +++ /dev/null | |||
@@ -1,168 +0,0 @@ | |||
1 | <?php | ||
2 | if (!isset($_SERVER["REMOTE_USER"])) { | ||
3 | die("please login"); | ||
4 | } | ||
5 | $ldap_user = $_SERVER["REMOTE_USER"]; | ||
6 | $ldap_host = getenv("TASKD_LDAP_HOST"); | ||
7 | $ldap_dn = getenv('TASKD_LDAP_DN'); | ||
8 | $ldap_password = getenv('TASKD_LDAP_PASSWORD'); | ||
9 | $ldap_base = getenv('TASKD_LDAP_BASE'); | ||
10 | $ldap_filter = getenv('TASKD_LDAP_FILTER'); | ||
11 | $host = getenv('TASKD_HOST'); | ||
12 | $vardir = getenv('TASKD_VARDIR'); | ||
13 | |||
14 | $connect = ldap_connect($ldap_host); | ||
15 | ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); | ||
16 | if (!$connect || !ldap_bind($connect, $ldap_dn, $ldap_password)) { | ||
17 | die("impossible to connect to LDAP"); | ||
18 | } | ||
19 | |||
20 | $search_query = str_replace('%login%', ldap_escape($ldap_user), $ldap_filter); | ||
21 | |||
22 | $search = ldap_search($connect, $ldap_base, $search_query); | ||
23 | $info = ldap_get_entries($connect, $search); | ||
24 | |||
25 | if (ldap_count_entries($connect, $search) != 1) { | ||
26 | die("Impossible to find user in LDAP"); | ||
27 | } | ||
28 | |||
29 | $entries = []; | ||
30 | foreach($info[0]["immaetaskid"] as $key => $value) { | ||
31 | if ($key !== "count") { | ||
32 | $entries[] = explode(":", $value); | ||
33 | } | ||
34 | } | ||
35 | |||
36 | if (isset($_GET["file"])) { | ||
37 | $basecert = $vardir . "/userkeys/" . $ldap_user; | ||
38 | if (!file_exists($basecert . ".cert.pem")) { | ||
39 | exec("taskserver-user-certs $ldap_user"); | ||
40 | } | ||
41 | $certificate = file_get_contents($basecert . ".cert.pem"); | ||
42 | $cert_key = file_get_contents($basecert . ".key.pem"); | ||
43 | |||
44 | // IdenTrust DST Root CA X3 | ||
45 | // obtained here: https://letsencrypt.org/fr/certificates/ | ||
46 | $server_cert = "-----BEGIN CERTIFICATE----- | ||
47 | MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw | ||
48 | TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh | ||
49 | cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 | ||
50 | WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu | ||
51 | ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY | ||
52 | MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc | ||
53 | h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ | ||
54 | 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U | ||
55 | A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW | ||
56 | T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH | ||
57 | B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC | ||
58 | B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv | ||
59 | KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn | ||
60 | OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn | ||
61 | jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw | ||
62 | qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI | ||
63 | rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV | ||
64 | HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq | ||
65 | hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL | ||
66 | ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ | ||
67 | 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK | ||
68 | NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 | ||
69 | ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur | ||
70 | TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC | ||
71 | jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc | ||
72 | oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq | ||
73 | 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA | ||
74 | mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d | ||
75 | emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= | ||
76 | -----END CERTIFICATE-----"; | ||
77 | |||
78 | $file = $_GET["file"]; | ||
79 | switch($file) { | ||
80 | case "ca.cert.pem": | ||
81 | $content = $server_cert; | ||
82 | $name = "ca.cert.pem"; | ||
83 | $type = "application/x-x509-ca-cert"; | ||
84 | break; | ||
85 | case "cert.pem": | ||
86 | $content = $certificate; | ||
87 | $name = $ldap_user . ".cert.pem"; | ||
88 | $type = "application/x-x509-ca-cert"; | ||
89 | break; | ||
90 | case "key.pem": | ||
91 | $content = $cert_key; | ||
92 | $name = $ldap_user . ".key.pem"; | ||
93 | $type = "application/x-x509-ca-cert"; | ||
94 | break; | ||
95 | case "mirakel"; | ||
96 | foreach ($entries as $entry) { | ||
97 | list($org, $user, $key) = $entry; | ||
98 | if ($key == $_GET["key"]) { break; } | ||
99 | } | ||
100 | $name = $user . ".mirakel"; | ||
101 | $type = "text/plain"; | ||
102 | $content = "username: $user | ||
103 | org: $org | ||
104 | user key: $key | ||
105 | server: $host | ||
106 | client.cert: | ||
107 | $certificate | ||
108 | Client.key: | ||
109 | $cert_key | ||
110 | ca.cert: | ||
111 | $server_cert | ||
112 | "; | ||
113 | break; | ||
114 | default: | ||
115 | die("invalid file name"); | ||
116 | break; | ||
117 | } | ||
118 | |||
119 | header("Content-Type: $type"); | ||
120 | header('Content-Disposition: attachment; filename="' . $name . '"'); | ||
121 | header('Content-Transfer-Encoding: binary'); | ||
122 | header('Accept-Ranges: bytes'); | ||
123 | header('Cache-Control: private'); | ||
124 | header('Pragma: private'); | ||
125 | echo $content; | ||
126 | exit; | ||
127 | } | ||
128 | ?> | ||
129 | <html> | ||
130 | <header> | ||
131 | <title>Taskwarrior configuration</title> | ||
132 | </header> | ||
133 | <body> | ||
134 | <ul> | ||
135 | <li><a href="?file=ca.cert.pem">ca.cert.pem</a></li> | ||
136 | <li><a href="?file=cert.pem"><?php echo $ldap_user; ?>.cert.pem</a></li> | ||
137 | <li><a href="?file=key.pem"><?php echo $ldap_user; ?>.key.pem</a></li> | ||
138 | </ul> | ||
139 | For command line interface, download the files, put them near your Taskwarrior | ||
140 | configuration files, and add that to your Taskwarrior configuration: | ||
141 | <pre> | ||
142 | taskd.certificate=/path/to/<?php echo $ldap_user; ?>.cert.pem | ||
143 | taskd.key=/path/to/<?php echo $ldap_user; ?>.key.pem | ||
144 | taskd.server=<?php echo $host ."\n"; ?> | ||
145 | <?php if (count($entries) > 1) { | ||
146 | echo "# Chose one of them\n"; | ||
147 | foreach($entries as $entry) { | ||
148 | list($org, $user, $key) = $entry; | ||
149 | echo "# taskd.credentials=$org/$user/$key\n"; | ||
150 | } | ||
151 | } else { ?> | ||
152 | taskd.credentials=<?php echo $entries[0][0]; ?>/<?php echo $entries[0][1]; ?>/<?php echo $entries[0][2]; ?> | ||
153 | <?php } ?> | ||
154 | taskd.ca=/path/to/ca.cert.pem | ||
155 | </pre> | ||
156 | For Mirakel, download and import the file: | ||
157 | <ul> | ||
158 | <?php | ||
159 | foreach ($entries as $entry) { | ||
160 | list($org, $user, $key) = $entry; | ||
161 | echo '<li><a href="?file=mirakel&key='.$key.'">' . $user . '.mirakel</a></li>'; | ||
162 | } | ||
163 | ?> | ||
164 | </ul> | ||
165 | For Android Taskwarrior app, see instructions <a href="https://bitbucket.org/kvorobyev/taskwarriorandroid/wiki/Configuration">here</a>. | ||
166 | </body> | ||
167 | </html> | ||
168 | |||
diff --git a/modules/private/vpn/default.nix b/modules/private/vpn/default.nix deleted file mode 100644 index d4b197d..0000000 --- a/modules/private/vpn/default.nix +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | { config, pkgs, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.vpn; | ||
4 | in | ||
5 | { | ||
6 | options.myServices = { | ||
7 | vpn.enable = lib.mkEnableOption "Enable vpn service"; | ||
8 | }; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | secrets.keys = { | ||
12 | "tinc/key.priv" = { | ||
13 | user = "root"; | ||
14 | group = "root"; | ||
15 | permissions = "0400"; | ||
16 | text = config.myEnv.vpn.eldiron.privateKey; | ||
17 | }; | ||
18 | "tinc/key.pub" = { | ||
19 | user = "root"; | ||
20 | group = "root"; | ||
21 | permissions = "0400"; | ||
22 | text = config.myEnv.vpn.eldiron.publicKey; | ||
23 | }; | ||
24 | }; | ||
25 | networking.firewall.allowedTCPPorts = [ 655 1194 ]; | ||
26 | system.activationScripts.tinc = let | ||
27 | configFiles = pkgs.runCommand "tinc-files" { | ||
28 | mainInterface = "eth0"; | ||
29 | hostName = "ImmaeEu"; | ||
30 | network = "Immae"; | ||
31 | keyFile = config.secrets.fullPaths."tinc/key.priv"; | ||
32 | } '' | ||
33 | mkdir -p $out | ||
34 | for i in ${./tinc}/*; do | ||
35 | substituteAll $i $out/$(basename $i) | ||
36 | done | ||
37 | ''; | ||
38 | in '' | ||
39 | install -m750 -o root -g root -d /var/lib/tinc/ /var/lib/tinc/Immae | ||
40 | install -m700 -o root -g root -t /var/lib/tinc/Immae ${configFiles}/{host-*,tinc-*} | ||
41 | install -m400 -o root -g root -t /var/lib/tinc/Immae ${configFiles}/tinc.conf | ||
42 | if [ ! -d /var/lib/tinc/Immae/hosts ]; then | ||
43 | ${pkgs.git}/bin/git clone -b master https://git.immae.eu/perso/Immae/Config/tinc/hosts /var/lib/tinc/Immae/hosts | ||
44 | fi | ||
45 | ''; | ||
46 | |||
47 | systemd.slices.tinc = { | ||
48 | description = "Tinc slice"; | ||
49 | }; | ||
50 | |||
51 | systemd.services.tinc-Immae = { | ||
52 | description = "Tinc Daemon - Immae"; | ||
53 | wantedBy = [ "multi-user.target" ]; | ||
54 | after = [ "network.target" ]; | ||
55 | path = [ pkgs.tinc pkgs.bashInteractive pkgs.iproute pkgs.gnused pkgs.gawk pkgs.git pkgs.glibc ]; | ||
56 | serviceConfig = { | ||
57 | Slice = "tinc.slice"; | ||
58 | Type = "simple"; | ||
59 | Restart = "always"; | ||
60 | RestartSec = "3"; | ||
61 | ExecStart = "${pkgs.tinc}/bin/tincd -d1 -D -c /var/lib/tinc/Immae --pidfile /run/tinc.Immae.pid"; | ||
62 | }; | ||
63 | }; | ||
64 | }; | ||
65 | } | ||
diff --git a/modules/private/vpn/tinc/host-down b/modules/private/vpn/tinc/host-down deleted file mode 100755 index 1e79bd3..0000000 --- a/modules/private/vpn/tinc/host-down +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | SUBDOMAIN=$(echo "$NODE" | sed -e "s/\([A-Z][a-z0-9]*\)/\L\1 /g;" | awk '{ for (i=NF; i>1; i--) printf("%s.",$i); print $1; }') | ||
4 | NODEIPS=`getent hosts ${SUBDOMAIN}.immae.eu | cut -d' ' -f1 | tr "\\n" ' '` | ||
5 | for NODEIP in $NODEIPS; do | ||
6 | ip neigh del proxy $NODEIP dev @mainInterface@ | ||
7 | done | ||
diff --git a/modules/private/vpn/tinc/host-up b/modules/private/vpn/tinc/host-up deleted file mode 100755 index 2f7cee2..0000000 --- a/modules/private/vpn/tinc/host-up +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | SUBDOMAIN=$(echo "$NODE" | sed -e "s/\([A-Z][a-z0-9]*\)/\L\1 /g;" | awk '{ for (i=NF; i>1; i--) printf("%s.",$i); print $1; }') | ||
4 | while [ -z "$NODEIPS" ]; do | ||
5 | NODEIPS=`getent hosts ${SUBDOMAIN}.immae.eu | cut -d' ' -f1 | tr "\\n" ' '` | ||
6 | sleep 5 | ||
7 | done | ||
8 | for NODEIP in $NODEIPS; do | ||
9 | ip neigh add proxy $NODEIP dev @mainInterface@ | ||
10 | done | ||
11 | (cd /var/lib/tinc/@network@/hosts && git pull -q origin master) || true | ||
diff --git a/modules/private/vpn/tinc/tinc-down b/modules/private/vpn/tinc/tinc-down deleted file mode 100755 index 1cc45c0..0000000 --- a/modules/private/vpn/tinc/tinc-down +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | # This file closes down the tap device. | ||
3 | |||
4 | echo 0 > /proc/sys/net/ipv6/conf/@mainInterface@/proxy_ndp | ||
5 | echo 0 > /proc/sys/net/ipv6/conf/all/forwarding | ||
6 | |||
7 | GWIP=`getent hosts gw.vpn.immae.eu | head -n1 | cut -d' ' -f1` | ||
8 | |||
9 | ip neigh del proxy $GWIP dev eth0 | ||
10 | |||
11 | ip -6 addr del $GWIP/96 dev $INTERFACE | ||
12 | ip -6 link set $INTERFACE down | ||
diff --git a/modules/private/vpn/tinc/tinc-up b/modules/private/vpn/tinc/tinc-up deleted file mode 100755 index 26c1ec3..0000000 --- a/modules/private/vpn/tinc/tinc-up +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | |||
3 | echo 1 > /proc/sys/net/ipv6/conf/@mainInterface@/proxy_ndp | ||
4 | echo 1 > /proc/sys/net/ipv6/conf/all/forwarding | ||
5 | |||
6 | SUBNET=`getent hosts sn.vpn.immae.eu | head -n1 | cut -d' ' -f1` | ||
7 | GWIP=`getent hosts gw.vpn.immae.eu | head -n1 | cut -d' ' -f1` | ||
8 | |||
9 | ip -6 link set $INTERFACE up mtu 1280 txqueuelen 1000 | ||
10 | |||
11 | ip -6 addr add $GWIP/96 dev $INTERFACE | ||
12 | ip -6 route add $SUBNET/80 dev $INTERFACE | ||
13 | |||
14 | ip neigh add proxy $GWIP dev @mainInterface@ | ||
diff --git a/modules/private/vpn/tinc/tinc.conf b/modules/private/vpn/tinc/tinc.conf deleted file mode 100644 index 7a4f103..0000000 --- a/modules/private/vpn/tinc/tinc.conf +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | BindToAddress = * 655 | ||
2 | BindToAddress = * 1194 | ||
3 | |||
4 | Name = @hostName@ | ||
5 | Interface = vpn6 | ||
6 | |||
7 | Mode = switch | ||
8 | |||
9 | Device = /dev/net/tun | ||
10 | GraphDumpFile = /var/lib/tinc/@network@/tinc_graph | ||
11 | PrivateKeyFile = @keyFile@ | ||
diff --git a/modules/private/websites/_www/googleb6d69446ff4ca3e5.html b/modules/private/websites/_www/googleb6d69446ff4ca3e5.html deleted file mode 100644 index ff6dbf3..0000000 --- a/modules/private/websites/_www/googleb6d69446ff4ca3e5.html +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | google-site-verification: googleb6d69446ff4ca3e5.html \ No newline at end of file | ||
diff --git a/modules/private/websites/_www/index.htm b/modules/private/websites/_www/index.htm deleted file mode 100644 index 0274251..0000000 --- a/modules/private/websites/_www/index.htm +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Hello World HTML</title> | ||
5 | </head> | ||
6 | <body> | ||
7 | <h1>It works!</h1> | ||
8 | </body> | ||
9 | </html> | ||
diff --git a/modules/private/websites/_www/maintenance_immae.html b/modules/private/websites/_www/maintenance_immae.html deleted file mode 100644 index 90f265f..0000000 --- a/modules/private/websites/_www/maintenance_immae.html +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | <!doctype html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Maintenance</title> | ||
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
6 | <style> | ||
7 | body { | ||
8 | padding-left: 5px; | ||
9 | padding-right: 5px; | ||
10 | text-align: center; | ||
11 | margin: auto; | ||
12 | font: 20px Helvetica, sans-serif; | ||
13 | color: #333; | ||
14 | } | ||
15 | h1 { | ||
16 | margin: 0px; | ||
17 | font-size: 40px; | ||
18 | } | ||
19 | article { | ||
20 | display: block; | ||
21 | max-width: 650px; | ||
22 | margin: 0 auto; | ||
23 | padding-top: 30px; | ||
24 | } | ||
25 | article + article { | ||
26 | border-top: 1px solid lightgrey; | ||
27 | } | ||
28 | article div { | ||
29 | text-align: justify; | ||
30 | } | ||
31 | a { | ||
32 | color: #dc8100; | ||
33 | text-decoration: none; | ||
34 | } | ||
35 | a:hover { | ||
36 | color: #333; | ||
37 | } | ||
38 | </style> | ||
39 | <script type="text/javascript"> | ||
40 | setTimeout(function () { location.reload(true); }, 5000); | ||
41 | </script> | ||
42 | </head> | ||
43 | <body> | ||
44 | <article> | ||
45 | <h1>Erreur serveur ou maintenance en cours !</h1> | ||
46 | <div> | ||
47 | <p>Une mise à jour ou une opération de maintenance est en cours sur le site. <a href="">Retentez</a> dans quelques instants ou patientez, la page se rechargera automatiquement.</p> | ||
48 | </div> | ||
49 | </article> | ||
50 | |||
51 | <article> | ||
52 | <h1>Server error or website in maintenance!</h1> | ||
53 | <div> | ||
54 | <p>An update or a maintenance is on track on the website. Please try <a href="">again</a> in a few seconds or wait, the page will reload automatically.</p> | ||
55 | </div> | ||
56 | </article> | ||
57 | </body> | ||
58 | </html> | ||
diff --git a/modules/private/websites/_www/nossl.html b/modules/private/websites/_www/nossl.html deleted file mode 100644 index 4401a80..0000000 --- a/modules/private/websites/_www/nossl.html +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>No SSL site</title> | ||
5 | </head> | ||
6 | <body> | ||
7 | <h1>No SSL on this site</h1> | ||
8 | <p>Use for wifi networks with login page that doesn't work well with | ||
9 | https.</p> | ||
10 | </body> | ||
11 | </html> | ||
diff --git a/modules/private/websites/bakeer/cloud.nix b/modules/private/websites/bakeer/cloud.nix deleted file mode 100644 index bf78317..0000000 --- a/modules/private/websites/bakeer/cloud.nix +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.bakeer.cloud; | ||
4 | nextcloud = config.myServices.tools.cloud.farm.package; | ||
5 | in { | ||
6 | options.myServices.websites.bakeer.cloud.enable = lib.mkEnableOption "enable Bakeer’s cloud"; | ||
7 | |||
8 | config = lib.mkIf cfg.enable { | ||
9 | myServices.tools.cloud.farm.instances = [ "bakeer" ]; | ||
10 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
11 | services.websites.env.production.vhostConfs.bakeer = { | ||
12 | certName = "bakeer"; | ||
13 | certMainHost = "bakeer.immae.eu"; | ||
14 | addToCerts = true; | ||
15 | hosts = ["bakeer.immae.eu" "baxsolution.immae.eu"]; | ||
16 | root = nextcloud; | ||
17 | extraConfig = [ | ||
18 | config.myServices.tools.cloud.farm.vhosts.bakeer | ||
19 | ]; | ||
20 | }; | ||
21 | }; | ||
22 | } | ||
23 | |||
diff --git a/modules/private/websites/capitaines/discourse_static/discourse.png b/modules/private/websites/capitaines/discourse_static/discourse.png deleted file mode 100644 index 91ce42d..0000000 --- a/modules/private/websites/capitaines/discourse_static/discourse.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/capitaines/discourse_static/index.html b/modules/private/websites/capitaines/discourse_static/index.html deleted file mode 100644 index 4c2ead0..0000000 --- a/modules/private/websites/capitaines/discourse_static/index.html +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html lang='en'> | ||
3 | <head> | ||
4 | <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> | ||
5 | <title>This instance is now closed - Discourse</title> | ||
6 | <style> | ||
7 | body { | ||
8 | text-align: center; | ||
9 | background: #f9f9f9; | ||
10 | font-family: sans-serif; | ||
11 | } | ||
12 | img { | ||
13 | max-width: 235px; | ||
14 | width: 100%; | ||
15 | } | ||
16 | h1 { | ||
17 | font-size: 20px; | ||
18 | font-weight: 400; | ||
19 | } | ||
20 | </style> | ||
21 | </head> | ||
22 | <body> | ||
23 | <div> | ||
24 | <img alt='Discourse capitaines' src='/discourse.png'> | ||
25 | <h1>Sorry, this instance is closed now.</h1> | ||
26 | </div> | ||
27 | </body> | ||
28 | </html> | ||
diff --git a/modules/private/websites/capitaines/landing_pages.nix b/modules/private/websites/capitaines/landing_pages.nix deleted file mode 100644 index edba8b9..0000000 --- a/modules/private/websites/capitaines/landing_pages.nix +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | { lib, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.capitaines.landing_pages; | ||
4 | certName = "capitaines"; | ||
5 | domain = "capitaines.fr"; | ||
6 | in { | ||
7 | options.myServices.websites.capitaines.landing_pages.enable = lib.mkEnableOption "enable Capitaines's landing pages"; | ||
8 | |||
9 | config = lib.mkIf cfg.enable { | ||
10 | services.websites.env.production.vhostConfs.capitaines_mastodon = rec { | ||
11 | inherit certName; | ||
12 | certMainHost = "mastodon.${domain}"; | ||
13 | hosts = [ certMainHost ]; | ||
14 | root = ./mastodon_static; | ||
15 | extraConfig = [ | ||
16 | '' | ||
17 | ErrorDocument 404 /index.html | ||
18 | <Directory ${./mastodon_static}> | ||
19 | DirectoryIndex index.html | ||
20 | Options Indexes FollowSymLinks MultiViews Includes | ||
21 | Require all granted | ||
22 | </Directory> | ||
23 | '' | ||
24 | ]; | ||
25 | }; | ||
26 | |||
27 | services.websites.env.production.vhostConfs.capitaines_discourse = { | ||
28 | inherit certName; | ||
29 | addToCerts = true; | ||
30 | hosts = [ "discourse.${domain}" ]; | ||
31 | root = ./discourse_static; | ||
32 | extraConfig = [ | ||
33 | '' | ||
34 | ErrorDocument 404 /index.html | ||
35 | <Directory ${./discourse_static}> | ||
36 | DirectoryIndex index.html | ||
37 | Options Indexes FollowSymLinks MultiViews Includes | ||
38 | Require all granted | ||
39 | </Directory> | ||
40 | '' | ||
41 | ]; | ||
42 | }; | ||
43 | |||
44 | services.websites.env.production.vhostConfs.capitaines = { | ||
45 | inherit certName; | ||
46 | addToCerts = true; | ||
47 | hosts = [ domain ]; | ||
48 | root = ../_www; | ||
49 | extraConfig = [ '' | ||
50 | <Directory ${../_www}> | ||
51 | DirectoryIndex index.htm | ||
52 | Require all granted | ||
53 | </Directory> | ||
54 | '' ]; | ||
55 | }; | ||
56 | }; | ||
57 | } | ||
diff --git a/modules/private/websites/capitaines/mastodon_static/index.html b/modules/private/websites/capitaines/mastodon_static/index.html deleted file mode 100644 index fae4152..0000000 --- a/modules/private/websites/capitaines/mastodon_static/index.html +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html lang='en'> | ||
3 | <head> | ||
4 | <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> | ||
5 | <title>This instance is now closed - Mastodon</title> | ||
6 | <style> | ||
7 | body { | ||
8 | text-align: center; | ||
9 | background: #282c37; | ||
10 | font-family: sans-serif; | ||
11 | } | ||
12 | img { | ||
13 | max-width: 470px; | ||
14 | width: 100%; | ||
15 | } | ||
16 | h1 { | ||
17 | font-size: 20px; | ||
18 | font-weight: 400; | ||
19 | color: #9baec8; | ||
20 | } | ||
21 | </style> | ||
22 | </head> | ||
23 | <body> | ||
24 | <div> | ||
25 | <img alt='Mastodon' src='/oops.png'> | ||
26 | <h1>Sorry, this instance is closed now.</h1> | ||
27 | </div> | ||
28 | </body> | ||
29 | </html> | ||
diff --git a/modules/private/websites/capitaines/mastodon_static/oops.png b/modules/private/websites/capitaines/mastodon_static/oops.png deleted file mode 100644 index 0abddad..0000000 --- a/modules/private/websites/capitaines/mastodon_static/oops.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/chloe/app/default.nix b/modules/private/websites/chloe/app/default.nix deleted file mode 100644 index d23e3e0..0000000 --- a/modules/private/websites/chloe/app/default.nix +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | { environment ? "prod" | ||
2 | , varDir ? "/var/lib/chloe_${environment}" | ||
3 | , spip, stdenv, sassc, sources }: | ||
4 | let | ||
5 | siteDir = stdenv.mkDerivation { | ||
6 | version = sources.websites-chloe-app.version; | ||
7 | pname = "chloe"; | ||
8 | src = sources.websites-chloe-app; | ||
9 | buildPhase = '' | ||
10 | make | ||
11 | ''; | ||
12 | installPhase = '' | ||
13 | cp -a . $out | ||
14 | ''; | ||
15 | buildInputs = [ sassc ]; | ||
16 | }; | ||
17 | in | ||
18 | spip.override { | ||
19 | ldap = true; | ||
20 | siteName = "chloe"; | ||
21 | inherit environment siteDir varDir; | ||
22 | } | ||
diff --git a/modules/private/websites/chloe/config/chmod.php b/modules/private/websites/chloe/config/chmod.php deleted file mode 100644 index aae16cd..0000000 --- a/modules/private/websites/chloe/config/chmod.php +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | <?php | ||
2 | if (!defined("_ECRIRE_INC_VERSION")) return; | ||
3 | if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', 0777); | ||
4 | ?> \ No newline at end of file | ||
diff --git a/modules/private/websites/chloe/config/connect.php b/modules/private/websites/chloe/config/connect.php deleted file mode 100644 index 18b0933..0000000 --- a/modules/private/websites/chloe/config/connect.php +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | <?php | ||
2 | if (!defined("_ECRIRE_INC_VERSION")) return; | ||
3 | define('_MYSQL_SET_SQL_MODE',true); | ||
4 | $GLOBALS['spip_connect_version'] = 0.7; | ||
5 | spip_connect_db( | ||
6 | getenv("SPIP_MYSQL_HOST"), | ||
7 | getenv("SPIP_MYSQL_PORT"), | ||
8 | getenv("SPIP_MYSQL_USER"), | ||
9 | getenv("SPIP_MYSQL_PASSWORD"), | ||
10 | getenv("SPIP_MYSQL_DB"), | ||
11 | 'mysql', | ||
12 | 'spip', | ||
13 | 'ldap.php' | ||
14 | ); | ||
15 | ?> | ||
diff --git a/modules/private/websites/chloe/config/ldap.php b/modules/private/websites/chloe/config/ldap.php deleted file mode 100644 index 825b7ed..0000000 --- a/modules/private/websites/chloe/config/ldap.php +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | <?php | ||
2 | if (!defined("_ECRIRE_INC_VERSION")) return; | ||
3 | $GLOBALS['ldap_base'] = getenv("SPIP_LDAP_BASE"); | ||
4 | $GLOBALS['ldap_link'] = @ldap_connect(getenv("SPIP_LDAP_HOST")); | ||
5 | @ldap_set_option($GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'3'); | ||
6 | @ldap_bind($GLOBALS['ldap_link'],getenv("SPIP_LDAP_SEARCH_DN"), getenv("SPIP_LDAP_SEARCH_PW")); | ||
7 | $GLOBALS['ldap_champs'] = array('login' => array('sAMAccountName','uid','login','userid','cn','sn'),'nom' => 'cn','email' => 'mail','bio' => 'description',); | ||
8 | $GLOBALS['ldap_search'] = getenv("SPIP_LDAP_SEARCH"); | ||
9 | ?> | ||
diff --git a/modules/private/websites/chloe/integration.nix b/modules/private/websites/chloe/integration.nix deleted file mode 100644 index 533568e..0000000 --- a/modules/private/websites/chloe/integration.nix +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | apacheUser = config.services.httpd.Inte.user; | ||
4 | apacheGroup = config.services.httpd.Inte.group; | ||
5 | ccfg = config.myEnv.websites.chloe.integration; | ||
6 | webRoot = "/var/lib/ftp/immae/chloe"; | ||
7 | varDir = "/var/lib/ftp/immae/chloe_var"; | ||
8 | cfg = config.myServices.websites.chloe.integration; | ||
9 | in { | ||
10 | options.myServices.websites.chloe.integration.enable = lib.mkEnableOption "enable Chloe's website in integration"; | ||
11 | |||
12 | config = lib.mkIf cfg.enable { | ||
13 | secrets.keys."websites/chloe/integration" = { | ||
14 | user = apacheUser; | ||
15 | group = apacheGroup; | ||
16 | permissions = "0400"; | ||
17 | text = '' | ||
18 | SetEnv SPIP_CONFIG_DIR "${./config}" | ||
19 | SetEnv SPIP_VAR_DIR "${varDir}" | ||
20 | SetEnv SPIP_SITE "chloe-dev" | ||
21 | SetEnv SPIP_LDAP_BASE "dc=immae,dc=eu" | ||
22 | SetEnv SPIP_LDAP_HOST "ldaps://ldap.immae.eu" | ||
23 | SetEnv SPIP_LDAP_SEARCH_DN "${ccfg.ldap.dn}" | ||
24 | SetEnv SPIP_LDAP_SEARCH_PW "${ccfg.ldap.password}" | ||
25 | SetEnv SPIP_LDAP_SEARCH "${ccfg.ldap.filter}" | ||
26 | SetEnv SPIP_MYSQL_HOST "${ccfg.mysql.host}" | ||
27 | SetEnv SPIP_MYSQL_PORT "${ccfg.mysql.port}" | ||
28 | SetEnv SPIP_MYSQL_DB "${ccfg.mysql.database}" | ||
29 | SetEnv SPIP_MYSQL_USER "${ccfg.mysql.user}" | ||
30 | SetEnv SPIP_MYSQL_PASSWORD "${ccfg.mysql.password}" | ||
31 | ''; | ||
32 | }; | ||
33 | systemd.services.phpfpm-chloe_integration.after = lib.mkAfter [ "mysql.service" ]; | ||
34 | systemd.services.phpfpm-chloe_integration.wants = [ "mysql.service" ]; | ||
35 | services.phpfpm.pools.chloe_integration = { | ||
36 | user = config.services.httpd.Inte.user; | ||
37 | group = config.services.httpd.Inte.group; | ||
38 | settings = { | ||
39 | "listen.owner" = apacheUser; | ||
40 | "listen.group" = apacheGroup; | ||
41 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
42 | "php_admin_value[post_max_size]" = "20M"; | ||
43 | # "php_admin_flag[log_errors]" = "on"; | ||
44 | "php_admin_value[open_basedir]" = "${../../../../pkgs/webapps/spip/spip_mes_options.php}:${./config}:${webRoot}:${varDir}:/tmp"; | ||
45 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
46 | "pm" = "ondemand"; | ||
47 | "pm.max_children" = "5"; | ||
48 | "pm.process_idle_timeout" = "60"; | ||
49 | }; | ||
50 | phpPackage = pkgs.php72; | ||
51 | }; | ||
52 | system.activationScripts.chloe_integration = { | ||
53 | deps = [ "wrappers" ]; | ||
54 | text = '' | ||
55 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir} ${varDir}/IMG ${varDir}/tmp ${varDir}/local | ||
56 | install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${varDir}/phpSessions | ||
57 | ''; | ||
58 | }; | ||
59 | services.websites.env.integration.modules = [ "proxy_fcgi" ]; | ||
60 | services.websites.env.integration.vhostConfs.chloe_integration = { | ||
61 | certName = "integration"; | ||
62 | addToCerts = true; | ||
63 | hosts = ["test.chc.immae.dev" ]; | ||
64 | root = webRoot; | ||
65 | extraConfig = [ | ||
66 | '' | ||
67 | Include ${config.secrets.fullPaths."websites/chloe/integration"} | ||
68 | |||
69 | RewriteEngine On | ||
70 | |||
71 | <FilesMatch "\.php$"> | ||
72 | SetHandler "proxy:unix:${config.services.phpfpm.pools.chloe_integration.socket}|fcgi://localhost" | ||
73 | </FilesMatch> | ||
74 | |||
75 | <Directory ${webRoot}> | ||
76 | DirectoryIndex index.php index.htm index.html | ||
77 | Options -Indexes +FollowSymLinks +MultiViews +Includes | ||
78 | Include ${webRoot}/htaccess.txt | ||
79 | |||
80 | AllowOverride AuthConfig FileInfo Limit | ||
81 | Require all granted | ||
82 | </Directory> | ||
83 | |||
84 | <DirectoryMatch "${webRoot}/squelettes"> | ||
85 | Require all denied | ||
86 | </DirectoryMatch> | ||
87 | |||
88 | <FilesMatch "(.htaccess|rewrite-rules|.gitignore)$"> | ||
89 | Require all denied | ||
90 | </FilesMatch> | ||
91 | |||
92 | <Location /> | ||
93 | Use LDAPConnect | ||
94 | Require ldap-group cn=chc.immae.dev,cn=httpd,ou=services,dc=immae,dc=eu | ||
95 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://osteopathe-cc.fr\"></html>" | ||
96 | </Location> | ||
97 | '' | ||
98 | ]; | ||
99 | }; | ||
100 | services.websites.env.integration.watchPaths = [ | ||
101 | config.secrets.fullPaths."websites/chloe/integration" | ||
102 | ]; | ||
103 | }; | ||
104 | } | ||
diff --git a/modules/private/websites/chloe/production.nix b/modules/private/websites/chloe/production.nix deleted file mode 100644 index 211232c..0000000 --- a/modules/private/websites/chloe/production.nix +++ /dev/null | |||
@@ -1,112 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | apacheUser = config.services.httpd.Prod.user; | ||
4 | apacheGroup = config.services.httpd.Prod.group; | ||
5 | ccfg = config.myEnv.websites.chloe.production; | ||
6 | app = pkgs.callPackage ./app { | ||
7 | inherit (ccfg) environment; | ||
8 | inherit (pkgs.webapps) spip; | ||
9 | varDir = "/var/lib/chloe_production"; | ||
10 | }; | ||
11 | cfg = config.myServices.websites.chloe.production; | ||
12 | in { | ||
13 | options.myServices.websites.chloe.production.enable = lib.mkEnableOption "enable Chloe's website in production"; | ||
14 | |||
15 | config = lib.mkIf cfg.enable { | ||
16 | secrets.keys."websites/chloe/production" = { | ||
17 | user = apacheUser; | ||
18 | group = apacheGroup; | ||
19 | permissions = "0400"; | ||
20 | text = '' | ||
21 | SetEnv SPIP_CONFIG_DIR "${./config}" | ||
22 | SetEnv SPIP_VAR_DIR "${app.varDir}" | ||
23 | SetEnv SPIP_SITE "chloe-${app.environment}" | ||
24 | SetEnv SPIP_LDAP_BASE "dc=immae,dc=eu" | ||
25 | SetEnv SPIP_LDAP_HOST "ldaps://ldap.immae.eu" | ||
26 | SetEnv SPIP_LDAP_SEARCH_DN "${ccfg.ldap.dn}" | ||
27 | SetEnv SPIP_LDAP_SEARCH_PW "${ccfg.ldap.password}" | ||
28 | SetEnv SPIP_LDAP_SEARCH "${ccfg.ldap.filter}" | ||
29 | SetEnv SPIP_MYSQL_HOST "${ccfg.mysql.host}" | ||
30 | SetEnv SPIP_MYSQL_PORT "${ccfg.mysql.port}" | ||
31 | SetEnv SPIP_MYSQL_DB "${ccfg.mysql.database}" | ||
32 | SetEnv SPIP_MYSQL_USER "${ccfg.mysql.user}" | ||
33 | SetEnv SPIP_MYSQL_PASSWORD "${ccfg.mysql.password}" | ||
34 | ''; | ||
35 | }; | ||
36 | services.webstats.sites = [ { name = "osteopathe-cc.fr"; } ]; | ||
37 | |||
38 | systemd.services.phpfpm-chloe_production.after = lib.mkAfter [ "mysql.service" ]; | ||
39 | systemd.services.phpfpm-chloe_production.wants = [ "mysql.service" ]; | ||
40 | services.phpfpm.pools.chloe_production = { | ||
41 | user = config.services.httpd.Prod.user; | ||
42 | group = config.services.httpd.Prod.group; | ||
43 | settings = { | ||
44 | "listen.owner" = apacheUser; | ||
45 | "listen.group" = apacheGroup; | ||
46 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
47 | "php_admin_value[post_max_size]" = "20M"; | ||
48 | # "php_admin_flag[log_errors]" = "on"; | ||
49 | "php_admin_value[open_basedir]" = "${app.spipConfig}:${./config}:${app}:${app.varDir}:/tmp"; | ||
50 | "php_admin_value[session.save_path]" = "${app.varDir}/phpSessions"; | ||
51 | "pm" = "dynamic"; | ||
52 | "pm.max_children" = "20"; | ||
53 | "pm.start_servers" = "2"; | ||
54 | "pm.min_spare_servers" = "1"; | ||
55 | "pm.max_spare_servers" = "3"; | ||
56 | }; | ||
57 | phpPackage = pkgs.php72; | ||
58 | }; | ||
59 | system.activationScripts.chloe_production = { | ||
60 | deps = [ "wrappers" ]; | ||
61 | text = '' | ||
62 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} ${app.varDir}/IMG ${app.varDir}/tmp ${app.varDir}/local | ||
63 | install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions | ||
64 | ''; | ||
65 | }; | ||
66 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
67 | services.websites.env.production.vhostConfs.chloe = { | ||
68 | certName = "chloe"; | ||
69 | certMainHost = "osteopathe-cc.fr"; | ||
70 | hosts = ["osteopathe-cc.fr" "www.osteopathe-cc.fr" ]; | ||
71 | root = app.webRoot; | ||
72 | extraConfig = [ | ||
73 | '' | ||
74 | Use Stats osteopathe-cc.fr | ||
75 | |||
76 | RewriteEngine On | ||
77 | RewriteCond "%{HTTP_HOST}" "!^www\.osteopathe-cc\.fr$" [NC] | ||
78 | RewriteRule ^(.+)$ https://www.osteopathe-cc.fr$1 [R=302,L] | ||
79 | |||
80 | Include ${config.secrets.fullPaths."websites/chloe/production"} | ||
81 | |||
82 | RewriteEngine On | ||
83 | RewriteRule ^/news.rss /spip.php?page=backend&id_rubrique=1 | ||
84 | |||
85 | <FilesMatch "\.php$"> | ||
86 | SetHandler "proxy:unix:${config.services.phpfpm.pools.chloe_production.socket}|fcgi://localhost" | ||
87 | </FilesMatch> | ||
88 | |||
89 | <Directory ${app.webRoot}> | ||
90 | DirectoryIndex index.php index.htm index.html | ||
91 | Options -Indexes +FollowSymLinks +MultiViews +Includes | ||
92 | Include ${app.webRoot}/htaccess.txt | ||
93 | |||
94 | AllowOverride AuthConfig FileInfo Limit | ||
95 | Require all granted | ||
96 | </Directory> | ||
97 | |||
98 | <DirectoryMatch "${app.webRoot}/squelettes"> | ||
99 | Require all denied | ||
100 | </DirectoryMatch> | ||
101 | |||
102 | <FilesMatch "(.htaccess|rewrite-rules|.gitignore)$"> | ||
103 | Require all denied | ||
104 | </FilesMatch> | ||
105 | '' | ||
106 | ]; | ||
107 | }; | ||
108 | services.websites.env.production.watchPaths = [ | ||
109 | config.secrets.fullPaths."websites/chloe/production" | ||
110 | ]; | ||
111 | }; | ||
112 | } | ||
diff --git a/modules/private/websites/cip-ca/sympa.nix b/modules/private/websites/cip-ca/sympa.nix deleted file mode 100644 index bb66fc6..0000000 --- a/modules/private/websites/cip-ca/sympa.nix +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | { lib, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.cip-ca.sympa; | ||
4 | in | ||
5 | { | ||
6 | options.myServices.websites.cip-ca.sympa.enable = lib.mkEnableOption "enable cip-ca’s sympa website"; | ||
7 | config = lib.mkIf cfg.enable { | ||
8 | services.websites.env.tools.vhostConfs.cipca_sympa = { | ||
9 | certName = "cip-ca"; | ||
10 | certMainHost = "mail.cip-ca.fr"; | ||
11 | hosts = [ "mail.cip-ca.fr" ]; | ||
12 | root = null; | ||
13 | extraConfig = [ | ||
14 | '' | ||
15 | Alias /static-sympa/ /var/lib/sympa/static_content/ | ||
16 | <Directory /var/lib/sympa/static_content/> | ||
17 | Require all granted | ||
18 | AllowOverride none | ||
19 | </Directory> | ||
20 | <Location /sympa> | ||
21 | SetHandler "proxy:unix:/run/sympa/wwsympa.socket|fcgi://" | ||
22 | Require all granted | ||
23 | </Location> | ||
24 | '' | ||
25 | ]; | ||
26 | }; | ||
27 | }; | ||
28 | } | ||
diff --git a/modules/private/websites/commons/adminer.nix b/modules/private/websites/commons/adminer.nix deleted file mode 100644 index eae6a9a..0000000 --- a/modules/private/websites/commons/adminer.nix +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | { config, callPackage }: | ||
2 | callPackage ../tools/tools/adminer.nix { | ||
3 | forcePhpSocket = config.services.phpfpm.pools.adminer.socket; | ||
4 | } | ||
diff --git a/modules/private/websites/connexionswing/app/default.nix b/modules/private/websites/connexionswing/app/default.nix deleted file mode 100644 index b14b03b..0000000 --- a/modules/private/websites/connexionswing/app/default.nix +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | { environment, varDir, secretsPath | ||
2 | , composerEnv, fetchurl, fetchgit, sources }: | ||
3 | let | ||
4 | app = composerEnv.buildPackage ( | ||
5 | import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // | ||
6 | rec { | ||
7 | pname = "connexionswing"; | ||
8 | name = "${pname}-${version}"; | ||
9 | version = sources.websites-connexionswing-app.version; | ||
10 | src = sources.websites-connexionswing-app; | ||
11 | noDev = (environment == "prod"); | ||
12 | preInstall = '' | ||
13 | export SYMFONY_ENV="${environment}" | ||
14 | ''; | ||
15 | postInstall = '' | ||
16 | cd $out | ||
17 | ${if environment == "prod" then "php ./bin/console assetic:dump --env=prod --no-debug" else ""} | ||
18 | rm app/config/parameters.yml | ||
19 | ln -sf ${secretsPath} app/config/parameters.yml | ||
20 | rm -rf var/{logs,cache} | ||
21 | ln -sf ${varDir}/var/{logs,cache} var/ | ||
22 | ln -sf ${varDir}/{medias,uploads} web/images/ | ||
23 | ''; | ||
24 | passthru = { | ||
25 | inherit varDir environment; | ||
26 | webRoot = "${app}/web"; | ||
27 | }; | ||
28 | }); | ||
29 | in app | ||
diff --git a/modules/private/websites/connexionswing/app/php-packages.nix b/modules/private/websites/connexionswing/app/php-packages.nix deleted file mode 100644 index 10bb737..0000000 --- a/modules/private/websites/connexionswing/app/php-packages.nix +++ /dev/null | |||
@@ -1,597 +0,0 @@ | |||
1 | # Generated with composer2nix and adapted to return only the list of | ||
2 | # packages | ||
3 | { composerEnv, fetchurl, fetchgit ? null }: | ||
4 | { | ||
5 | packages = { | ||
6 | "behat/transliterator" = { | ||
7 | targetDir = ""; | ||
8 | src = composerEnv.buildZipPackage { | ||
9 | name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c"; | ||
10 | src = fetchurl { | ||
11 | url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c; | ||
12 | sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0"; | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
16 | "components/bootstrap" = { | ||
17 | targetDir = ""; | ||
18 | src = composerEnv.buildZipPackage { | ||
19 | name = "components-bootstrap-670295b9d6170a79acc8586a15e729bf24128275"; | ||
20 | src = fetchurl { | ||
21 | url = https://api.github.com/repos/components/bootstrap/zipball/670295b9d6170a79acc8586a15e729bf24128275; | ||
22 | sha256 = "0lcq9cjnywvf1nd8k99flgcf2dmfgyyxzsvcpip8xiibmh5x04p9"; | ||
23 | }; | ||
24 | }; | ||
25 | }; | ||
26 | "components/jquery" = { | ||
27 | targetDir = ""; | ||
28 | src = composerEnv.buildZipPackage { | ||
29 | name = "components-jquery-5dd7297d7603e11e53bdcca2a71074d92de37b8f"; | ||
30 | src = fetchurl { | ||
31 | url = https://api.github.com/repos/components/jquery/zipball/5dd7297d7603e11e53bdcca2a71074d92de37b8f; | ||
32 | sha256 = "1maplw3yic1pzbwwl2amjlivipsi1w0r8bq7i0mmjaqf7wij506i"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | "components/jqueryui" = { | ||
37 | targetDir = ""; | ||
38 | src = composerEnv.buildZipPackage { | ||
39 | name = "components-jqueryui-44ecf3794cc56b65954cc19737234a3119d036cc"; | ||
40 | src = fetchurl { | ||
41 | url = https://api.github.com/repos/components/jqueryui/zipball/44ecf3794cc56b65954cc19737234a3119d036cc; | ||
42 | sha256 = "1y0ppxk44jkxbh38i05sg0zcgk927s5wy6sjngwr5qifibqbcbhk"; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | "composer/ca-bundle" = { | ||
47 | targetDir = ""; | ||
48 | src = composerEnv.buildZipPackage { | ||
49 | name = "composer-ca-bundle-d2c0a83b7533d6912e8d516756ebd34f893e9169"; | ||
50 | src = fetchurl { | ||
51 | url = https://api.github.com/repos/composer/ca-bundle/zipball/d2c0a83b7533d6912e8d516756ebd34f893e9169; | ||
52 | sha256 = "1as399dzrfbjnifb87j1g5cvrbacyddbay8fv59i56xx1bdq7lwc"; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
56 | "doctrine/annotations" = { | ||
57 | targetDir = ""; | ||
58 | src = composerEnv.buildZipPackage { | ||
59 | name = "doctrine-annotations-54cacc9b81758b14e3ce750f205a393d52339e97"; | ||
60 | src = fetchurl { | ||
61 | url = https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97; | ||
62 | sha256 = "1wi5skihqbcinlkrkr15nmmvqkn2gydqib8xl232abdvfq1q0w24"; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | "doctrine/cache" = { | ||
67 | targetDir = ""; | ||
68 | src = composerEnv.buildZipPackage { | ||
69 | name = "doctrine-cache-eb152c5100571c7a45470ff2a35095ab3f3b900b"; | ||
70 | src = fetchurl { | ||
71 | url = https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b; | ||
72 | sha256 = "0iq0qqv1smlqz63jhj2fpjy54c5dwfwxyf5c89iky6i0yb81gwyd"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | "doctrine/collections" = { | ||
77 | targetDir = ""; | ||
78 | src = composerEnv.buildZipPackage { | ||
79 | name = "doctrine-collections-1a4fb7e902202c33cce8c55989b945612943c2ba"; | ||
80 | src = fetchurl { | ||
81 | url = https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba; | ||
82 | sha256 = "0fkiwkx7zbmfnh4p21za807lh1n7g1f4lpgy8y59g4r5krvpl90w"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | "doctrine/common" = { | ||
87 | targetDir = ""; | ||
88 | src = composerEnv.buildZipPackage { | ||
89 | name = "doctrine-common-4acb8f89626baafede6ee5475bc5844096eba8a9"; | ||
90 | src = fetchurl { | ||
91 | url = https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9; | ||
92 | sha256 = "0qjqframvg81z3lwqaj5haanqj9v3dfbj170pxmwlgmrfsbr16zh"; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | "doctrine/dbal" = { | ||
97 | targetDir = ""; | ||
98 | src = composerEnv.buildZipPackage { | ||
99 | name = "doctrine-dbal-729340d8d1eec8f01bff708e12e449a3415af873"; | ||
100 | src = fetchurl { | ||
101 | url = https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873; | ||
102 | sha256 = "184p8h0n6mcm0y6vfyh0z6qcxmmf8h5z4vdvxd4ycmx0531lnhj3"; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
106 | "doctrine/doctrine-bundle" = { | ||
107 | targetDir = ""; | ||
108 | src = composerEnv.buildZipPackage { | ||
109 | name = "doctrine-doctrine-bundle-703fad32e4c8cbe609caf45a71a1d4266c830f0f"; | ||
110 | src = fetchurl { | ||
111 | url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/703fad32e4c8cbe609caf45a71a1d4266c830f0f; | ||
112 | sha256 = "0v2f63j22i3im8jbmv7spi8j42fay6dnxjvbxnbwj190ajxl6sdp"; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | "doctrine/doctrine-cache-bundle" = { | ||
117 | targetDir = ""; | ||
118 | src = composerEnv.buildZipPackage { | ||
119 | name = "doctrine-doctrine-cache-bundle-4c8e363f96427924e7e519c5b5119b4f54512697"; | ||
120 | src = fetchurl { | ||
121 | url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/4c8e363f96427924e7e519c5b5119b4f54512697; | ||
122 | sha256 = "1irm04iijzq6gziknwyb10a9s0xbzh04xs5i2d6aac86cc29187c"; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | "doctrine/doctrine-migrations-bundle" = { | ||
127 | targetDir = ""; | ||
128 | src = composerEnv.buildZipPackage { | ||
129 | name = "doctrine-doctrine-migrations-bundle-a9e506369f931351a2a6dd2aef588a822802b1b7"; | ||
130 | src = fetchurl { | ||
131 | url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/a9e506369f931351a2a6dd2aef588a822802b1b7; | ||
132 | sha256 = "1jgrqsgdwcm2g8rml76qr6b19s1vxfbnrp43qr6n1g9kbx7y9wg9"; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | "doctrine/inflector" = { | ||
137 | targetDir = ""; | ||
138 | src = composerEnv.buildZipPackage { | ||
139 | name = "doctrine-inflector-90b2128806bfde671b6952ab8bea493942c1fdae"; | ||
140 | src = fetchurl { | ||
141 | url = https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae; | ||
142 | sha256 = "01vmclj3k7xil51jg329fznshh8d07pvm4mr89lvfn1d7fyrq6qw"; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | "doctrine/instantiator" = { | ||
147 | targetDir = ""; | ||
148 | src = composerEnv.buildZipPackage { | ||
149 | name = "doctrine-instantiator-8e884e78f9f0eb1329e445619e04456e64d8051d"; | ||
150 | src = fetchurl { | ||
151 | url = https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d; | ||
152 | sha256 = "15dcja45rnwya431pcm826l68k1g8f1fabl7rih69alcdyvdlln4"; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | "doctrine/lexer" = { | ||
157 | targetDir = ""; | ||
158 | src = composerEnv.buildZipPackage { | ||
159 | name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c"; | ||
160 | src = fetchurl { | ||
161 | url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c; | ||
162 | sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74"; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | "doctrine/migrations" = { | ||
167 | targetDir = ""; | ||
168 | src = composerEnv.buildZipPackage { | ||
169 | name = "doctrine-migrations-c81147c0f2938a6566594455367e095150547f72"; | ||
170 | src = fetchurl { | ||
171 | url = https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72; | ||
172 | sha256 = "0x8hvxbm3f40sx25nq8zlh1kr936pagghzp89l0gdy5bar7cdzi5"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | "doctrine/orm" = { | ||
177 | targetDir = ""; | ||
178 | src = composerEnv.buildZipPackage { | ||
179 | name = "doctrine-orm-810a7baf81462a5ddf10e8baa8cb94b6eec02754"; | ||
180 | src = fetchurl { | ||
181 | url = https://api.github.com/repos/doctrine/doctrine2/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754; | ||
182 | sha256 = "1hmkc7917kgnav9hmlgvlp7qwm3zjj910ci71g9yqwjh6s28wrf1"; | ||
183 | }; | ||
184 | }; | ||
185 | }; | ||
186 | "fig/link-util" = { | ||
187 | targetDir = ""; | ||
188 | src = composerEnv.buildZipPackage { | ||
189 | name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac"; | ||
190 | src = fetchurl { | ||
191 | url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac; | ||
192 | sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64"; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | "friendsofsymfony/jsrouting-bundle" = { | ||
197 | targetDir = ""; | ||
198 | src = composerEnv.buildZipPackage { | ||
199 | name = "friendsofsymfony-jsrouting-bundle-49c1069132dcef371fb526351569deabeb6f0d8e"; | ||
200 | src = fetchurl { | ||
201 | url = https://api.github.com/repos/FriendsOfSymfony/FOSJsRoutingBundle/zipball/49c1069132dcef371fb526351569deabeb6f0d8e; | ||
202 | sha256 = "0ymmxhxbjnzj8bk3zq55vq0xvsaq82348v321gy2jyi90d19p5j7"; | ||
203 | }; | ||
204 | }; | ||
205 | }; | ||
206 | "gedmo/doctrine-extensions" = { | ||
207 | targetDir = ""; | ||
208 | src = composerEnv.buildZipPackage { | ||
209 | name = "gedmo-doctrine-extensions-1e400fbd05b7e5f912f55fe95805450f7d3bed60"; | ||
210 | src = fetchurl { | ||
211 | url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/1e400fbd05b7e5f912f55fe95805450f7d3bed60; | ||
212 | sha256 = "14hmivynyzc1c9l5kxj9gbwjrkv9m9lrjjx2r1m74wdhi5p0p20v"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | "immae/connexionswing-ckeditor-component" = { | ||
217 | targetDir = ""; | ||
218 | src = fetchgit { | ||
219 | name = "immae-connexionswing-ckeditor-component-3b35bd273a79f6b01fda7a246aed64aca147ea7a"; | ||
220 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git"; | ||
221 | rev = "3b35bd273a79f6b01fda7a246aed64aca147ea7a"; | ||
222 | sha256 = "1w0y6k28ci73n0db9gwvqg7grzvh1z718ys9v1ik8cla7zw83bni"; | ||
223 | }; | ||
224 | }; | ||
225 | "immae/jquery-touchswipe" = { | ||
226 | targetDir = ""; | ||
227 | src = fetchgit { | ||
228 | name = "immae-jquery-touchswipe-3e15949df974d6612d76dc9ee75cd976dbcc2114"; | ||
229 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/jquery-touchswipe.git"; | ||
230 | rev = "3e15949df974d6612d76dc9ee75cd976dbcc2114"; | ||
231 | sha256 = "1pnvki1j3a65cdwwqs0id790ni813lh3r0m7556gdn0hsqa1cc4d"; | ||
232 | }; | ||
233 | }; | ||
234 | "incenteev/composer-parameter-handler" = { | ||
235 | targetDir = ""; | ||
236 | src = composerEnv.buildZipPackage { | ||
237 | name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550"; | ||
238 | src = fetchurl { | ||
239 | url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550; | ||
240 | sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm"; | ||
241 | }; | ||
242 | }; | ||
243 | }; | ||
244 | "jdorn/sql-formatter" = { | ||
245 | targetDir = ""; | ||
246 | src = composerEnv.buildZipPackage { | ||
247 | name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc"; | ||
248 | src = fetchurl { | ||
249 | url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc; | ||
250 | sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi"; | ||
251 | }; | ||
252 | }; | ||
253 | }; | ||
254 | "kriswallsmith/assetic" = { | ||
255 | targetDir = ""; | ||
256 | src = composerEnv.buildZipPackage { | ||
257 | name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"; | ||
258 | src = fetchurl { | ||
259 | url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1; | ||
260 | sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8"; | ||
261 | }; | ||
262 | }; | ||
263 | }; | ||
264 | "monolog/monolog" = { | ||
265 | targetDir = ""; | ||
266 | src = composerEnv.buildZipPackage { | ||
267 | name = "monolog-monolog-fd8c787753b3a2ad11bc60c063cff1358a32a3b4"; | ||
268 | src = fetchurl { | ||
269 | url = https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4; | ||
270 | sha256 = "0avf3y8raw23krwdb7kw9qb5bsr5ls4i7qd2vh7hcds3qjixg3h9"; | ||
271 | }; | ||
272 | }; | ||
273 | }; | ||
274 | "ocramius/proxy-manager" = { | ||
275 | targetDir = ""; | ||
276 | src = composerEnv.buildZipPackage { | ||
277 | name = "ocramius-proxy-manager-57e9272ec0e8deccf09421596e0e2252df440e11"; | ||
278 | src = fetchurl { | ||
279 | url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11; | ||
280 | sha256 = "10crhcnhz42b01i6lv6ysgc7awp7yw82p4i2a4sg6bjihw677yps"; | ||
281 | }; | ||
282 | }; | ||
283 | }; | ||
284 | "paragonie/random_compat" = { | ||
285 | targetDir = ""; | ||
286 | src = composerEnv.buildZipPackage { | ||
287 | name = "paragonie-random_compat-258c89a6b97de7dfaf5b8c7607d0478e236b04fb"; | ||
288 | src = fetchurl { | ||
289 | url = https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb; | ||
290 | sha256 = "11arrici2mgfj7r847wm423pqrvfj9wn9jcgyxnq4rzyahaxz5l1"; | ||
291 | }; | ||
292 | }; | ||
293 | }; | ||
294 | "psr/cache" = { | ||
295 | targetDir = ""; | ||
296 | src = composerEnv.buildZipPackage { | ||
297 | name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8"; | ||
298 | src = fetchurl { | ||
299 | url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8; | ||
300 | sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz"; | ||
301 | }; | ||
302 | }; | ||
303 | }; | ||
304 | "psr/container" = { | ||
305 | targetDir = ""; | ||
306 | src = composerEnv.buildZipPackage { | ||
307 | name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f"; | ||
308 | src = fetchurl { | ||
309 | url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f; | ||
310 | sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j"; | ||
311 | }; | ||
312 | }; | ||
313 | }; | ||
314 | "psr/link" = { | ||
315 | targetDir = ""; | ||
316 | src = composerEnv.buildZipPackage { | ||
317 | name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562"; | ||
318 | src = fetchurl { | ||
319 | url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562; | ||
320 | sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13"; | ||
321 | }; | ||
322 | }; | ||
323 | }; | ||
324 | "psr/log" = { | ||
325 | targetDir = ""; | ||
326 | src = composerEnv.buildZipPackage { | ||
327 | name = "psr-log-4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"; | ||
328 | src = fetchurl { | ||
329 | url = https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d; | ||
330 | sha256 = "1mlcv17fjw39bjpck176ah1z393b6pnbw3jqhhrblj27c70785md"; | ||
331 | }; | ||
332 | }; | ||
333 | }; | ||
334 | "psr/simple-cache" = { | ||
335 | targetDir = ""; | ||
336 | src = composerEnv.buildZipPackage { | ||
337 | name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"; | ||
338 | src = fetchurl { | ||
339 | url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b; | ||
340 | sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw"; | ||
341 | }; | ||
342 | }; | ||
343 | }; | ||
344 | "ricbra/robots-txt-bundle" = { | ||
345 | targetDir = "Ricbra/Bundle/RobotsTxtBundle"; | ||
346 | src = composerEnv.buildZipPackage { | ||
347 | name = "ricbra-robots-txt-bundle-80d122a708893a762041464890e59a76babd6c22"; | ||
348 | src = fetchurl { | ||
349 | url = https://api.github.com/repos/ricbra/robots-txt-bundle/zipball/80d122a708893a762041464890e59a76babd6c22; | ||
350 | sha256 = "0w3lfzy1ys0bwl3shy4ychldfd711w1p2y13i1az2z2gh731d0ad"; | ||
351 | }; | ||
352 | }; | ||
353 | }; | ||
354 | "robloach/component-installer" = { | ||
355 | targetDir = ""; | ||
356 | src = composerEnv.buildZipPackage { | ||
357 | name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7"; | ||
358 | src = fetchurl { | ||
359 | url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7; | ||
360 | sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9"; | ||
361 | }; | ||
362 | }; | ||
363 | }; | ||
364 | "sensio/distribution-bundle" = { | ||
365 | targetDir = ""; | ||
366 | src = composerEnv.buildZipPackage { | ||
367 | name = "sensio-distribution-bundle-eb6266b3b472e4002538610b28a0a04bcf94891a"; | ||
368 | src = fetchurl { | ||
369 | url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/eb6266b3b472e4002538610b28a0a04bcf94891a; | ||
370 | sha256 = "0wyffqj924lz9cv0vbahyngjw1g850v0p34swygzzgp3cr0ank13"; | ||
371 | }; | ||
372 | }; | ||
373 | }; | ||
374 | "sensio/framework-extra-bundle" = { | ||
375 | targetDir = ""; | ||
376 | src = composerEnv.buildZipPackage { | ||
377 | name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a"; | ||
378 | src = fetchurl { | ||
379 | url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a; | ||
380 | sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck"; | ||
381 | }; | ||
382 | }; | ||
383 | }; | ||
384 | "sensiolabs/security-checker" = { | ||
385 | targetDir = ""; | ||
386 | src = composerEnv.buildZipPackage { | ||
387 | name = "sensiolabs-security-checker-dc270d5fec418cc6ac983671dba5d80ffaffb142"; | ||
388 | src = fetchurl { | ||
389 | url = https://api.github.com/repos/sensiolabs/security-checker/zipball/dc270d5fec418cc6ac983671dba5d80ffaffb142; | ||
390 | sha256 = "0fnshyd6f8j91a7y604nh6sqgscjl48mfa0727g2r4hkdfz8hpd1"; | ||
391 | }; | ||
392 | }; | ||
393 | }; | ||
394 | "swiftmailer/swiftmailer" = { | ||
395 | targetDir = ""; | ||
396 | src = composerEnv.buildZipPackage { | ||
397 | name = "swiftmailer-swiftmailer-7ffc1ea296ed14bf8260b6ef11b80208dbadba91"; | ||
398 | src = fetchurl { | ||
399 | url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91; | ||
400 | sha256 = "1vl5pzgvr2yfrj1yfs02mi917b0gr56v76ibi40r51a3346zhp6v"; | ||
401 | }; | ||
402 | }; | ||
403 | }; | ||
404 | "symfony/assetic-bundle" = { | ||
405 | targetDir = ""; | ||
406 | src = composerEnv.buildZipPackage { | ||
407 | name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c"; | ||
408 | src = fetchurl { | ||
409 | url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c; | ||
410 | sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc"; | ||
411 | }; | ||
412 | }; | ||
413 | }; | ||
414 | "symfony/monolog-bundle" = { | ||
415 | targetDir = ""; | ||
416 | src = composerEnv.buildZipPackage { | ||
417 | name = "symfony-monolog-bundle-8781649349fe418d51d194f8c9d212c0b97c40dd"; | ||
418 | src = fetchurl { | ||
419 | url = https://api.github.com/repos/symfony/monolog-bundle/zipball/8781649349fe418d51d194f8c9d212c0b97c40dd; | ||
420 | sha256 = "0wcqhg1vfdj3mxacr3fxpgqwy1rk9znjg9bmzx4jymk8l16i7bq8"; | ||
421 | }; | ||
422 | }; | ||
423 | }; | ||
424 | "symfony/polyfill-apcu" = { | ||
425 | targetDir = ""; | ||
426 | src = composerEnv.buildZipPackage { | ||
427 | name = "symfony-polyfill-apcu-9b83bd010112ec196410849e840d9b9fefcb15ad"; | ||
428 | src = fetchurl { | ||
429 | url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/9b83bd010112ec196410849e840d9b9fefcb15ad; | ||
430 | sha256 = "0iiiqbn0bs0zqc95nz8l1qa5ysy0iifx4f27r9wnhzsh6f1h02mv"; | ||
431 | }; | ||
432 | }; | ||
433 | }; | ||
434 | "symfony/polyfill-intl-icu" = { | ||
435 | targetDir = ""; | ||
436 | src = composerEnv.buildZipPackage { | ||
437 | name = "symfony-polyfill-intl-icu-80ee17ae83c10cd513e5144f91a73607a21edb4e"; | ||
438 | src = fetchurl { | ||
439 | url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/80ee17ae83c10cd513e5144f91a73607a21edb4e; | ||
440 | sha256 = "1hck9bn8zfb1pmx2yccf4w5dd9rbmvwii7hncin6px6nasi6wzvv"; | ||
441 | }; | ||
442 | }; | ||
443 | }; | ||
444 | "symfony/polyfill-mbstring" = { | ||
445 | targetDir = ""; | ||
446 | src = composerEnv.buildZipPackage { | ||
447 | name = "symfony-polyfill-mbstring-3296adf6a6454a050679cde90f95350ad604b171"; | ||
448 | src = fetchurl { | ||
449 | url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171; | ||
450 | sha256 = "02wyx9fjx9lyc5q5d3bnn8aw9xag8im2wqanmbkljwd5vmx9k9b2"; | ||
451 | }; | ||
452 | }; | ||
453 | }; | ||
454 | "symfony/polyfill-php56" = { | ||
455 | targetDir = ""; | ||
456 | src = composerEnv.buildZipPackage { | ||
457 | name = "symfony-polyfill-php56-af98553c84912459db3f636329567809d639a8f6"; | ||
458 | src = fetchurl { | ||
459 | url = https://api.github.com/repos/symfony/polyfill-php56/zipball/af98553c84912459db3f636329567809d639a8f6; | ||
460 | sha256 = "1l1ydsd7cq3s97cpgl4fw1qxc2wmv27yfxa3q8ng9p66ypzvkw42"; | ||
461 | }; | ||
462 | }; | ||
463 | }; | ||
464 | "symfony/polyfill-php70" = { | ||
465 | targetDir = ""; | ||
466 | src = composerEnv.buildZipPackage { | ||
467 | name = "symfony-polyfill-php70-77454693d8f10dd23bb24955cffd2d82db1007a6"; | ||
468 | src = fetchurl { | ||
469 | url = https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6; | ||
470 | sha256 = "146d620ca725iqdh7j0dqb99h20d4vs641c9vjy9x4jws3rgj905"; | ||
471 | }; | ||
472 | }; | ||
473 | }; | ||
474 | "symfony/polyfill-util" = { | ||
475 | targetDir = ""; | ||
476 | src = composerEnv.buildZipPackage { | ||
477 | name = "symfony-polyfill-util-1a5ad95d9436cbff3296034fe9f8d586dce3fb3a"; | ||
478 | src = fetchurl { | ||
479 | url = https://api.github.com/repos/symfony/polyfill-util/zipball/1a5ad95d9436cbff3296034fe9f8d586dce3fb3a; | ||
480 | sha256 = "0l7w4dlr7y3qijpaiq7hfhbhv1qqz9jjknr1n6k4vrss2a8d1sxk"; | ||
481 | }; | ||
482 | }; | ||
483 | }; | ||
484 | "symfony/swiftmailer-bundle" = { | ||
485 | targetDir = ""; | ||
486 | src = composerEnv.buildZipPackage { | ||
487 | name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec"; | ||
488 | src = fetchurl { | ||
489 | url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec; | ||
490 | sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01"; | ||
491 | }; | ||
492 | }; | ||
493 | }; | ||
494 | "symfony/symfony" = { | ||
495 | targetDir = ""; | ||
496 | src = composerEnv.buildZipPackage { | ||
497 | name = "symfony-symfony-4babd75194d45f7a4412560038924f3008c67ef2"; | ||
498 | src = fetchurl { | ||
499 | url = https://api.github.com/repos/symfony/symfony/zipball/4babd75194d45f7a4412560038924f3008c67ef2; | ||
500 | sha256 = "1347qp994yg6k91v5gwdwnn202bz92m0pj4090b59z5nqxh7463d"; | ||
501 | }; | ||
502 | }; | ||
503 | }; | ||
504 | "twig/extensions" = { | ||
505 | targetDir = ""; | ||
506 | src = composerEnv.buildZipPackage { | ||
507 | name = "twig-extensions-d188c76168b853481cc75879ea045bf93d718e9c"; | ||
508 | src = fetchurl { | ||
509 | url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/d188c76168b853481cc75879ea045bf93d718e9c; | ||
510 | sha256 = "0d6wywys5fqzi3m8g8h3sb5phl5y3a7vfc95n214mqp0iwrcmzwm"; | ||
511 | }; | ||
512 | }; | ||
513 | }; | ||
514 | "twig/twig" = { | ||
515 | targetDir = ""; | ||
516 | src = composerEnv.buildZipPackage { | ||
517 | name = "twig-twig-b48680b6eb7d16b5025b9bfc4108d86f6b8af86f"; | ||
518 | src = fetchurl { | ||
519 | url = https://api.github.com/repos/twigphp/Twig/zipball/b48680b6eb7d16b5025b9bfc4108d86f6b8af86f; | ||
520 | sha256 = "1q82f246wq7whl11lx00n0skwmllppvpzg20x6q4frmw44dc6v9a"; | ||
521 | }; | ||
522 | }; | ||
523 | }; | ||
524 | "willdurand/jsonp-callback-validator" = { | ||
525 | targetDir = ""; | ||
526 | src = composerEnv.buildZipPackage { | ||
527 | name = "willdurand-jsonp-callback-validator-1a7d388bb521959e612ef50c5c7b1691b097e909"; | ||
528 | src = fetchurl { | ||
529 | url = https://api.github.com/repos/willdurand/JsonpCallbackValidator/zipball/1a7d388bb521959e612ef50c5c7b1691b097e909; | ||
530 | sha256 = "19ds8f3nbss4b2xvqkcjkcvz0l4c5nhrm8w8yxc8a508r0jmd9in"; | ||
531 | }; | ||
532 | }; | ||
533 | }; | ||
534 | "zendframework/zend-code" = { | ||
535 | targetDir = ""; | ||
536 | src = composerEnv.buildZipPackage { | ||
537 | name = "zendframework-zend-code-95033f061b083e16cdee60530ec260d7d628b887"; | ||
538 | src = fetchurl { | ||
539 | url = https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887; | ||
540 | sha256 = "0h77qf267l2sp9wg3n61dpgpf6wh6p5jssy8mrg7vlns2j03f9f5"; | ||
541 | }; | ||
542 | }; | ||
543 | }; | ||
544 | "zendframework/zend-eventmanager" = { | ||
545 | targetDir = ""; | ||
546 | src = composerEnv.buildZipPackage { | ||
547 | name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd"; | ||
548 | src = fetchurl { | ||
549 | url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd; | ||
550 | sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n"; | ||
551 | }; | ||
552 | }; | ||
553 | }; | ||
554 | }; | ||
555 | devPackages = { | ||
556 | "doctrine/data-fixtures" = { | ||
557 | targetDir = ""; | ||
558 | src = composerEnv.buildZipPackage { | ||
559 | name = "doctrine-data-fixtures-17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e"; | ||
560 | src = fetchurl { | ||
561 | url = https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e; | ||
562 | sha256 = "15k7vl58kwh02g0a93rab82ifbgmc91srgminzlkjq5kx8agh7ab"; | ||
563 | }; | ||
564 | }; | ||
565 | }; | ||
566 | "doctrine/doctrine-fixtures-bundle" = { | ||
567 | targetDir = ""; | ||
568 | src = composerEnv.buildZipPackage { | ||
569 | name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273"; | ||
570 | src = fetchurl { | ||
571 | url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273; | ||
572 | sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf"; | ||
573 | }; | ||
574 | }; | ||
575 | }; | ||
576 | "sensio/generator-bundle" = { | ||
577 | targetDir = ""; | ||
578 | src = composerEnv.buildZipPackage { | ||
579 | name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65"; | ||
580 | src = fetchurl { | ||
581 | url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65; | ||
582 | sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3"; | ||
583 | }; | ||
584 | }; | ||
585 | }; | ||
586 | "symfony/phpunit-bridge" = { | ||
587 | targetDir = ""; | ||
588 | src = composerEnv.buildZipPackage { | ||
589 | name = "symfony-phpunit-bridge-7470518370113785f67a7fd8e6e1667661e88805"; | ||
590 | src = fetchurl { | ||
591 | url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/7470518370113785f67a7fd8e6e1667661e88805; | ||
592 | sha256 = "0jd28ag0wks9sv62rkwsbx68csvdl5gabbz2h01hkqpa23gdkhs9"; | ||
593 | }; | ||
594 | }; | ||
595 | }; | ||
596 | }; | ||
597 | } | ||
diff --git a/modules/private/websites/connexionswing/integration.nix b/modules/private/websites/connexionswing/integration.nix deleted file mode 100644 index 9cf2b94..0000000 --- a/modules/private/websites/connexionswing/integration.nix +++ /dev/null | |||
@@ -1,141 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.connexionswing.integration; | ||
4 | webRoot = "/var/lib/ftp/immae/connexionswing/web"; | ||
5 | varDir = "/var/lib/ftp/immae/connexionswing_var"; | ||
6 | cfg = config.myServices.websites.connexionswing.integration; | ||
7 | pcfg = config.services.phpApplication; | ||
8 | in { | ||
9 | options.myServices.websites.connexionswing.integration.enable = lib.mkEnableOption "enable Connexionswing's website in integration"; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.phpApplication.apps.connexionswing_integration = { | ||
13 | websiteEnv = "integration"; | ||
14 | httpdUser = config.services.httpd.Inte.user; | ||
15 | httpdGroup = config.services.httpd.Inte.group; | ||
16 | inherit webRoot varDir; | ||
17 | varDirPaths = { | ||
18 | "medias" = "0700"; | ||
19 | "uploads" = "0700"; | ||
20 | "var" = "0700"; | ||
21 | }; | ||
22 | app = "/var/lib/ftp/immae/connexionswing"; | ||
23 | serviceDeps = [ "mysql.service" ]; | ||
24 | preStartActions = [ | ||
25 | "./bin/console --env=dev cache:clear --no-warmup" | ||
26 | ]; | ||
27 | phpOpenbasedir = [ "/tmp" "/run/wrappers/bin/sendmail" ]; | ||
28 | phpPool = { | ||
29 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
30 | "php_admin_value[post_max_size]" = "20M"; | ||
31 | #"php_admin_flag[log_errors]" = "on"; | ||
32 | "pm" = "ondemand"; | ||
33 | "pm.max_children" = "5"; | ||
34 | "pm.process_idle_timeout" = "60"; | ||
35 | }; | ||
36 | phpEnv = { | ||
37 | SYMFONY_DEBUG_MODE = "\"yes\""; | ||
38 | }; | ||
39 | phpWatchFiles = [ | ||
40 | config.secrets.fullPaths."websites/connexionswing/integration" | ||
41 | ]; | ||
42 | phpPackage = pkgs.php72; | ||
43 | }; | ||
44 | |||
45 | secrets.keys."websites/connexionswing/integration" = { | ||
46 | user = config.services.httpd.Inte.user; | ||
47 | group = config.services.httpd.Inte.group; | ||
48 | permissions = "0400"; | ||
49 | text = '' | ||
50 | # This file is auto-generated during the composer install | ||
51 | parameters: | ||
52 | database_host: ${secrets.mysql.host} | ||
53 | database_port: ${secrets.mysql.port} | ||
54 | database_name: ${secrets.mysql.database} | ||
55 | database_user: ${secrets.mysql.user} | ||
56 | database_password: ${secrets.mysql.password} | ||
57 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
58 | mailer_transport: sendmail | ||
59 | mailer_host: null | ||
60 | mailer_user: null | ||
61 | mailer_password: null | ||
62 | subscription_email: ${secrets.email} | ||
63 | allow_robots: true | ||
64 | secret: ${secrets.secret} | ||
65 | ''; | ||
66 | }; | ||
67 | |||
68 | services.websites.env.integration.vhostConfs.connexionswing_integration = { | ||
69 | certName = "integration"; | ||
70 | addToCerts = true; | ||
71 | hosts = ["connexionswing.cs.immae.dev" "sandetludo.cs.immae.dev" ]; | ||
72 | root = webRoot; | ||
73 | extraConfig = [ | ||
74 | '' | ||
75 | <FilesMatch "\.php$"> | ||
76 | SetHandler "proxy:unix:${pcfg.phpListenPaths.connexionswing_integration}|fcgi://localhost" | ||
77 | </FilesMatch> | ||
78 | |||
79 | <Directory ${varDir}/medias> | ||
80 | Options FollowSymLinks | ||
81 | AllowOverride None | ||
82 | Require all granted | ||
83 | </Directory> | ||
84 | |||
85 | <Directory ${varDir}/uploads> | ||
86 | Options FollowSymLinks | ||
87 | AllowOverride None | ||
88 | Require all granted | ||
89 | </Directory> | ||
90 | |||
91 | <Location /> | ||
92 | Use LDAPConnect | ||
93 | Require ldap-group cn=cs.immae.dev,cn=httpd,ou=services,dc=immae,dc=eu | ||
94 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://connexionswing.com\"></html>" | ||
95 | </Location> | ||
96 | |||
97 | <Directory ${webRoot}> | ||
98 | Options Indexes FollowSymLinks MultiViews Includes | ||
99 | AllowOverride None | ||
100 | Require all granted | ||
101 | |||
102 | DirectoryIndex app_dev.php | ||
103 | |||
104 | <IfModule mod_negotiation.c> | ||
105 | Options -MultiViews | ||
106 | </IfModule> | ||
107 | |||
108 | <IfModule mod_rewrite.c> | ||
109 | RewriteEngine On | ||
110 | |||
111 | RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ | ||
112 | RewriteRule ^(.*) - [E=BASE:%1] | ||
113 | |||
114 | # Maintenance script | ||
115 | RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f | ||
116 | RewriteCond %{SCRIPT_FILENAME} !maintenance.php | ||
117 | RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L] | ||
118 | ErrorDocument 503 /maintenance.php | ||
119 | |||
120 | # Sets the HTTP_AUTHORIZATION header removed by Apache | ||
121 | RewriteCond %{HTTP:Authorization} . | ||
122 | RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | ||
123 | |||
124 | RewriteCond %{ENV:REDIRECT_STATUS} ^$ | ||
125 | RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] | ||
126 | |||
127 | # If the requested filename exists, simply serve it. | ||
128 | # We only want to let Apache serve files and not directories. | ||
129 | RewriteCond %{REQUEST_FILENAME} -f | ||
130 | RewriteRule ^ - [L] | ||
131 | |||
132 | # Rewrite all other queries to the front controller. | ||
133 | RewriteRule ^ %{ENV:BASE}/app_dev.php [L] | ||
134 | </IfModule> | ||
135 | |||
136 | </Directory> | ||
137 | '' | ||
138 | ]; | ||
139 | }; | ||
140 | }; | ||
141 | } | ||
diff --git a/modules/private/websites/connexionswing/production.nix b/modules/private/websites/connexionswing/production.nix deleted file mode 100644 index 4b0407f..0000000 --- a/modules/private/websites/connexionswing/production.nix +++ /dev/null | |||
@@ -1,110 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.connexionswing.production; | ||
4 | app = pkgs.callPackage ./app { | ||
5 | composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; | ||
6 | environment = secrets.environment; | ||
7 | varDir = "/var/lib/connexionswing_production"; | ||
8 | secretsPath = config.secrets.fullPaths."websites/connexionswing/production"; | ||
9 | }; | ||
10 | cfg = config.myServices.websites.connexionswing.production; | ||
11 | pcfg = config.services.phpApplication; | ||
12 | in { | ||
13 | options.myServices.websites.connexionswing.production.enable = lib.mkEnableOption "enable Connexionswing's website in production"; | ||
14 | |||
15 | config = lib.mkIf cfg.enable { | ||
16 | services.webstats.sites = [ { name = "connexionswing.com"; } ]; | ||
17 | services.phpApplication.apps.connexionswing_production = { | ||
18 | websiteEnv = "production"; | ||
19 | httpdUser = config.services.httpd.Prod.user; | ||
20 | httpdGroup = config.services.httpd.Prod.group; | ||
21 | inherit (app) webRoot varDir; | ||
22 | varDirPaths = { | ||
23 | "medias" = "0700"; | ||
24 | "uploads" = "0700"; | ||
25 | "var" = "0700"; | ||
26 | }; | ||
27 | inherit app; | ||
28 | serviceDeps = [ "mysql.service" ]; | ||
29 | preStartActions = [ | ||
30 | "./bin/console --env=${app.environment} cache:clear --no-warmup" | ||
31 | ]; | ||
32 | phpOpenbasedir = [ "/tmp" "/run/wrappers/bin/sendmail" ]; | ||
33 | phpPool = { | ||
34 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
35 | "php_admin_value[post_max_size]" = "20M"; | ||
36 | #"php_admin_flag[log_errors]" = "on"; | ||
37 | "pm" = "dynamic"; | ||
38 | "pm.max_children" = "20"; | ||
39 | "pm.start_servers" = "2"; | ||
40 | "pm.min_spare_servers" = "1"; | ||
41 | "pm.max_spare_servers" = "3"; | ||
42 | }; | ||
43 | phpWatchFiles = [ | ||
44 | config.secrets.fullPaths."websites/connexionswing/production" | ||
45 | ]; | ||
46 | phpPackage = pkgs.php72; | ||
47 | }; | ||
48 | |||
49 | secrets.keys."websites/connexionswing/production" = { | ||
50 | user = config.services.httpd.Prod.user; | ||
51 | group = config.services.httpd.Prod.group; | ||
52 | permissions = "0400"; | ||
53 | text = '' | ||
54 | # This file is auto-generated during the composer install | ||
55 | parameters: | ||
56 | database_host: ${secrets.mysql.host} | ||
57 | database_port: ${secrets.mysql.port} | ||
58 | database_name: ${secrets.mysql.database} | ||
59 | database_user: ${secrets.mysql.user} | ||
60 | database_password: ${secrets.mysql.password} | ||
61 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
62 | mailer_transport: sendmail | ||
63 | mailer_host: null | ||
64 | mailer_user: null | ||
65 | mailer_password: null | ||
66 | subscription_email: ${secrets.email} | ||
67 | allow_robots: true | ||
68 | secret: ${secrets.secret} | ||
69 | services: | ||
70 | swiftmailer.mailer.default.transport: | ||
71 | class: Swift_SendmailTransport | ||
72 | arguments: ['/run/wrappers/bin/sendmail -bs'] | ||
73 | ''; | ||
74 | }; | ||
75 | |||
76 | services.websites.env.production.vhostConfs.connexionswing_production = { | ||
77 | certName = "connexionswing"; | ||
78 | certMainHost = "connexionswing.com"; | ||
79 | hosts = ["connexionswing.com" "sandetludo.com" "www.connexionswing.com" "www.sandetludo.com" ]; | ||
80 | root = app.webRoot; | ||
81 | extraConfig = [ | ||
82 | '' | ||
83 | <FilesMatch "\.php$"> | ||
84 | SetHandler "proxy:unix:${pcfg.phpListenPaths.connexionswing_production}|fcgi://localhost" | ||
85 | </FilesMatch> | ||
86 | |||
87 | <Directory ${app.varDir}/medias> | ||
88 | Options FollowSymLinks | ||
89 | AllowOverride None | ||
90 | Require all granted | ||
91 | </Directory> | ||
92 | |||
93 | <Directory ${app.varDir}/uploads> | ||
94 | Options FollowSymLinks | ||
95 | AllowOverride None | ||
96 | Require all granted | ||
97 | </Directory> | ||
98 | |||
99 | Use Stats connexionswing.com | ||
100 | |||
101 | <Directory ${app.webRoot}> | ||
102 | Options Indexes FollowSymLinks MultiViews Includes | ||
103 | AllowOverride All | ||
104 | Require all granted | ||
105 | </Directory> | ||
106 | '' | ||
107 | ]; | ||
108 | }; | ||
109 | }; | ||
110 | } | ||
diff --git a/modules/private/websites/default.nix b/modules/private/websites/default.nix deleted file mode 100644 index 4864034..0000000 --- a/modules/private/websites/default.nix +++ /dev/null | |||
@@ -1,324 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | www_root = ./_www; | ||
4 | theme_root = pkgs.webapps.apache-theme.theme; | ||
5 | apacheConfig = { | ||
6 | cache = { | ||
7 | # This setting permits to ignore time-based cache for files in the | ||
8 | # nix store: | ||
9 | # If a client requires an If-Modified-Since from timestamp 1, then | ||
10 | # this header is removed, and if the response contains a | ||
11 | # too old Last-Modified tag, then it is removed too | ||
12 | extraConfig = '' | ||
13 | <If "%{HTTP:If-Modified-Since} =~ /01 Jan 1970 00:00:01/" > | ||
14 | RequestHeader unset If-Modified-Since | ||
15 | </If> | ||
16 | Header unset Last-Modified "expr=%{LAST_MODIFIED} < 19991231235959" | ||
17 | ''; | ||
18 | }; | ||
19 | gzip = { | ||
20 | modules = [ "deflate" "filter" ]; | ||
21 | extraConfig = '' | ||
22 | AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript | ||
23 | ''; | ||
24 | }; | ||
25 | macros = { | ||
26 | modules = [ "macro" ]; | ||
27 | }; | ||
28 | stats = { | ||
29 | extraConfig = '' | ||
30 | <Macro Stats %{domain}> | ||
31 | Alias /webstats ${config.services.webstats.dataDir}/%{domain} | ||
32 | <Directory ${config.services.webstats.dataDir}/%{domain}> | ||
33 | DirectoryIndex index.html | ||
34 | AllowOverride None | ||
35 | Require all granted | ||
36 | </Directory> | ||
37 | <Location /webstats> | ||
38 | Use LDAPConnect | ||
39 | Require ldap-group cn=%{domain},ou=stats,cn=httpd,ou=services,dc=immae,dc=eu | ||
40 | </Location> | ||
41 | </Macro> | ||
42 | ''; | ||
43 | }; | ||
44 | ldap = { | ||
45 | modules = [ "ldap" "authnz_ldap" ]; | ||
46 | extraConfig = '' | ||
47 | <IfModule ldap_module> | ||
48 | LDAPSharedCacheSize 500000 | ||
49 | LDAPCacheEntries 1024 | ||
50 | LDAPCacheTTL 600 | ||
51 | LDAPOpCacheEntries 1024 | ||
52 | LDAPOpCacheTTL 600 | ||
53 | </IfModule> | ||
54 | |||
55 | Include ${config.secrets.fullPaths."apache-ldap"} | ||
56 | ''; | ||
57 | }; | ||
58 | global = { | ||
59 | extraConfig = '' | ||
60 | ErrorDocument 500 /maintenance_immae.html | ||
61 | ErrorDocument 501 /maintenance_immae.html | ||
62 | ErrorDocument 502 /maintenance_immae.html | ||
63 | ErrorDocument 503 /maintenance_immae.html | ||
64 | ErrorDocument 504 /maintenance_immae.html | ||
65 | Alias /maintenance_immae.html ${www_root}/maintenance_immae.html | ||
66 | ProxyPass /maintenance_immae.html ! | ||
67 | |||
68 | AliasMatch "(.*)/googleb6d69446ff4ca3e5.html" ${www_root}/googleb6d69446ff4ca3e5.html | ||
69 | <Directory ${www_root}> | ||
70 | AllowOverride None | ||
71 | Require all granted | ||
72 | </Directory> | ||
73 | ''; | ||
74 | }; | ||
75 | apaxy = { | ||
76 | extraConfig = (pkgs.webapps.apache-theme.override { inherit theme_root; }).apacheConfig; | ||
77 | }; | ||
78 | http2 = { | ||
79 | modules = [ "http2" ]; | ||
80 | extraConfig = '' | ||
81 | Protocols h2 http/1.1 | ||
82 | ''; | ||
83 | }; | ||
84 | customLog = { | ||
85 | extraConfig = '' | ||
86 | LogFormat "%{Host}i:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost | ||
87 | ''; | ||
88 | }; | ||
89 | }; | ||
90 | makeModules = lib.lists.flatten (lib.attrsets.mapAttrsToList (n: v: v.modules or []) apacheConfig); | ||
91 | makeExtraConfig = (builtins.filter (x: x != null) (lib.attrsets.mapAttrsToList (n: v: v.extraConfig or null) apacheConfig)); | ||
92 | moomin = let | ||
93 | lines = lib.splitString "\n" (lib.fileContents ./moomin.txt); | ||
94 | pad = width: str: let | ||
95 | padWidth = width - lib.stringLength str; | ||
96 | padding = lib.concatStrings (lib.genList (lib.const "0") padWidth); | ||
97 | in lib.optionalString (padWidth > 0) padding + str; | ||
98 | in | ||
99 | lib.imap0 (i: e: ''Header always set "X-Moomin-${pad 2 (builtins.toString i)}" "${e}"'') lines; | ||
100 | in | ||
101 | { | ||
102 | options.myServices.websites.enable = lib.mkEnableOption "enable websites"; | ||
103 | |||
104 | config = lib.mkIf config.myServices.websites.enable { | ||
105 | users.users.wwwrun.extraGroups = [ "keys" ]; | ||
106 | networking.firewall.allowedTCPPorts = [ 80 443 ]; | ||
107 | |||
108 | secrets.keys."apache-ldap" = { | ||
109 | user = "wwwrun"; | ||
110 | group = "wwwrun"; | ||
111 | permissions = "0400"; | ||
112 | text = '' | ||
113 | <Macro LDAPConnect> | ||
114 | <IfModule authnz_ldap_module> | ||
115 | AuthLDAPURL ldap://ldap.immae.eu:389/dc=immae,dc=eu STARTTLS | ||
116 | AuthLDAPBindDN cn=httpd,ou=services,dc=immae,dc=eu | ||
117 | AuthLDAPBindPassword "${config.myEnv.httpd.ldap.password}" | ||
118 | AuthType Basic | ||
119 | AuthName "Authentification requise (Acces LDAP)" | ||
120 | AuthBasicProvider ldap | ||
121 | </IfModule> | ||
122 | </Macro> | ||
123 | ''; | ||
124 | }; | ||
125 | |||
126 | system.activationScripts = { | ||
127 | httpd = '' | ||
128 | install -d -m 0755 /var/lib/acme/acme-challenges | ||
129 | install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions | ||
130 | ''; | ||
131 | }; | ||
132 | |||
133 | services.phpfpm = { | ||
134 | phpOptions = '' | ||
135 | session.save_path = "/var/lib/php/sessions" | ||
136 | post_max_size = 20M | ||
137 | ; 15 days (seconds) | ||
138 | session.gc_maxlifetime = 1296000 | ||
139 | ; 30 days (minutes) | ||
140 | session.cache_expire = 43200 | ||
141 | ''; | ||
142 | settings = { | ||
143 | log_level = "notice"; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | services.filesWatcher.httpdProd.paths = [ config.secrets.fullPaths."apache-ldap" ]; | ||
148 | services.filesWatcher.httpdInte.paths = [ config.secrets.fullPaths."apache-ldap" ]; | ||
149 | services.filesWatcher.httpdTools.paths = [ config.secrets.fullPaths."apache-ldap" ]; | ||
150 | |||
151 | services.websites.env.production = { | ||
152 | enable = true; | ||
153 | adminAddr = "httpd@immae.eu"; | ||
154 | httpdName = "Prod"; | ||
155 | ips = | ||
156 | let ips = config.myEnv.servers.eldiron.ips.production; | ||
157 | in [ips.ip4] ++ (ips.ip6 or []); | ||
158 | modules = makeModules; | ||
159 | extraConfig = makeExtraConfig; | ||
160 | fallbackVhost = { | ||
161 | certName = "eldiron"; | ||
162 | hosts = ["eldiron.immae.eu" ]; | ||
163 | root = www_root; | ||
164 | extraConfig = [ "DirectoryIndex index.htm" ]; | ||
165 | }; | ||
166 | }; | ||
167 | |||
168 | services.websites.env.integration = { | ||
169 | enable = true; | ||
170 | adminAddr = "httpd@immae.eu"; | ||
171 | httpdName = "Inte"; | ||
172 | ips = | ||
173 | let ips = config.myEnv.servers.eldiron.ips.integration; | ||
174 | in [ips.ip4] ++ (ips.ip6 or []); | ||
175 | modules = makeModules; | ||
176 | extraConfig = makeExtraConfig ++ moomin; | ||
177 | fallbackVhost = { | ||
178 | certName = "eldiron"; | ||
179 | hosts = ["eldiron.immae.eu" ]; | ||
180 | root = www_root; | ||
181 | extraConfig = [ "DirectoryIndex index.htm" ]; | ||
182 | }; | ||
183 | }; | ||
184 | |||
185 | services.websites.env.tools = { | ||
186 | enable = true; | ||
187 | adminAddr = "httpd@immae.eu"; | ||
188 | httpdName = "Tools"; | ||
189 | ips = | ||
190 | let ips = config.myEnv.servers.eldiron.ips.main; | ||
191 | in [ips.ip4] ++ (ips.ip6 or []); | ||
192 | modules = makeModules; | ||
193 | extraConfig = makeExtraConfig ++ | ||
194 | [ '' | ||
195 | RedirectMatch ^/licen[cs]es?_et_tip(ping)?$ https://www.immae.eu/licences_et_tip.html | ||
196 | RedirectMatch ^/licen[cs]es?_and_tip(ping)?$ https://www.immae.eu/licenses_and_tipping.html | ||
197 | RedirectMatch ^/licen[cs]es?$ https://www.immae.eu/licenses_and_tipping.html | ||
198 | RedirectMatch ^/tip(ping)?$ https://www.immae.eu/licenses_and_tipping.html | ||
199 | RedirectMatch ^/(mentions|mentions_legales|legal)$ https://www.immae.eu/mentions.html | ||
200 | RedirectMatch ^/CGU$ https://www.immae.eu/CGU | ||
201 | '' | ||
202 | ]; | ||
203 | nosslVhost = { | ||
204 | enable = true; | ||
205 | host = "nossl.immae.eu"; | ||
206 | }; | ||
207 | fallbackVhost = { | ||
208 | certName = "eldiron"; | ||
209 | hosts = ["eldiron.immae.eu" ]; | ||
210 | root = www_root; | ||
211 | extraConfig = [ "DirectoryIndex index.htm" ]; | ||
212 | }; | ||
213 | }; | ||
214 | |||
215 | myServices.websites = { | ||
216 | bakeer.cloud.enable = true; | ||
217 | capitaines.landing_pages.enable = true; | ||
218 | |||
219 | chloe = { | ||
220 | integration.enable = true; | ||
221 | production.enable = true; | ||
222 | }; | ||
223 | |||
224 | cip-ca = { | ||
225 | sympa.enable = true; | ||
226 | }; | ||
227 | |||
228 | connexionswing = { | ||
229 | integration.enable = true; | ||
230 | production.enable = true; | ||
231 | }; | ||
232 | |||
233 | denise = { | ||
234 | evariste.enable = true; | ||
235 | denisejerome.enable = true; | ||
236 | oms.enable = true; | ||
237 | bingo.enable = true; | ||
238 | aventuriers.enable = true; | ||
239 | production.enable = true; | ||
240 | }; | ||
241 | |||
242 | emilia = { | ||
243 | moodle.enable = false; | ||
244 | atelierfringant.enable = true; | ||
245 | }; | ||
246 | |||
247 | florian = { | ||
248 | app.enable = true; | ||
249 | integration.enable = true; | ||
250 | production.enable = true; | ||
251 | }; | ||
252 | |||
253 | immae = { | ||
254 | production.enable = true; | ||
255 | release.enable = true; | ||
256 | temp.enable = true; | ||
257 | }; | ||
258 | |||
259 | isabelle = { | ||
260 | aten_integration.enable = true; | ||
261 | aten_production.enable = true; | ||
262 | iridologie.enable = true; | ||
263 | }; | ||
264 | |||
265 | jerome.naturaloutil.enable = true; | ||
266 | |||
267 | leila.production.enable = true; | ||
268 | |||
269 | ludivine = { | ||
270 | integration.enable = true; | ||
271 | production.enable = true; | ||
272 | }; | ||
273 | |||
274 | nassime.production.enable = true; | ||
275 | |||
276 | nath.villon.enable = true; | ||
277 | |||
278 | papa = { | ||
279 | surveillance.enable = true; | ||
280 | maison_bbc.enable = true; | ||
281 | }; | ||
282 | |||
283 | patrick_fodella = { | ||
284 | ecolyeu.enable = true; | ||
285 | altermondia.enable = true; | ||
286 | }; | ||
287 | |||
288 | piedsjaloux = { | ||
289 | integration.enable = true; | ||
290 | production.enable = true; | ||
291 | }; | ||
292 | |||
293 | ressourcerie_banon.production.enable = true; | ||
294 | ressourcerie_banon.cryptpad.enable = true; | ||
295 | ressourcerie_banon.cloud.enable = true; | ||
296 | |||
297 | richie.production.enable = true; | ||
298 | |||
299 | syden.peertube.enable = true; | ||
300 | |||
301 | telio_tortay.production.enable = true; | ||
302 | |||
303 | tools.assets.enable = true; | ||
304 | tools.cloud.enable = true; | ||
305 | tools.commento.enable = true; | ||
306 | tools.cryptpad.enable = true; | ||
307 | tools.dav.enable = true; | ||
308 | tools.db.enable = true; | ||
309 | tools.diaspora.enable = true; | ||
310 | tools.etherpad-lite.enable = true; | ||
311 | tools.git.enable = true; | ||
312 | tools.mastodon.enable = true; | ||
313 | tools.mediagoblin.enable = true; | ||
314 | tools.peertube.enable = true; | ||
315 | tools.performance.enable = true; | ||
316 | tools.tools.enable = true; | ||
317 | tools.email.enable = true; | ||
318 | tools.stats.enable = false; | ||
319 | |||
320 | games.codenames.enable = true; | ||
321 | games.terraforming-mars.enable = true; | ||
322 | }; | ||
323 | }; | ||
324 | } | ||
diff --git a/modules/private/websites/denise/aventuriers.nix b/modules/private/websites/denise/aventuriers.nix deleted file mode 100644 index 2bbf7bf..0000000 --- a/modules/private/websites/denise/aventuriers.nix +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.denise.aventuriers; | ||
4 | varDir = "/var/lib/buildbot/outputs/denise/aventuriers"; | ||
5 | in { | ||
6 | options.myServices.websites.denise.aventuriers.enable = lib.mkEnableOption "enable Denise's Aventuriers website"; | ||
7 | |||
8 | config = lib.mkIf cfg.enable { | ||
9 | services.websites.env.production.vhostConfs.denise_aventuriers = { | ||
10 | certName = "denise"; | ||
11 | addToCerts = true; | ||
12 | hosts = [ "aventuriers.syanni.eu" ]; | ||
13 | root = varDir; | ||
14 | extraConfig = [ | ||
15 | '' | ||
16 | <Directory ${varDir}> | ||
17 | DirectoryIndex aventuriers.html | ||
18 | Options Indexes FollowSymLinks MultiViews Includes | ||
19 | AllowOverride None | ||
20 | Require all granted | ||
21 | </Directory> | ||
22 | '' | ||
23 | ]; | ||
24 | }; | ||
25 | }; | ||
26 | } | ||
diff --git a/modules/private/websites/denise/bingo.nix b/modules/private/websites/denise/bingo.nix deleted file mode 100644 index 9130462..0000000 --- a/modules/private/websites/denise/bingo.nix +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.denise.bingo; | ||
4 | varDir = "/var/lib/buildbot/outputs/denise/bingo"; | ||
5 | varDirBeta = "/var/lib/buildbot/outputs/denise/bingo_beta"; | ||
6 | socket = "/run/denise_bingo/socket.sock"; | ||
7 | socket_beta = "/run/denise_bingo_beta/socket.sock"; | ||
8 | in { | ||
9 | options.myServices.websites.denise.bingo.enable = lib.mkEnableOption "enable Denise's bingo website"; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.websites.env.production.vhostConfs.denise_bingo = { | ||
13 | certName = "denise"; | ||
14 | addToCerts = true; | ||
15 | hosts = [ "bingo.syanni.eu" ]; | ||
16 | root = null; | ||
17 | extraConfig = [ | ||
18 | '' | ||
19 | ProxyPreserveHost on | ||
20 | ProxyVia On | ||
21 | ProxyRequests Off | ||
22 | ProxyPassMatch ^/.well-known/acme-challenge ! | ||
23 | ProxyPass / unix://${socket}|http://bingo.syanni.eu/ | ||
24 | ProxyPassReverse / unix://${socket}|http://bingo.syanni.eu/ | ||
25 | '' | ||
26 | ]; | ||
27 | }; | ||
28 | |||
29 | systemd.services.denise-bingo = { | ||
30 | description = "Denise bingo website"; | ||
31 | after = [ "network.target" ]; | ||
32 | wantedBy = [ "multi-user.target" ]; | ||
33 | |||
34 | serviceConfig = { | ||
35 | Type = "simple"; | ||
36 | WorkingDirectory = varDir; | ||
37 | ExecStart = let | ||
38 | python = pkgs.python3.withPackages (p: [ p.gunicorn p.flask p.matplotlib p.unidecode ]); | ||
39 | in | ||
40 | "${python}/bin/gunicorn -w4 -p /run/denise_bingo/gunicorn.pid --bind unix:${socket} app:app"; | ||
41 | User = "wwwrun"; | ||
42 | Restart = "always"; | ||
43 | RestartSec = "5s"; | ||
44 | PIDFile = "/run/denise_bingo/gunicorn.pid"; | ||
45 | RuntimeDirectory = "denise_bingo"; | ||
46 | StandardOutput = "journal"; | ||
47 | StandardError = "inherit"; | ||
48 | }; | ||
49 | }; | ||
50 | |||
51 | security.sudo.extraRules = [ | ||
52 | { | ||
53 | commands = [ | ||
54 | { options = [ "NOPASSWD" ]; command = "${pkgs.systemd}/bin/systemctl restart denise-bingo-beta.service"; } | ||
55 | { options = [ "NOPASSWD" ]; command = "${pkgs.systemd}/bin/systemctl restart denise-bingo.service"; } | ||
56 | ]; | ||
57 | users = ["buildbot"]; | ||
58 | runAs = "root"; | ||
59 | } | ||
60 | ]; | ||
61 | services.websites.env.integration.vhostConfs.denise_bingo_beta = { | ||
62 | certName = "denise"; | ||
63 | addToCerts = true; | ||
64 | hosts = [ "beta.bingo.syanni.eu" ]; | ||
65 | root = null; | ||
66 | extraConfig = [ | ||
67 | '' | ||
68 | ProxyPreserveHost on | ||
69 | ProxyVia On | ||
70 | ProxyRequests Off | ||
71 | ProxyPassMatch ^/.well-known/acme-challenge ! | ||
72 | ProxyPass / unix://${socket_beta}|http://beta.bingo.syanni.eu/ | ||
73 | ProxyPassReverse / unix://${socket_beta}|http://beta.bingo.syanni.eu/ | ||
74 | '' | ||
75 | ]; | ||
76 | }; | ||
77 | |||
78 | systemd.services.denise-bingo-beta = { | ||
79 | description = "Denise bingo beta website"; | ||
80 | after = [ "network.target" ]; | ||
81 | wantedBy = [ "multi-user.target" ]; | ||
82 | |||
83 | serviceConfig = { | ||
84 | Type = "simple"; | ||
85 | WorkingDirectory = varDirBeta; | ||
86 | ExecStart = let | ||
87 | python = pkgs.python3.withPackages (p: [ p.gunicorn p.flask ]); | ||
88 | in | ||
89 | "${python}/bin/gunicorn -w4 -p /run/denise_bingo_beta/gunicorn.pid --bind unix:${socket_beta} app:app"; | ||
90 | User = "wwwrun"; | ||
91 | Restart = "always"; | ||
92 | RestartSec = "5s"; | ||
93 | PIDFile = "/run/denise_bingo_beta/gunicorn.pid"; | ||
94 | RuntimeDirectory = "denise_bingo_beta"; | ||
95 | StandardOutput = "journal"; | ||
96 | StandardError = "inherit"; | ||
97 | }; | ||
98 | }; | ||
99 | }; | ||
100 | } | ||
diff --git a/modules/private/websites/denise/denisejerome.nix b/modules/private/websites/denise/denisejerome.nix deleted file mode 100644 index a75e591..0000000 --- a/modules/private/websites/denise/denisejerome.nix +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | { lib, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.denise.denisejerome; | ||
4 | varDir = "/var/lib/ftp/denise/denisejerome"; | ||
5 | env = config.myEnv.websites.denisejerome; | ||
6 | in { | ||
7 | options.myServices.websites.denise.denisejerome.enable = lib.mkEnableOption "enable Denise Jerome's website"; | ||
8 | |||
9 | config = lib.mkIf cfg.enable { | ||
10 | services.webstats.sites = [ { name = "denisejerome.piedsjaloux.fr"; } ]; | ||
11 | |||
12 | services.websites.env.production.vhostConfs.denise_denisejerome = { | ||
13 | certName = "denise"; | ||
14 | certMainHost = "denisejerome.piedsjaloux.fr"; | ||
15 | hosts = ["denisejerome.piedsjaloux.fr" ]; | ||
16 | root = varDir; | ||
17 | extraConfig = [ | ||
18 | '' | ||
19 | Use Stats denisejerome.piedsjaloux.fr | ||
20 | |||
21 | <Directory ${varDir}> | ||
22 | DirectoryIndex index.htm index.html | ||
23 | Options Indexes FollowSymLinks MultiViews Includes | ||
24 | AllowOverride AuthConfig | ||
25 | Require all granted | ||
26 | </Directory> | ||
27 | '' | ||
28 | ]; | ||
29 | }; | ||
30 | }; | ||
31 | } | ||
diff --git a/modules/private/websites/denise/evariste.nix b/modules/private/websites/denise/evariste.nix deleted file mode 100644 index 42f9b2e..0000000 --- a/modules/private/websites/denise/evariste.nix +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.denise.evariste; | ||
4 | nsiVarDir = "/var/lib/ftp/denise/nsievariste"; | ||
5 | stmgVarDir = "/var/lib/ftp/denise/stmgevariste"; | ||
6 | apacheUser = config.services.httpd.Prod.user; | ||
7 | apacheGroup = config.services.httpd.Prod.group; | ||
8 | in { | ||
9 | options.myServices.websites.denise.evariste.enable = lib.mkEnableOption "enable NSI/STMG Evariste website"; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.webstats.sites = [ | ||
13 | { name = "nsievariste.immae.eu"; } | ||
14 | { name = "stmgevariste.immae.eu"; } | ||
15 | ]; | ||
16 | |||
17 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
18 | system.activationScripts.denise_evariste = { | ||
19 | deps = [ "httpd" ]; | ||
20 | text = '' | ||
21 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/denise_nsievariste | ||
22 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/denise_stmgevariste | ||
23 | ''; | ||
24 | }; | ||
25 | services.phpfpm.pools.denise_nsievariste = { | ||
26 | user = apacheUser; | ||
27 | group = apacheGroup; | ||
28 | settings = { | ||
29 | "listen.owner" = apacheUser; | ||
30 | "listen.group" = apacheGroup; | ||
31 | |||
32 | "pm" = "ondemand"; | ||
33 | "pm.max_children" = "5"; | ||
34 | "pm.process_idle_timeout" = "60"; | ||
35 | |||
36 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/denise_nsievariste:${nsiVarDir}:/tmp"; | ||
37 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/denise_nsievariste"; | ||
38 | }; | ||
39 | phpPackage = pkgs.php72; | ||
40 | }; | ||
41 | services.websites.env.production.vhostConfs.denise_nsievariste = { | ||
42 | certName = "denise_evariste"; | ||
43 | addToCerts = true; | ||
44 | certMainHost = "nsievariste.immae.eu"; | ||
45 | hosts = ["nsievariste.immae.eu" ]; | ||
46 | root = nsiVarDir; | ||
47 | extraConfig = [ | ||
48 | '' | ||
49 | Use Stats nsievariste.immae.eu | ||
50 | |||
51 | <FilesMatch "\.php$"> | ||
52 | SetHandler "proxy:unix:${config.services.phpfpm.pools.denise_nsievariste.socket}|fcgi://localhost" | ||
53 | </FilesMatch> | ||
54 | |||
55 | <Directory ${nsiVarDir}> | ||
56 | DirectoryIndex index.php index.htm index.html | ||
57 | Options Indexes FollowSymLinks MultiViews Includes | ||
58 | AllowOverride None | ||
59 | Require all granted | ||
60 | </Directory> | ||
61 | '' | ||
62 | ]; | ||
63 | }; | ||
64 | |||
65 | services.phpfpm.pools.denise_stmgevariste = { | ||
66 | user = apacheUser; | ||
67 | group = apacheGroup; | ||
68 | settings = { | ||
69 | "listen.owner" = apacheUser; | ||
70 | "listen.group" = apacheGroup; | ||
71 | |||
72 | "pm" = "ondemand"; | ||
73 | "pm.max_children" = "5"; | ||
74 | "pm.process_idle_timeout" = "60"; | ||
75 | |||
76 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/denise_stmgevariste:${stmgVarDir}:/tmp"; | ||
77 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/denise_stmgevariste"; | ||
78 | }; | ||
79 | phpPackage = pkgs.php72; | ||
80 | }; | ||
81 | services.websites.env.production.vhostConfs.denise_stmgevariste = { | ||
82 | certName = "denise_evariste"; | ||
83 | addToCerts = true; | ||
84 | hosts = ["stmgevariste.immae.eu" ]; | ||
85 | root = stmgVarDir; | ||
86 | extraConfig = [ | ||
87 | '' | ||
88 | Use Stats stmgevariste.immae.eu | ||
89 | |||
90 | <FilesMatch "\.php$"> | ||
91 | SetHandler "proxy:unix:${config.services.phpfpm.pools.denise_stmgevariste.socket}|fcgi://localhost" | ||
92 | </FilesMatch> | ||
93 | |||
94 | <Directory ${stmgVarDir}> | ||
95 | DirectoryIndex index.php index.htm index.html | ||
96 | Options Indexes FollowSymLinks MultiViews Includes | ||
97 | AllowOverride None | ||
98 | Require all granted | ||
99 | </Directory> | ||
100 | '' | ||
101 | ]; | ||
102 | }; | ||
103 | }; | ||
104 | } | ||
diff --git a/modules/private/websites/denise/oms.nix b/modules/private/websites/denise/oms.nix deleted file mode 100644 index 2f18037..0000000 --- a/modules/private/websites/denise/oms.nix +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.denise.oms; | ||
4 | varDir = "/var/lib/buildbot/outputs/denise/oms"; | ||
5 | varDirBeta = "/var/lib/buildbot/outputs/denise/oms_beta"; | ||
6 | socket = "/run/denise_oms/socket.sock"; | ||
7 | socket_beta = "/run/denise_oms_beta/socket.sock"; | ||
8 | in { | ||
9 | options.myServices.websites.denise.oms.enable = lib.mkEnableOption "enable Denise's OMS website"; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.websites.env.production.vhostConfs.denise_oms = { | ||
13 | certName = "denise"; | ||
14 | addToCerts = true; | ||
15 | hosts = [ "oms.syanni.eu" ]; | ||
16 | root = null; | ||
17 | extraConfig = [ | ||
18 | '' | ||
19 | ProxyPreserveHost on | ||
20 | ProxyVia On | ||
21 | ProxyRequests Off | ||
22 | ProxyPassMatch ^/.well-known/acme-challenge ! | ||
23 | ProxyPass / unix://${socket}|http://oms.syanni.eu/ | ||
24 | ProxyPassReverse / unix://${socket}|http://oms.syanni.eu/ | ||
25 | '' | ||
26 | ]; | ||
27 | }; | ||
28 | |||
29 | systemd.services.denise-oms = { | ||
30 | description = "Denise OMS website"; | ||
31 | after = [ "network.target" ]; | ||
32 | wantedBy = [ "multi-user.target" ]; | ||
33 | |||
34 | serviceConfig = { | ||
35 | Type = "simple"; | ||
36 | WorkingDirectory = varDir; | ||
37 | ExecStart = let | ||
38 | python = pkgs.python3.withPackages (p: [ p.gunicorn p.flask p.matplotlib p.unidecode ]); | ||
39 | in | ||
40 | "${python}/bin/gunicorn -w4 -p /run/denise_oms/gunicorn.pid --bind unix:${socket} app:app"; | ||
41 | User = "wwwrun"; | ||
42 | Restart = "always"; | ||
43 | RestartSec = "5s"; | ||
44 | PIDFile = "/run/denise_oms/gunicorn.pid"; | ||
45 | RuntimeDirectory = "denise_oms"; | ||
46 | StandardOutput = "journal"; | ||
47 | StandardError = "inherit"; | ||
48 | }; | ||
49 | }; | ||
50 | |||
51 | security.sudo.extraRules = [ | ||
52 | { | ||
53 | commands = [ | ||
54 | { options = [ "NOPASSWD" ]; command = "${pkgs.systemd}/bin/systemctl restart denise-oms-beta.service"; } | ||
55 | { options = [ "NOPASSWD" ]; command = "${pkgs.systemd}/bin/systemctl restart denise-oms.service"; } | ||
56 | ]; | ||
57 | users = ["buildbot"]; | ||
58 | runAs = "root"; | ||
59 | } | ||
60 | ]; | ||
61 | services.websites.env.integration.vhostConfs.denise_oms_beta = { | ||
62 | certName = "denise"; | ||
63 | addToCerts = true; | ||
64 | hosts = [ "beta.oms.syanni.eu" ]; | ||
65 | root = null; | ||
66 | extraConfig = [ | ||
67 | '' | ||
68 | ProxyPreserveHost on | ||
69 | ProxyVia On | ||
70 | ProxyRequests Off | ||
71 | ProxyPassMatch ^/.well-known/acme-challenge ! | ||
72 | ProxyPass / unix://${socket_beta}|http://beta.oms.syanni.eu/ | ||
73 | ProxyPassReverse / unix://${socket_beta}|http://beta.oms.syanni.eu/ | ||
74 | '' | ||
75 | ]; | ||
76 | }; | ||
77 | |||
78 | systemd.services.denise-oms-beta = { | ||
79 | description = "Denise OMS beta website"; | ||
80 | after = [ "network.target" ]; | ||
81 | wantedBy = [ "multi-user.target" ]; | ||
82 | |||
83 | serviceConfig = { | ||
84 | Type = "simple"; | ||
85 | WorkingDirectory = varDirBeta; | ||
86 | ExecStart = let | ||
87 | python = pkgs.python3.withPackages (p: [ p.gunicorn p.flask p.matplotlib p.unidecode ]); | ||
88 | in | ||
89 | "${python}/bin/gunicorn -w4 -p /run/denise_oms_beta/gunicorn.pid --bind unix:${socket_beta} app:app"; | ||
90 | User = "wwwrun"; | ||
91 | Restart = "always"; | ||
92 | RestartSec = "5s"; | ||
93 | PIDFile = "/run/denise_oms_beta/gunicorn.pid"; | ||
94 | RuntimeDirectory = "denise_oms_beta"; | ||
95 | StandardOutput = "journal"; | ||
96 | StandardError = "inherit"; | ||
97 | }; | ||
98 | }; | ||
99 | }; | ||
100 | } | ||
diff --git a/modules/private/websites/denise/production.nix b/modules/private/websites/denise/production.nix deleted file mode 100644 index 9b28e9e..0000000 --- a/modules/private/websites/denise/production.nix +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.denise.production; | ||
4 | in { | ||
5 | options.myServices.websites.denise.production.enable = lib.mkEnableOption "enable Denise's website"; | ||
6 | |||
7 | config = lib.mkIf cfg.enable { | ||
8 | services.websites.env.production.vhostConfs.denise_production = { | ||
9 | certName = "denise"; | ||
10 | addToCerts = true; | ||
11 | hosts = [ "syanni.eu" "www.syanni.eu" ]; | ||
12 | root = ../_www; | ||
13 | extraConfig = [ | ||
14 | '' | ||
15 | <Directory ${../_www}> | ||
16 | DirectoryIndex index.htm index.html | ||
17 | Options Indexes FollowSymLinks MultiViews Includes | ||
18 | AllowOverride AuthConfig | ||
19 | Require all granted | ||
20 | </Directory> | ||
21 | '' | ||
22 | ]; | ||
23 | }; | ||
24 | }; | ||
25 | } | ||
diff --git a/modules/private/websites/emilia/atelierfringant.nix b/modules/private/websites/emilia/atelierfringant.nix deleted file mode 100644 index b47452f..0000000 --- a/modules/private/websites/emilia/atelierfringant.nix +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.emilia.atelierfringant; | ||
4 | varDir = "/var/lib/ftp/emilia/atelierfringant"; | ||
5 | apacheUser = config.services.httpd.Prod.user; | ||
6 | apacheGroup = config.services.httpd.Prod.group; | ||
7 | in { | ||
8 | options.myServices.websites.emilia.atelierfringant.enable = lib.mkEnableOption "enable Émilia's website"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | system.activationScripts.emilia_atelierfringant = { | ||
12 | deps = [ "httpd" ]; | ||
13 | text = '' | ||
14 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/ftp/emilia/atelierfringant | ||
15 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/emilia | ||
16 | ''; | ||
17 | }; | ||
18 | systemd.services.phpfpm-emilia_atelierfringant.after = lib.mkAfter [ "mysql.service" ]; | ||
19 | systemd.services.phpfpm-emilia_atelierfringant.wants = [ "mysql.service" ]; | ||
20 | services.phpfpm.pools.emilia_atelierfringant = { | ||
21 | user = apacheUser; | ||
22 | group = apacheGroup; | ||
23 | settings = { | ||
24 | "listen.owner" = apacheUser; | ||
25 | "listen.group" = apacheGroup; | ||
26 | |||
27 | "pm" = "ondemand"; | ||
28 | "pm.max_children" = "5"; | ||
29 | "pm.process_idle_timeout" = "60"; | ||
30 | |||
31 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/emilia:${varDir}:/tmp"; | ||
32 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/emilia"; | ||
33 | }; | ||
34 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
35 | disable_functions = "mail" | ||
36 | ''; | ||
37 | phpPackage = pkgs.php72; | ||
38 | }; | ||
39 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
40 | services.websites.env.production.vhostConfs.emilia_atelierfringant = { | ||
41 | certName = "emilia"; | ||
42 | certMainHost = "atelierfringant.org"; | ||
43 | hosts = ["atelierfringant.org" "www.atelierfringant.org" ]; | ||
44 | root = varDir; | ||
45 | extraConfig = [ | ||
46 | '' | ||
47 | <FilesMatch "\.php$"> | ||
48 | SetHandler "proxy:unix:${config.services.phpfpm.pools.emilia_atelierfringant.socket}|fcgi://localhost" | ||
49 | </FilesMatch> | ||
50 | |||
51 | <Location /xmlrpc.php> | ||
52 | AllowOverride None | ||
53 | Require all denied | ||
54 | </Location> | ||
55 | <Directory ${varDir}> | ||
56 | DirectoryIndex index.php index.htm index.html | ||
57 | Options Indexes FollowSymLinks MultiViews Includes | ||
58 | AllowOverride all | ||
59 | Require all granted | ||
60 | </Directory> | ||
61 | '' | ||
62 | ]; | ||
63 | }; | ||
64 | }; | ||
65 | } | ||
diff --git a/modules/private/websites/emilia/moodle.nix b/modules/private/websites/emilia/moodle.nix deleted file mode 100644 index 779c460..0000000 --- a/modules/private/websites/emilia/moodle.nix +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.emilia.moodle; | ||
4 | env = config.myEnv.websites.emilia; | ||
5 | varDir = "/var/lib/emilia_moodle"; | ||
6 | siteDir = ./moodle; | ||
7 | # php_admin_value[upload_max_filesize] = 50000000 | ||
8 | # php_admin_value[post_max_size] = 50000000 | ||
9 | configFile = '' | ||
10 | <?php // Moodle configuration file | ||
11 | |||
12 | unset($CFG); | ||
13 | global $CFG; | ||
14 | $CFG = new stdClass(); | ||
15 | |||
16 | $CFG->dbtype = 'pgsql'; | ||
17 | $CFG->dblibrary = 'native'; | ||
18 | $CFG->dbhost = '${env.postgresql.host}'; | ||
19 | $CFG->dbname = '${env.postgresql.database}'; | ||
20 | $CFG->dbuser = '${env.postgresql.user}'; | ||
21 | $CFG->dbpass = '${env.postgresql.password}'; | ||
22 | $CFG->prefix = 'mdl_'; | ||
23 | $CFG->dboptions = array ( | ||
24 | 'dbpersist' => 0, | ||
25 | 'dbport' => '${env.postgreesql.port}', | ||
26 | 'dbsocket' => '${env.postgresql.password}', | ||
27 | ); | ||
28 | |||
29 | $CFG->wwwroot = 'https://www.saison-photo.org'; | ||
30 | $CFG->dataroot = '${varDir}'; | ||
31 | $CFG->admin = 'admin'; | ||
32 | |||
33 | $CFG->directorypermissions = 02777; | ||
34 | |||
35 | require_once(__DIR__ . '/lib/setup.php'); | ||
36 | |||
37 | // There is no php closing tag in this file, | ||
38 | // it is intentional because it prevents trailing whitespace problems! | ||
39 | ''; | ||
40 | apacheUser = config.services.httpd.Prod.user; | ||
41 | apacheGroup = config.services.httpd.Prod.group; | ||
42 | in { | ||
43 | options.myServices.websites.emilia.moodle.enable = lib.mkEnableOption "enable Emilia's website"; | ||
44 | |||
45 | config = lib.mkIf cfg.enable { | ||
46 | system.activationScripts.emilia_moodle = '' | ||
47 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir} | ||
48 | ''; | ||
49 | services.websites.env.production.vhostConfs.emilia_moodle = { | ||
50 | certName = "emilia"; | ||
51 | certMainHost = "saison-photo.org"; | ||
52 | hosts = [ "saison-photo.org" "www.saison-photo.org" ]; | ||
53 | root = siteDir; | ||
54 | extraConfig = [ | ||
55 | '' | ||
56 | <Directory ${siteDir}> | ||
57 | DirectoryIndex pause.html | ||
58 | Options Indexes FollowSymLinks MultiViews Includes | ||
59 | Require all granted | ||
60 | </Directory> | ||
61 | '' | ||
62 | ]; | ||
63 | }; | ||
64 | }; | ||
65 | } | ||
diff --git a/modules/private/websites/emilia/moodle/pause.html b/modules/private/websites/emilia/moodle/pause.html deleted file mode 100644 index 8b99c59..0000000 --- a/modules/private/websites/emilia/moodle/pause.html +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | <!doctype html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Pause</title> | ||
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
6 | <style> | ||
7 | body { | ||
8 | padding-left: 5px; | ||
9 | padding-right: 5px; | ||
10 | text-align: center; | ||
11 | margin: auto; | ||
12 | font: 20px Helvetica, sans-serif; | ||
13 | color: #333; | ||
14 | } | ||
15 | h1 { | ||
16 | margin: 0px; | ||
17 | font-size: 40px; | ||
18 | } | ||
19 | article { | ||
20 | display: block; | ||
21 | max-width: 650px; | ||
22 | margin: 0 auto; | ||
23 | padding-top: 30px; | ||
24 | } | ||
25 | article + article { | ||
26 | border-top: 1px solid lightgrey; | ||
27 | } | ||
28 | article div { | ||
29 | text-align: justify; | ||
30 | } | ||
31 | a { | ||
32 | color: #dc8100; | ||
33 | text-decoration: none; | ||
34 | } | ||
35 | a:hover { | ||
36 | color: #333; | ||
37 | } | ||
38 | </style> | ||
39 | </head> | ||
40 | <body> | ||
41 | <article> | ||
42 | <h1>Site web en pause !</h1> | ||
43 | <div> | ||
44 | <p>Le site et les cours de photographie sont actuellement en pause.</p> | ||
45 | </div> | ||
46 | </article> | ||
47 | </body> | ||
48 | </html> | ||
diff --git a/modules/private/websites/florian/app.nix b/modules/private/websites/florian/app.nix deleted file mode 100644 index 2df344f..0000000 --- a/modules/private/websites/florian/app.nix +++ /dev/null | |||
@@ -1,142 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | adminer = pkgs.callPackage ../commons/adminer.nix { inherit config; }; | ||
4 | secrets = config.myEnv.websites.tellesflorian.integration; | ||
5 | webRoot = "/var/lib/ftp/immae/florian/web"; | ||
6 | cfg = config.myServices.websites.florian.app; | ||
7 | pcfg = config.services.phpApplication; | ||
8 | in { | ||
9 | options.myServices.websites.florian.app.enable = lib.mkEnableOption "enable Florian's app in integration"; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.phpApplication.apps.florian_app = { | ||
13 | websiteEnv = "integration"; | ||
14 | httpdUser = config.services.httpd.Inte.user; | ||
15 | httpdGroup = config.services.httpd.Inte.group; | ||
16 | inherit webRoot; | ||
17 | varDir = "/var/lib/ftp/immae/florian_var"; | ||
18 | varDirPaths = { | ||
19 | "var" = "0700"; | ||
20 | }; | ||
21 | app = "/var/lib/ftp/immae/florian"; | ||
22 | serviceDeps = [ "mysql.service" ]; | ||
23 | preStartActions = [ | ||
24 | "./bin/console --env=dev cache:clear --no-warmup" | ||
25 | ]; | ||
26 | phpOpenbasedir = [ "/tmp" ]; | ||
27 | phpPool = { | ||
28 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
29 | "php_admin_value[post_max_size]" = "20M"; | ||
30 | #"php_admin_flag[log_errors]" = "on"; | ||
31 | "pm" = "ondemand"; | ||
32 | "pm.max_children" = "5"; | ||
33 | "pm.process_idle_timeout" = "60"; | ||
34 | }; | ||
35 | phpEnv = { | ||
36 | SYMFONY_DEBUG_MODE = "\"yes\""; | ||
37 | }; | ||
38 | phpWatchFiles = [ | ||
39 | config.secrets.fullPaths."websites/florian/app" | ||
40 | ]; | ||
41 | phpPackage = pkgs.php72; | ||
42 | }; | ||
43 | |||
44 | secrets.keys = { | ||
45 | "websites/florian/app_passwords" = { | ||
46 | user = config.services.httpd.Inte.user; | ||
47 | group = config.services.httpd.Inte.group; | ||
48 | permissions = "0400"; | ||
49 | text = '' | ||
50 | invite:${secrets.invite_passwords} | ||
51 | ''; | ||
52 | }; | ||
53 | "websites/florian/app" = { | ||
54 | user = config.services.httpd.Inte.user; | ||
55 | group = config.services.httpd.Inte.group; | ||
56 | permissions = "0400"; | ||
57 | text = '' | ||
58 | # This file is auto-generated during the composer install | ||
59 | parameters: | ||
60 | database_host: ${secrets.mysql.host} | ||
61 | database_port: ${secrets.mysql.port} | ||
62 | database_name: ${secrets.mysql.database} | ||
63 | database_user: ${secrets.mysql.user} | ||
64 | database_password: ${secrets.mysql.password} | ||
65 | mailer_transport: smtp | ||
66 | mailer_host: 127.0.0.1 | ||
67 | mailer_user: null | ||
68 | mailer_password: null | ||
69 | secret: ${secrets.secret} | ||
70 | ''; | ||
71 | }; | ||
72 | }; | ||
73 | |||
74 | services.websites.env.integration.modules = adminer.apache.modules; | ||
75 | services.websites.env.integration.vhostConfs.florian_app = { | ||
76 | certName = "integration"; | ||
77 | addToCerts = true; | ||
78 | hosts = [ "app.tellesflorian.com" ]; | ||
79 | root = webRoot; | ||
80 | extraConfig = [ | ||
81 | '' | ||
82 | <FilesMatch "\.php$"> | ||
83 | SetHandler "proxy:unix:${pcfg.phpListenPaths.florian_app}|fcgi://localhost" | ||
84 | </FilesMatch> | ||
85 | |||
86 | <Location /> | ||
87 | AuthBasicProvider file ldap | ||
88 | Use LDAPConnect | ||
89 | Require ldap-group cn=app.tellesflorian.com,cn=httpd,ou=services,dc=immae,dc=eu | ||
90 | |||
91 | AuthUserFile "${config.secrets.fullPaths."websites/florian/app_passwords"}" | ||
92 | Require user "invite" | ||
93 | |||
94 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://tellesflorian.com\"></html>" | ||
95 | </Location> | ||
96 | |||
97 | <Directory ${webRoot}> | ||
98 | Options Indexes FollowSymLinks MultiViews Includes | ||
99 | AllowOverride None | ||
100 | Require all granted | ||
101 | |||
102 | DirectoryIndex app_dev.php | ||
103 | |||
104 | <IfModule mod_negotiation.c> | ||
105 | Options -MultiViews | ||
106 | </IfModule> | ||
107 | |||
108 | <IfModule mod_rewrite.c> | ||
109 | RewriteEngine On | ||
110 | |||
111 | RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ | ||
112 | RewriteRule ^(.*) - [E=BASE:%1] | ||
113 | |||
114 | # Maintenance script | ||
115 | RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f | ||
116 | RewriteCond %{SCRIPT_FILENAME} !maintenance.php | ||
117 | RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L] | ||
118 | ErrorDocument 503 /maintenance.php | ||
119 | |||
120 | # Sets the HTTP_AUTHORIZATION header removed by Apache | ||
121 | RewriteCond %{HTTP:Authorization} . | ||
122 | RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | ||
123 | |||
124 | RewriteCond %{ENV:REDIRECT_STATUS} ^$ | ||
125 | RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] | ||
126 | |||
127 | # If the requested filename exists, simply serve it. | ||
128 | # We only want to let Apache serve files and not directories. | ||
129 | RewriteCond %{REQUEST_FILENAME} -f | ||
130 | RewriteRule ^ - [L] | ||
131 | |||
132 | # Rewrite all other queries to the front controller. | ||
133 | RewriteRule ^ %{ENV:BASE}/app_dev.php [L] | ||
134 | </IfModule> | ||
135 | |||
136 | </Directory> | ||
137 | '' | ||
138 | (adminer.apache.vhostConf null) | ||
139 | ]; | ||
140 | }; | ||
141 | }; | ||
142 | } | ||
diff --git a/modules/private/websites/florian/app/default.nix b/modules/private/websites/florian/app/default.nix deleted file mode 100644 index 28a7ec1..0000000 --- a/modules/private/websites/florian/app/default.nix +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | { environment, varDir, secretsPath | ||
2 | , composerEnv, fetchurl, sources }: | ||
3 | let | ||
4 | app = composerEnv.buildPackage ( | ||
5 | import ./php-packages.nix { inherit composerEnv fetchurl; } // | ||
6 | rec { | ||
7 | version = sources.websites-florian-app.version; | ||
8 | pname = "tellesflorian"; | ||
9 | name = "${pname}-${version}"; | ||
10 | src = sources.websites-florian-app; | ||
11 | noDev = (environment == "prod"); | ||
12 | preInstall = '' | ||
13 | export SYMFONY_ENV="${environment}" | ||
14 | ''; | ||
15 | postInstall = '' | ||
16 | cd $out | ||
17 | rm app/config/parameters.yml | ||
18 | ln -sf ${secretsPath} app/config/parameters.yml | ||
19 | rm -rf var/{logs,cache} | ||
20 | ln -sf ${varDir}/var/{logs,cache,sessions} var/ | ||
21 | ''; | ||
22 | passthru = { | ||
23 | inherit varDir environment; | ||
24 | webRoot = "${app}/web"; | ||
25 | }; | ||
26 | }); | ||
27 | in app | ||
diff --git a/modules/private/websites/florian/app/php-packages.nix b/modules/private/websites/florian/app/php-packages.nix deleted file mode 100644 index 0c7e00c..0000000 --- a/modules/private/websites/florian/app/php-packages.nix +++ /dev/null | |||
@@ -1,389 +0,0 @@ | |||
1 | # Generated with composer2nix and adapted to return only the list of | ||
2 | # packages | ||
3 | { composerEnv, fetchurl }: | ||
4 | { | ||
5 | packages = { | ||
6 | "composer/ca-bundle" = { | ||
7 | targetDir = ""; | ||
8 | src = composerEnv.buildZipPackage { | ||
9 | name = "composer-ca-bundle-943b2c4fcad1ef178d16a713c2468bf7e579c288"; | ||
10 | src = fetchurl { | ||
11 | url = https://api.github.com/repos/composer/ca-bundle/zipball/943b2c4fcad1ef178d16a713c2468bf7e579c288; | ||
12 | sha256 = "1gljia7akifp57w4rjzyh1km23kwymmvglz0mgafdgqzczcw0m6w"; | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
16 | "doctrine/annotations" = { | ||
17 | targetDir = ""; | ||
18 | src = composerEnv.buildZipPackage { | ||
19 | name = "doctrine-annotations-f25c8aab83e0c3e976fd7d19875f198ccf2f7535"; | ||
20 | src = fetchurl { | ||
21 | url = https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535; | ||
22 | sha256 = "08vm22fqq8r4bg2fk06y4inqnc8x0yfmsss28w5ra2011x2phq4z"; | ||
23 | }; | ||
24 | }; | ||
25 | }; | ||
26 | "doctrine/cache" = { | ||
27 | targetDir = ""; | ||
28 | src = composerEnv.buildZipPackage { | ||
29 | name = "doctrine-cache-eb152c5100571c7a45470ff2a35095ab3f3b900b"; | ||
30 | src = fetchurl { | ||
31 | url = https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b; | ||
32 | sha256 = "0iq0qqv1smlqz63jhj2fpjy54c5dwfwxyf5c89iky6i0yb81gwyd"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | "doctrine/collections" = { | ||
37 | targetDir = ""; | ||
38 | src = composerEnv.buildZipPackage { | ||
39 | name = "doctrine-collections-6c1e4eef75f310ea1b3e30945e9f06e652128b8a"; | ||
40 | src = fetchurl { | ||
41 | url = https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a; | ||
42 | sha256 = "1dkxr2vjycykpcnnmq68rcnn1ww0kbpizd5pxxm6x9i2ilj8cbn7"; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | "doctrine/common" = { | ||
47 | targetDir = ""; | ||
48 | src = composerEnv.buildZipPackage { | ||
49 | name = "doctrine-common-7bce00698899aa2c06fe7365c76e4d78ddb15fa3"; | ||
50 | src = fetchurl { | ||
51 | url = https://api.github.com/repos/doctrine/common/zipball/7bce00698899aa2c06fe7365c76e4d78ddb15fa3; | ||
52 | sha256 = "12yizcsxsbhhi8hwaik4zalr12n5nxbpld05zygqhx6miyr92jyd"; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
56 | "doctrine/dbal" = { | ||
57 | targetDir = ""; | ||
58 | src = composerEnv.buildZipPackage { | ||
59 | name = "doctrine-dbal-729340d8d1eec8f01bff708e12e449a3415af873"; | ||
60 | src = fetchurl { | ||
61 | url = https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873; | ||
62 | sha256 = "184p8h0n6mcm0y6vfyh0z6qcxmmf8h5z4vdvxd4ycmx0531lnhj3"; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | "doctrine/doctrine-bundle" = { | ||
67 | targetDir = ""; | ||
68 | src = composerEnv.buildZipPackage { | ||
69 | name = "doctrine-doctrine-bundle-eb6e4fb904a459be28872765ab6e2d246aac7c87"; | ||
70 | src = fetchurl { | ||
71 | url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/eb6e4fb904a459be28872765ab6e2d246aac7c87; | ||
72 | sha256 = "0kkisgyblc9hf9x3zpbb1wif51fa8mi6svyd44nls38k9k93dp17"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | "doctrine/doctrine-cache-bundle" = { | ||
77 | targetDir = ""; | ||
78 | src = composerEnv.buildZipPackage { | ||
79 | name = "doctrine-doctrine-cache-bundle-9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1"; | ||
80 | src = fetchurl { | ||
81 | url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1; | ||
82 | sha256 = "08bqz18vk4673pnm2r2pcph6pdchc36zajnma1p9c6dp21sv7iki"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | "doctrine/inflector" = { | ||
87 | targetDir = ""; | ||
88 | src = composerEnv.buildZipPackage { | ||
89 | name = "doctrine-inflector-90b2128806bfde671b6952ab8bea493942c1fdae"; | ||
90 | src = fetchurl { | ||
91 | url = https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae; | ||
92 | sha256 = "01vmclj3k7xil51jg329fznshh8d07pvm4mr89lvfn1d7fyrq6qw"; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | "doctrine/instantiator" = { | ||
97 | targetDir = ""; | ||
98 | src = composerEnv.buildZipPackage { | ||
99 | name = "doctrine-instantiator-8e884e78f9f0eb1329e445619e04456e64d8051d"; | ||
100 | src = fetchurl { | ||
101 | url = https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d; | ||
102 | sha256 = "15dcja45rnwya431pcm826l68k1g8f1fabl7rih69alcdyvdlln4"; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
106 | "doctrine/lexer" = { | ||
107 | targetDir = ""; | ||
108 | src = composerEnv.buildZipPackage { | ||
109 | name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c"; | ||
110 | src = fetchurl { | ||
111 | url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c; | ||
112 | sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74"; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | "doctrine/orm" = { | ||
117 | targetDir = ""; | ||
118 | src = composerEnv.buildZipPackage { | ||
119 | name = "doctrine-orm-810a7baf81462a5ddf10e8baa8cb94b6eec02754"; | ||
120 | src = fetchurl { | ||
121 | url = https://api.github.com/repos/doctrine/doctrine2/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754; | ||
122 | sha256 = "1hmkc7917kgnav9hmlgvlp7qwm3zjj910ci71g9yqwjh6s28wrf1"; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | "fig/link-util" = { | ||
127 | targetDir = ""; | ||
128 | src = composerEnv.buildZipPackage { | ||
129 | name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac"; | ||
130 | src = fetchurl { | ||
131 | url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac; | ||
132 | sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64"; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | "incenteev/composer-parameter-handler" = { | ||
137 | targetDir = ""; | ||
138 | src = composerEnv.buildZipPackage { | ||
139 | name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550"; | ||
140 | src = fetchurl { | ||
141 | url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550; | ||
142 | sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm"; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | "jdorn/sql-formatter" = { | ||
147 | targetDir = ""; | ||
148 | src = composerEnv.buildZipPackage { | ||
149 | name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc"; | ||
150 | src = fetchurl { | ||
151 | url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc; | ||
152 | sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi"; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | "monolog/monolog" = { | ||
157 | targetDir = ""; | ||
158 | src = composerEnv.buildZipPackage { | ||
159 | name = "monolog-monolog-fd8c787753b3a2ad11bc60c063cff1358a32a3b4"; | ||
160 | src = fetchurl { | ||
161 | url = https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4; | ||
162 | sha256 = "0avf3y8raw23krwdb7kw9qb5bsr5ls4i7qd2vh7hcds3qjixg3h9"; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | "paragonie/random_compat" = { | ||
167 | targetDir = ""; | ||
168 | src = composerEnv.buildZipPackage { | ||
169 | name = "paragonie-random_compat-5da4d3c796c275c55f057af5a643ae297d96b4d8"; | ||
170 | src = fetchurl { | ||
171 | url = https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8; | ||
172 | sha256 = "1hp6pin4923c300yi85m7qk04gsrbygv52wv5zm7giyyf0k0g073"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | "psr/cache" = { | ||
177 | targetDir = ""; | ||
178 | src = composerEnv.buildZipPackage { | ||
179 | name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8"; | ||
180 | src = fetchurl { | ||
181 | url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8; | ||
182 | sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz"; | ||
183 | }; | ||
184 | }; | ||
185 | }; | ||
186 | "psr/container" = { | ||
187 | targetDir = ""; | ||
188 | src = composerEnv.buildZipPackage { | ||
189 | name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f"; | ||
190 | src = fetchurl { | ||
191 | url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f; | ||
192 | sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j"; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | "psr/link" = { | ||
197 | targetDir = ""; | ||
198 | src = composerEnv.buildZipPackage { | ||
199 | name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562"; | ||
200 | src = fetchurl { | ||
201 | url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562; | ||
202 | sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13"; | ||
203 | }; | ||
204 | }; | ||
205 | }; | ||
206 | "psr/log" = { | ||
207 | targetDir = ""; | ||
208 | src = composerEnv.buildZipPackage { | ||
209 | name = "psr-log-4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"; | ||
210 | src = fetchurl { | ||
211 | url = https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d; | ||
212 | sha256 = "1mlcv17fjw39bjpck176ah1z393b6pnbw3jqhhrblj27c70785md"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | "psr/simple-cache" = { | ||
217 | targetDir = ""; | ||
218 | src = composerEnv.buildZipPackage { | ||
219 | name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"; | ||
220 | src = fetchurl { | ||
221 | url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b; | ||
222 | sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw"; | ||
223 | }; | ||
224 | }; | ||
225 | }; | ||
226 | "sensio/distribution-bundle" = { | ||
227 | targetDir = ""; | ||
228 | src = composerEnv.buildZipPackage { | ||
229 | name = "sensio-distribution-bundle-eb6266b3b472e4002538610b28a0a04bcf94891a"; | ||
230 | src = fetchurl { | ||
231 | url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/eb6266b3b472e4002538610b28a0a04bcf94891a; | ||
232 | sha256 = "0wyffqj924lz9cv0vbahyngjw1g850v0p34swygzzgp3cr0ank13"; | ||
233 | }; | ||
234 | }; | ||
235 | }; | ||
236 | "sensio/framework-extra-bundle" = { | ||
237 | targetDir = ""; | ||
238 | src = composerEnv.buildZipPackage { | ||
239 | name = "sensio-framework-extra-bundle-bf4940572e43af679aaa13be98f3446a1c237bd8"; | ||
240 | src = fetchurl { | ||
241 | url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bf4940572e43af679aaa13be98f3446a1c237bd8; | ||
242 | sha256 = "1kb1n5w3kfc0kf4pslqdx5pgp0g4hmaag0i00wvjj2n3pjfm5lhf"; | ||
243 | }; | ||
244 | }; | ||
245 | }; | ||
246 | "sensiolabs/security-checker" = { | ||
247 | targetDir = ""; | ||
248 | src = composerEnv.buildZipPackage { | ||
249 | name = "sensiolabs-security-checker-dc270d5fec418cc6ac983671dba5d80ffaffb142"; | ||
250 | src = fetchurl { | ||
251 | url = https://api.github.com/repos/sensiolabs/security-checker/zipball/dc270d5fec418cc6ac983671dba5d80ffaffb142; | ||
252 | sha256 = "0fnshyd6f8j91a7y604nh6sqgscjl48mfa0727g2r4hkdfz8hpd1"; | ||
253 | }; | ||
254 | }; | ||
255 | }; | ||
256 | "swiftmailer/swiftmailer" = { | ||
257 | targetDir = ""; | ||
258 | src = composerEnv.buildZipPackage { | ||
259 | name = "swiftmailer-swiftmailer-7ffc1ea296ed14bf8260b6ef11b80208dbadba91"; | ||
260 | src = fetchurl { | ||
261 | url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91; | ||
262 | sha256 = "1vl5pzgvr2yfrj1yfs02mi917b0gr56v76ibi40r51a3346zhp6v"; | ||
263 | }; | ||
264 | }; | ||
265 | }; | ||
266 | "symfony/monolog-bundle" = { | ||
267 | targetDir = ""; | ||
268 | src = composerEnv.buildZipPackage { | ||
269 | name = "symfony-monolog-bundle-8781649349fe418d51d194f8c9d212c0b97c40dd"; | ||
270 | src = fetchurl { | ||
271 | url = https://api.github.com/repos/symfony/monolog-bundle/zipball/8781649349fe418d51d194f8c9d212c0b97c40dd; | ||
272 | sha256 = "0wcqhg1vfdj3mxacr3fxpgqwy1rk9znjg9bmzx4jymk8l16i7bq8"; | ||
273 | }; | ||
274 | }; | ||
275 | }; | ||
276 | "symfony/polyfill-apcu" = { | ||
277 | targetDir = ""; | ||
278 | src = composerEnv.buildZipPackage { | ||
279 | name = "symfony-polyfill-apcu-e8ae2136ddb53dea314df56fcd88e318ab936c00"; | ||
280 | src = fetchurl { | ||
281 | url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/e8ae2136ddb53dea314df56fcd88e318ab936c00; | ||
282 | sha256 = "07wdszb9ircnidjk3fp3cvcrggxv3sfm996jzd0a9pm6vfz9hymv"; | ||
283 | }; | ||
284 | }; | ||
285 | }; | ||
286 | "symfony/polyfill-intl-icu" = { | ||
287 | targetDir = ""; | ||
288 | src = composerEnv.buildZipPackage { | ||
289 | name = "symfony-polyfill-intl-icu-254919c03761d46c29291616576ed003f10e91c1"; | ||
290 | src = fetchurl { | ||
291 | url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/254919c03761d46c29291616576ed003f10e91c1; | ||
292 | sha256 = "01yivzv7p55fzrkkyvgd57zpyz82zn1qp0h6nzr77k01rkv3w0ds"; | ||
293 | }; | ||
294 | }; | ||
295 | }; | ||
296 | "symfony/polyfill-mbstring" = { | ||
297 | targetDir = ""; | ||
298 | src = composerEnv.buildZipPackage { | ||
299 | name = "symfony-polyfill-mbstring-78be803ce01e55d3491c1397cf1c64beb9c1b63b"; | ||
300 | src = fetchurl { | ||
301 | url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b; | ||
302 | sha256 = "0cqr8ni6wpbaxa9gyr40y5bsv54pa2g8kdarlfw3qg2rgzmk0yz1"; | ||
303 | }; | ||
304 | }; | ||
305 | }; | ||
306 | "symfony/polyfill-php56" = { | ||
307 | targetDir = ""; | ||
308 | src = composerEnv.buildZipPackage { | ||
309 | name = "symfony-polyfill-php56-ebc999ce5f14204c5150b9bd15f8f04e621409d8"; | ||
310 | src = fetchurl { | ||
311 | url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ebc999ce5f14204c5150b9bd15f8f04e621409d8; | ||
312 | sha256 = "0b2j56l6d6rdggx7vr20d527df4pjfp4lgxpglsgbf5912rcyf83"; | ||
313 | }; | ||
314 | }; | ||
315 | }; | ||
316 | "symfony/polyfill-php70" = { | ||
317 | targetDir = ""; | ||
318 | src = composerEnv.buildZipPackage { | ||
319 | name = "symfony-polyfill-php70-3532bfcd8f933a7816f3a0a59682fc404776600f"; | ||
320 | src = fetchurl { | ||
321 | url = https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f; | ||
322 | sha256 = "151m76lc9w0kxnnwk4zdcjlmj7fppibnp8jisgpvvq32ml3fizdi"; | ||
323 | }; | ||
324 | }; | ||
325 | }; | ||
326 | "symfony/polyfill-util" = { | ||
327 | targetDir = ""; | ||
328 | src = composerEnv.buildZipPackage { | ||
329 | name = "symfony-polyfill-util-e17c808ec4228026d4f5a8832afa19be85979563"; | ||
330 | src = fetchurl { | ||
331 | url = https://api.github.com/repos/symfony/polyfill-util/zipball/e17c808ec4228026d4f5a8832afa19be85979563; | ||
332 | sha256 = "17sdpdidc0b701f9rippjv1grfci7wrdpy2i1inlwwpr6zy782cq"; | ||
333 | }; | ||
334 | }; | ||
335 | }; | ||
336 | "symfony/swiftmailer-bundle" = { | ||
337 | targetDir = ""; | ||
338 | src = composerEnv.buildZipPackage { | ||
339 | name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec"; | ||
340 | src = fetchurl { | ||
341 | url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec; | ||
342 | sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01"; | ||
343 | }; | ||
344 | }; | ||
345 | }; | ||
346 | "symfony/symfony" = { | ||
347 | targetDir = ""; | ||
348 | src = composerEnv.buildZipPackage { | ||
349 | name = "symfony-symfony-874d4d659774d7bab90538072c83ed532dd17dc5"; | ||
350 | src = fetchurl { | ||
351 | url = https://api.github.com/repos/symfony/symfony/zipball/874d4d659774d7bab90538072c83ed532dd17dc5; | ||
352 | sha256 = "02rsn3sc34jh107n576jfbh666k06y44yr7hw61nir0d864k8api"; | ||
353 | }; | ||
354 | }; | ||
355 | }; | ||
356 | "twig/twig" = { | ||
357 | targetDir = ""; | ||
358 | src = composerEnv.buildZipPackage { | ||
359 | name = "twig-twig-9c24f2cd39dc1906b76879e099970b7e53724601"; | ||
360 | src = fetchurl { | ||
361 | url = https://api.github.com/repos/twigphp/Twig/zipball/9c24f2cd39dc1906b76879e099970b7e53724601; | ||
362 | sha256 = "0brfj2lahrrw1322zy6jyd380hjks1ynzzkmq3875a282gzrfkdz"; | ||
363 | }; | ||
364 | }; | ||
365 | }; | ||
366 | }; | ||
367 | devPackages = { | ||
368 | "sensio/generator-bundle" = { | ||
369 | targetDir = ""; | ||
370 | src = composerEnv.buildZipPackage { | ||
371 | name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65"; | ||
372 | src = fetchurl { | ||
373 | url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65; | ||
374 | sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3"; | ||
375 | }; | ||
376 | }; | ||
377 | }; | ||
378 | "symfony/phpunit-bridge" = { | ||
379 | targetDir = ""; | ||
380 | src = composerEnv.buildZipPackage { | ||
381 | name = "symfony-phpunit-bridge-32b06d2b0babf3216e55acfce42249321a304f03"; | ||
382 | src = fetchurl { | ||
383 | url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/32b06d2b0babf3216e55acfce42249321a304f03; | ||
384 | sha256 = "0vw4q3lvz8gfs0r93ds8yymz8586k0czwa01c7d172rc8x02v0qq"; | ||
385 | }; | ||
386 | }; | ||
387 | }; | ||
388 | }; | ||
389 | } | ||
diff --git a/modules/private/websites/florian/integration.nix b/modules/private/websites/florian/integration.nix deleted file mode 100644 index 8ac1f46..0000000 --- a/modules/private/websites/florian/integration.nix +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | adminer = pkgs.callPackage ../commons/adminer.nix { inherit config; }; | ||
4 | cfg = config.myServices.websites.florian.integration; | ||
5 | varDir = "/var/lib/ftp/florian/www.ft.immae.dev"; | ||
6 | env = config.myEnv.websites.florian; | ||
7 | in { | ||
8 | options.myServices.websites.florian.integration.enable = lib.mkEnableOption "enable Florian's website integration"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | security.acme.certs."ftp".extraDomains."ft.immae.dev" = null; | ||
12 | |||
13 | services.websites.env.integration.modules = adminer.apache.modules; | ||
14 | services.websites.env.integration.vhostConfs.florian_integration = { | ||
15 | certName = "integration"; | ||
16 | addToCerts = true; | ||
17 | hosts = [ "www.ft.immae.dev" ]; | ||
18 | root = varDir; | ||
19 | extraConfig = [ | ||
20 | (adminer.apache.vhostConf null) | ||
21 | '' | ||
22 | ServerAdmin ${env.server_admin} | ||
23 | |||
24 | <Directory ${varDir}> | ||
25 | DirectoryIndex index.php index.htm index.html | ||
26 | Options Indexes FollowSymLinks MultiViews Includes | ||
27 | AllowOverride None | ||
28 | Require all granted | ||
29 | </Directory> | ||
30 | '' | ||
31 | ]; | ||
32 | }; | ||
33 | }; | ||
34 | } | ||
diff --git a/modules/private/websites/florian/production.nix b/modules/private/websites/florian/production.nix deleted file mode 100644 index 1c5ffa6..0000000 --- a/modules/private/websites/florian/production.nix +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | adminer = pkgs.callPackage ../commons/adminer.nix { inherit config; }; | ||
4 | cfg = config.myServices.websites.florian.production; | ||
5 | varDir = "/var/lib/ftp/florian/tellesflorian.com"; | ||
6 | env = config.myEnv.websites.florian; | ||
7 | in { | ||
8 | options.myServices.websites.florian.production.enable = lib.mkEnableOption "enable Florian's website production"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | security.acme.certs."ftp".extraDomains."tellesflorian.com" = null; | ||
12 | |||
13 | services.websites.env.production.modules = adminer.apache.modules; | ||
14 | services.websites.env.production.vhostConfs.florian_production = { | ||
15 | certName = "florian"; | ||
16 | certMainHost = "tellesflorian.com"; | ||
17 | hosts = [ "tellesflorian.com" "www.tellesflorian.com" ]; | ||
18 | root = varDir; | ||
19 | extraConfig = [ | ||
20 | (adminer.apache.vhostConf null) | ||
21 | '' | ||
22 | ServerAdmin ${env.server_admin} | ||
23 | |||
24 | <Directory ${varDir}> | ||
25 | DirectoryIndex index.php index.htm index.html | ||
26 | Options Indexes FollowSymLinks MultiViews Includes | ||
27 | AllowOverride None | ||
28 | Require all granted | ||
29 | </Directory> | ||
30 | '' | ||
31 | ]; | ||
32 | }; | ||
33 | }; | ||
34 | } | ||
diff --git a/modules/private/websites/immae/chatons/immae-eu.properties b/modules/private/websites/immae/chatons/immae-eu.properties deleted file mode 100644 index 32b2d47..0000000 --- a/modules/private/websites/immae/chatons/immae-eu.properties +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | # https://framagit.org/chatons/chatonsinfos/-/blob/master/MODELES/organization.properties | ||
2 | |||
3 | # [File] | ||
4 | file.class = organization | ||
5 | file.protocol = ChatonsInfos-0.1 | ||
6 | file.datetime = 2021-01-11T22:23:00 | ||
7 | file.generator = Immae avec ses doigts | ||
8 | |||
9 | # [Organisation] | ||
10 | organization.country.name = France | ||
11 | organization.country.code = FR | ||
12 | organization.name = ImmaeEu | ||
13 | organization.description = ImmaeEu est un CHATONS des Alpes Maritimes | ||
14 | organization.website = https://www.immae.eu | ||
15 | organization.logo = https://assets.immae.eu/logo.jpg | ||
16 | organization.socialnetworks.diaspora = https://diaspora.immae.eu/people/1a185f29cc76cb35 | ||
17 | organization.socialnetworks.facebook = https://www.facebook.com/ismael.bouya | ||
18 | organization.socialnetworks.mastodon = https://mastodon.immae.eu/@immae | ||
19 | organization.socialnetworks.peertube = https://peertube.immae.eu/accounts/immae/ | ||
20 | organization.socialnetworks.twitter = https://twitter.com/_immae | ||
21 | organization.chatrooms.xmpp = ismael@immae.fr | ||
22 | organization.chatrooms.irc = immae@freenode | ||
23 | organization.chatrooms.matrix = @immae:matrix.org | ||
24 | organization.owner.name = Ismaël Bouya | ||
25 | organization.owner.website = https://www.immae.eu | ||
26 | organization.owner.logo = https://assets.immae.eu/logo.jpg | ||
27 | organization.contact.url = https://www.immae.eu/contacts_fr.html | ||
28 | organization.contact.email = contact@mail.immae.eu | ||
29 | organization.legal.url = https://www.immae.eu/mentions.html | ||
30 | organization.guide.technical = https://git.immae.eu/cgit/perso/Immae/Config/Nix.git/ | ||
31 | organization.status.level = ACTIVE | ||
32 | organization.status.description = En activité | ||
33 | organization.startdate = 01/01/2019 | ||
34 | |||
35 | organization.memberof.chatons.startdate = 01/07/2019 | ||
36 | organization.memberof.chatons.status.level = ACTIVE | ||
37 | organization.memberof.chatons.status.description = Participe au collectif | ||
38 | |||
39 | # [Subs] | ||
40 | # Un lien vers un fichier properties complémentaire (type URL, optionnel, ex. https://www.chapril.org/.well-known/chapril.properties). | ||
41 | subs.etherpad = https://www.immae.eu/.well-known/chatonsinfos/service-etherpad.properties | ||
42 | |||
43 | |||
44 | # [Metrics] | ||
45 | #metrics.http.total.2020 = | ||
46 | |||
diff --git a/modules/private/websites/immae/chatons/service-etherpad.properties b/modules/private/websites/immae/chatons/service-etherpad.properties deleted file mode 100644 index cfcab1d..0000000 --- a/modules/private/websites/immae/chatons/service-etherpad.properties +++ /dev/null | |||
@@ -1,164 +0,0 @@ | |||
1 | # service.properties | ||
2 | |||
3 | # [File] | ||
4 | # Classe du fichier (valeur parmi Federation/Organization/Service/Device, obligatoire). | ||
5 | file.class = service | ||
6 | |||
7 | # Version de l'ontologie utilisée utilisé (type STRING, recommandé). | ||
8 | file.protocol = ChatonsInfos-0.1 | ||
9 | |||
10 | # Date et horaire de génération du fichier (type DATETIME, recommandé). | ||
11 | file.datetime = 2021-01-04T00:01:00 | ||
12 | |||
13 | # Nom du générateur du fichier (type STRING, recommandé). Exemple : Florian avec ses doigts | ||
14 | file.generator = Immae avec ses doigts | ||
15 | |||
16 | |||
17 | # [Service] | ||
18 | # Nom du service (type STRING, obligatoire). Exemple : Pad Exemple | ||
19 | service.name = Etherpard | ||
20 | |||
21 | # Description du service (type STRING, recommandé). | ||
22 | service.description = Éditeur de texte collaboratif en temps réel. on peut y écrire simultanément. | ||
23 | |||
24 | # Lien du site web du service (type URL, recommandé). Exemple : https://pad.exemple.ext | ||
25 | service.website = https://ether.immae.eu | ||
26 | |||
27 | # Lien du logo du service (type URL, recommandé, ex. https://www.chapril.org/.well-known/statoolinfos/chapril-logo-mini.png. | ||
28 | service.logo = https://ether.immae.eu/favicon.ico | ||
29 | |||
30 | # Lien de la page web des mentions légales du service (type URL, recommandé). Exemple : https://pad.exemple.ext/cgu.html | ||
31 | service.legal.url = https://www.immae.eu/mentions.html | ||
32 | |||
33 | # Lien de la documentation web du service (type URL, recommandé). | ||
34 | service.guide.technical = https://git.immae.eu/cgit/perso/Immae/Config/Nix.git/ | ||
35 | |||
36 | # Lien des aides web pour le service (type URL, recommandé). | ||
37 | service.guide.user = | ||
38 | |||
39 | # Lien de la page de support du service (type URL, recommandé). Exemple : https://exemple.ext/contact.html | ||
40 | service.contact.url = https://www.immae.eu/contacts_fr.html | ||
41 | |||
42 | # Courriel du support du service (type EMAIL, recommandé). Exemple : contact@exemple.ext | ||
43 | service.contact.email = contact@mail.immae.eu | ||
44 | |||
45 | # Date d'ouverture du service (type DATE, recommandé). Exemple : 20/03/2020 | ||
46 | service.startdate = 01/01/2019 | ||
47 | |||
48 | # Date de fermeture du service (type DATE, optionnel). | ||
49 | service.enddate = | ||
50 | |||
51 | # Statut du service (un parmi {OK,WARNING,ALERT,ERROR,OVER,VOID}, obligatoire). | ||
52 | service.status.level = OK | ||
53 | |||
54 | # Description du statut du service (type STRING, optionnel, exemple : mise à jour en cours) | ||
55 | service.status.description = OK | ||
56 | |||
57 | # Inscriptions requises pour utiliser le service (parmi None;Free;Member;Client, obligatoire). | ||
58 | service.registration = None | ||
59 | |||
60 | # [Software] | ||
61 | # Nom du logiciel (type STRING, obligatoire). | ||
62 | software.name = Etherpad | ||
63 | |||
64 | # Lien du site web du logiciel (type URL, recommandé). | ||
65 | software.website = https://etherpad.org/ | ||
66 | |||
67 | # Lien web vers la licence du logiciel (type URL, obligatoire). | ||
68 | software.license.url = https://github.com/ether/etherpad-lite/blob/develop/LICENSE | ||
69 | |||
70 | # Nom de la licence du logiciel (type STRING, obligatoire). | ||
71 | software.license.name = Apache License Version 2.0 | ||
72 | |||
73 | # Version du logiciel (type STRING, recommandé). | ||
74 | software.version = 1.8.3 | ||
75 | |||
76 | # Lien web vers les sources du logiciel (type URL, recommandé). | ||
77 | software.source.url = https://github.com/ether/etherpad-lite | ||
78 | |||
79 | # Liste de modules optionnels installés (type VALUES, optionnel, ex. Nextcloud-Calendar,Nextcloud-Talk). | ||
80 | software.modules = ep_align,ep_bookmark,ep_colors,ep_comments_page,ep_cursortrace,ep_delete_empty_pads,ep_embedmedia,ep_font_size,ep_headings2,ep_immae_buttons,ep_ldapauth,ep_line_height,ep_markdown,ep_mypads,ep_page_view,ep_previewimages,ep_ruler,ep_scrollto,ep_set_title_on_pad,ep_subscript_and_superscript,ep_timesliderdiff | ||
81 | |||
82 | |||
83 | # [Host] | ||
84 | # Nom de l'hébergeur de la machine qui fait tourner le service, dans le cas d'un auto-hébergement c'est vous ! (type STRING, obligatoire). Exemple : OVH. | ||
85 | host.name = Hetzner | ||
86 | |||
87 | # Description de l'hébergeur (type STRING, optionnel). | ||
88 | host.description = | ||
89 | |||
90 | # Type de serveur (un parmi NANO, PHYSICAL, VIRTUAL, SHARED, CLOUD, obligatoire, ex. PHYSICAL). | ||
91 | # NANO : nano-ordinateur (Raspberry Pi, Olimex…) | ||
92 | # PHYSICAL : machine physique | ||
93 | # VIRTUAL : machine virtuelle | ||
94 | # SHARED : hébergement mutualisé | ||
95 | # CLOUD : infrastructure multi-serveurs | ||
96 | host.server.type = PHYSICAL | ||
97 | |||
98 | # Type d'hébergement (un parmi HOME, HOSTEDBAY, HOSTEDSERVER, OUTSOURCED, obligatoire, ex. HOSTEDSERVER). | ||
99 | # HOME : hébergement à domicile | ||
100 | # HOSTEDBAY : serveur personnel hébergé dans une baie d'un fournisseur | ||
101 | # HOSTEDSERVER : serveur d'un fournisseur | ||
102 | # OUTSOURCED : infrastructure totalement sous-traitée | ||
103 | host.provider.type = HOSTEDSERVER | ||
104 | |||
105 | # Si vous avez du mal à remplir les champs précédents, ce tableau pourra vous aider : | ||
106 | # NANO PHYSICAL VIRTUAL SHARED CLOUD | ||
107 | # HOME pm pm vm shared cloud | ||
108 | # HOSTEDBAY -- pm vm shared cloud | ||
109 | # HOSTEDSERVER -- pm vm shared cloud | ||
110 | # OUTSOURCED -- -- vps shared cloud | ||
111 | # Légendes : pm : physical machine ; vm : virtual machine ; vps : virtual private server. | ||
112 | |||
113 | # Pays de l'hébergeur (type STRING, recommandé). Exemple : France | ||
114 | host.country.name = Allemagne | ||
115 | |||
116 | # Code pays de l'hébergeur (type STRING, recommandé). Exemple : FR | ||
117 | host.country.code = DE | ||
118 | |||
119 | |||
120 | |||
121 | # [Subs] | ||
122 | # Un lien vers un fichier properties complémentaire (type URL, optionnel). Exemple : https:// | ||
123 | subs.foo = | ||
124 | |||
125 | # [Metrics] | ||
126 | # Nom du métrique (type STRING, recommandé). | ||
127 | metrics.http.total.name = Nombre total de requêtes HTTP | ||
128 | |||
129 | # Description du métrique (type STRING, recommandé). | ||
130 | metrics.http.total.description = Somme des requêtes HTTP ipv4 et ipv6. | ||
131 | |||
132 | # Métrique à valeur anuelle (type NUMERIC, optionnel). | ||
133 | metrics.http.total.2020 = | ||
134 | |||
135 | # Métrique à valeur mensuelle (type MONTHS, optionnel). | ||
136 | metrics.http.total.2020.months= | ||
137 | |||
138 | # Métrique à valeur hebdomadaire (type WEEKS, optionnel). | ||
139 | metrics.http.total.2020.weeks= | ||
140 | |||
141 | # Métrique à valeur quotidienne (type DAYS, optionnel). | ||
142 | metrics.http.total.2020.days= | ||
143 | |||
144 | |||
145 | # Nom du métrique (type STRING, recommandé). | ||
146 | metrics.visitors.total.name = Nombre total de visiteurs | ||
147 | |||
148 | # Description du métrique (type STRING, recommandé). | ||
149 | metrics.visitors.total.description = | ||
150 | |||
151 | # Métrique à valeur anuelle (type NUMERIC, optionnel). | ||
152 | metrics.visitors.total.2020 = | ||
153 | |||
154 | # Métrique à valeur mensuelle (type MONTHS, optionnel). | ||
155 | metrics.visitors.total.2020.months= | ||
156 | |||
157 | # Métrique à valeur hebdomadaire (type WEEKS, optionnel). | ||
158 | metrics.visitors.total.2020.weeks= | ||
159 | |||
160 | # Métrique à valeur quotidienne (type DAYS, optionnel). | ||
161 | metrics.visitors.total.2020.days= | ||
162 | |||
163 | |||
164 | # [Metrics spécifiques au service] | ||
diff --git a/modules/private/websites/immae/eurl/certificates/2021-certificate.crt b/modules/private/websites/immae/eurl/certificates/2021-certificate.crt deleted file mode 100644 index 671534c..0000000 --- a/modules/private/websites/immae/eurl/certificates/2021-certificate.crt +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE----- | ||
2 | MIIDyzCCArOgAwIBAgIUXNW7Lmte+fa5YxI7Gdznl7ZaLPIwDQYJKoZIhvcNAQEL | ||
3 | BQAwdTELMAkGA1UEBhMCRlIxGDAWBgNVBAgMD0FscGVzLU1hcml0aW1lczEPMA0G | ||
4 | A1UEBwwGR3Jhc3NlMRUwEwYDVQQKDAxJbW1hZUV1IEVVUkwxJDAiBgkqhkiG9w0B | ||
5 | CQEWFWNvbnRhY3RAbWFpbC5pbW1hZS5ldTAeFw0yMTAxMTkwMDI5MDlaFw0yMjAx | ||
6 | MTkwMDI5MDlaMHUxCzAJBgNVBAYTAkZSMRgwFgYDVQQIDA9BbHBlcy1NYXJpdGlt | ||
7 | ZXMxDzANBgNVBAcMBkdyYXNzZTEVMBMGA1UECgwMSW1tYWVFdSBFVVJMMSQwIgYJ | ||
8 | KoZIhvcNAQkBFhVjb250YWN0QG1haWwuaW1tYWUuZXUwggEiMA0GCSqGSIb3DQEB | ||
9 | AQUAA4IBDwAwggEKAoIBAQDeyWKvTu2kuJ2HSgRzZZL6yFNHUXGgcl/q8vlRKFI4 | ||
10 | P0yHwcEwDCaCXquqS09WN99H55aNTjHfnu70dZXogyWHGk4vlaUkGiUoCAYK5tFU | ||
11 | 34fzpZuInhBL8nRY0pRV4H2t02jQMyiYowZXTqR86BRocbXZ4TY5EwD/hlrH6iDc | ||
12 | pIlC7cVnWV4J5qXX9fXALbpXseD9PF0/y2tP5dM658jBL9KdW1PqlPGudvB44Z+a | ||
13 | pE8XCXF9PGrVBNN7aPmizOb42scx/2XghX1DYCikiUf8m+FGjidxGlXmj4B6Dukp | ||
14 | b7RxdkY7p97svH91uMQuUvDW5d93ZiatHNeYuAl8yI39AgMBAAGjUzBRMB0GA1Ud | ||
15 | DgQWBBSgsFwzEybKyLF/Bkuz7FA5SwfwPTAfBgNVHSMEGDAWgBSgsFwzEybKyLF/ | ||
16 | Bkuz7FA5SwfwPTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDX | ||
17 | Wij/gDT+7N/pSSVWImiYoe+/KsAJd0TLs39GJkvW0114RXKINYNU8exNY7rKMVCl | ||
18 | TKePEevSo5CCartNfLXGIr3uqPlR+V3XF6KmyMSiB6k+GukoUtUg2Bp7ESGlpZXi | ||
19 | wkHYclk0NIzxWyUrzNdflxu3gPU278qFMbUIlbdWNsHtrLbpHypelPQ+IaEbNoWV | ||
20 | Q+M8Vg6ifsDmhp7TqFXpIoGa6CIxXuknDOidBpeE9kPjVu0kKrjXQULirNl3eEe6 | ||
21 | H1XUQ7lSdt/l3N1cHTj70x2xIi6fdwPQRqhXILrIuST+C0wpPiqPCv1rfcwh0PvU | ||
22 | mZVZ/+83y3Zuo9lVqkbB | ||
23 | -----END CERTIFICATE----- | ||
diff --git a/modules/private/websites/immae/matrix/client b/modules/private/websites/immae/matrix/client deleted file mode 100644 index 2769de5..0000000 --- a/modules/private/websites/immae/matrix/client +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | { | ||
2 | "m.homeserver": { | ||
3 | "base_url": "https://immae.ems.host" | ||
4 | }, | ||
5 | "m.identity_server": { | ||
6 | "base_url": "https://vector.im" | ||
7 | } | ||
8 | } | ||
diff --git a/modules/private/websites/immae/matrix/server b/modules/private/websites/immae/matrix/server deleted file mode 100644 index 449155a..0000000 --- a/modules/private/websites/immae/matrix/server +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | { | ||
2 | "m.server": "immae.ems.host:443" | ||
3 | } | ||
diff --git a/modules/private/websites/immae/production.nix b/modules/private/websites/immae/production.nix deleted file mode 100644 index 8b4998f..0000000 --- a/modules/private/websites/immae/production.nix +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.immae.production; | ||
4 | varDir = "/var/lib/buildbot/outputs/immae/blog"; | ||
5 | coursDir = "/var/lib/buildbot/outputs/immae/cours"; | ||
6 | rechercheDir = "/var/lib/buildbot/outputs/immae/recherche"; | ||
7 | recettesDir = "/var/lib/buildbot/outputs/immae/recettes"; | ||
8 | historyDir = "/var/lib/buildbot/outputs/immae/history"; | ||
9 | docsDir = "/var/lib/buildbot/outputs/immae/docs/"; | ||
10 | env = config.myEnv.websites.immae; | ||
11 | in { | ||
12 | options.myServices.websites.immae.production.enable = lib.mkEnableOption "enable Immae's website"; | ||
13 | |||
14 | config = lib.mkIf cfg.enable { | ||
15 | services.webstats.sites = [ { name = "www.immae.eu"; } ]; | ||
16 | |||
17 | services.websites.env.production.vhostConfs.immae_production = { | ||
18 | certName = "immae"; | ||
19 | addToCerts = true; | ||
20 | certMainHost = "www.immae.eu"; | ||
21 | hosts = [ "www.immae.eu" "immae.eu" ]; | ||
22 | root = varDir; | ||
23 | extraConfig = [ | ||
24 | '' | ||
25 | Use Stats www.immae.eu | ||
26 | Header always set Strict-Transport-Security "max-age=31536000" | ||
27 | |||
28 | <LocationMatch /.well-known/(webfinger|host-meta)> | ||
29 | Header always set Referrer-Policy "strict-origin-when-cross-origin" | ||
30 | RequestHeader set X-Forwarded-Proto "https" | ||
31 | |||
32 | RewriteRule ^(.*)$ https://mastodon.immae.eu%{REQUEST_URI} [QSA,L] | ||
33 | </LocationMatch> | ||
34 | |||
35 | RewriteEngine On | ||
36 | RewriteCond "%{REQUEST_URI}" "!^/.well-known/(webfinger|host-meta)" | ||
37 | RewriteCond "%{HTTP_HOST}" "!^www\.immae\.eu$" [NC] | ||
38 | RewriteRule ^(.+)$ https://www.immae.eu$1 [R=302,L] | ||
39 | |||
40 | <Directory ${varDir}> | ||
41 | DirectoryIndex index.htm index.html | ||
42 | Options Indexes FollowSymLinks MultiViews Includes | ||
43 | AllowOverride All | ||
44 | Require all granted | ||
45 | </Directory> | ||
46 | |||
47 | Alias /.well-known/chatonsinfos ${./chatons} | ||
48 | <Directory ${./chatons}> | ||
49 | Options Indexes FollowSymLinks MultiViews Includes | ||
50 | AllowOverride None | ||
51 | Require all granted | ||
52 | </Directory> | ||
53 | |||
54 | Alias /.well-known/matrix ${./matrix} | ||
55 | <Directory ${./matrix}> | ||
56 | Options Indexes FollowSymLinks MultiViews Includes | ||
57 | AllowOverride None | ||
58 | Require all granted | ||
59 | Header always set Access-Control-Allow-Origin "*" | ||
60 | </Directory> | ||
61 | |||
62 | Alias /cours ${coursDir} | ||
63 | <Directory ${coursDir}> | ||
64 | DirectoryIndex index.htm index.html | ||
65 | Options Indexes FollowSymLinks MultiViews Includes | ||
66 | AllowOverride All | ||
67 | Require all granted | ||
68 | </Directory> | ||
69 | |||
70 | Alias /docs ${docsDir} | ||
71 | <Directory ${docsDir}> | ||
72 | DirectoryIndex index.htm index.html | ||
73 | Options Indexes FollowSymLinks MultiViews Includes | ||
74 | AllowOverride All | ||
75 | Require all granted | ||
76 | </Directory> | ||
77 | |||
78 | Alias /eurl ${./eurl} | ||
79 | <Directory ${./eurl}> | ||
80 | DirectoryIndex index.htm index.html | ||
81 | Options Indexes FollowSymLinks MultiViews Includes | ||
82 | AllowOverride None | ||
83 | Require all granted | ||
84 | </Directory> | ||
85 | |||
86 | Alias /recherche ${rechercheDir} | ||
87 | <Directory ${rechercheDir}> | ||
88 | DirectoryIndex index.htm index.html | ||
89 | Options Indexes FollowSymLinks MultiViews Includes | ||
90 | AllowOverride All | ||
91 | Require all granted | ||
92 | </Directory> | ||
93 | |||
94 | Alias /recettes ${recettesDir} | ||
95 | <Directory ${recettesDir}> | ||
96 | DirectoryIndex index.htm index.html | ||
97 | Options Indexes FollowSymLinks MultiViews Includes | ||
98 | AllowOverride All | ||
99 | Require all granted | ||
100 | </Directory> | ||
101 | |||
102 | Alias /history ${historyDir} | ||
103 | <Directory ${historyDir}> | ||
104 | DirectoryIndex index.html | ||
105 | AllowOverride None | ||
106 | Require all granted | ||
107 | </Directory> | ||
108 | '' | ||
109 | ]; | ||
110 | }; | ||
111 | |||
112 | services.websites.env.production.vhostConfs.immae_fr = { | ||
113 | certName = "immae"; | ||
114 | addToCerts = true; | ||
115 | hosts = [ "www.immae.fr" "immae.fr" ]; | ||
116 | root = null; | ||
117 | extraConfig = [ '' | ||
118 | RedirectMatch 301 ^/((?!\.well-known.*$).*)$ https://www.immae.eu/chapeaux/ | ||
119 | '' ]; | ||
120 | }; | ||
121 | |||
122 | services.websites.env.production.vhostConfs.immae_bouya = { | ||
123 | certName = "immae"; | ||
124 | addToCerts = true; | ||
125 | hosts = [ "bouya.org" "www.bouya.org" ]; | ||
126 | root = rechercheDir; | ||
127 | extraConfig = [ '' | ||
128 | <Directory ${rechercheDir}> | ||
129 | DirectoryIndex index.htm index.html | ||
130 | Options Indexes FollowSymLinks MultiViews Includes | ||
131 | AllowOverride All | ||
132 | Require all granted | ||
133 | </Directory> | ||
134 | '' ]; | ||
135 | }; | ||
136 | }; | ||
137 | } | ||
diff --git a/modules/private/websites/immae/release.nix b/modules/private/websites/immae/release.nix deleted file mode 100644 index d06af87..0000000 --- a/modules/private/websites/immae/release.nix +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.immae.release; | ||
4 | varDir = "/var/lib/ftp/release.immae.eu"; | ||
5 | env = config.myEnv.websites.release; | ||
6 | in { | ||
7 | options.myServices.websites.immae.release.enable = lib.mkEnableOption "enable Release' website"; | ||
8 | |||
9 | config = lib.mkIf cfg.enable { | ||
10 | services.webstats.sites = [ { name = "release.immae.eu"; } ]; | ||
11 | |||
12 | services.websites.env.production.vhostConfs.immae_release = { | ||
13 | certName = "immae"; | ||
14 | addToCerts = true; | ||
15 | hosts = [ "release.immae.eu" ]; | ||
16 | root = varDir; | ||
17 | extraConfig = [ | ||
18 | '' | ||
19 | Use Stats release.immae.eu | ||
20 | |||
21 | Use Apaxy "${varDir}" "title .duplicity-ignore" | ||
22 | <Directory "${varDir}"> | ||
23 | Use LDAPConnect | ||
24 | Options Indexes | ||
25 | AllowOverride All | ||
26 | Require all granted | ||
27 | </Directory> | ||
28 | |||
29 | <Directory "${varDir}/packages"> | ||
30 | Use LDAPConnect | ||
31 | Options Indexes FollowSymlinks | ||
32 | AllowOverride None | ||
33 | Require all granted | ||
34 | </Directory> | ||
35 | '' | ||
36 | ]; | ||
37 | }; | ||
38 | }; | ||
39 | } | ||
diff --git a/modules/private/websites/immae/temp.nix b/modules/private/websites/immae/temp.nix deleted file mode 100644 index 19aef1a..0000000 --- a/modules/private/websites/immae/temp.nix +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.immae.temp; | ||
4 | varDir = "/var/lib/immae_temp"; | ||
5 | env = config.myEnv.websites.immae.temp; | ||
6 | in { | ||
7 | options.myServices.websites.immae.temp.enable = lib.mkEnableOption "enable Temp' website"; | ||
8 | |||
9 | config = lib.mkIf cfg.enable { | ||
10 | services.websites.env.production.vhostConfs.immae_temp = { | ||
11 | certName = "immae"; | ||
12 | addToCerts = true; | ||
13 | hosts = [ "temp.immae.eu" ]; | ||
14 | root = null; | ||
15 | extraConfig = [ '' | ||
16 | ProxyVia On | ||
17 | ProxyRequests Off | ||
18 | ProxyPreserveHost On | ||
19 | ProxyPass / unix:///run/surfer/listen.sock|http://temp.immae.eu/ | ||
20 | ProxyPassReverse / unix:///run/surfer/listen.sock|http://temp.immae.eu/ | ||
21 | <Proxy *> | ||
22 | Options FollowSymLinks MultiViews | ||
23 | AllowOverride None | ||
24 | Require all granted | ||
25 | </Proxy> | ||
26 | '' ]; | ||
27 | }; | ||
28 | |||
29 | secrets.keys."webapps/surfer" = { | ||
30 | permissions = "0400"; | ||
31 | user = "wwwrun"; | ||
32 | group = "wwwrun"; | ||
33 | text = '' | ||
34 | CLOUDRON_LDAP_URL=ldaps://${env.ldap.host} | ||
35 | CLOUDRON_LDAP_USERS_BASE_DN=${env.ldap.base} | ||
36 | TOKENSTORE_FILE=/var/lib/surfer/tokens.json | ||
37 | CLOUDRON_LDAP_BIND_DN=${env.ldap.dn} | ||
38 | CLOUDRON_LDAP_BIND_PASSWORD=${env.ldap.password} | ||
39 | CLOUDRON_LDAP_USERS_BASE_DN=${env.ldap.base} | ||
40 | CLOUDRON_LDAP_FILTER="${env.ldap.filter}" | ||
41 | LISTEN=/run/surfer/listen.sock | ||
42 | ''; | ||
43 | }; | ||
44 | |||
45 | systemd.services.surfer = { | ||
46 | description = "Surfer"; | ||
47 | wantedBy = [ "multi-user.target" ]; | ||
48 | after = [ "network.target" ]; | ||
49 | |||
50 | script = '' | ||
51 | exec ${pkgs.webapps.surfer}/bin/surfer-server ${varDir} | ||
52 | ''; | ||
53 | serviceConfig = { | ||
54 | EnvironmentFile = config.secrets.fullPaths."webapps/surfer"; | ||
55 | User = "wwwrun"; | ||
56 | Group = "wwwrun"; | ||
57 | StateDirectory = "surfer"; | ||
58 | RuntimeDirectory = "surfer"; | ||
59 | Type = "simple"; | ||
60 | }; | ||
61 | }; | ||
62 | }; | ||
63 | } | ||
64 | |||
diff --git a/modules/private/websites/isabelle/aten_app/default.nix b/modules/private/websites/isabelle/aten_app/default.nix deleted file mode 100644 index f967b9a..0000000 --- a/modules/private/websites/isabelle/aten_app/default.nix +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | { environment ? "prod" | ||
2 | , varDir ? "/var/lib/aten_${environment}" | ||
3 | , composerEnv, fetchgit, runCommand, nodejs-10_x, jq, libsass, python, fetchurl, yarn2nix-moretea, yarn, sources }: | ||
4 | let | ||
5 | yarn2nix-moretea' = yarn2nix-moretea.override({ | ||
6 | yarn = yarn.override({ nodejs = nodejs-10_x; }); | ||
7 | nodejs = nodejs-10_x; | ||
8 | }); | ||
9 | packagesource = sources.websites-isabelle-aten; | ||
10 | packagejson = runCommand "package.json" { buildInputs = [ jq ]; } '' | ||
11 | cat ${packagesource}/package.json | jq -r '.version = "v1.0.0"|.name="aten"' > $out | ||
12 | ''; | ||
13 | yarnModules = yarn2nix-moretea'.mkYarnModules rec { | ||
14 | name = "aten-yarn"; | ||
15 | pname = name; | ||
16 | version = "v1.0.0"; | ||
17 | packageJSON = packagejson; | ||
18 | yarnLock = "${packagesource}/yarn.lock"; | ||
19 | yarnNix = ./yarn-packages.nix; | ||
20 | pkgConfig = { | ||
21 | node-sass = { | ||
22 | buildInputs = [ libsass python ]; | ||
23 | postInstall = let | ||
24 | nodeHeaders = fetchurl { | ||
25 | url = "https://nodejs.org/download/release/v${nodejs-10_x.version}/node-v${nodejs-10_x.version}-headers.tar.gz"; | ||
26 | sha256 = "15hkcbs328d3rc1s14rmky8lh8d3rr86l8k0bia0ggxzwl23lj9c"; | ||
27 | }; | ||
28 | in | ||
29 | '' | ||
30 | node scripts/build.js --tarball=${nodeHeaders} | ||
31 | ''; | ||
32 | }; | ||
33 | }; | ||
34 | }; | ||
35 | app = composerEnv.buildPackage ( | ||
36 | import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // | ||
37 | rec { | ||
38 | version = packagesource.version; | ||
39 | pname = "aten"; | ||
40 | name = "${pname}-${version}"; | ||
41 | src = packagesource; | ||
42 | noDev = (environment == "prod"); | ||
43 | preInstall = '' | ||
44 | export SYMFONY_ENV="${environment}" | ||
45 | export APP_ENV="${environment}" | ||
46 | ''; | ||
47 | postInstall = '' | ||
48 | ln -sf ${yarnModules}/node_modules . | ||
49 | yarn run --offline encore production | ||
50 | rm -rf var/{log,cache} | ||
51 | ln -sf ${varDir}/{log,cache} var/ | ||
52 | ''; | ||
53 | buildInputs = [ yarnModules yarn2nix-moretea'.yarn ]; | ||
54 | passthru = { | ||
55 | inherit varDir; | ||
56 | inherit environment; | ||
57 | webRoot = "${app}/public"; | ||
58 | }; | ||
59 | } | ||
60 | ); | ||
61 | in app | ||
diff --git a/modules/private/websites/isabelle/aten_app/php-packages.nix b/modules/private/websites/isabelle/aten_app/php-packages.nix deleted file mode 100644 index 3647938..0000000 --- a/modules/private/websites/isabelle/aten_app/php-packages.nix +++ /dev/null | |||
@@ -1,740 +0,0 @@ | |||
1 | # Generated with composer2nix and adapted to return only the list of | ||
2 | # packages | ||
3 | { composerEnv, fetchurl, fetchgit ? null }: | ||
4 | { | ||
5 | packages = { | ||
6 | "behat/transliterator" = { | ||
7 | targetDir = ""; | ||
8 | src = composerEnv.buildZipPackage { | ||
9 | name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c"; | ||
10 | src = fetchurl { | ||
11 | url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c; | ||
12 | sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0"; | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
16 | "doctrine/annotations" = { | ||
17 | targetDir = ""; | ||
18 | src = composerEnv.buildZipPackage { | ||
19 | name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"; | ||
20 | src = fetchurl { | ||
21 | url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5; | ||
22 | sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7"; | ||
23 | }; | ||
24 | }; | ||
25 | }; | ||
26 | "doctrine/cache" = { | ||
27 | targetDir = ""; | ||
28 | src = composerEnv.buildZipPackage { | ||
29 | name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57"; | ||
30 | src = fetchurl { | ||
31 | url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57; | ||
32 | sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | "doctrine/collections" = { | ||
37 | targetDir = ""; | ||
38 | src = composerEnv.buildZipPackage { | ||
39 | name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf"; | ||
40 | src = fetchurl { | ||
41 | url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf; | ||
42 | sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis"; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | "doctrine/common" = { | ||
47 | targetDir = ""; | ||
48 | src = composerEnv.buildZipPackage { | ||
49 | name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d"; | ||
50 | src = fetchurl { | ||
51 | url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d; | ||
52 | sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na"; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
56 | "doctrine/dbal" = { | ||
57 | targetDir = ""; | ||
58 | src = composerEnv.buildZipPackage { | ||
59 | name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9"; | ||
60 | src = fetchurl { | ||
61 | url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9; | ||
62 | sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj"; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | "doctrine/doctrine-bundle" = { | ||
67 | targetDir = ""; | ||
68 | src = composerEnv.buildZipPackage { | ||
69 | name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d"; | ||
70 | src = fetchurl { | ||
71 | url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d; | ||
72 | sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | "doctrine/doctrine-cache-bundle" = { | ||
77 | targetDir = ""; | ||
78 | src = composerEnv.buildZipPackage { | ||
79 | name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927"; | ||
80 | src = fetchurl { | ||
81 | url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927; | ||
82 | sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | "doctrine/doctrine-migrations-bundle" = { | ||
87 | targetDir = ""; | ||
88 | src = composerEnv.buildZipPackage { | ||
89 | name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce"; | ||
90 | src = fetchurl { | ||
91 | url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce; | ||
92 | sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn"; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | "doctrine/event-manager" = { | ||
97 | targetDir = ""; | ||
98 | src = composerEnv.buildZipPackage { | ||
99 | name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3"; | ||
100 | src = fetchurl { | ||
101 | url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3; | ||
102 | sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88"; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
106 | "doctrine/inflector" = { | ||
107 | targetDir = ""; | ||
108 | src = composerEnv.buildZipPackage { | ||
109 | name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a"; | ||
110 | src = fetchurl { | ||
111 | url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a; | ||
112 | sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5"; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | "doctrine/instantiator" = { | ||
117 | targetDir = ""; | ||
118 | src = composerEnv.buildZipPackage { | ||
119 | name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"; | ||
120 | src = fetchurl { | ||
121 | url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda; | ||
122 | sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy"; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | "doctrine/lexer" = { | ||
127 | targetDir = ""; | ||
128 | src = composerEnv.buildZipPackage { | ||
129 | name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c"; | ||
130 | src = fetchurl { | ||
131 | url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c; | ||
132 | sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74"; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | "doctrine/migrations" = { | ||
137 | targetDir = ""; | ||
138 | src = composerEnv.buildZipPackage { | ||
139 | name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6"; | ||
140 | src = fetchurl { | ||
141 | url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6; | ||
142 | sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld"; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | "doctrine/orm" = { | ||
147 | targetDir = ""; | ||
148 | src = composerEnv.buildZipPackage { | ||
149 | name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8"; | ||
150 | src = fetchurl { | ||
151 | url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8; | ||
152 | sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls"; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | "doctrine/persistence" = { | ||
157 | targetDir = ""; | ||
158 | src = composerEnv.buildZipPackage { | ||
159 | name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38"; | ||
160 | src = fetchurl { | ||
161 | url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38; | ||
162 | sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7"; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | "doctrine/reflection" = { | ||
167 | targetDir = ""; | ||
168 | src = composerEnv.buildZipPackage { | ||
169 | name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6"; | ||
170 | src = fetchurl { | ||
171 | url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6; | ||
172 | sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | "gedmo/doctrine-extensions" = { | ||
177 | targetDir = ""; | ||
178 | src = composerEnv.buildZipPackage { | ||
179 | name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27"; | ||
180 | src = fetchurl { | ||
181 | url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27; | ||
182 | sha256 = "1i33xy9s18rncc1fllwi2qi7hrxj8g762fvgl9np7xndxa7kclyb"; | ||
183 | }; | ||
184 | }; | ||
185 | }; | ||
186 | "giggsey/libphonenumber-for-php" = { | ||
187 | targetDir = ""; | ||
188 | src = composerEnv.buildZipPackage { | ||
189 | name = "giggsey-libphonenumber-for-php-a71f260c2efce10ded8af030a20fa13edfb0e9be"; | ||
190 | src = fetchurl { | ||
191 | url = https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/a71f260c2efce10ded8af030a20fa13edfb0e9be; | ||
192 | sha256 = "15id03c1msyhri7j4i63r535g3g56n3x99i8301as63w7m1ybfj5"; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | "giggsey/locale" = { | ||
197 | targetDir = ""; | ||
198 | src = composerEnv.buildZipPackage { | ||
199 | name = "giggsey-locale-da6845720b5d104d319d7e84576f54e44dd9e4f5"; | ||
200 | src = fetchurl { | ||
201 | url = https://api.github.com/repos/giggsey/Locale/zipball/da6845720b5d104d319d7e84576f54e44dd9e4f5; | ||
202 | sha256 = "0gc8im06h5l794a0drd74s3inps22jr1zr5wnw0b89m06d4nw42j"; | ||
203 | }; | ||
204 | }; | ||
205 | }; | ||
206 | "jdorn/sql-formatter" = { | ||
207 | targetDir = ""; | ||
208 | src = composerEnv.buildZipPackage { | ||
209 | name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc"; | ||
210 | src = fetchurl { | ||
211 | url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc; | ||
212 | sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | "ocramius/package-versions" = { | ||
217 | targetDir = ""; | ||
218 | needsModifyRights = true; | ||
219 | src = composerEnv.buildZipPackage { | ||
220 | name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f"; | ||
221 | src = fetchurl { | ||
222 | url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f; | ||
223 | sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881"; | ||
224 | }; | ||
225 | }; | ||
226 | }; | ||
227 | "ocramius/proxy-manager" = { | ||
228 | targetDir = ""; | ||
229 | src = composerEnv.buildZipPackage { | ||
230 | name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1"; | ||
231 | src = fetchurl { | ||
232 | url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1; | ||
233 | sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn"; | ||
234 | }; | ||
235 | }; | ||
236 | }; | ||
237 | "opensoft/doctrine-postgres-types" = { | ||
238 | targetDir = ""; | ||
239 | src = composerEnv.buildZipPackage { | ||
240 | name = "opensoft-doctrine-postgres-types-7e69bdfeb2ae61c2f1e90872370cdf0135fb3006"; | ||
241 | src = fetchurl { | ||
242 | url = https://api.github.com/repos/opensoft/doctrine-postgres-types/zipball/7e69bdfeb2ae61c2f1e90872370cdf0135fb3006; | ||
243 | sha256 = "1v9rjq82dxnpnb6bir6irkj54324a02qlybayvq2gf2807241bjj"; | ||
244 | }; | ||
245 | }; | ||
246 | }; | ||
247 | "presta/sitemap-bundle" = { | ||
248 | targetDir = ""; | ||
249 | src = composerEnv.buildZipPackage { | ||
250 | name = "presta-sitemap-bundle-16a2c0eae7320e3647013e48026a6a6bd14f75df"; | ||
251 | src = fetchurl { | ||
252 | url = https://api.github.com/repos/prestaconcept/PrestaSitemapBundle/zipball/16a2c0eae7320e3647013e48026a6a6bd14f75df; | ||
253 | sha256 = "1hqh144awazafa2vpv091h9pyqrppbalcvzf9c1n6h387jwwj5l8"; | ||
254 | }; | ||
255 | }; | ||
256 | }; | ||
257 | "psr/cache" = { | ||
258 | targetDir = ""; | ||
259 | src = composerEnv.buildZipPackage { | ||
260 | name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8"; | ||
261 | src = fetchurl { | ||
262 | url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8; | ||
263 | sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz"; | ||
264 | }; | ||
265 | }; | ||
266 | }; | ||
267 | "psr/container" = { | ||
268 | targetDir = ""; | ||
269 | src = composerEnv.buildZipPackage { | ||
270 | name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f"; | ||
271 | src = fetchurl { | ||
272 | url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f; | ||
273 | sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j"; | ||
274 | }; | ||
275 | }; | ||
276 | }; | ||
277 | "psr/log" = { | ||
278 | targetDir = ""; | ||
279 | src = composerEnv.buildZipPackage { | ||
280 | name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"; | ||
281 | src = fetchurl { | ||
282 | url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd; | ||
283 | sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d"; | ||
284 | }; | ||
285 | }; | ||
286 | }; | ||
287 | "psr/simple-cache" = { | ||
288 | targetDir = ""; | ||
289 | src = composerEnv.buildZipPackage { | ||
290 | name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"; | ||
291 | src = fetchurl { | ||
292 | url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b; | ||
293 | sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw"; | ||
294 | }; | ||
295 | }; | ||
296 | }; | ||
297 | "sensio/framework-extra-bundle" = { | ||
298 | targetDir = ""; | ||
299 | src = composerEnv.buildZipPackage { | ||
300 | name = "sensio-framework-extra-bundle-1fdf591c4b388e62dbb2579de89c1560b33f865d"; | ||
301 | src = fetchurl { | ||
302 | url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/1fdf591c4b388e62dbb2579de89c1560b33f865d; | ||
303 | sha256 = "0hhw3lsvgm78rqphgmdrg2inc9997lwx0290x71hsixk08khnlb1"; | ||
304 | }; | ||
305 | }; | ||
306 | }; | ||
307 | "symfony/asset" = { | ||
308 | targetDir = ""; | ||
309 | src = composerEnv.buildZipPackage { | ||
310 | name = "symfony-asset-fb06338fd3762f8615b51a58e5e9299ccca03876"; | ||
311 | src = fetchurl { | ||
312 | url = https://api.github.com/repos/symfony/asset/zipball/fb06338fd3762f8615b51a58e5e9299ccca03876; | ||
313 | sha256 = "19fbnz2h4z5nxzcy8n3bfbcjwgncabwdlxh70qfkr7bswpsxr6p3"; | ||
314 | }; | ||
315 | }; | ||
316 | }; | ||
317 | "symfony/cache" = { | ||
318 | targetDir = ""; | ||
319 | src = composerEnv.buildZipPackage { | ||
320 | name = "symfony-cache-5c4b50d6ba4f1c8955c3454444c1e3cfddaaad41"; | ||
321 | src = fetchurl { | ||
322 | url = https://api.github.com/repos/symfony/cache/zipball/5c4b50d6ba4f1c8955c3454444c1e3cfddaaad41; | ||
323 | sha256 = "1wn2rd3n5nj300vsygh60vbjh2k9lh7s9c3ayl614hahrfcfb29s"; | ||
324 | }; | ||
325 | }; | ||
326 | }; | ||
327 | "symfony/config" = { | ||
328 | targetDir = ""; | ||
329 | src = composerEnv.buildZipPackage { | ||
330 | name = "symfony-config-005d9a083d03f588677d15391a716b1ac9b887c0"; | ||
331 | src = fetchurl { | ||
332 | url = https://api.github.com/repos/symfony/config/zipball/005d9a083d03f588677d15391a716b1ac9b887c0; | ||
333 | sha256 = "1h20qhkzsl5xwzs3rg1yyaq5yn8rg92krfzmpmfgv7d3jp1v03as"; | ||
334 | }; | ||
335 | }; | ||
336 | }; | ||
337 | "symfony/console" = { | ||
338 | targetDir = ""; | ||
339 | src = composerEnv.buildZipPackage { | ||
340 | name = "symfony-console-4dff24e5d01e713818805c1862d2e3f901ee7dd0"; | ||
341 | src = fetchurl { | ||
342 | url = https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0; | ||
343 | sha256 = "016l3hxcbvyxz3kkkynk12gi8949hl3x09dwsh0x5wqikgnp64c2"; | ||
344 | }; | ||
345 | }; | ||
346 | }; | ||
347 | "symfony/contracts" = { | ||
348 | targetDir = ""; | ||
349 | src = composerEnv.buildZipPackage { | ||
350 | name = "symfony-contracts-1aa7ab2429c3d594dd70689604b5cf7421254cdf"; | ||
351 | src = fetchurl { | ||
352 | url = https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf; | ||
353 | sha256 = "0jhav49lngmrjg4r5kdpmc7lhmasn2fzkmbvhw62l4i1vnm5r5bm"; | ||
354 | }; | ||
355 | }; | ||
356 | }; | ||
357 | "symfony/debug" = { | ||
358 | targetDir = ""; | ||
359 | src = composerEnv.buildZipPackage { | ||
360 | name = "symfony-debug-e0a2b92ee0b5b934f973d90c2f58e18af109d276"; | ||
361 | src = fetchurl { | ||
362 | url = https://api.github.com/repos/symfony/debug/zipball/e0a2b92ee0b5b934f973d90c2f58e18af109d276; | ||
363 | sha256 = "0yzyaprsrmbc93gzwr1wdjx05kin7b4hqy5w74zkcxyab09pan7f"; | ||
364 | }; | ||
365 | }; | ||
366 | }; | ||
367 | "symfony/dependency-injection" = { | ||
368 | targetDir = ""; | ||
369 | src = composerEnv.buildZipPackage { | ||
370 | name = "symfony-dependency-injection-e4adc57a48d3fa7f394edfffa9e954086d7740e5"; | ||
371 | src = fetchurl { | ||
372 | url = https://api.github.com/repos/symfony/dependency-injection/zipball/e4adc57a48d3fa7f394edfffa9e954086d7740e5; | ||
373 | sha256 = "0g8ssf7qm0jf0anvflp033xwdim9z4g73k3kz1vs3smw4pffl6nv"; | ||
374 | }; | ||
375 | }; | ||
376 | }; | ||
377 | "symfony/doctrine-bridge" = { | ||
378 | targetDir = ""; | ||
379 | src = composerEnv.buildZipPackage { | ||
380 | name = "symfony-doctrine-bridge-3466c911438e176c20e1943c529131889432d12f"; | ||
381 | src = fetchurl { | ||
382 | url = https://api.github.com/repos/symfony/doctrine-bridge/zipball/3466c911438e176c20e1943c529131889432d12f; | ||
383 | sha256 = "0qq644z7l9j9fyydlj68p9f43a9i20rnmxy8pkq5sn4r0yn06bb8"; | ||
384 | }; | ||
385 | }; | ||
386 | }; | ||
387 | "symfony/event-dispatcher" = { | ||
388 | targetDir = ""; | ||
389 | src = composerEnv.buildZipPackage { | ||
390 | name = "symfony-event-dispatcher-921f49c3158a276d27c0d770a5a347a3b718b328"; | ||
391 | src = fetchurl { | ||
392 | url = https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328; | ||
393 | sha256 = "05i8syqbzhh11cf2i9d64s8b5x41mfsribfa62rvc0mhbqk7ifzf"; | ||
394 | }; | ||
395 | }; | ||
396 | }; | ||
397 | "symfony/filesystem" = { | ||
398 | targetDir = ""; | ||
399 | src = composerEnv.buildZipPackage { | ||
400 | name = "symfony-filesystem-2f4c8b999b3b7cadb2a69390b01af70886753710"; | ||
401 | src = fetchurl { | ||
402 | url = https://api.github.com/repos/symfony/filesystem/zipball/2f4c8b999b3b7cadb2a69390b01af70886753710; | ||
403 | sha256 = "1gi14q8gf250a3rzmr6arb08ljpzpfg868vm0z21fgmf0zh0dqr6"; | ||
404 | }; | ||
405 | }; | ||
406 | }; | ||
407 | "symfony/finder" = { | ||
408 | targetDir = ""; | ||
409 | src = composerEnv.buildZipPackage { | ||
410 | name = "symfony-finder-e53d477d7b5c4982d0e1bfd2298dbee63d01441d"; | ||
411 | src = fetchurl { | ||
412 | url = https://api.github.com/repos/symfony/finder/zipball/e53d477d7b5c4982d0e1bfd2298dbee63d01441d; | ||
413 | sha256 = "1mpxwgvfqzng36xbdvda6nk1zidyr9dgswccmr4z15k0i9gi0qsj"; | ||
414 | }; | ||
415 | }; | ||
416 | }; | ||
417 | "symfony/flex" = { | ||
418 | targetDir = ""; | ||
419 | src = composerEnv.buildZipPackage { | ||
420 | name = "symfony-flex-955774ecf07b10230bb5b44e150ba078b45f68fa"; | ||
421 | src = fetchurl { | ||
422 | url = https://api.github.com/repos/symfony/flex/zipball/955774ecf07b10230bb5b44e150ba078b45f68fa; | ||
423 | sha256 = "069v1s810mq5kqvx68x87lmlz0h9b2kgla1znnibnbh6j6k4qg6d"; | ||
424 | }; | ||
425 | }; | ||
426 | }; | ||
427 | "symfony/form" = { | ||
428 | targetDir = ""; | ||
429 | src = composerEnv.buildZipPackage { | ||
430 | name = "symfony-form-5ab767b7732154ca6f45c92e30e081178edf30ad"; | ||
431 | src = fetchurl { | ||
432 | url = https://api.github.com/repos/symfony/form/zipball/5ab767b7732154ca6f45c92e30e081178edf30ad; | ||
433 | sha256 = "1g65a7hl1kk6rpa6q52fyzy6vkjafr3233hi2qiggyp0qys20kcc"; | ||
434 | }; | ||
435 | }; | ||
436 | }; | ||
437 | "symfony/framework-bundle" = { | ||
438 | targetDir = ""; | ||
439 | src = composerEnv.buildZipPackage { | ||
440 | name = "symfony-framework-bundle-eb32d67140510f04fe9cc5fb9ad38fda09591db1"; | ||
441 | src = fetchurl { | ||
442 | url = https://api.github.com/repos/symfony/framework-bundle/zipball/eb32d67140510f04fe9cc5fb9ad38fda09591db1; | ||
443 | sha256 = "06dpqppwyngq1frww0q0zjs0gj8na0fi67czlhqf2x2lizgz6wjd"; | ||
444 | }; | ||
445 | }; | ||
446 | }; | ||
447 | "symfony/http-foundation" = { | ||
448 | targetDir = ""; | ||
449 | src = composerEnv.buildZipPackage { | ||
450 | name = "symfony-http-foundation-1b31f3017fadd8cb05cf2c8aebdbf3b12a943851"; | ||
451 | src = fetchurl { | ||
452 | url = https://api.github.com/repos/symfony/http-foundation/zipball/1b31f3017fadd8cb05cf2c8aebdbf3b12a943851; | ||
453 | sha256 = "0s6mx79gl6sp39bk8213xcdzx4ld5xim38s8lckm7wqnkvx94mfl"; | ||
454 | }; | ||
455 | }; | ||
456 | }; | ||
457 | "symfony/http-kernel" = { | ||
458 | targetDir = ""; | ||
459 | src = composerEnv.buildZipPackage { | ||
460 | name = "symfony-http-kernel-b39ceffc0388232c309cbde3a7c3685f2ec0a624"; | ||
461 | src = fetchurl { | ||
462 | url = https://api.github.com/repos/symfony/http-kernel/zipball/b39ceffc0388232c309cbde3a7c3685f2ec0a624; | ||
463 | sha256 = "17rb1hl9r8rlqw1cv9qx2ckvz81g2ylppirq035mya1a848y5ym5"; | ||
464 | }; | ||
465 | }; | ||
466 | }; | ||
467 | "symfony/inflector" = { | ||
468 | targetDir = ""; | ||
469 | src = composerEnv.buildZipPackage { | ||
470 | name = "symfony-inflector-f9a637c0359f74404d44cf0da0a3ce53bae0787e"; | ||
471 | src = fetchurl { | ||
472 | url = https://api.github.com/repos/symfony/inflector/zipball/f9a637c0359f74404d44cf0da0a3ce53bae0787e; | ||
473 | sha256 = "1sp1pk716biyplqpakcpq71ik2h2m1bvsz9cfj9zd63y2723xna3"; | ||
474 | }; | ||
475 | }; | ||
476 | }; | ||
477 | "symfony/intl" = { | ||
478 | targetDir = ""; | ||
479 | src = composerEnv.buildZipPackage { | ||
480 | name = "symfony-intl-748a1c54903344385f88fef75da293915b16a207"; | ||
481 | src = fetchurl { | ||
482 | url = https://api.github.com/repos/symfony/intl/zipball/748a1c54903344385f88fef75da293915b16a207; | ||
483 | sha256 = "1vwa2n7fglxs8rv1yrbxn6vgizg73asimg794igk27i90xdybfmc"; | ||
484 | }; | ||
485 | }; | ||
486 | }; | ||
487 | "symfony/lts" = { | ||
488 | targetDir = ""; | ||
489 | src = composerEnv.buildZipPackage { | ||
490 | name = "symfony-lts-c1affae45b78aee036effa1759237e7fa96d4af2"; | ||
491 | src = fetchurl { | ||
492 | url = https://api.github.com/repos/symfony/lts/zipball/c1affae45b78aee036effa1759237e7fa96d4af2; | ||
493 | sha256 = "0vk9pn4xl7ascvllak0gschdd1w2mxma3ng04j3r1n13zccxc33s"; | ||
494 | }; | ||
495 | }; | ||
496 | }; | ||
497 | "symfony/options-resolver" = { | ||
498 | targetDir = ""; | ||
499 | src = composerEnv.buildZipPackage { | ||
500 | name = "symfony-options-resolver-a9c38e8a3da2c03b3e71fdffa6efb0bda51390ba"; | ||
501 | src = fetchurl { | ||
502 | url = https://api.github.com/repos/symfony/options-resolver/zipball/a9c38e8a3da2c03b3e71fdffa6efb0bda51390ba; | ||
503 | sha256 = "1fjjlp09mwkjcxg98bihqlq4miq24k13691051f5p39lcy03zmb3"; | ||
504 | }; | ||
505 | }; | ||
506 | }; | ||
507 | "symfony/orm-pack" = { | ||
508 | targetDir = ""; | ||
509 | src = composerEnv.buildZipPackage { | ||
510 | name = "symfony-orm-pack-1b58f752cd917a08c9c8df020781d9c46a2275b1"; | ||
511 | src = fetchurl { | ||
512 | url = https://api.github.com/repos/symfony/orm-pack/zipball/1b58f752cd917a08c9c8df020781d9c46a2275b1; | ||
513 | sha256 = "1sk8jchaw29lmpq76yb24mc1csmifnkvbjdrgjdgqs6x5i39plli"; | ||
514 | }; | ||
515 | }; | ||
516 | }; | ||
517 | "symfony/polyfill-intl-icu" = { | ||
518 | targetDir = ""; | ||
519 | src = composerEnv.buildZipPackage { | ||
520 | name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644"; | ||
521 | src = fetchurl { | ||
522 | url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644; | ||
523 | sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq"; | ||
524 | }; | ||
525 | }; | ||
526 | }; | ||
527 | "symfony/polyfill-mbstring" = { | ||
528 | targetDir = ""; | ||
529 | src = composerEnv.buildZipPackage { | ||
530 | name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494"; | ||
531 | src = fetchurl { | ||
532 | url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494; | ||
533 | sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi"; | ||
534 | }; | ||
535 | }; | ||
536 | }; | ||
537 | "symfony/property-access" = { | ||
538 | targetDir = ""; | ||
539 | src = composerEnv.buildZipPackage { | ||
540 | name = "symfony-property-access-b6df4e1849f389468edb36e2e59877d4a8170723"; | ||
541 | src = fetchurl { | ||
542 | url = https://api.github.com/repos/symfony/property-access/zipball/b6df4e1849f389468edb36e2e59877d4a8170723; | ||
543 | sha256 = "16pbnv3x56gp5wxakmbphf3d4igkjyr3v693n3cjm62h72z4dxf3"; | ||
544 | }; | ||
545 | }; | ||
546 | }; | ||
547 | "symfony/routing" = { | ||
548 | targetDir = ""; | ||
549 | src = composerEnv.buildZipPackage { | ||
550 | name = "symfony-routing-649460207e77da6c545326c7f53618d23ad2c866"; | ||
551 | src = fetchurl { | ||
552 | url = https://api.github.com/repos/symfony/routing/zipball/649460207e77da6c545326c7f53618d23ad2c866; | ||
553 | sha256 = "1qjkgghs0kp4lk4711d3gx26vvilrrrjbbz02navzfqy4xjrf0sw"; | ||
554 | }; | ||
555 | }; | ||
556 | }; | ||
557 | "symfony/translation" = { | ||
558 | targetDir = ""; | ||
559 | src = composerEnv.buildZipPackage { | ||
560 | name = "symfony-translation-c0e2191e9bed845946ab3d99767513b56ca7dcd6"; | ||
561 | src = fetchurl { | ||
562 | url = https://api.github.com/repos/symfony/translation/zipball/c0e2191e9bed845946ab3d99767513b56ca7dcd6; | ||
563 | sha256 = "0gzq7f2izsiam9blha85bzvg7x6zc4f3x3bkwhzma6x6ipjfkla2"; | ||
564 | }; | ||
565 | }; | ||
566 | }; | ||
567 | "symfony/twig-bridge" = { | ||
568 | targetDir = ""; | ||
569 | src = composerEnv.buildZipPackage { | ||
570 | name = "symfony-twig-bridge-2e928d6c8244e7f3b32bcfac5814095a83179e60"; | ||
571 | src = fetchurl { | ||
572 | url = https://api.github.com/repos/symfony/twig-bridge/zipball/2e928d6c8244e7f3b32bcfac5814095a83179e60; | ||
573 | sha256 = "1f902j8b0lyqjss9r2mf7j63apv5z8ki57vmcdcw5jlqagbmw1y1"; | ||
574 | }; | ||
575 | }; | ||
576 | }; | ||
577 | "symfony/twig-bundle" = { | ||
578 | targetDir = ""; | ||
579 | src = composerEnv.buildZipPackage { | ||
580 | name = "symfony-twig-bundle-024820cbb4aeffc4843c4170b69c057fb4840fb3"; | ||
581 | src = fetchurl { | ||
582 | url = https://api.github.com/repos/symfony/twig-bundle/zipball/024820cbb4aeffc4843c4170b69c057fb4840fb3; | ||
583 | sha256 = "1qqfpxw228lc024whpr4j6aa6k9ly290nxz9c9ds826lllg2l1zh"; | ||
584 | }; | ||
585 | }; | ||
586 | }; | ||
587 | "symfony/validator" = { | ||
588 | targetDir = ""; | ||
589 | src = composerEnv.buildZipPackage { | ||
590 | name = "symfony-validator-cd35bb14a0e81bd99835e36cac4db1e72ad1939b"; | ||
591 | src = fetchurl { | ||
592 | url = https://api.github.com/repos/symfony/validator/zipball/cd35bb14a0e81bd99835e36cac4db1e72ad1939b; | ||
593 | sha256 = "1809yz483mv5mmrw14v3b371dmjab7i455gxkrqm0z8n0wjdn6i3"; | ||
594 | }; | ||
595 | }; | ||
596 | }; | ||
597 | "symfony/var-exporter" = { | ||
598 | targetDir = ""; | ||
599 | src = composerEnv.buildZipPackage { | ||
600 | name = "symfony-var-exporter-a39222e357362424b61dcde50e2f7b5a7d3306db"; | ||
601 | src = fetchurl { | ||
602 | url = https://api.github.com/repos/symfony/var-exporter/zipball/a39222e357362424b61dcde50e2f7b5a7d3306db; | ||
603 | sha256 = "1ys2sc3ivgfxq7kj8cydxqh5179d3niqxsy10lgg18c5a6bsj41j"; | ||
604 | }; | ||
605 | }; | ||
606 | }; | ||
607 | "symfony/webpack-encore-pack" = { | ||
608 | targetDir = ""; | ||
609 | src = composerEnv.buildZipPackage { | ||
610 | name = "symfony-webpack-encore-pack-8d7f51379d7ae17aea7cf501d910a11896895ac4"; | ||
611 | src = fetchurl { | ||
612 | url = https://api.github.com/repos/symfony/webpack-encore-pack/zipball/8d7f51379d7ae17aea7cf501d910a11896895ac4; | ||
613 | sha256 = "0k6xavcyihx45dsrm1r2r1lbn7vryy463akz66w4gycx5dcqrw0j"; | ||
614 | }; | ||
615 | }; | ||
616 | }; | ||
617 | "symfony/yaml" = { | ||
618 | targetDir = ""; | ||
619 | src = composerEnv.buildZipPackage { | ||
620 | name = "symfony-yaml-c41175c801e3edfda90f32e292619d10c27103d7"; | ||
621 | src = fetchurl { | ||
622 | url = https://api.github.com/repos/symfony/yaml/zipball/c41175c801e3edfda90f32e292619d10c27103d7; | ||
623 | sha256 = "0bh9365mmvzhdk1m0b1xarlg0swx9pv916m7xifcmdrxn67w552p"; | ||
624 | }; | ||
625 | }; | ||
626 | }; | ||
627 | "twig/twig" = { | ||
628 | targetDir = ""; | ||
629 | src = composerEnv.buildZipPackage { | ||
630 | name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1"; | ||
631 | src = fetchurl { | ||
632 | url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1; | ||
633 | sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n"; | ||
634 | }; | ||
635 | }; | ||
636 | }; | ||
637 | "zendframework/zend-code" = { | ||
638 | targetDir = ""; | ||
639 | src = composerEnv.buildZipPackage { | ||
640 | name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb"; | ||
641 | src = fetchurl { | ||
642 | url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb; | ||
643 | sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1"; | ||
644 | }; | ||
645 | }; | ||
646 | }; | ||
647 | "zendframework/zend-eventmanager" = { | ||
648 | targetDir = ""; | ||
649 | src = composerEnv.buildZipPackage { | ||
650 | name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd"; | ||
651 | src = fetchurl { | ||
652 | url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd; | ||
653 | sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n"; | ||
654 | }; | ||
655 | }; | ||
656 | }; | ||
657 | }; | ||
658 | devPackages = { | ||
659 | "nikic/php-parser" = { | ||
660 | targetDir = ""; | ||
661 | src = composerEnv.buildZipPackage { | ||
662 | name = "nikic-php-parser-8aae5b59b83bb4d0dbf07b0a835f2680a658f610"; | ||
663 | src = fetchurl { | ||
664 | url = https://api.github.com/repos/nikic/PHP-Parser/zipball/8aae5b59b83bb4d0dbf07b0a835f2680a658f610; | ||
665 | sha256 = "103ix4bsvrwyc4wxh9cqd38xffn25kq3phnpgk8b3z7dqvvr2pss"; | ||
666 | }; | ||
667 | }; | ||
668 | }; | ||
669 | "symfony/dotenv" = { | ||
670 | targetDir = ""; | ||
671 | src = composerEnv.buildZipPackage { | ||
672 | name = "symfony-dotenv-97f135ab40f969cbeae27d482ff63acbc33dbe2a"; | ||
673 | src = fetchurl { | ||
674 | url = https://api.github.com/repos/symfony/dotenv/zipball/97f135ab40f969cbeae27d482ff63acbc33dbe2a; | ||
675 | sha256 = "1jwpxb4w0mi5p89k51l1g84hnnj9s8kjl9jsx3xj39hhc3dy44pc"; | ||
676 | }; | ||
677 | }; | ||
678 | }; | ||
679 | "symfony/maker-bundle" = { | ||
680 | targetDir = ""; | ||
681 | src = composerEnv.buildZipPackage { | ||
682 | name = "symfony-maker-bundle-24b19cccad0c658eca516b35b08668d123fabf92"; | ||
683 | src = fetchurl { | ||
684 | url = https://api.github.com/repos/symfony/maker-bundle/zipball/24b19cccad0c658eca516b35b08668d123fabf92; | ||
685 | sha256 = "1wm17jl3gk0m5ma7nz40y7ryxgm0qncrxcrqdqg5x6afwla85grp"; | ||
686 | }; | ||
687 | }; | ||
688 | }; | ||
689 | "symfony/polyfill-php72" = { | ||
690 | targetDir = ""; | ||
691 | src = composerEnv.buildZipPackage { | ||
692 | name = "symfony-polyfill-php72-9050816e2ca34a8e916c3a0ae8b9c2fccf68b631"; | ||
693 | src = fetchurl { | ||
694 | url = https://api.github.com/repos/symfony/polyfill-php72/zipball/9050816e2ca34a8e916c3a0ae8b9c2fccf68b631; | ||
695 | sha256 = "1smd08fw64mf89s9ma099ayfjlz26wrix9hfr6kh5w4d0rzrhmlw"; | ||
696 | }; | ||
697 | }; | ||
698 | }; | ||
699 | "symfony/profiler-pack" = { | ||
700 | targetDir = ""; | ||
701 | src = composerEnv.buildZipPackage { | ||
702 | name = "symfony-profiler-pack-99c4370632c2a59bb0444852f92140074ef02209"; | ||
703 | src = fetchurl { | ||
704 | url = https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209; | ||
705 | sha256 = "12xisnrqq6q5l0v8bric0p23bsaxh50x43fq7wn2adnsz24nv9pi"; | ||
706 | }; | ||
707 | }; | ||
708 | }; | ||
709 | "symfony/stopwatch" = { | ||
710 | targetDir = ""; | ||
711 | src = composerEnv.buildZipPackage { | ||
712 | name = "symfony-stopwatch-ec076716412274e51f8a7ea675d9515e5c311123"; | ||
713 | src = fetchurl { | ||
714 | url = https://api.github.com/repos/symfony/stopwatch/zipball/ec076716412274e51f8a7ea675d9515e5c311123; | ||
715 | sha256 = "0fzh2bh7lm8f222hk5ihfkpi697babfrz1r0dghlws17hfbgzgax"; | ||
716 | }; | ||
717 | }; | ||
718 | }; | ||
719 | "symfony/var-dumper" = { | ||
720 | targetDir = ""; | ||
721 | src = composerEnv.buildZipPackage { | ||
722 | name = "symfony-var-dumper-db61258540350725f4beb6b84006e32398acd120"; | ||
723 | src = fetchurl { | ||
724 | url = https://api.github.com/repos/symfony/var-dumper/zipball/db61258540350725f4beb6b84006e32398acd120; | ||
725 | sha256 = "0pw3hf4mcc1q9miswrjbgr32x0a2dfjvpi16pjzw173xmf79i4iz"; | ||
726 | }; | ||
727 | }; | ||
728 | }; | ||
729 | "symfony/web-profiler-bundle" = { | ||
730 | targetDir = ""; | ||
731 | src = composerEnv.buildZipPackage { | ||
732 | name = "symfony-web-profiler-bundle-198cb0a6b85346bbab5e1bc74a0eb175b9fa2d08"; | ||
733 | src = fetchurl { | ||
734 | url = https://api.github.com/repos/symfony/web-profiler-bundle/zipball/198cb0a6b85346bbab5e1bc74a0eb175b9fa2d08; | ||
735 | sha256 = "0r4r3zf22860mdx8b2l72ghz8liyi3l39cc1934b2lkh2kghlsi6"; | ||
736 | }; | ||
737 | }; | ||
738 | }; | ||
739 | }; | ||
740 | } | ||
diff --git a/modules/private/websites/isabelle/aten_app/yarn-packages.nix b/modules/private/websites/isabelle/aten_app/yarn-packages.nix deleted file mode 100644 index c16d9dc..0000000 --- a/modules/private/websites/isabelle/aten_app/yarn-packages.nix +++ /dev/null | |||
@@ -1,7871 +0,0 @@ | |||
1 | {fetchurl, linkFarm}: rec { | ||
2 | offline_cache = linkFarm "offline" packages; | ||
3 | packages = [ | ||
4 | |||
5 | { | ||
6 | name = "_symfony_webpack_encore___webpack_encore_0.19.0.tgz"; | ||
7 | path = fetchurl { | ||
8 | name = "_symfony_webpack_encore___webpack_encore_0.19.0.tgz"; | ||
9 | url = "https://registry.yarnpkg.com/@symfony/webpack-encore/-/webpack-encore-0.19.0.tgz"; | ||
10 | sha1 = "f0725dbbede5ff9d9fdbd7a07f84accafc83ca14"; | ||
11 | }; | ||
12 | } | ||
13 | |||
14 | { | ||
15 | name = "_types_node___node_10.5.3.tgz"; | ||
16 | path = fetchurl { | ||
17 | name = "_types_node___node_10.5.3.tgz"; | ||
18 | url = "https://registry.yarnpkg.com/@types/node/-/node-10.5.3.tgz"; | ||
19 | sha1 = "5bcfaf088ad17894232012877669634c06b20cc5"; | ||
20 | }; | ||
21 | } | ||
22 | |||
23 | { | ||
24 | name = "_types_tapable___tapable_0.2.5.tgz"; | ||
25 | path = fetchurl { | ||
26 | name = "_types_tapable___tapable_0.2.5.tgz"; | ||
27 | url = "https://registry.yarnpkg.com/@types/tapable/-/tapable-0.2.5.tgz"; | ||
28 | sha1 = "2443fc12da514c81346b1a665675559cee21fa75"; | ||
29 | }; | ||
30 | } | ||
31 | |||
32 | { | ||
33 | name = "_types_uglify_js___uglify_js_3.0.3.tgz"; | ||
34 | path = fetchurl { | ||
35 | name = "_types_uglify_js___uglify_js_3.0.3.tgz"; | ||
36 | url = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.3.tgz"; | ||
37 | sha1 = "801a5ca1dc642861f47c46d14b700ed2d610840b"; | ||
38 | }; | ||
39 | } | ||
40 | |||
41 | { | ||
42 | name = "_types_webpack___webpack_3.8.14.tgz"; | ||
43 | path = fetchurl { | ||
44 | name = "_types_webpack___webpack_3.8.14.tgz"; | ||
45 | url = "https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.14.tgz"; | ||
46 | sha1 = "e2bfdf7f604b3f7dc776eaa17446d7f7538f3de7"; | ||
47 | }; | ||
48 | } | ||
49 | |||
50 | { | ||
51 | name = "abbrev___abbrev_1.1.1.tgz"; | ||
52 | path = fetchurl { | ||
53 | name = "abbrev___abbrev_1.1.1.tgz"; | ||
54 | url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz"; | ||
55 | sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8"; | ||
56 | }; | ||
57 | } | ||
58 | |||
59 | { | ||
60 | name = "accepts___accepts_1.3.5.tgz"; | ||
61 | path = fetchurl { | ||
62 | name = "accepts___accepts_1.3.5.tgz"; | ||
63 | url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz"; | ||
64 | sha1 = "eb777df6011723a3b14e8a72c0805c8e86746bd2"; | ||
65 | }; | ||
66 | } | ||
67 | |||
68 | { | ||
69 | name = "acorn_dynamic_import___acorn_dynamic_import_2.0.2.tgz"; | ||
70 | path = fetchurl { | ||
71 | name = "acorn_dynamic_import___acorn_dynamic_import_2.0.2.tgz"; | ||
72 | url = "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz"; | ||
73 | sha1 = "c752bd210bef679501b6c6cb7fc84f8f47158cc4"; | ||
74 | }; | ||
75 | } | ||
76 | |||
77 | { | ||
78 | name = "acorn___acorn_4.0.13.tgz"; | ||
79 | path = fetchurl { | ||
80 | name = "acorn___acorn_4.0.13.tgz"; | ||
81 | url = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz"; | ||
82 | sha1 = "105495ae5361d697bd195c825192e1ad7f253787"; | ||
83 | }; | ||
84 | } | ||
85 | |||
86 | { | ||
87 | name = "acorn___acorn_5.7.1.tgz"; | ||
88 | path = fetchurl { | ||
89 | name = "acorn___acorn_5.7.1.tgz"; | ||
90 | url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz"; | ||
91 | sha1 = "f095829297706a7c9776958c0afc8930a9b9d9d8"; | ||
92 | }; | ||
93 | } | ||
94 | |||
95 | { | ||
96 | name = "adjust_sourcemap_loader___adjust_sourcemap_loader_1.2.0.tgz"; | ||
97 | path = fetchurl { | ||
98 | name = "adjust_sourcemap_loader___adjust_sourcemap_loader_1.2.0.tgz"; | ||
99 | url = "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz"; | ||
100 | sha1 = "e33fde95e50db9f2a802e3647e311d2fc5000c69"; | ||
101 | }; | ||
102 | } | ||
103 | |||
104 | { | ||
105 | name = "ajv_keywords___ajv_keywords_3.2.0.tgz"; | ||
106 | path = fetchurl { | ||
107 | name = "ajv_keywords___ajv_keywords_3.2.0.tgz"; | ||
108 | url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz"; | ||
109 | sha1 = "e86b819c602cf8821ad637413698f1dec021847a"; | ||
110 | }; | ||
111 | } | ||
112 | |||
113 | { | ||
114 | name = "ajv___ajv_4.11.8.tgz"; | ||
115 | path = fetchurl { | ||
116 | name = "ajv___ajv_4.11.8.tgz"; | ||
117 | url = "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz"; | ||
118 | sha1 = "82ffb02b29e662ae53bdc20af15947706739c536"; | ||
119 | }; | ||
120 | } | ||
121 | |||
122 | { | ||
123 | name = "ajv___ajv_5.5.2.tgz"; | ||
124 | path = fetchurl { | ||
125 | name = "ajv___ajv_5.5.2.tgz"; | ||
126 | url = "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz"; | ||
127 | sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965"; | ||
128 | }; | ||
129 | } | ||
130 | |||
131 | { | ||
132 | name = "ajv___ajv_6.5.2.tgz"; | ||
133 | path = fetchurl { | ||
134 | name = "ajv___ajv_6.5.2.tgz"; | ||
135 | url = "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz"; | ||
136 | sha1 = "678495f9b82f7cca6be248dd92f59bff5e1f4360"; | ||
137 | }; | ||
138 | } | ||
139 | |||
140 | { | ||
141 | name = "align_text___align_text_0.1.4.tgz"; | ||
142 | path = fetchurl { | ||
143 | name = "align_text___align_text_0.1.4.tgz"; | ||
144 | url = "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz"; | ||
145 | sha1 = "0cd90a561093f35d0a99256c22b7069433fad117"; | ||
146 | }; | ||
147 | } | ||
148 | |||
149 | { | ||
150 | name = "alphanum_sort___alphanum_sort_1.0.2.tgz"; | ||
151 | path = fetchurl { | ||
152 | name = "alphanum_sort___alphanum_sort_1.0.2.tgz"; | ||
153 | url = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz"; | ||
154 | sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3"; | ||
155 | }; | ||
156 | } | ||
157 | |||
158 | { | ||
159 | name = "amdefine___amdefine_1.0.1.tgz"; | ||
160 | path = fetchurl { | ||
161 | name = "amdefine___amdefine_1.0.1.tgz"; | ||
162 | url = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz"; | ||
163 | sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5"; | ||
164 | }; | ||
165 | } | ||
166 | |||
167 | { | ||
168 | name = "ansi_html___ansi_html_0.0.7.tgz"; | ||
169 | path = fetchurl { | ||
170 | name = "ansi_html___ansi_html_0.0.7.tgz"; | ||
171 | url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz"; | ||
172 | sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e"; | ||
173 | }; | ||
174 | } | ||
175 | |||
176 | { | ||
177 | name = "ansi_regex___ansi_regex_2.1.1.tgz"; | ||
178 | path = fetchurl { | ||
179 | name = "ansi_regex___ansi_regex_2.1.1.tgz"; | ||
180 | url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz"; | ||
181 | sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; | ||
182 | }; | ||
183 | } | ||
184 | |||
185 | { | ||
186 | name = "ansi_regex___ansi_regex_3.0.0.tgz"; | ||
187 | path = fetchurl { | ||
188 | name = "ansi_regex___ansi_regex_3.0.0.tgz"; | ||
189 | url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz"; | ||
190 | sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; | ||
191 | }; | ||
192 | } | ||
193 | |||
194 | { | ||
195 | name = "ansi_styles___ansi_styles_2.2.1.tgz"; | ||
196 | path = fetchurl { | ||
197 | name = "ansi_styles___ansi_styles_2.2.1.tgz"; | ||
198 | url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz"; | ||
199 | sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; | ||
200 | }; | ||
201 | } | ||
202 | |||
203 | { | ||
204 | name = "ansi_styles___ansi_styles_3.2.1.tgz"; | ||
205 | path = fetchurl { | ||
206 | name = "ansi_styles___ansi_styles_3.2.1.tgz"; | ||
207 | url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz"; | ||
208 | sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d"; | ||
209 | }; | ||
210 | } | ||
211 | |||
212 | { | ||
213 | name = "anymatch___anymatch_2.0.0.tgz"; | ||
214 | path = fetchurl { | ||
215 | name = "anymatch___anymatch_2.0.0.tgz"; | ||
216 | url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz"; | ||
217 | sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"; | ||
218 | }; | ||
219 | } | ||
220 | |||
221 | { | ||
222 | name = "aproba___aproba_1.2.0.tgz"; | ||
223 | path = fetchurl { | ||
224 | name = "aproba___aproba_1.2.0.tgz"; | ||
225 | url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz"; | ||
226 | sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a"; | ||
227 | }; | ||
228 | } | ||
229 | |||
230 | { | ||
231 | name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz"; | ||
232 | path = fetchurl { | ||
233 | name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz"; | ||
234 | url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; | ||
235 | sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21"; | ||
236 | }; | ||
237 | } | ||
238 | |||
239 | { | ||
240 | name = "argparse___argparse_1.0.10.tgz"; | ||
241 | path = fetchurl { | ||
242 | name = "argparse___argparse_1.0.10.tgz"; | ||
243 | url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz"; | ||
244 | sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911"; | ||
245 | }; | ||
246 | } | ||
247 | |||
248 | { | ||
249 | name = "arr_diff___arr_diff_2.0.0.tgz"; | ||
250 | path = fetchurl { | ||
251 | name = "arr_diff___arr_diff_2.0.0.tgz"; | ||
252 | url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz"; | ||
253 | sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf"; | ||
254 | }; | ||
255 | } | ||
256 | |||
257 | { | ||
258 | name = "arr_diff___arr_diff_4.0.0.tgz"; | ||
259 | path = fetchurl { | ||
260 | name = "arr_diff___arr_diff_4.0.0.tgz"; | ||
261 | url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz"; | ||
262 | sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; | ||
263 | }; | ||
264 | } | ||
265 | |||
266 | { | ||
267 | name = "arr_flatten___arr_flatten_1.1.0.tgz"; | ||
268 | path = fetchurl { | ||
269 | name = "arr_flatten___arr_flatten_1.1.0.tgz"; | ||
270 | url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz"; | ||
271 | sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1"; | ||
272 | }; | ||
273 | } | ||
274 | |||
275 | { | ||
276 | name = "arr_union___arr_union_3.1.0.tgz"; | ||
277 | path = fetchurl { | ||
278 | name = "arr_union___arr_union_3.1.0.tgz"; | ||
279 | url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz"; | ||
280 | sha1 = "e39b09aea9def866a8f206e288af63919bae39c4"; | ||
281 | }; | ||
282 | } | ||
283 | |||
284 | { | ||
285 | name = "array_find_index___array_find_index_1.0.2.tgz"; | ||
286 | path = fetchurl { | ||
287 | name = "array_find_index___array_find_index_1.0.2.tgz"; | ||
288 | url = "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz"; | ||
289 | sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1"; | ||
290 | }; | ||
291 | } | ||
292 | |||
293 | { | ||
294 | name = "array_flatten___array_flatten_1.1.1.tgz"; | ||
295 | path = fetchurl { | ||
296 | name = "array_flatten___array_flatten_1.1.1.tgz"; | ||
297 | url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz"; | ||
298 | sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; | ||
299 | }; | ||
300 | } | ||
301 | |||
302 | { | ||
303 | name = "array_flatten___array_flatten_2.1.1.tgz"; | ||
304 | path = fetchurl { | ||
305 | name = "array_flatten___array_flatten_2.1.1.tgz"; | ||
306 | url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz"; | ||
307 | sha1 = "426bb9da84090c1838d812c8150af20a8331e296"; | ||
308 | }; | ||
309 | } | ||
310 | |||
311 | { | ||
312 | name = "array_includes___array_includes_3.0.3.tgz"; | ||
313 | path = fetchurl { | ||
314 | name = "array_includes___array_includes_3.0.3.tgz"; | ||
315 | url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz"; | ||
316 | sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d"; | ||
317 | }; | ||
318 | } | ||
319 | |||
320 | { | ||
321 | name = "array_union___array_union_1.0.2.tgz"; | ||
322 | path = fetchurl { | ||
323 | name = "array_union___array_union_1.0.2.tgz"; | ||
324 | url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz"; | ||
325 | sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39"; | ||
326 | }; | ||
327 | } | ||
328 | |||
329 | { | ||
330 | name = "array_uniq___array_uniq_1.0.3.tgz"; | ||
331 | path = fetchurl { | ||
332 | name = "array_uniq___array_uniq_1.0.3.tgz"; | ||
333 | url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz"; | ||
334 | sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6"; | ||
335 | }; | ||
336 | } | ||
337 | |||
338 | { | ||
339 | name = "array_unique___array_unique_0.2.1.tgz"; | ||
340 | path = fetchurl { | ||
341 | name = "array_unique___array_unique_0.2.1.tgz"; | ||
342 | url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz"; | ||
343 | sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53"; | ||
344 | }; | ||
345 | } | ||
346 | |||
347 | { | ||
348 | name = "array_unique___array_unique_0.3.2.tgz"; | ||
349 | path = fetchurl { | ||
350 | name = "array_unique___array_unique_0.3.2.tgz"; | ||
351 | url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz"; | ||
352 | sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; | ||
353 | }; | ||
354 | } | ||
355 | |||
356 | { | ||
357 | name = "asn1.js___asn1.js_4.10.1.tgz"; | ||
358 | path = fetchurl { | ||
359 | name = "asn1.js___asn1.js_4.10.1.tgz"; | ||
360 | url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz"; | ||
361 | sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"; | ||
362 | }; | ||
363 | } | ||
364 | |||
365 | { | ||
366 | name = "asn1___asn1_0.2.3.tgz"; | ||
367 | path = fetchurl { | ||
368 | name = "asn1___asn1_0.2.3.tgz"; | ||
369 | url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz"; | ||
370 | sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; | ||
371 | }; | ||
372 | } | ||
373 | |||
374 | { | ||
375 | name = "assert_plus___assert_plus_1.0.0.tgz"; | ||
376 | path = fetchurl { | ||
377 | name = "assert_plus___assert_plus_1.0.0.tgz"; | ||
378 | url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz"; | ||
379 | sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; | ||
380 | }; | ||
381 | } | ||
382 | |||
383 | { | ||
384 | name = "assert_plus___assert_plus_0.2.0.tgz"; | ||
385 | path = fetchurl { | ||
386 | name = "assert_plus___assert_plus_0.2.0.tgz"; | ||
387 | url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz"; | ||
388 | sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234"; | ||
389 | }; | ||
390 | } | ||
391 | |||
392 | { | ||
393 | name = "assert___assert_1.4.1.tgz"; | ||
394 | path = fetchurl { | ||
395 | name = "assert___assert_1.4.1.tgz"; | ||
396 | url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz"; | ||
397 | sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91"; | ||
398 | }; | ||
399 | } | ||
400 | |||
401 | { | ||
402 | name = "assign_symbols___assign_symbols_1.0.0.tgz"; | ||
403 | path = fetchurl { | ||
404 | name = "assign_symbols___assign_symbols_1.0.0.tgz"; | ||
405 | url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz"; | ||
406 | sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; | ||
407 | }; | ||
408 | } | ||
409 | |||
410 | { | ||
411 | name = "async_each___async_each_1.0.1.tgz"; | ||
412 | path = fetchurl { | ||
413 | name = "async_each___async_each_1.0.1.tgz"; | ||
414 | url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz"; | ||
415 | sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d"; | ||
416 | }; | ||
417 | } | ||
418 | |||
419 | { | ||
420 | name = "async_foreach___async_foreach_0.1.3.tgz"; | ||
421 | path = fetchurl { | ||
422 | name = "async_foreach___async_foreach_0.1.3.tgz"; | ||
423 | url = "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz"; | ||
424 | sha1 = "36121f845c0578172de419a97dbeb1d16ec34542"; | ||
425 | }; | ||
426 | } | ||
427 | |||
428 | { | ||
429 | name = "async___async_1.5.2.tgz"; | ||
430 | path = fetchurl { | ||
431 | name = "async___async_1.5.2.tgz"; | ||
432 | url = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz"; | ||
433 | sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a"; | ||
434 | }; | ||
435 | } | ||
436 | |||
437 | { | ||
438 | name = "async___async_2.6.1.tgz"; | ||
439 | path = fetchurl { | ||
440 | name = "async___async_2.6.1.tgz"; | ||
441 | url = "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz"; | ||
442 | sha1 = "b245a23ca71930044ec53fa46aa00a3e87c6a610"; | ||
443 | }; | ||
444 | } | ||
445 | |||
446 | { | ||
447 | name = "asynckit___asynckit_0.4.0.tgz"; | ||
448 | path = fetchurl { | ||
449 | name = "asynckit___asynckit_0.4.0.tgz"; | ||
450 | url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"; | ||
451 | sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; | ||
452 | }; | ||
453 | } | ||
454 | |||
455 | { | ||
456 | name = "atob___atob_2.1.1.tgz"; | ||
457 | path = fetchurl { | ||
458 | name = "atob___atob_2.1.1.tgz"; | ||
459 | url = "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz"; | ||
460 | sha1 = "ae2d5a729477f289d60dd7f96a6314a22dd6c22a"; | ||
461 | }; | ||
462 | } | ||
463 | |||
464 | { | ||
465 | name = "autoprefixer___autoprefixer_6.7.7.tgz"; | ||
466 | path = fetchurl { | ||
467 | name = "autoprefixer___autoprefixer_6.7.7.tgz"; | ||
468 | url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz"; | ||
469 | sha1 = "1dbd1c835658e35ce3f9984099db00585c782014"; | ||
470 | }; | ||
471 | } | ||
472 | |||
473 | { | ||
474 | name = "aws_sign2___aws_sign2_0.6.0.tgz"; | ||
475 | path = fetchurl { | ||
476 | name = "aws_sign2___aws_sign2_0.6.0.tgz"; | ||
477 | url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz"; | ||
478 | sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f"; | ||
479 | }; | ||
480 | } | ||
481 | |||
482 | { | ||
483 | name = "aws_sign2___aws_sign2_0.7.0.tgz"; | ||
484 | path = fetchurl { | ||
485 | name = "aws_sign2___aws_sign2_0.7.0.tgz"; | ||
486 | url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz"; | ||
487 | sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; | ||
488 | }; | ||
489 | } | ||
490 | |||
491 | { | ||
492 | name = "aws4___aws4_1.7.0.tgz"; | ||
493 | path = fetchurl { | ||
494 | name = "aws4___aws4_1.7.0.tgz"; | ||
495 | url = "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz"; | ||
496 | sha1 = "d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"; | ||
497 | }; | ||
498 | } | ||
499 | |||
500 | { | ||
501 | name = "babel_code_frame___babel_code_frame_6.26.0.tgz"; | ||
502 | path = fetchurl { | ||
503 | name = "babel_code_frame___babel_code_frame_6.26.0.tgz"; | ||
504 | url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz"; | ||
505 | sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"; | ||
506 | }; | ||
507 | } | ||
508 | |||
509 | { | ||
510 | name = "babel_core___babel_core_6.26.3.tgz"; | ||
511 | path = fetchurl { | ||
512 | name = "babel_core___babel_core_6.26.3.tgz"; | ||
513 | url = "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz"; | ||
514 | sha1 = "b2e2f09e342d0f0c88e2f02e067794125e75c207"; | ||
515 | }; | ||
516 | } | ||
517 | |||
518 | { | ||
519 | name = "babel_generator___babel_generator_6.26.1.tgz"; | ||
520 | path = fetchurl { | ||
521 | name = "babel_generator___babel_generator_6.26.1.tgz"; | ||
522 | url = "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz"; | ||
523 | sha1 = "1844408d3b8f0d35a404ea7ac180f087a601bd90"; | ||
524 | }; | ||
525 | } | ||
526 | |||
527 | { | ||
528 | name = "babel_helper_builder_binary_assignment_operator_visitor___babel_helper_builder_binary_assignment_operator_visitor_6.24.1.tgz"; | ||
529 | path = fetchurl { | ||
530 | name = "babel_helper_builder_binary_assignment_operator_visitor___babel_helper_builder_binary_assignment_operator_visitor_6.24.1.tgz"; | ||
531 | url = "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz"; | ||
532 | sha1 = "cce4517ada356f4220bcae8a02c2b346f9a56664"; | ||
533 | }; | ||
534 | } | ||
535 | |||
536 | { | ||
537 | name = "babel_helper_call_delegate___babel_helper_call_delegate_6.24.1.tgz"; | ||
538 | path = fetchurl { | ||
539 | name = "babel_helper_call_delegate___babel_helper_call_delegate_6.24.1.tgz"; | ||
540 | url = "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz"; | ||
541 | sha1 = "ece6aacddc76e41c3461f88bfc575bd0daa2df8d"; | ||
542 | }; | ||
543 | } | ||
544 | |||
545 | { | ||
546 | name = "babel_helper_define_map___babel_helper_define_map_6.26.0.tgz"; | ||
547 | path = fetchurl { | ||
548 | name = "babel_helper_define_map___babel_helper_define_map_6.26.0.tgz"; | ||
549 | url = "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz"; | ||
550 | sha1 = "a5f56dab41a25f97ecb498c7ebaca9819f95be5f"; | ||
551 | }; | ||
552 | } | ||
553 | |||
554 | { | ||
555 | name = "babel_helper_explode_assignable_expression___babel_helper_explode_assignable_expression_6.24.1.tgz"; | ||
556 | path = fetchurl { | ||
557 | name = "babel_helper_explode_assignable_expression___babel_helper_explode_assignable_expression_6.24.1.tgz"; | ||
558 | url = "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz"; | ||
559 | sha1 = "f25b82cf7dc10433c55f70592d5746400ac22caa"; | ||
560 | }; | ||
561 | } | ||
562 | |||
563 | { | ||
564 | name = "babel_helper_function_name___babel_helper_function_name_6.24.1.tgz"; | ||
565 | path = fetchurl { | ||
566 | name = "babel_helper_function_name___babel_helper_function_name_6.24.1.tgz"; | ||
567 | url = "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz"; | ||
568 | sha1 = "d3475b8c03ed98242a25b48351ab18399d3580a9"; | ||
569 | }; | ||
570 | } | ||
571 | |||
572 | { | ||
573 | name = "babel_helper_get_function_arity___babel_helper_get_function_arity_6.24.1.tgz"; | ||
574 | path = fetchurl { | ||
575 | name = "babel_helper_get_function_arity___babel_helper_get_function_arity_6.24.1.tgz"; | ||
576 | url = "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz"; | ||
577 | sha1 = "8f7782aa93407c41d3aa50908f89b031b1b6853d"; | ||
578 | }; | ||
579 | } | ||
580 | |||
581 | { | ||
582 | name = "babel_helper_hoist_variables___babel_helper_hoist_variables_6.24.1.tgz"; | ||
583 | path = fetchurl { | ||
584 | name = "babel_helper_hoist_variables___babel_helper_hoist_variables_6.24.1.tgz"; | ||
585 | url = "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz"; | ||
586 | sha1 = "1ecb27689c9d25513eadbc9914a73f5408be7a76"; | ||
587 | }; | ||
588 | } | ||
589 | |||
590 | { | ||
591 | name = "babel_helper_optimise_call_expression___babel_helper_optimise_call_expression_6.24.1.tgz"; | ||
592 | path = fetchurl { | ||
593 | name = "babel_helper_optimise_call_expression___babel_helper_optimise_call_expression_6.24.1.tgz"; | ||
594 | url = "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz"; | ||
595 | sha1 = "f7a13427ba9f73f8f4fa993c54a97882d1244257"; | ||
596 | }; | ||
597 | } | ||
598 | |||
599 | { | ||
600 | name = "babel_helper_regex___babel_helper_regex_6.26.0.tgz"; | ||
601 | path = fetchurl { | ||
602 | name = "babel_helper_regex___babel_helper_regex_6.26.0.tgz"; | ||
603 | url = "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz"; | ||
604 | sha1 = "325c59f902f82f24b74faceed0363954f6495e72"; | ||
605 | }; | ||
606 | } | ||
607 | |||
608 | { | ||
609 | name = "babel_helper_remap_async_to_generator___babel_helper_remap_async_to_generator_6.24.1.tgz"; | ||
610 | path = fetchurl { | ||
611 | name = "babel_helper_remap_async_to_generator___babel_helper_remap_async_to_generator_6.24.1.tgz"; | ||
612 | url = "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz"; | ||
613 | sha1 = "5ec581827ad723fecdd381f1c928390676e4551b"; | ||
614 | }; | ||
615 | } | ||
616 | |||
617 | { | ||
618 | name = "babel_helper_replace_supers___babel_helper_replace_supers_6.24.1.tgz"; | ||
619 | path = fetchurl { | ||
620 | name = "babel_helper_replace_supers___babel_helper_replace_supers_6.24.1.tgz"; | ||
621 | url = "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz"; | ||
622 | sha1 = "bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"; | ||
623 | }; | ||
624 | } | ||
625 | |||
626 | { | ||
627 | name = "babel_helpers___babel_helpers_6.24.1.tgz"; | ||
628 | path = fetchurl { | ||
629 | name = "babel_helpers___babel_helpers_6.24.1.tgz"; | ||
630 | url = "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz"; | ||
631 | sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2"; | ||
632 | }; | ||
633 | } | ||
634 | |||
635 | { | ||
636 | name = "babel_loader___babel_loader_7.1.5.tgz"; | ||
637 | path = fetchurl { | ||
638 | name = "babel_loader___babel_loader_7.1.5.tgz"; | ||
639 | url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz"; | ||
640 | sha1 = "e3ee0cd7394aa557e013b02d3e492bfd07aa6d68"; | ||
641 | }; | ||
642 | } | ||
643 | |||
644 | { | ||
645 | name = "babel_messages___babel_messages_6.23.0.tgz"; | ||
646 | path = fetchurl { | ||
647 | name = "babel_messages___babel_messages_6.23.0.tgz"; | ||
648 | url = "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz"; | ||
649 | sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e"; | ||
650 | }; | ||
651 | } | ||
652 | |||
653 | { | ||
654 | name = "babel_plugin_check_es2015_constants___babel_plugin_check_es2015_constants_6.22.0.tgz"; | ||
655 | path = fetchurl { | ||
656 | name = "babel_plugin_check_es2015_constants___babel_plugin_check_es2015_constants_6.22.0.tgz"; | ||
657 | url = "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz"; | ||
658 | sha1 = "35157b101426fd2ffd3da3f75c7d1e91835bbf8a"; | ||
659 | }; | ||
660 | } | ||
661 | |||
662 | { | ||
663 | name = "babel_plugin_syntax_async_functions___babel_plugin_syntax_async_functions_6.13.0.tgz"; | ||
664 | path = fetchurl { | ||
665 | name = "babel_plugin_syntax_async_functions___babel_plugin_syntax_async_functions_6.13.0.tgz"; | ||
666 | url = "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz"; | ||
667 | sha1 = "cad9cad1191b5ad634bf30ae0872391e0647be95"; | ||
668 | }; | ||
669 | } | ||
670 | |||
671 | { | ||
672 | name = "babel_plugin_syntax_exponentiation_operator___babel_plugin_syntax_exponentiation_operator_6.13.0.tgz"; | ||
673 | path = fetchurl { | ||
674 | name = "babel_plugin_syntax_exponentiation_operator___babel_plugin_syntax_exponentiation_operator_6.13.0.tgz"; | ||
675 | url = "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz"; | ||
676 | sha1 = "9ee7e8337290da95288201a6a57f4170317830de"; | ||
677 | }; | ||
678 | } | ||
679 | |||
680 | { | ||
681 | name = "babel_plugin_syntax_trailing_function_commas___babel_plugin_syntax_trailing_function_commas_6.22.0.tgz"; | ||
682 | path = fetchurl { | ||
683 | name = "babel_plugin_syntax_trailing_function_commas___babel_plugin_syntax_trailing_function_commas_6.22.0.tgz"; | ||
684 | url = "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz"; | ||
685 | sha1 = "ba0360937f8d06e40180a43fe0d5616fff532cf3"; | ||
686 | }; | ||
687 | } | ||
688 | |||
689 | { | ||
690 | name = "babel_plugin_transform_async_to_generator___babel_plugin_transform_async_to_generator_6.24.1.tgz"; | ||
691 | path = fetchurl { | ||
692 | name = "babel_plugin_transform_async_to_generator___babel_plugin_transform_async_to_generator_6.24.1.tgz"; | ||
693 | url = "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz"; | ||
694 | sha1 = "6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"; | ||
695 | }; | ||
696 | } | ||
697 | |||
698 | { | ||
699 | name = "babel_plugin_transform_es2015_arrow_functions___babel_plugin_transform_es2015_arrow_functions_6.22.0.tgz"; | ||
700 | path = fetchurl { | ||
701 | name = "babel_plugin_transform_es2015_arrow_functions___babel_plugin_transform_es2015_arrow_functions_6.22.0.tgz"; | ||
702 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz"; | ||
703 | sha1 = "452692cb711d5f79dc7f85e440ce41b9f244d221"; | ||
704 | }; | ||
705 | } | ||
706 | |||
707 | { | ||
708 | name = "babel_plugin_transform_es2015_block_scoped_functions___babel_plugin_transform_es2015_block_scoped_functions_6.22.0.tgz"; | ||
709 | path = fetchurl { | ||
710 | name = "babel_plugin_transform_es2015_block_scoped_functions___babel_plugin_transform_es2015_block_scoped_functions_6.22.0.tgz"; | ||
711 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz"; | ||
712 | sha1 = "bbc51b49f964d70cb8d8e0b94e820246ce3a6141"; | ||
713 | }; | ||
714 | } | ||
715 | |||
716 | { | ||
717 | name = "babel_plugin_transform_es2015_block_scoping___babel_plugin_transform_es2015_block_scoping_6.26.0.tgz"; | ||
718 | path = fetchurl { | ||
719 | name = "babel_plugin_transform_es2015_block_scoping___babel_plugin_transform_es2015_block_scoping_6.26.0.tgz"; | ||
720 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz"; | ||
721 | sha1 = "d70f5299c1308d05c12f463813b0a09e73b1895f"; | ||
722 | }; | ||
723 | } | ||
724 | |||
725 | { | ||
726 | name = "babel_plugin_transform_es2015_classes___babel_plugin_transform_es2015_classes_6.24.1.tgz"; | ||
727 | path = fetchurl { | ||
728 | name = "babel_plugin_transform_es2015_classes___babel_plugin_transform_es2015_classes_6.24.1.tgz"; | ||
729 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz"; | ||
730 | sha1 = "5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"; | ||
731 | }; | ||
732 | } | ||
733 | |||
734 | { | ||
735 | name = "babel_plugin_transform_es2015_computed_properties___babel_plugin_transform_es2015_computed_properties_6.24.1.tgz"; | ||
736 | path = fetchurl { | ||
737 | name = "babel_plugin_transform_es2015_computed_properties___babel_plugin_transform_es2015_computed_properties_6.24.1.tgz"; | ||
738 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz"; | ||
739 | sha1 = "6fe2a8d16895d5634f4cd999b6d3480a308159b3"; | ||
740 | }; | ||
741 | } | ||
742 | |||
743 | { | ||
744 | name = "babel_plugin_transform_es2015_destructuring___babel_plugin_transform_es2015_destructuring_6.23.0.tgz"; | ||
745 | path = fetchurl { | ||
746 | name = "babel_plugin_transform_es2015_destructuring___babel_plugin_transform_es2015_destructuring_6.23.0.tgz"; | ||
747 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz"; | ||
748 | sha1 = "997bb1f1ab967f682d2b0876fe358d60e765c56d"; | ||
749 | }; | ||
750 | } | ||
751 | |||
752 | { | ||
753 | name = "babel_plugin_transform_es2015_duplicate_keys___babel_plugin_transform_es2015_duplicate_keys_6.24.1.tgz"; | ||
754 | path = fetchurl { | ||
755 | name = "babel_plugin_transform_es2015_duplicate_keys___babel_plugin_transform_es2015_duplicate_keys_6.24.1.tgz"; | ||
756 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz"; | ||
757 | sha1 = "73eb3d310ca969e3ef9ec91c53741a6f1576423e"; | ||
758 | }; | ||
759 | } | ||
760 | |||
761 | { | ||
762 | name = "babel_plugin_transform_es2015_for_of___babel_plugin_transform_es2015_for_of_6.23.0.tgz"; | ||
763 | path = fetchurl { | ||
764 | name = "babel_plugin_transform_es2015_for_of___babel_plugin_transform_es2015_for_of_6.23.0.tgz"; | ||
765 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz"; | ||
766 | sha1 = "f47c95b2b613df1d3ecc2fdb7573623c75248691"; | ||
767 | }; | ||
768 | } | ||
769 | |||
770 | { | ||
771 | name = "babel_plugin_transform_es2015_function_name___babel_plugin_transform_es2015_function_name_6.24.1.tgz"; | ||
772 | path = fetchurl { | ||
773 | name = "babel_plugin_transform_es2015_function_name___babel_plugin_transform_es2015_function_name_6.24.1.tgz"; | ||
774 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz"; | ||
775 | sha1 = "834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"; | ||
776 | }; | ||
777 | } | ||
778 | |||
779 | { | ||
780 | name = "babel_plugin_transform_es2015_literals___babel_plugin_transform_es2015_literals_6.22.0.tgz"; | ||
781 | path = fetchurl { | ||
782 | name = "babel_plugin_transform_es2015_literals___babel_plugin_transform_es2015_literals_6.22.0.tgz"; | ||
783 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz"; | ||
784 | sha1 = "4f54a02d6cd66cf915280019a31d31925377ca2e"; | ||
785 | }; | ||
786 | } | ||
787 | |||
788 | { | ||
789 | name = "babel_plugin_transform_es2015_modules_amd___babel_plugin_transform_es2015_modules_amd_6.24.1.tgz"; | ||
790 | path = fetchurl { | ||
791 | name = "babel_plugin_transform_es2015_modules_amd___babel_plugin_transform_es2015_modules_amd_6.24.1.tgz"; | ||
792 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz"; | ||
793 | sha1 = "3b3e54017239842d6d19c3011c4bd2f00a00d154"; | ||
794 | }; | ||
795 | } | ||
796 | |||
797 | { | ||
798 | name = "babel_plugin_transform_es2015_modules_commonjs___babel_plugin_transform_es2015_modules_commonjs_6.26.2.tgz"; | ||
799 | path = fetchurl { | ||
800 | name = "babel_plugin_transform_es2015_modules_commonjs___babel_plugin_transform_es2015_modules_commonjs_6.26.2.tgz"; | ||
801 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz"; | ||
802 | sha1 = "58a793863a9e7ca870bdc5a881117ffac27db6f3"; | ||
803 | }; | ||
804 | } | ||
805 | |||
806 | { | ||
807 | name = "babel_plugin_transform_es2015_modules_systemjs___babel_plugin_transform_es2015_modules_systemjs_6.24.1.tgz"; | ||
808 | path = fetchurl { | ||
809 | name = "babel_plugin_transform_es2015_modules_systemjs___babel_plugin_transform_es2015_modules_systemjs_6.24.1.tgz"; | ||
810 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz"; | ||
811 | sha1 = "ff89a142b9119a906195f5f106ecf305d9407d23"; | ||
812 | }; | ||
813 | } | ||
814 | |||
815 | { | ||
816 | name = "babel_plugin_transform_es2015_modules_umd___babel_plugin_transform_es2015_modules_umd_6.24.1.tgz"; | ||
817 | path = fetchurl { | ||
818 | name = "babel_plugin_transform_es2015_modules_umd___babel_plugin_transform_es2015_modules_umd_6.24.1.tgz"; | ||
819 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz"; | ||
820 | sha1 = "ac997e6285cd18ed6176adb607d602344ad38468"; | ||
821 | }; | ||
822 | } | ||
823 | |||
824 | { | ||
825 | name = "babel_plugin_transform_es2015_object_super___babel_plugin_transform_es2015_object_super_6.24.1.tgz"; | ||
826 | path = fetchurl { | ||
827 | name = "babel_plugin_transform_es2015_object_super___babel_plugin_transform_es2015_object_super_6.24.1.tgz"; | ||
828 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz"; | ||
829 | sha1 = "24cef69ae21cb83a7f8603dad021f572eb278f8d"; | ||
830 | }; | ||
831 | } | ||
832 | |||
833 | { | ||
834 | name = "babel_plugin_transform_es2015_parameters___babel_plugin_transform_es2015_parameters_6.24.1.tgz"; | ||
835 | path = fetchurl { | ||
836 | name = "babel_plugin_transform_es2015_parameters___babel_plugin_transform_es2015_parameters_6.24.1.tgz"; | ||
837 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz"; | ||
838 | sha1 = "57ac351ab49caf14a97cd13b09f66fdf0a625f2b"; | ||
839 | }; | ||
840 | } | ||
841 | |||
842 | { | ||
843 | name = "babel_plugin_transform_es2015_shorthand_properties___babel_plugin_transform_es2015_shorthand_properties_6.24.1.tgz"; | ||
844 | path = fetchurl { | ||
845 | name = "babel_plugin_transform_es2015_shorthand_properties___babel_plugin_transform_es2015_shorthand_properties_6.24.1.tgz"; | ||
846 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz"; | ||
847 | sha1 = "24f875d6721c87661bbd99a4622e51f14de38aa0"; | ||
848 | }; | ||
849 | } | ||
850 | |||
851 | { | ||
852 | name = "babel_plugin_transform_es2015_spread___babel_plugin_transform_es2015_spread_6.22.0.tgz"; | ||
853 | path = fetchurl { | ||
854 | name = "babel_plugin_transform_es2015_spread___babel_plugin_transform_es2015_spread_6.22.0.tgz"; | ||
855 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz"; | ||
856 | sha1 = "d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"; | ||
857 | }; | ||
858 | } | ||
859 | |||
860 | { | ||
861 | name = "babel_plugin_transform_es2015_sticky_regex___babel_plugin_transform_es2015_sticky_regex_6.24.1.tgz"; | ||
862 | path = fetchurl { | ||
863 | name = "babel_plugin_transform_es2015_sticky_regex___babel_plugin_transform_es2015_sticky_regex_6.24.1.tgz"; | ||
864 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz"; | ||
865 | sha1 = "00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"; | ||
866 | }; | ||
867 | } | ||
868 | |||
869 | { | ||
870 | name = "babel_plugin_transform_es2015_template_literals___babel_plugin_transform_es2015_template_literals_6.22.0.tgz"; | ||
871 | path = fetchurl { | ||
872 | name = "babel_plugin_transform_es2015_template_literals___babel_plugin_transform_es2015_template_literals_6.22.0.tgz"; | ||
873 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz"; | ||
874 | sha1 = "a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"; | ||
875 | }; | ||
876 | } | ||
877 | |||
878 | { | ||
879 | name = "babel_plugin_transform_es2015_typeof_symbol___babel_plugin_transform_es2015_typeof_symbol_6.23.0.tgz"; | ||
880 | path = fetchurl { | ||
881 | name = "babel_plugin_transform_es2015_typeof_symbol___babel_plugin_transform_es2015_typeof_symbol_6.23.0.tgz"; | ||
882 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz"; | ||
883 | sha1 = "dec09f1cddff94b52ac73d505c84df59dcceb372"; | ||
884 | }; | ||
885 | } | ||
886 | |||
887 | { | ||
888 | name = "babel_plugin_transform_es2015_unicode_regex___babel_plugin_transform_es2015_unicode_regex_6.24.1.tgz"; | ||
889 | path = fetchurl { | ||
890 | name = "babel_plugin_transform_es2015_unicode_regex___babel_plugin_transform_es2015_unicode_regex_6.24.1.tgz"; | ||
891 | url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz"; | ||
892 | sha1 = "d38b12f42ea7323f729387f18a7c5ae1faeb35e9"; | ||
893 | }; | ||
894 | } | ||
895 | |||
896 | { | ||
897 | name = "babel_plugin_transform_exponentiation_operator___babel_plugin_transform_exponentiation_operator_6.24.1.tgz"; | ||
898 | path = fetchurl { | ||
899 | name = "babel_plugin_transform_exponentiation_operator___babel_plugin_transform_exponentiation_operator_6.24.1.tgz"; | ||
900 | url = "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz"; | ||
901 | sha1 = "2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"; | ||
902 | }; | ||
903 | } | ||
904 | |||
905 | { | ||
906 | name = "babel_plugin_transform_regenerator___babel_plugin_transform_regenerator_6.26.0.tgz"; | ||
907 | path = fetchurl { | ||
908 | name = "babel_plugin_transform_regenerator___babel_plugin_transform_regenerator_6.26.0.tgz"; | ||
909 | url = "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz"; | ||
910 | sha1 = "e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"; | ||
911 | }; | ||
912 | } | ||
913 | |||
914 | { | ||
915 | name = "babel_plugin_transform_strict_mode___babel_plugin_transform_strict_mode_6.24.1.tgz"; | ||
916 | path = fetchurl { | ||
917 | name = "babel_plugin_transform_strict_mode___babel_plugin_transform_strict_mode_6.24.1.tgz"; | ||
918 | url = "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz"; | ||
919 | sha1 = "d5faf7aa578a65bbe591cf5edae04a0c67020758"; | ||
920 | }; | ||
921 | } | ||
922 | |||
923 | { | ||
924 | name = "babel_preset_env___babel_preset_env_1.7.0.tgz"; | ||
925 | path = fetchurl { | ||
926 | name = "babel_preset_env___babel_preset_env_1.7.0.tgz"; | ||
927 | url = "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz"; | ||
928 | sha1 = "dea79fa4ebeb883cd35dab07e260c1c9c04df77a"; | ||
929 | }; | ||
930 | } | ||
931 | |||
932 | { | ||
933 | name = "babel_register___babel_register_6.26.0.tgz"; | ||
934 | path = fetchurl { | ||
935 | name = "babel_register___babel_register_6.26.0.tgz"; | ||
936 | url = "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz"; | ||
937 | sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071"; | ||
938 | }; | ||
939 | } | ||
940 | |||
941 | { | ||
942 | name = "babel_runtime___babel_runtime_6.26.0.tgz"; | ||
943 | path = fetchurl { | ||
944 | name = "babel_runtime___babel_runtime_6.26.0.tgz"; | ||
945 | url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz"; | ||
946 | sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; | ||
947 | }; | ||
948 | } | ||
949 | |||
950 | { | ||
951 | name = "babel_template___babel_template_6.26.0.tgz"; | ||
952 | path = fetchurl { | ||
953 | name = "babel_template___babel_template_6.26.0.tgz"; | ||
954 | url = "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz"; | ||
955 | sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02"; | ||
956 | }; | ||
957 | } | ||
958 | |||
959 | { | ||
960 | name = "babel_traverse___babel_traverse_6.26.0.tgz"; | ||
961 | path = fetchurl { | ||
962 | name = "babel_traverse___babel_traverse_6.26.0.tgz"; | ||
963 | url = "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz"; | ||
964 | sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"; | ||
965 | }; | ||
966 | } | ||
967 | |||
968 | { | ||
969 | name = "babel_types___babel_types_6.26.0.tgz"; | ||
970 | path = fetchurl { | ||
971 | name = "babel_types___babel_types_6.26.0.tgz"; | ||
972 | url = "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz"; | ||
973 | sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497"; | ||
974 | }; | ||
975 | } | ||
976 | |||
977 | { | ||
978 | name = "babylon___babylon_6.18.0.tgz"; | ||
979 | path = fetchurl { | ||
980 | name = "babylon___babylon_6.18.0.tgz"; | ||
981 | url = "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz"; | ||
982 | sha1 = "af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"; | ||
983 | }; | ||
984 | } | ||
985 | |||
986 | { | ||
987 | name = "balanced_match___balanced_match_0.4.2.tgz"; | ||
988 | path = fetchurl { | ||
989 | name = "balanced_match___balanced_match_0.4.2.tgz"; | ||
990 | url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz"; | ||
991 | sha1 = "cb3f3e3c732dc0f01ee70b403f302e61d7709838"; | ||
992 | }; | ||
993 | } | ||
994 | |||
995 | { | ||
996 | name = "balanced_match___balanced_match_1.0.0.tgz"; | ||
997 | path = fetchurl { | ||
998 | name = "balanced_match___balanced_match_1.0.0.tgz"; | ||
999 | url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz"; | ||
1000 | sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; | ||
1001 | }; | ||
1002 | } | ||
1003 | |||
1004 | { | ||
1005 | name = "base64_js___base64_js_1.3.0.tgz"; | ||
1006 | path = fetchurl { | ||
1007 | name = "base64_js___base64_js_1.3.0.tgz"; | ||
1008 | url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz"; | ||
1009 | sha1 = "cab1e6118f051095e58b5281aea8c1cd22bfc0e3"; | ||
1010 | }; | ||
1011 | } | ||
1012 | |||
1013 | { | ||
1014 | name = "base___base_0.11.2.tgz"; | ||
1015 | path = fetchurl { | ||
1016 | name = "base___base_0.11.2.tgz"; | ||
1017 | url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz"; | ||
1018 | sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f"; | ||
1019 | }; | ||
1020 | } | ||
1021 | |||
1022 | { | ||
1023 | name = "batch___batch_0.6.1.tgz"; | ||
1024 | path = fetchurl { | ||
1025 | name = "batch___batch_0.6.1.tgz"; | ||
1026 | url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz"; | ||
1027 | sha1 = "dc34314f4e679318093fc760272525f94bf25c16"; | ||
1028 | }; | ||
1029 | } | ||
1030 | |||
1031 | { | ||
1032 | name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; | ||
1033 | path = fetchurl { | ||
1034 | name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; | ||
1035 | url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; | ||
1036 | sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; | ||
1037 | }; | ||
1038 | } | ||
1039 | |||
1040 | { | ||
1041 | name = "big.js___big.js_3.2.0.tgz"; | ||
1042 | path = fetchurl { | ||
1043 | name = "big.js___big.js_3.2.0.tgz"; | ||
1044 | url = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz"; | ||
1045 | sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e"; | ||
1046 | }; | ||
1047 | } | ||
1048 | |||
1049 | { | ||
1050 | name = "binary_extensions___binary_extensions_1.11.0.tgz"; | ||
1051 | path = fetchurl { | ||
1052 | name = "binary_extensions___binary_extensions_1.11.0.tgz"; | ||
1053 | url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz"; | ||
1054 | sha1 = "46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"; | ||
1055 | }; | ||
1056 | } | ||
1057 | |||
1058 | { | ||
1059 | name = "block_stream___block_stream_0.0.9.tgz"; | ||
1060 | path = fetchurl { | ||
1061 | name = "block_stream___block_stream_0.0.9.tgz"; | ||
1062 | url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz"; | ||
1063 | sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a"; | ||
1064 | }; | ||
1065 | } | ||
1066 | |||
1067 | { | ||
1068 | name = "bn.js___bn.js_4.11.8.tgz"; | ||
1069 | path = fetchurl { | ||
1070 | name = "bn.js___bn.js_4.11.8.tgz"; | ||
1071 | url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz"; | ||
1072 | sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f"; | ||
1073 | }; | ||
1074 | } | ||
1075 | |||
1076 | { | ||
1077 | name = "body_parser___body_parser_1.18.2.tgz"; | ||
1078 | path = fetchurl { | ||
1079 | name = "body_parser___body_parser_1.18.2.tgz"; | ||
1080 | url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz"; | ||
1081 | sha1 = "87678a19d84b47d859b83199bd59bce222b10454"; | ||
1082 | }; | ||
1083 | } | ||
1084 | |||
1085 | { | ||
1086 | name = "bonjour___bonjour_3.5.0.tgz"; | ||
1087 | path = fetchurl { | ||
1088 | name = "bonjour___bonjour_3.5.0.tgz"; | ||
1089 | url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz"; | ||
1090 | sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"; | ||
1091 | }; | ||
1092 | } | ||
1093 | |||
1094 | { | ||
1095 | name = "boolbase___boolbase_1.0.0.tgz"; | ||
1096 | path = fetchurl { | ||
1097 | name = "boolbase___boolbase_1.0.0.tgz"; | ||
1098 | url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz"; | ||
1099 | sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"; | ||
1100 | }; | ||
1101 | } | ||
1102 | |||
1103 | { | ||
1104 | name = "boom___boom_2.10.1.tgz"; | ||
1105 | path = fetchurl { | ||
1106 | name = "boom___boom_2.10.1.tgz"; | ||
1107 | url = "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz"; | ||
1108 | sha1 = "39c8918ceff5799f83f9492a848f625add0c766f"; | ||
1109 | }; | ||
1110 | } | ||
1111 | |||
1112 | { | ||
1113 | name = "bootstrap___bootstrap_4.1.3.tgz"; | ||
1114 | path = fetchurl { | ||
1115 | name = "bootstrap___bootstrap_4.1.3.tgz"; | ||
1116 | url = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.3.tgz"; | ||
1117 | sha1 = "0eb371af2c8448e8c210411d0cb824a6409a12be"; | ||
1118 | }; | ||
1119 | } | ||
1120 | |||
1121 | { | ||
1122 | name = "brace_expansion___brace_expansion_1.1.11.tgz"; | ||
1123 | path = fetchurl { | ||
1124 | name = "brace_expansion___brace_expansion_1.1.11.tgz"; | ||
1125 | url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; | ||
1126 | sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd"; | ||
1127 | }; | ||
1128 | } | ||
1129 | |||
1130 | { | ||
1131 | name = "braces___braces_1.8.5.tgz"; | ||
1132 | path = fetchurl { | ||
1133 | name = "braces___braces_1.8.5.tgz"; | ||
1134 | url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz"; | ||
1135 | sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7"; | ||
1136 | }; | ||
1137 | } | ||
1138 | |||
1139 | { | ||
1140 | name = "braces___braces_2.3.2.tgz"; | ||
1141 | path = fetchurl { | ||
1142 | name = "braces___braces_2.3.2.tgz"; | ||
1143 | url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz"; | ||
1144 | sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729"; | ||
1145 | }; | ||
1146 | } | ||
1147 | |||
1148 | { | ||
1149 | name = "brorand___brorand_1.1.0.tgz"; | ||
1150 | path = fetchurl { | ||
1151 | name = "brorand___brorand_1.1.0.tgz"; | ||
1152 | url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz"; | ||
1153 | sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; | ||
1154 | }; | ||
1155 | } | ||
1156 | |||
1157 | { | ||
1158 | name = "browserify_aes___browserify_aes_1.2.0.tgz"; | ||
1159 | path = fetchurl { | ||
1160 | name = "browserify_aes___browserify_aes_1.2.0.tgz"; | ||
1161 | url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz"; | ||
1162 | sha1 = "326734642f403dabc3003209853bb70ad428ef48"; | ||
1163 | }; | ||
1164 | } | ||
1165 | |||
1166 | { | ||
1167 | name = "browserify_cipher___browserify_cipher_1.0.1.tgz"; | ||
1168 | path = fetchurl { | ||
1169 | name = "browserify_cipher___browserify_cipher_1.0.1.tgz"; | ||
1170 | url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz"; | ||
1171 | sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"; | ||
1172 | }; | ||
1173 | } | ||
1174 | |||
1175 | { | ||
1176 | name = "browserify_des___browserify_des_1.0.2.tgz"; | ||
1177 | path = fetchurl { | ||
1178 | name = "browserify_des___browserify_des_1.0.2.tgz"; | ||
1179 | url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz"; | ||
1180 | sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c"; | ||
1181 | }; | ||
1182 | } | ||
1183 | |||
1184 | { | ||
1185 | name = "browserify_rsa___browserify_rsa_4.0.1.tgz"; | ||
1186 | path = fetchurl { | ||
1187 | name = "browserify_rsa___browserify_rsa_4.0.1.tgz"; | ||
1188 | url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; | ||
1189 | sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; | ||
1190 | }; | ||
1191 | } | ||
1192 | |||
1193 | { | ||
1194 | name = "browserify_sign___browserify_sign_4.0.4.tgz"; | ||
1195 | path = fetchurl { | ||
1196 | name = "browserify_sign___browserify_sign_4.0.4.tgz"; | ||
1197 | url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz"; | ||
1198 | sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"; | ||
1199 | }; | ||
1200 | } | ||
1201 | |||
1202 | { | ||
1203 | name = "browserify_zlib___browserify_zlib_0.2.0.tgz"; | ||
1204 | path = fetchurl { | ||
1205 | name = "browserify_zlib___browserify_zlib_0.2.0.tgz"; | ||
1206 | url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; | ||
1207 | sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"; | ||
1208 | }; | ||
1209 | } | ||
1210 | |||
1211 | { | ||
1212 | name = "browserslist___browserslist_1.7.7.tgz"; | ||
1213 | path = fetchurl { | ||
1214 | name = "browserslist___browserslist_1.7.7.tgz"; | ||
1215 | url = "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz"; | ||
1216 | sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9"; | ||
1217 | }; | ||
1218 | } | ||
1219 | |||
1220 | { | ||
1221 | name = "browserslist___browserslist_3.2.8.tgz"; | ||
1222 | path = fetchurl { | ||
1223 | name = "browserslist___browserslist_3.2.8.tgz"; | ||
1224 | url = "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz"; | ||
1225 | sha1 = "b0005361d6471f0f5952797a76fc985f1f978fc6"; | ||
1226 | }; | ||
1227 | } | ||
1228 | |||
1229 | { | ||
1230 | name = "buffer_indexof___buffer_indexof_1.1.1.tgz"; | ||
1231 | path = fetchurl { | ||
1232 | name = "buffer_indexof___buffer_indexof_1.1.1.tgz"; | ||
1233 | url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz"; | ||
1234 | sha1 = "52fabcc6a606d1a00302802648ef68f639da268c"; | ||
1235 | }; | ||
1236 | } | ||
1237 | |||
1238 | { | ||
1239 | name = "buffer_xor___buffer_xor_1.0.3.tgz"; | ||
1240 | path = fetchurl { | ||
1241 | name = "buffer_xor___buffer_xor_1.0.3.tgz"; | ||
1242 | url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz"; | ||
1243 | sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; | ||
1244 | }; | ||
1245 | } | ||
1246 | |||
1247 | { | ||
1248 | name = "buffer___buffer_4.9.1.tgz"; | ||
1249 | path = fetchurl { | ||
1250 | name = "buffer___buffer_4.9.1.tgz"; | ||
1251 | url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz"; | ||
1252 | sha1 = "6d1bb601b07a4efced97094132093027c95bc298"; | ||
1253 | }; | ||
1254 | } | ||
1255 | |||
1256 | { | ||
1257 | name = "builtin_modules___builtin_modules_1.1.1.tgz"; | ||
1258 | path = fetchurl { | ||
1259 | name = "builtin_modules___builtin_modules_1.1.1.tgz"; | ||
1260 | url = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz"; | ||
1261 | sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f"; | ||
1262 | }; | ||
1263 | } | ||
1264 | |||
1265 | { | ||
1266 | name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz"; | ||
1267 | path = fetchurl { | ||
1268 | name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz"; | ||
1269 | url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"; | ||
1270 | sha1 = "85982878e21b98e1c66425e03d0174788f569ee8"; | ||
1271 | }; | ||
1272 | } | ||
1273 | |||
1274 | { | ||
1275 | name = "bytes___bytes_3.0.0.tgz"; | ||
1276 | path = fetchurl { | ||
1277 | name = "bytes___bytes_3.0.0.tgz"; | ||
1278 | url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz"; | ||
1279 | sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048"; | ||
1280 | }; | ||
1281 | } | ||
1282 | |||
1283 | { | ||
1284 | name = "cache_base___cache_base_1.0.1.tgz"; | ||
1285 | path = fetchurl { | ||
1286 | name = "cache_base___cache_base_1.0.1.tgz"; | ||
1287 | url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz"; | ||
1288 | sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2"; | ||
1289 | }; | ||
1290 | } | ||
1291 | |||
1292 | { | ||
1293 | name = "camelcase_keys___camelcase_keys_2.1.0.tgz"; | ||
1294 | path = fetchurl { | ||
1295 | name = "camelcase_keys___camelcase_keys_2.1.0.tgz"; | ||
1296 | url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz"; | ||
1297 | sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7"; | ||
1298 | }; | ||
1299 | } | ||
1300 | |||
1301 | { | ||
1302 | name = "camelcase___camelcase_1.2.1.tgz"; | ||
1303 | path = fetchurl { | ||
1304 | name = "camelcase___camelcase_1.2.1.tgz"; | ||
1305 | url = "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz"; | ||
1306 | sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"; | ||
1307 | }; | ||
1308 | } | ||
1309 | |||
1310 | { | ||
1311 | name = "camelcase___camelcase_2.1.1.tgz"; | ||
1312 | path = fetchurl { | ||
1313 | name = "camelcase___camelcase_2.1.1.tgz"; | ||
1314 | url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz"; | ||
1315 | sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"; | ||
1316 | }; | ||
1317 | } | ||
1318 | |||
1319 | { | ||
1320 | name = "camelcase___camelcase_3.0.0.tgz"; | ||
1321 | path = fetchurl { | ||
1322 | name = "camelcase___camelcase_3.0.0.tgz"; | ||
1323 | url = "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz"; | ||
1324 | sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"; | ||
1325 | }; | ||
1326 | } | ||
1327 | |||
1328 | { | ||
1329 | name = "camelcase___camelcase_4.1.0.tgz"; | ||
1330 | path = fetchurl { | ||
1331 | name = "camelcase___camelcase_4.1.0.tgz"; | ||
1332 | url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz"; | ||
1333 | sha1 = "d545635be1e33c542649c69173e5de6acfae34dd"; | ||
1334 | }; | ||
1335 | } | ||
1336 | |||
1337 | { | ||
1338 | name = "caniuse_api___caniuse_api_1.6.1.tgz"; | ||
1339 | path = fetchurl { | ||
1340 | name = "caniuse_api___caniuse_api_1.6.1.tgz"; | ||
1341 | url = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz"; | ||
1342 | sha1 = "b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"; | ||
1343 | }; | ||
1344 | } | ||
1345 | |||
1346 | { | ||
1347 | name = "caniuse_db___caniuse_db_1.0.30000871.tgz"; | ||
1348 | path = fetchurl { | ||
1349 | name = "caniuse_db___caniuse_db_1.0.30000871.tgz"; | ||
1350 | url = "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000871.tgz"; | ||
1351 | sha1 = "f1995c1fe31892649a7605957a80c92518423d4d"; | ||
1352 | }; | ||
1353 | } | ||
1354 | |||
1355 | { | ||
1356 | name = "caniuse_lite___caniuse_lite_1.0.30000865.tgz"; | ||
1357 | path = fetchurl { | ||
1358 | name = "caniuse_lite___caniuse_lite_1.0.30000865.tgz"; | ||
1359 | url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz"; | ||
1360 | sha1 = "70026616e8afe6e1442f8bb4e1092987d81a2f25"; | ||
1361 | }; | ||
1362 | } | ||
1363 | |||
1364 | { | ||
1365 | name = "caseless___caseless_0.12.0.tgz"; | ||
1366 | path = fetchurl { | ||
1367 | name = "caseless___caseless_0.12.0.tgz"; | ||
1368 | url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz"; | ||
1369 | sha1 = "1b681c21ff84033c826543090689420d187151dc"; | ||
1370 | }; | ||
1371 | } | ||
1372 | |||
1373 | { | ||
1374 | name = "center_align___center_align_0.1.3.tgz"; | ||
1375 | path = fetchurl { | ||
1376 | name = "center_align___center_align_0.1.3.tgz"; | ||
1377 | url = "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz"; | ||
1378 | sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad"; | ||
1379 | }; | ||
1380 | } | ||
1381 | |||
1382 | { | ||
1383 | name = "chalk___chalk_1.1.3.tgz"; | ||
1384 | path = fetchurl { | ||
1385 | name = "chalk___chalk_1.1.3.tgz"; | ||
1386 | url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz"; | ||
1387 | sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; | ||
1388 | }; | ||
1389 | } | ||
1390 | |||
1391 | { | ||
1392 | name = "chalk___chalk_2.4.1.tgz"; | ||
1393 | path = fetchurl { | ||
1394 | name = "chalk___chalk_2.4.1.tgz"; | ||
1395 | url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz"; | ||
1396 | sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e"; | ||
1397 | }; | ||
1398 | } | ||
1399 | |||
1400 | { | ||
1401 | name = "chokidar___chokidar_2.0.4.tgz"; | ||
1402 | path = fetchurl { | ||
1403 | name = "chokidar___chokidar_2.0.4.tgz"; | ||
1404 | url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz"; | ||
1405 | sha1 = "356ff4e2b0e8e43e322d18a372460bbcf3accd26"; | ||
1406 | }; | ||
1407 | } | ||
1408 | |||
1409 | { | ||
1410 | name = "chownr___chownr_1.0.1.tgz"; | ||
1411 | path = fetchurl { | ||
1412 | name = "chownr___chownr_1.0.1.tgz"; | ||
1413 | url = "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz"; | ||
1414 | sha1 = "e2a75042a9551908bebd25b8523d5f9769d79181"; | ||
1415 | }; | ||
1416 | } | ||
1417 | |||
1418 | { | ||
1419 | name = "cipher_base___cipher_base_1.0.4.tgz"; | ||
1420 | path = fetchurl { | ||
1421 | name = "cipher_base___cipher_base_1.0.4.tgz"; | ||
1422 | url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz"; | ||
1423 | sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de"; | ||
1424 | }; | ||
1425 | } | ||
1426 | |||
1427 | { | ||
1428 | name = "clap___clap_1.2.3.tgz"; | ||
1429 | path = fetchurl { | ||
1430 | name = "clap___clap_1.2.3.tgz"; | ||
1431 | url = "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz"; | ||
1432 | sha1 = "4f36745b32008492557f46412d66d50cb99bce51"; | ||
1433 | }; | ||
1434 | } | ||
1435 | |||
1436 | { | ||
1437 | name = "class_utils___class_utils_0.3.6.tgz"; | ||
1438 | path = fetchurl { | ||
1439 | name = "class_utils___class_utils_0.3.6.tgz"; | ||
1440 | url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz"; | ||
1441 | sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463"; | ||
1442 | }; | ||
1443 | } | ||
1444 | |||
1445 | { | ||
1446 | name = "clean_webpack_plugin___clean_webpack_plugin_0.1.19.tgz"; | ||
1447 | path = fetchurl { | ||
1448 | name = "clean_webpack_plugin___clean_webpack_plugin_0.1.19.tgz"; | ||
1449 | url = "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz"; | ||
1450 | sha1 = "ceda8bb96b00fe168e9b080272960d20fdcadd6d"; | ||
1451 | }; | ||
1452 | } | ||
1453 | |||
1454 | { | ||
1455 | name = "cliui___cliui_2.1.0.tgz"; | ||
1456 | path = fetchurl { | ||
1457 | name = "cliui___cliui_2.1.0.tgz"; | ||
1458 | url = "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz"; | ||
1459 | sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1"; | ||
1460 | }; | ||
1461 | } | ||
1462 | |||
1463 | { | ||
1464 | name = "cliui___cliui_3.2.0.tgz"; | ||
1465 | path = fetchurl { | ||
1466 | name = "cliui___cliui_3.2.0.tgz"; | ||
1467 | url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz"; | ||
1468 | sha1 = "120601537a916d29940f934da3b48d585a39213d"; | ||
1469 | }; | ||
1470 | } | ||
1471 | |||
1472 | { | ||
1473 | name = "clone_deep___clone_deep_2.0.2.tgz"; | ||
1474 | path = fetchurl { | ||
1475 | name = "clone_deep___clone_deep_2.0.2.tgz"; | ||
1476 | url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz"; | ||
1477 | sha1 = "00db3a1e173656730d1188c3d6aced6d7ea97713"; | ||
1478 | }; | ||
1479 | } | ||
1480 | |||
1481 | { | ||
1482 | name = "clone___clone_1.0.4.tgz"; | ||
1483 | path = fetchurl { | ||
1484 | name = "clone___clone_1.0.4.tgz"; | ||
1485 | url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz"; | ||
1486 | sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; | ||
1487 | }; | ||
1488 | } | ||
1489 | |||
1490 | { | ||
1491 | name = "co___co_4.6.0.tgz"; | ||
1492 | path = fetchurl { | ||
1493 | name = "co___co_4.6.0.tgz"; | ||
1494 | url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz"; | ||
1495 | sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; | ||
1496 | }; | ||
1497 | } | ||
1498 | |||
1499 | { | ||
1500 | name = "coa___coa_1.0.4.tgz"; | ||
1501 | path = fetchurl { | ||
1502 | name = "coa___coa_1.0.4.tgz"; | ||
1503 | url = "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz"; | ||
1504 | sha1 = "a9ef153660d6a86a8bdec0289a5c684d217432fd"; | ||
1505 | }; | ||
1506 | } | ||
1507 | |||
1508 | { | ||
1509 | name = "code_point_at___code_point_at_1.1.0.tgz"; | ||
1510 | path = fetchurl { | ||
1511 | name = "code_point_at___code_point_at_1.1.0.tgz"; | ||
1512 | url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz"; | ||
1513 | sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; | ||
1514 | }; | ||
1515 | } | ||
1516 | |||
1517 | { | ||
1518 | name = "collection_visit___collection_visit_1.0.0.tgz"; | ||
1519 | path = fetchurl { | ||
1520 | name = "collection_visit___collection_visit_1.0.0.tgz"; | ||
1521 | url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz"; | ||
1522 | sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; | ||
1523 | }; | ||
1524 | } | ||
1525 | |||
1526 | { | ||
1527 | name = "color_convert___color_convert_1.9.2.tgz"; | ||
1528 | path = fetchurl { | ||
1529 | name = "color_convert___color_convert_1.9.2.tgz"; | ||
1530 | url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz"; | ||
1531 | sha1 = "49881b8fba67df12a96bdf3f56c0aab9e7913147"; | ||
1532 | }; | ||
1533 | } | ||
1534 | |||
1535 | { | ||
1536 | name = "color_name___color_name_1.1.1.tgz"; | ||
1537 | path = fetchurl { | ||
1538 | name = "color_name___color_name_1.1.1.tgz"; | ||
1539 | url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz"; | ||
1540 | sha1 = "4b1415304cf50028ea81643643bd82ea05803689"; | ||
1541 | }; | ||
1542 | } | ||
1543 | |||
1544 | { | ||
1545 | name = "color_name___color_name_1.1.3.tgz"; | ||
1546 | path = fetchurl { | ||
1547 | name = "color_name___color_name_1.1.3.tgz"; | ||
1548 | url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz"; | ||
1549 | sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; | ||
1550 | }; | ||
1551 | } | ||
1552 | |||
1553 | { | ||
1554 | name = "color_string___color_string_0.3.0.tgz"; | ||
1555 | path = fetchurl { | ||
1556 | name = "color_string___color_string_0.3.0.tgz"; | ||
1557 | url = "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz"; | ||
1558 | sha1 = "27d46fb67025c5c2fa25993bfbf579e47841b991"; | ||
1559 | }; | ||
1560 | } | ||
1561 | |||
1562 | { | ||
1563 | name = "color___color_0.11.4.tgz"; | ||
1564 | path = fetchurl { | ||
1565 | name = "color___color_0.11.4.tgz"; | ||
1566 | url = "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz"; | ||
1567 | sha1 = "6d7b5c74fb65e841cd48792ad1ed5e07b904d764"; | ||
1568 | }; | ||
1569 | } | ||
1570 | |||
1571 | { | ||
1572 | name = "colormin___colormin_1.1.2.tgz"; | ||
1573 | path = fetchurl { | ||
1574 | name = "colormin___colormin_1.1.2.tgz"; | ||
1575 | url = "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz"; | ||
1576 | sha1 = "ea2f7420a72b96881a38aae59ec124a6f7298133"; | ||
1577 | }; | ||
1578 | } | ||
1579 | |||
1580 | { | ||
1581 | name = "colors___colors_1.1.2.tgz"; | ||
1582 | path = fetchurl { | ||
1583 | name = "colors___colors_1.1.2.tgz"; | ||
1584 | url = "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz"; | ||
1585 | sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63"; | ||
1586 | }; | ||
1587 | } | ||
1588 | |||
1589 | { | ||
1590 | name = "combined_stream___combined_stream_1.0.6.tgz"; | ||
1591 | path = fetchurl { | ||
1592 | name = "combined_stream___combined_stream_1.0.6.tgz"; | ||
1593 | url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz"; | ||
1594 | sha1 = "723e7df6e801ac5613113a7e445a9b69cb632818"; | ||
1595 | }; | ||
1596 | } | ||
1597 | |||
1598 | { | ||
1599 | name = "commondir___commondir_1.0.1.tgz"; | ||
1600 | path = fetchurl { | ||
1601 | name = "commondir___commondir_1.0.1.tgz"; | ||
1602 | url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz"; | ||
1603 | sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b"; | ||
1604 | }; | ||
1605 | } | ||
1606 | |||
1607 | { | ||
1608 | name = "component_emitter___component_emitter_1.2.1.tgz"; | ||
1609 | path = fetchurl { | ||
1610 | name = "component_emitter___component_emitter_1.2.1.tgz"; | ||
1611 | url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz"; | ||
1612 | sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6"; | ||
1613 | }; | ||
1614 | } | ||
1615 | |||
1616 | { | ||
1617 | name = "compressible___compressible_2.0.14.tgz"; | ||
1618 | path = fetchurl { | ||
1619 | name = "compressible___compressible_2.0.14.tgz"; | ||
1620 | url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz"; | ||
1621 | sha1 = "326c5f507fbb055f54116782b969a81b67a29da7"; | ||
1622 | }; | ||
1623 | } | ||
1624 | |||
1625 | { | ||
1626 | name = "compression___compression_1.7.3.tgz"; | ||
1627 | path = fetchurl { | ||
1628 | name = "compression___compression_1.7.3.tgz"; | ||
1629 | url = "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz"; | ||
1630 | sha1 = "27e0e176aaf260f7f2c2813c3e440adb9f1993db"; | ||
1631 | }; | ||
1632 | } | ||
1633 | |||
1634 | { | ||
1635 | name = "concat_map___concat_map_0.0.1.tgz"; | ||
1636 | path = fetchurl { | ||
1637 | name = "concat_map___concat_map_0.0.1.tgz"; | ||
1638 | url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; | ||
1639 | sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; | ||
1640 | }; | ||
1641 | } | ||
1642 | |||
1643 | { | ||
1644 | name = "connect_history_api_fallback___connect_history_api_fallback_1.5.0.tgz"; | ||
1645 | path = fetchurl { | ||
1646 | name = "connect_history_api_fallback___connect_history_api_fallback_1.5.0.tgz"; | ||
1647 | url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz"; | ||
1648 | sha1 = "b06873934bc5e344fef611a196a6faae0aee015a"; | ||
1649 | }; | ||
1650 | } | ||
1651 | |||
1652 | { | ||
1653 | name = "console_browserify___console_browserify_1.1.0.tgz"; | ||
1654 | path = fetchurl { | ||
1655 | name = "console_browserify___console_browserify_1.1.0.tgz"; | ||
1656 | url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz"; | ||
1657 | sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10"; | ||
1658 | }; | ||
1659 | } | ||
1660 | |||
1661 | { | ||
1662 | name = "console_control_strings___console_control_strings_1.1.0.tgz"; | ||
1663 | path = fetchurl { | ||
1664 | name = "console_control_strings___console_control_strings_1.1.0.tgz"; | ||
1665 | url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz"; | ||
1666 | sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; | ||
1667 | }; | ||
1668 | } | ||
1669 | |||
1670 | { | ||
1671 | name = "constants_browserify___constants_browserify_1.0.0.tgz"; | ||
1672 | path = fetchurl { | ||
1673 | name = "constants_browserify___constants_browserify_1.0.0.tgz"; | ||
1674 | url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz"; | ||
1675 | sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; | ||
1676 | }; | ||
1677 | } | ||
1678 | |||
1679 | { | ||
1680 | name = "content_disposition___content_disposition_0.5.2.tgz"; | ||
1681 | path = fetchurl { | ||
1682 | name = "content_disposition___content_disposition_0.5.2.tgz"; | ||
1683 | url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz"; | ||
1684 | sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"; | ||
1685 | }; | ||
1686 | } | ||
1687 | |||
1688 | { | ||
1689 | name = "content_type___content_type_1.0.4.tgz"; | ||
1690 | path = fetchurl { | ||
1691 | name = "content_type___content_type_1.0.4.tgz"; | ||
1692 | url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz"; | ||
1693 | sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b"; | ||
1694 | }; | ||
1695 | } | ||
1696 | |||
1697 | { | ||
1698 | name = "convert_source_map___convert_source_map_0.3.5.tgz"; | ||
1699 | path = fetchurl { | ||
1700 | name = "convert_source_map___convert_source_map_0.3.5.tgz"; | ||
1701 | url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz"; | ||
1702 | sha1 = "f1d802950af7dd2631a1febe0596550c86ab3190"; | ||
1703 | }; | ||
1704 | } | ||
1705 | |||
1706 | { | ||
1707 | name = "convert_source_map___convert_source_map_1.5.1.tgz"; | ||
1708 | path = fetchurl { | ||
1709 | name = "convert_source_map___convert_source_map_1.5.1.tgz"; | ||
1710 | url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz"; | ||
1711 | sha1 = "b8278097b9bc229365de5c62cf5fcaed8b5599e5"; | ||
1712 | }; | ||
1713 | } | ||
1714 | |||
1715 | { | ||
1716 | name = "cookie_signature___cookie_signature_1.0.6.tgz"; | ||
1717 | path = fetchurl { | ||
1718 | name = "cookie_signature___cookie_signature_1.0.6.tgz"; | ||
1719 | url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz"; | ||
1720 | sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; | ||
1721 | }; | ||
1722 | } | ||
1723 | |||
1724 | { | ||
1725 | name = "cookie___cookie_0.3.1.tgz"; | ||
1726 | path = fetchurl { | ||
1727 | name = "cookie___cookie_0.3.1.tgz"; | ||
1728 | url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz"; | ||
1729 | sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"; | ||
1730 | }; | ||
1731 | } | ||
1732 | |||
1733 | { | ||
1734 | name = "copy_descriptor___copy_descriptor_0.1.1.tgz"; | ||
1735 | path = fetchurl { | ||
1736 | name = "copy_descriptor___copy_descriptor_0.1.1.tgz"; | ||
1737 | url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; | ||
1738 | sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; | ||
1739 | }; | ||
1740 | } | ||
1741 | |||
1742 | { | ||
1743 | name = "core_js___core_js_2.5.7.tgz"; | ||
1744 | path = fetchurl { | ||
1745 | name = "core_js___core_js_2.5.7.tgz"; | ||
1746 | url = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz"; | ||
1747 | sha1 = "f972608ff0cead68b841a16a932d0b183791814e"; | ||
1748 | }; | ||
1749 | } | ||
1750 | |||
1751 | { | ||
1752 | name = "core_util_is___core_util_is_1.0.2.tgz"; | ||
1753 | path = fetchurl { | ||
1754 | name = "core_util_is___core_util_is_1.0.2.tgz"; | ||
1755 | url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"; | ||
1756 | sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; | ||
1757 | }; | ||
1758 | } | ||
1759 | |||
1760 | { | ||
1761 | name = "create_ecdh___create_ecdh_4.0.3.tgz"; | ||
1762 | path = fetchurl { | ||
1763 | name = "create_ecdh___create_ecdh_4.0.3.tgz"; | ||
1764 | url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz"; | ||
1765 | sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff"; | ||
1766 | }; | ||
1767 | } | ||
1768 | |||
1769 | { | ||
1770 | name = "create_hash___create_hash_1.2.0.tgz"; | ||
1771 | path = fetchurl { | ||
1772 | name = "create_hash___create_hash_1.2.0.tgz"; | ||
1773 | url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz"; | ||
1774 | sha1 = "889078af11a63756bcfb59bd221996be3a9ef196"; | ||
1775 | }; | ||
1776 | } | ||
1777 | |||
1778 | { | ||
1779 | name = "create_hmac___create_hmac_1.1.7.tgz"; | ||
1780 | path = fetchurl { | ||
1781 | name = "create_hmac___create_hmac_1.1.7.tgz"; | ||
1782 | url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz"; | ||
1783 | sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff"; | ||
1784 | }; | ||
1785 | } | ||
1786 | |||
1787 | { | ||
1788 | name = "cross_spawn___cross_spawn_3.0.1.tgz"; | ||
1789 | path = fetchurl { | ||
1790 | name = "cross_spawn___cross_spawn_3.0.1.tgz"; | ||
1791 | url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz"; | ||
1792 | sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982"; | ||
1793 | }; | ||
1794 | } | ||
1795 | |||
1796 | { | ||
1797 | name = "cross_spawn___cross_spawn_5.1.0.tgz"; | ||
1798 | path = fetchurl { | ||
1799 | name = "cross_spawn___cross_spawn_5.1.0.tgz"; | ||
1800 | url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz"; | ||
1801 | sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449"; | ||
1802 | }; | ||
1803 | } | ||
1804 | |||
1805 | { | ||
1806 | name = "cryptiles___cryptiles_2.0.5.tgz"; | ||
1807 | path = fetchurl { | ||
1808 | name = "cryptiles___cryptiles_2.0.5.tgz"; | ||
1809 | url = "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz"; | ||
1810 | sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8"; | ||
1811 | }; | ||
1812 | } | ||
1813 | |||
1814 | { | ||
1815 | name = "crypto_browserify___crypto_browserify_3.12.0.tgz"; | ||
1816 | path = fetchurl { | ||
1817 | name = "crypto_browserify___crypto_browserify_3.12.0.tgz"; | ||
1818 | url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; | ||
1819 | sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec"; | ||
1820 | }; | ||
1821 | } | ||
1822 | |||
1823 | { | ||
1824 | name = "css_color_names___css_color_names_0.0.4.tgz"; | ||
1825 | path = fetchurl { | ||
1826 | name = "css_color_names___css_color_names_0.0.4.tgz"; | ||
1827 | url = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz"; | ||
1828 | sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0"; | ||
1829 | }; | ||
1830 | } | ||
1831 | |||
1832 | { | ||
1833 | name = "css_loader___css_loader_0.26.4.tgz"; | ||
1834 | path = fetchurl { | ||
1835 | name = "css_loader___css_loader_0.26.4.tgz"; | ||
1836 | url = "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.4.tgz"; | ||
1837 | sha1 = "b61e9e30db94303e6ffc892f10ecd09ad025a1fd"; | ||
1838 | }; | ||
1839 | } | ||
1840 | |||
1841 | { | ||
1842 | name = "css_select___css_select_1.2.0.tgz"; | ||
1843 | path = fetchurl { | ||
1844 | name = "css_select___css_select_1.2.0.tgz"; | ||
1845 | url = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz"; | ||
1846 | sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858"; | ||
1847 | }; | ||
1848 | } | ||
1849 | |||
1850 | { | ||
1851 | name = "css_selector_tokenizer___css_selector_tokenizer_0.7.0.tgz"; | ||
1852 | path = fetchurl { | ||
1853 | name = "css_selector_tokenizer___css_selector_tokenizer_0.7.0.tgz"; | ||
1854 | url = "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz"; | ||
1855 | sha1 = "e6988474ae8c953477bf5e7efecfceccd9cf4c86"; | ||
1856 | }; | ||
1857 | } | ||
1858 | |||
1859 | { | ||
1860 | name = "css_what___css_what_2.1.0.tgz"; | ||
1861 | path = fetchurl { | ||
1862 | name = "css_what___css_what_2.1.0.tgz"; | ||
1863 | url = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz"; | ||
1864 | sha1 = "9467d032c38cfaefb9f2d79501253062f87fa1bd"; | ||
1865 | }; | ||
1866 | } | ||
1867 | |||
1868 | { | ||
1869 | name = "css___css_2.2.3.tgz"; | ||
1870 | path = fetchurl { | ||
1871 | name = "css___css_2.2.3.tgz"; | ||
1872 | url = "https://registry.yarnpkg.com/css/-/css-2.2.3.tgz"; | ||
1873 | sha1 = "f861f4ba61e79bedc962aa548e5780fd95cbc6be"; | ||
1874 | }; | ||
1875 | } | ||
1876 | |||
1877 | { | ||
1878 | name = "cssesc___cssesc_0.1.0.tgz"; | ||
1879 | path = fetchurl { | ||
1880 | name = "cssesc___cssesc_0.1.0.tgz"; | ||
1881 | url = "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz"; | ||
1882 | sha1 = "c814903e45623371a0477b40109aaafbeeaddbb4"; | ||
1883 | }; | ||
1884 | } | ||
1885 | |||
1886 | { | ||
1887 | name = "cssnano___cssnano_3.10.0.tgz"; | ||
1888 | path = fetchurl { | ||
1889 | name = "cssnano___cssnano_3.10.0.tgz"; | ||
1890 | url = "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz"; | ||
1891 | sha1 = "4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"; | ||
1892 | }; | ||
1893 | } | ||
1894 | |||
1895 | { | ||
1896 | name = "csso___csso_2.3.2.tgz"; | ||
1897 | path = fetchurl { | ||
1898 | name = "csso___csso_2.3.2.tgz"; | ||
1899 | url = "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz"; | ||
1900 | sha1 = "ddd52c587033f49e94b71fc55569f252e8ff5f85"; | ||
1901 | }; | ||
1902 | } | ||
1903 | |||
1904 | { | ||
1905 | name = "currently_unhandled___currently_unhandled_0.4.1.tgz"; | ||
1906 | path = fetchurl { | ||
1907 | name = "currently_unhandled___currently_unhandled_0.4.1.tgz"; | ||
1908 | url = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz"; | ||
1909 | sha1 = "988df33feab191ef799a61369dd76c17adf957ea"; | ||
1910 | }; | ||
1911 | } | ||
1912 | |||
1913 | { | ||
1914 | name = "d___d_1.0.0.tgz"; | ||
1915 | path = fetchurl { | ||
1916 | name = "d___d_1.0.0.tgz"; | ||
1917 | url = "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz"; | ||
1918 | sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f"; | ||
1919 | }; | ||
1920 | } | ||
1921 | |||
1922 | { | ||
1923 | name = "dashdash___dashdash_1.14.1.tgz"; | ||
1924 | path = fetchurl { | ||
1925 | name = "dashdash___dashdash_1.14.1.tgz"; | ||
1926 | url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz"; | ||
1927 | sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; | ||
1928 | }; | ||
1929 | } | ||
1930 | |||
1931 | { | ||
1932 | name = "date_now___date_now_0.1.4.tgz"; | ||
1933 | path = fetchurl { | ||
1934 | name = "date_now___date_now_0.1.4.tgz"; | ||
1935 | url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz"; | ||
1936 | sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b"; | ||
1937 | }; | ||
1938 | } | ||
1939 | |||
1940 | { | ||
1941 | name = "debug___debug_2.6.9.tgz"; | ||
1942 | path = fetchurl { | ||
1943 | name = "debug___debug_2.6.9.tgz"; | ||
1944 | url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz"; | ||
1945 | sha1 = "5d128515df134ff327e90a4c93f4e077a536341f"; | ||
1946 | }; | ||
1947 | } | ||
1948 | |||
1949 | { | ||
1950 | name = "debug___debug_3.1.0.tgz"; | ||
1951 | path = fetchurl { | ||
1952 | name = "debug___debug_3.1.0.tgz"; | ||
1953 | url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz"; | ||
1954 | sha1 = "5bb5a0672628b64149566ba16819e61518c67261"; | ||
1955 | }; | ||
1956 | } | ||
1957 | |||
1958 | { | ||
1959 | name = "decamelize___decamelize_1.2.0.tgz"; | ||
1960 | path = fetchurl { | ||
1961 | name = "decamelize___decamelize_1.2.0.tgz"; | ||
1962 | url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz"; | ||
1963 | sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; | ||
1964 | }; | ||
1965 | } | ||
1966 | |||
1967 | { | ||
1968 | name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; | ||
1969 | path = fetchurl { | ||
1970 | name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; | ||
1971 | url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; | ||
1972 | sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; | ||
1973 | }; | ||
1974 | } | ||
1975 | |||
1976 | { | ||
1977 | name = "deep_equal___deep_equal_1.0.1.tgz"; | ||
1978 | path = fetchurl { | ||
1979 | name = "deep_equal___deep_equal_1.0.1.tgz"; | ||
1980 | url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz"; | ||
1981 | sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5"; | ||
1982 | }; | ||
1983 | } | ||
1984 | |||
1985 | { | ||
1986 | name = "deep_extend___deep_extend_0.6.0.tgz"; | ||
1987 | path = fetchurl { | ||
1988 | name = "deep_extend___deep_extend_0.6.0.tgz"; | ||
1989 | url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz"; | ||
1990 | sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac"; | ||
1991 | }; | ||
1992 | } | ||
1993 | |||
1994 | { | ||
1995 | name = "define_properties___define_properties_1.1.2.tgz"; | ||
1996 | path = fetchurl { | ||
1997 | name = "define_properties___define_properties_1.1.2.tgz"; | ||
1998 | url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz"; | ||
1999 | sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94"; | ||
2000 | }; | ||
2001 | } | ||
2002 | |||
2003 | { | ||
2004 | name = "define_property___define_property_0.2.5.tgz"; | ||
2005 | path = fetchurl { | ||
2006 | name = "define_property___define_property_0.2.5.tgz"; | ||
2007 | url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz"; | ||
2008 | sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; | ||
2009 | }; | ||
2010 | } | ||
2011 | |||
2012 | { | ||
2013 | name = "define_property___define_property_1.0.0.tgz"; | ||
2014 | path = fetchurl { | ||
2015 | name = "define_property___define_property_1.0.0.tgz"; | ||
2016 | url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz"; | ||
2017 | sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; | ||
2018 | }; | ||
2019 | } | ||
2020 | |||
2021 | { | ||
2022 | name = "define_property___define_property_2.0.2.tgz"; | ||
2023 | path = fetchurl { | ||
2024 | name = "define_property___define_property_2.0.2.tgz"; | ||
2025 | url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz"; | ||
2026 | sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d"; | ||
2027 | }; | ||
2028 | } | ||
2029 | |||
2030 | { | ||
2031 | name = "defined___defined_1.0.0.tgz"; | ||
2032 | path = fetchurl { | ||
2033 | name = "defined___defined_1.0.0.tgz"; | ||
2034 | url = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz"; | ||
2035 | sha1 = "c98d9bcef75674188e110969151199e39b1fa693"; | ||
2036 | }; | ||
2037 | } | ||
2038 | |||
2039 | { | ||
2040 | name = "del___del_3.0.0.tgz"; | ||
2041 | path = fetchurl { | ||
2042 | name = "del___del_3.0.0.tgz"; | ||
2043 | url = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz"; | ||
2044 | sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5"; | ||
2045 | }; | ||
2046 | } | ||
2047 | |||
2048 | { | ||
2049 | name = "delayed_stream___delayed_stream_1.0.0.tgz"; | ||
2050 | path = fetchurl { | ||
2051 | name = "delayed_stream___delayed_stream_1.0.0.tgz"; | ||
2052 | url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz"; | ||
2053 | sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; | ||
2054 | }; | ||
2055 | } | ||
2056 | |||
2057 | { | ||
2058 | name = "delegates___delegates_1.0.0.tgz"; | ||
2059 | path = fetchurl { | ||
2060 | name = "delegates___delegates_1.0.0.tgz"; | ||
2061 | url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz"; | ||
2062 | sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; | ||
2063 | }; | ||
2064 | } | ||
2065 | |||
2066 | { | ||
2067 | name = "depd___depd_1.1.1.tgz"; | ||
2068 | path = fetchurl { | ||
2069 | name = "depd___depd_1.1.1.tgz"; | ||
2070 | url = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz"; | ||
2071 | sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359"; | ||
2072 | }; | ||
2073 | } | ||
2074 | |||
2075 | { | ||
2076 | name = "depd___depd_1.1.2.tgz"; | ||
2077 | path = fetchurl { | ||
2078 | name = "depd___depd_1.1.2.tgz"; | ||
2079 | url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz"; | ||
2080 | sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; | ||
2081 | }; | ||
2082 | } | ||
2083 | |||
2084 | { | ||
2085 | name = "des.js___des.js_1.0.0.tgz"; | ||
2086 | path = fetchurl { | ||
2087 | name = "des.js___des.js_1.0.0.tgz"; | ||
2088 | url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz"; | ||
2089 | sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"; | ||
2090 | }; | ||
2091 | } | ||
2092 | |||
2093 | { | ||
2094 | name = "destroy___destroy_1.0.4.tgz"; | ||
2095 | path = fetchurl { | ||
2096 | name = "destroy___destroy_1.0.4.tgz"; | ||
2097 | url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz"; | ||
2098 | sha1 = "978857442c44749e4206613e37946205826abd80"; | ||
2099 | }; | ||
2100 | } | ||
2101 | |||
2102 | { | ||
2103 | name = "detect_indent___detect_indent_4.0.0.tgz"; | ||
2104 | path = fetchurl { | ||
2105 | name = "detect_indent___detect_indent_4.0.0.tgz"; | ||
2106 | url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz"; | ||
2107 | sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208"; | ||
2108 | }; | ||
2109 | } | ||
2110 | |||
2111 | { | ||
2112 | name = "detect_libc___detect_libc_1.0.3.tgz"; | ||
2113 | path = fetchurl { | ||
2114 | name = "detect_libc___detect_libc_1.0.3.tgz"; | ||
2115 | url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz"; | ||
2116 | sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; | ||
2117 | }; | ||
2118 | } | ||
2119 | |||
2120 | { | ||
2121 | name = "detect_node___detect_node_2.0.3.tgz"; | ||
2122 | path = fetchurl { | ||
2123 | name = "detect_node___detect_node_2.0.3.tgz"; | ||
2124 | url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz"; | ||
2125 | sha1 = "a2033c09cc8e158d37748fbde7507832bd6ce127"; | ||
2126 | }; | ||
2127 | } | ||
2128 | |||
2129 | { | ||
2130 | name = "diffie_hellman___diffie_hellman_5.0.3.tgz"; | ||
2131 | path = fetchurl { | ||
2132 | name = "diffie_hellman___diffie_hellman_5.0.3.tgz"; | ||
2133 | url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz"; | ||
2134 | sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875"; | ||
2135 | }; | ||
2136 | } | ||
2137 | |||
2138 | { | ||
2139 | name = "dns_equal___dns_equal_1.0.0.tgz"; | ||
2140 | path = fetchurl { | ||
2141 | name = "dns_equal___dns_equal_1.0.0.tgz"; | ||
2142 | url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz"; | ||
2143 | sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d"; | ||
2144 | }; | ||
2145 | } | ||
2146 | |||
2147 | { | ||
2148 | name = "dns_packet___dns_packet_1.3.1.tgz"; | ||
2149 | path = fetchurl { | ||
2150 | name = "dns_packet___dns_packet_1.3.1.tgz"; | ||
2151 | url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz"; | ||
2152 | sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a"; | ||
2153 | }; | ||
2154 | } | ||
2155 | |||
2156 | { | ||
2157 | name = "dns_txt___dns_txt_2.0.2.tgz"; | ||
2158 | path = fetchurl { | ||
2159 | name = "dns_txt___dns_txt_2.0.2.tgz"; | ||
2160 | url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz"; | ||
2161 | sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6"; | ||
2162 | }; | ||
2163 | } | ||
2164 | |||
2165 | { | ||
2166 | name = "dom_converter___dom_converter_0.1.4.tgz"; | ||
2167 | path = fetchurl { | ||
2168 | name = "dom_converter___dom_converter_0.1.4.tgz"; | ||
2169 | url = "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz"; | ||
2170 | sha1 = "a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b"; | ||
2171 | }; | ||
2172 | } | ||
2173 | |||
2174 | { | ||
2175 | name = "dom_serializer___dom_serializer_0.1.0.tgz"; | ||
2176 | path = fetchurl { | ||
2177 | name = "dom_serializer___dom_serializer_0.1.0.tgz"; | ||
2178 | url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz"; | ||
2179 | sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82"; | ||
2180 | }; | ||
2181 | } | ||
2182 | |||
2183 | { | ||
2184 | name = "domain_browser___domain_browser_1.2.0.tgz"; | ||
2185 | path = fetchurl { | ||
2186 | name = "domain_browser___domain_browser_1.2.0.tgz"; | ||
2187 | url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz"; | ||
2188 | sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda"; | ||
2189 | }; | ||
2190 | } | ||
2191 | |||
2192 | { | ||
2193 | name = "domelementtype___domelementtype_1.3.0.tgz"; | ||
2194 | path = fetchurl { | ||
2195 | name = "domelementtype___domelementtype_1.3.0.tgz"; | ||
2196 | url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz"; | ||
2197 | sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2"; | ||
2198 | }; | ||
2199 | } | ||
2200 | |||
2201 | { | ||
2202 | name = "domelementtype___domelementtype_1.1.3.tgz"; | ||
2203 | path = fetchurl { | ||
2204 | name = "domelementtype___domelementtype_1.1.3.tgz"; | ||
2205 | url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz"; | ||
2206 | sha1 = "bd28773e2642881aec51544924299c5cd822185b"; | ||
2207 | }; | ||
2208 | } | ||
2209 | |||
2210 | { | ||
2211 | name = "domhandler___domhandler_2.1.0.tgz"; | ||
2212 | path = fetchurl { | ||
2213 | name = "domhandler___domhandler_2.1.0.tgz"; | ||
2214 | url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz"; | ||
2215 | sha1 = "d2646f5e57f6c3bab11cf6cb05d3c0acf7412594"; | ||
2216 | }; | ||
2217 | } | ||
2218 | |||
2219 | { | ||
2220 | name = "domutils___domutils_1.1.6.tgz"; | ||
2221 | path = fetchurl { | ||
2222 | name = "domutils___domutils_1.1.6.tgz"; | ||
2223 | url = "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz"; | ||
2224 | sha1 = "bddc3de099b9a2efacc51c623f28f416ecc57485"; | ||
2225 | }; | ||
2226 | } | ||
2227 | |||
2228 | { | ||
2229 | name = "domutils___domutils_1.5.1.tgz"; | ||
2230 | path = fetchurl { | ||
2231 | name = "domutils___domutils_1.5.1.tgz"; | ||
2232 | url = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz"; | ||
2233 | sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf"; | ||
2234 | }; | ||
2235 | } | ||
2236 | |||
2237 | { | ||
2238 | name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz"; | ||
2239 | path = fetchurl { | ||
2240 | name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz"; | ||
2241 | url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"; | ||
2242 | sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505"; | ||
2243 | }; | ||
2244 | } | ||
2245 | |||
2246 | { | ||
2247 | name = "ee_first___ee_first_1.1.1.tgz"; | ||
2248 | path = fetchurl { | ||
2249 | name = "ee_first___ee_first_1.1.1.tgz"; | ||
2250 | url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz"; | ||
2251 | sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; | ||
2252 | }; | ||
2253 | } | ||
2254 | |||
2255 | { | ||
2256 | name = "electron_to_chromium___electron_to_chromium_1.3.52.tgz"; | ||
2257 | path = fetchurl { | ||
2258 | name = "electron_to_chromium___electron_to_chromium_1.3.52.tgz"; | ||
2259 | url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz"; | ||
2260 | sha1 = "d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0"; | ||
2261 | }; | ||
2262 | } | ||
2263 | |||
2264 | { | ||
2265 | name = "elliptic___elliptic_6.4.0.tgz"; | ||
2266 | path = fetchurl { | ||
2267 | name = "elliptic___elliptic_6.4.0.tgz"; | ||
2268 | url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz"; | ||
2269 | sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df"; | ||
2270 | }; | ||
2271 | } | ||
2272 | |||
2273 | { | ||
2274 | name = "emojis_list___emojis_list_2.1.0.tgz"; | ||
2275 | path = fetchurl { | ||
2276 | name = "emojis_list___emojis_list_2.1.0.tgz"; | ||
2277 | url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz"; | ||
2278 | sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389"; | ||
2279 | }; | ||
2280 | } | ||
2281 | |||
2282 | { | ||
2283 | name = "encodeurl___encodeurl_1.0.2.tgz"; | ||
2284 | path = fetchurl { | ||
2285 | name = "encodeurl___encodeurl_1.0.2.tgz"; | ||
2286 | url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz"; | ||
2287 | sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; | ||
2288 | }; | ||
2289 | } | ||
2290 | |||
2291 | { | ||
2292 | name = "enhanced_resolve___enhanced_resolve_3.4.1.tgz"; | ||
2293 | path = fetchurl { | ||
2294 | name = "enhanced_resolve___enhanced_resolve_3.4.1.tgz"; | ||
2295 | url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz"; | ||
2296 | sha1 = "0421e339fd71419b3da13d129b3979040230476e"; | ||
2297 | }; | ||
2298 | } | ||
2299 | |||
2300 | { | ||
2301 | name = "entities___entities_1.1.1.tgz"; | ||
2302 | path = fetchurl { | ||
2303 | name = "entities___entities_1.1.1.tgz"; | ||
2304 | url = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz"; | ||
2305 | sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"; | ||
2306 | }; | ||
2307 | } | ||
2308 | |||
2309 | { | ||
2310 | name = "errno___errno_0.1.7.tgz"; | ||
2311 | path = fetchurl { | ||
2312 | name = "errno___errno_0.1.7.tgz"; | ||
2313 | url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz"; | ||
2314 | sha1 = "4684d71779ad39af177e3f007996f7c67c852618"; | ||
2315 | }; | ||
2316 | } | ||
2317 | |||
2318 | { | ||
2319 | name = "error_ex___error_ex_1.3.2.tgz"; | ||
2320 | path = fetchurl { | ||
2321 | name = "error_ex___error_ex_1.3.2.tgz"; | ||
2322 | url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz"; | ||
2323 | sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf"; | ||
2324 | }; | ||
2325 | } | ||
2326 | |||
2327 | { | ||
2328 | name = "error_stack_parser___error_stack_parser_2.0.2.tgz"; | ||
2329 | path = fetchurl { | ||
2330 | name = "error_stack_parser___error_stack_parser_2.0.2.tgz"; | ||
2331 | url = "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz"; | ||
2332 | sha1 = "4ae8dbaa2bf90a8b450707b9149dcabca135520d"; | ||
2333 | }; | ||
2334 | } | ||
2335 | |||
2336 | { | ||
2337 | name = "es_abstract___es_abstract_1.12.0.tgz"; | ||
2338 | path = fetchurl { | ||
2339 | name = "es_abstract___es_abstract_1.12.0.tgz"; | ||
2340 | url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz"; | ||
2341 | sha1 = "9dbbdd27c6856f0001421ca18782d786bf8a6165"; | ||
2342 | }; | ||
2343 | } | ||
2344 | |||
2345 | { | ||
2346 | name = "es_to_primitive___es_to_primitive_1.1.1.tgz"; | ||
2347 | path = fetchurl { | ||
2348 | name = "es_to_primitive___es_to_primitive_1.1.1.tgz"; | ||
2349 | url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz"; | ||
2350 | sha1 = "45355248a88979034b6792e19bb81f2b7975dd0d"; | ||
2351 | }; | ||
2352 | } | ||
2353 | |||
2354 | { | ||
2355 | name = "es5_ext___es5_ext_0.10.45.tgz"; | ||
2356 | path = fetchurl { | ||
2357 | name = "es5_ext___es5_ext_0.10.45.tgz"; | ||
2358 | url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz"; | ||
2359 | sha1 = "0bfdf7b473da5919d5adf3bd25ceb754fccc3653"; | ||
2360 | }; | ||
2361 | } | ||
2362 | |||
2363 | { | ||
2364 | name = "es6_iterator___es6_iterator_2.0.3.tgz"; | ||
2365 | path = fetchurl { | ||
2366 | name = "es6_iterator___es6_iterator_2.0.3.tgz"; | ||
2367 | url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz"; | ||
2368 | sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7"; | ||
2369 | }; | ||
2370 | } | ||
2371 | |||
2372 | { | ||
2373 | name = "es6_map___es6_map_0.1.5.tgz"; | ||
2374 | path = fetchurl { | ||
2375 | name = "es6_map___es6_map_0.1.5.tgz"; | ||
2376 | url = "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz"; | ||
2377 | sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0"; | ||
2378 | }; | ||
2379 | } | ||
2380 | |||
2381 | { | ||
2382 | name = "es6_set___es6_set_0.1.5.tgz"; | ||
2383 | path = fetchurl { | ||
2384 | name = "es6_set___es6_set_0.1.5.tgz"; | ||
2385 | url = "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz"; | ||
2386 | sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1"; | ||
2387 | }; | ||
2388 | } | ||
2389 | |||
2390 | { | ||
2391 | name = "es6_symbol___es6_symbol_3.1.1.tgz"; | ||
2392 | path = fetchurl { | ||
2393 | name = "es6_symbol___es6_symbol_3.1.1.tgz"; | ||
2394 | url = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz"; | ||
2395 | sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"; | ||
2396 | }; | ||
2397 | } | ||
2398 | |||
2399 | { | ||
2400 | name = "es6_weak_map___es6_weak_map_2.0.2.tgz"; | ||
2401 | path = fetchurl { | ||
2402 | name = "es6_weak_map___es6_weak_map_2.0.2.tgz"; | ||
2403 | url = "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz"; | ||
2404 | sha1 = "5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"; | ||
2405 | }; | ||
2406 | } | ||
2407 | |||
2408 | { | ||
2409 | name = "escape_html___escape_html_1.0.3.tgz"; | ||
2410 | path = fetchurl { | ||
2411 | name = "escape_html___escape_html_1.0.3.tgz"; | ||
2412 | url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz"; | ||
2413 | sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; | ||
2414 | }; | ||
2415 | } | ||
2416 | |||
2417 | { | ||
2418 | name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; | ||
2419 | path = fetchurl { | ||
2420 | name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; | ||
2421 | url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; | ||
2422 | sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; | ||
2423 | }; | ||
2424 | } | ||
2425 | |||
2426 | { | ||
2427 | name = "escope___escope_3.6.0.tgz"; | ||
2428 | path = fetchurl { | ||
2429 | name = "escope___escope_3.6.0.tgz"; | ||
2430 | url = "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz"; | ||
2431 | sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3"; | ||
2432 | }; | ||
2433 | } | ||
2434 | |||
2435 | { | ||
2436 | name = "esprima___esprima_2.7.3.tgz"; | ||
2437 | path = fetchurl { | ||
2438 | name = "esprima___esprima_2.7.3.tgz"; | ||
2439 | url = "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz"; | ||
2440 | sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581"; | ||
2441 | }; | ||
2442 | } | ||
2443 | |||
2444 | { | ||
2445 | name = "esrecurse___esrecurse_4.2.1.tgz"; | ||
2446 | path = fetchurl { | ||
2447 | name = "esrecurse___esrecurse_4.2.1.tgz"; | ||
2448 | url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz"; | ||
2449 | sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"; | ||
2450 | }; | ||
2451 | } | ||
2452 | |||
2453 | { | ||
2454 | name = "estraverse___estraverse_4.2.0.tgz"; | ||
2455 | path = fetchurl { | ||
2456 | name = "estraverse___estraverse_4.2.0.tgz"; | ||
2457 | url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz"; | ||
2458 | sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13"; | ||
2459 | }; | ||
2460 | } | ||
2461 | |||
2462 | { | ||
2463 | name = "esutils___esutils_2.0.2.tgz"; | ||
2464 | path = fetchurl { | ||
2465 | name = "esutils___esutils_2.0.2.tgz"; | ||
2466 | url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz"; | ||
2467 | sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; | ||
2468 | }; | ||
2469 | } | ||
2470 | |||
2471 | { | ||
2472 | name = "etag___etag_1.8.1.tgz"; | ||
2473 | path = fetchurl { | ||
2474 | name = "etag___etag_1.8.1.tgz"; | ||
2475 | url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz"; | ||
2476 | sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; | ||
2477 | }; | ||
2478 | } | ||
2479 | |||
2480 | { | ||
2481 | name = "event_emitter___event_emitter_0.3.5.tgz"; | ||
2482 | path = fetchurl { | ||
2483 | name = "event_emitter___event_emitter_0.3.5.tgz"; | ||
2484 | url = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz"; | ||
2485 | sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39"; | ||
2486 | }; | ||
2487 | } | ||
2488 | |||
2489 | { | ||
2490 | name = "eventemitter3___eventemitter3_3.1.0.tgz"; | ||
2491 | path = fetchurl { | ||
2492 | name = "eventemitter3___eventemitter3_3.1.0.tgz"; | ||
2493 | url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz"; | ||
2494 | sha1 = "090b4d6cdbd645ed10bf750d4b5407942d7ba163"; | ||
2495 | }; | ||
2496 | } | ||
2497 | |||
2498 | { | ||
2499 | name = "events___events_1.1.1.tgz"; | ||
2500 | path = fetchurl { | ||
2501 | name = "events___events_1.1.1.tgz"; | ||
2502 | url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz"; | ||
2503 | sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"; | ||
2504 | }; | ||
2505 | } | ||
2506 | |||
2507 | { | ||
2508 | name = "eventsource___eventsource_0.1.6.tgz"; | ||
2509 | path = fetchurl { | ||
2510 | name = "eventsource___eventsource_0.1.6.tgz"; | ||
2511 | url = "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz"; | ||
2512 | sha1 = "0acede849ed7dd1ccc32c811bb11b944d4f29232"; | ||
2513 | }; | ||
2514 | } | ||
2515 | |||
2516 | { | ||
2517 | name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz"; | ||
2518 | path = fetchurl { | ||
2519 | name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz"; | ||
2520 | url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; | ||
2521 | sha1 = "7fcbdb198dc71959432efe13842684e0525acb02"; | ||
2522 | }; | ||
2523 | } | ||
2524 | |||
2525 | { | ||
2526 | name = "execa___execa_0.7.0.tgz"; | ||
2527 | path = fetchurl { | ||
2528 | name = "execa___execa_0.7.0.tgz"; | ||
2529 | url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz"; | ||
2530 | sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777"; | ||
2531 | }; | ||
2532 | } | ||
2533 | |||
2534 | { | ||
2535 | name = "expand_brackets___expand_brackets_0.1.5.tgz"; | ||
2536 | path = fetchurl { | ||
2537 | name = "expand_brackets___expand_brackets_0.1.5.tgz"; | ||
2538 | url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz"; | ||
2539 | sha1 = "df07284e342a807cd733ac5af72411e581d1177b"; | ||
2540 | }; | ||
2541 | } | ||
2542 | |||
2543 | { | ||
2544 | name = "expand_brackets___expand_brackets_2.1.4.tgz"; | ||
2545 | path = fetchurl { | ||
2546 | name = "expand_brackets___expand_brackets_2.1.4.tgz"; | ||
2547 | url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz"; | ||
2548 | sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; | ||
2549 | }; | ||
2550 | } | ||
2551 | |||
2552 | { | ||
2553 | name = "expand_range___expand_range_1.8.2.tgz"; | ||
2554 | path = fetchurl { | ||
2555 | name = "expand_range___expand_range_1.8.2.tgz"; | ||
2556 | url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz"; | ||
2557 | sha1 = "a299effd335fe2721ebae8e257ec79644fc85337"; | ||
2558 | }; | ||
2559 | } | ||
2560 | |||
2561 | { | ||
2562 | name = "express___express_4.16.3.tgz"; | ||
2563 | path = fetchurl { | ||
2564 | name = "express___express_4.16.3.tgz"; | ||
2565 | url = "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz"; | ||
2566 | sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53"; | ||
2567 | }; | ||
2568 | } | ||
2569 | |||
2570 | { | ||
2571 | name = "extend_shallow___extend_shallow_2.0.1.tgz"; | ||
2572 | path = fetchurl { | ||
2573 | name = "extend_shallow___extend_shallow_2.0.1.tgz"; | ||
2574 | url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz"; | ||
2575 | sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; | ||
2576 | }; | ||
2577 | } | ||
2578 | |||
2579 | { | ||
2580 | name = "extend_shallow___extend_shallow_3.0.2.tgz"; | ||
2581 | path = fetchurl { | ||
2582 | name = "extend_shallow___extend_shallow_3.0.2.tgz"; | ||
2583 | url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz"; | ||
2584 | sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; | ||
2585 | }; | ||
2586 | } | ||
2587 | |||
2588 | { | ||
2589 | name = "extend___extend_3.0.2.tgz"; | ||
2590 | path = fetchurl { | ||
2591 | name = "extend___extend_3.0.2.tgz"; | ||
2592 | url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz"; | ||
2593 | sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa"; | ||
2594 | }; | ||
2595 | } | ||
2596 | |||
2597 | { | ||
2598 | name = "extglob___extglob_0.3.2.tgz"; | ||
2599 | path = fetchurl { | ||
2600 | name = "extglob___extglob_0.3.2.tgz"; | ||
2601 | url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz"; | ||
2602 | sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1"; | ||
2603 | }; | ||
2604 | } | ||
2605 | |||
2606 | { | ||
2607 | name = "extglob___extglob_2.0.4.tgz"; | ||
2608 | path = fetchurl { | ||
2609 | name = "extglob___extglob_2.0.4.tgz"; | ||
2610 | url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz"; | ||
2611 | sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543"; | ||
2612 | }; | ||
2613 | } | ||
2614 | |||
2615 | { | ||
2616 | name = "extract_text_webpack_plugin___extract_text_webpack_plugin_3.0.2.tgz"; | ||
2617 | path = fetchurl { | ||
2618 | name = "extract_text_webpack_plugin___extract_text_webpack_plugin_3.0.2.tgz"; | ||
2619 | url = "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz"; | ||
2620 | sha1 = "5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7"; | ||
2621 | }; | ||
2622 | } | ||
2623 | |||
2624 | { | ||
2625 | name = "extsprintf___extsprintf_1.3.0.tgz"; | ||
2626 | path = fetchurl { | ||
2627 | name = "extsprintf___extsprintf_1.3.0.tgz"; | ||
2628 | url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz"; | ||
2629 | sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; | ||
2630 | }; | ||
2631 | } | ||
2632 | |||
2633 | { | ||
2634 | name = "extsprintf___extsprintf_1.4.0.tgz"; | ||
2635 | path = fetchurl { | ||
2636 | name = "extsprintf___extsprintf_1.4.0.tgz"; | ||
2637 | url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz"; | ||
2638 | sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f"; | ||
2639 | }; | ||
2640 | } | ||
2641 | |||
2642 | { | ||
2643 | name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz"; | ||
2644 | path = fetchurl { | ||
2645 | name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz"; | ||
2646 | url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz"; | ||
2647 | sha1 = "c053477817c86b51daa853c81e059b733d023614"; | ||
2648 | }; | ||
2649 | } | ||
2650 | |||
2651 | { | ||
2652 | name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz"; | ||
2653 | path = fetchurl { | ||
2654 | name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz"; | ||
2655 | url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; | ||
2656 | sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; | ||
2657 | }; | ||
2658 | } | ||
2659 | |||
2660 | { | ||
2661 | name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz"; | ||
2662 | path = fetchurl { | ||
2663 | name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz"; | ||
2664 | url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; | ||
2665 | sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; | ||
2666 | }; | ||
2667 | } | ||
2668 | |||
2669 | { | ||
2670 | name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; | ||
2671 | path = fetchurl { | ||
2672 | name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; | ||
2673 | url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; | ||
2674 | sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; | ||
2675 | }; | ||
2676 | } | ||
2677 | |||
2678 | { | ||
2679 | name = "fastparse___fastparse_1.1.1.tgz"; | ||
2680 | path = fetchurl { | ||
2681 | name = "fastparse___fastparse_1.1.1.tgz"; | ||
2682 | url = "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz"; | ||
2683 | sha1 = "d1e2643b38a94d7583b479060e6c4affc94071f8"; | ||
2684 | }; | ||
2685 | } | ||
2686 | |||
2687 | { | ||
2688 | name = "faye_websocket___faye_websocket_0.10.0.tgz"; | ||
2689 | path = fetchurl { | ||
2690 | name = "faye_websocket___faye_websocket_0.10.0.tgz"; | ||
2691 | url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz"; | ||
2692 | sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"; | ||
2693 | }; | ||
2694 | } | ||
2695 | |||
2696 | { | ||
2697 | name = "faye_websocket___faye_websocket_0.11.1.tgz"; | ||
2698 | path = fetchurl { | ||
2699 | name = "faye_websocket___faye_websocket_0.11.1.tgz"; | ||
2700 | url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz"; | ||
2701 | sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"; | ||
2702 | }; | ||
2703 | } | ||
2704 | |||
2705 | { | ||
2706 | name = "file_loader___file_loader_0.10.1.tgz"; | ||
2707 | path = fetchurl { | ||
2708 | name = "file_loader___file_loader_0.10.1.tgz"; | ||
2709 | url = "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz"; | ||
2710 | sha1 = "815034119891fc6441fb5a64c11bc93c22ddd842"; | ||
2711 | }; | ||
2712 | } | ||
2713 | |||
2714 | { | ||
2715 | name = "filename_regex___filename_regex_2.0.1.tgz"; | ||
2716 | path = fetchurl { | ||
2717 | name = "filename_regex___filename_regex_2.0.1.tgz"; | ||
2718 | url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz"; | ||
2719 | sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"; | ||
2720 | }; | ||
2721 | } | ||
2722 | |||
2723 | { | ||
2724 | name = "fill_range___fill_range_2.2.4.tgz"; | ||
2725 | path = fetchurl { | ||
2726 | name = "fill_range___fill_range_2.2.4.tgz"; | ||
2727 | url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz"; | ||
2728 | sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565"; | ||
2729 | }; | ||
2730 | } | ||
2731 | |||
2732 | { | ||
2733 | name = "fill_range___fill_range_4.0.0.tgz"; | ||
2734 | path = fetchurl { | ||
2735 | name = "fill_range___fill_range_4.0.0.tgz"; | ||
2736 | url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz"; | ||
2737 | sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; | ||
2738 | }; | ||
2739 | } | ||
2740 | |||
2741 | { | ||
2742 | name = "finalhandler___finalhandler_1.1.1.tgz"; | ||
2743 | path = fetchurl { | ||
2744 | name = "finalhandler___finalhandler_1.1.1.tgz"; | ||
2745 | url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz"; | ||
2746 | sha1 = "eebf4ed840079c83f4249038c9d703008301b105"; | ||
2747 | }; | ||
2748 | } | ||
2749 | |||
2750 | { | ||
2751 | name = "find_cache_dir___find_cache_dir_1.0.0.tgz"; | ||
2752 | path = fetchurl { | ||
2753 | name = "find_cache_dir___find_cache_dir_1.0.0.tgz"; | ||
2754 | url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz"; | ||
2755 | sha1 = "9288e3e9e3cc3748717d39eade17cf71fc30ee6f"; | ||
2756 | }; | ||
2757 | } | ||
2758 | |||
2759 | { | ||
2760 | name = "find_up___find_up_1.1.2.tgz"; | ||
2761 | path = fetchurl { | ||
2762 | name = "find_up___find_up_1.1.2.tgz"; | ||
2763 | url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz"; | ||
2764 | sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"; | ||
2765 | }; | ||
2766 | } | ||
2767 | |||
2768 | { | ||
2769 | name = "find_up___find_up_2.1.0.tgz"; | ||
2770 | path = fetchurl { | ||
2771 | name = "find_up___find_up_2.1.0.tgz"; | ||
2772 | url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz"; | ||
2773 | sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; | ||
2774 | }; | ||
2775 | } | ||
2776 | |||
2777 | { | ||
2778 | name = "flatten___flatten_1.0.2.tgz"; | ||
2779 | path = fetchurl { | ||
2780 | name = "flatten___flatten_1.0.2.tgz"; | ||
2781 | url = "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz"; | ||
2782 | sha1 = "dae46a9d78fbe25292258cc1e780a41d95c03782"; | ||
2783 | }; | ||
2784 | } | ||
2785 | |||
2786 | { | ||
2787 | name = "follow_redirects___follow_redirects_1.5.1.tgz"; | ||
2788 | path = fetchurl { | ||
2789 | name = "follow_redirects___follow_redirects_1.5.1.tgz"; | ||
2790 | url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.1.tgz"; | ||
2791 | sha1 = "67a8f14f5a1f67f962c2c46469c79eaec0a90291"; | ||
2792 | }; | ||
2793 | } | ||
2794 | |||
2795 | { | ||
2796 | name = "for_in___for_in_0.1.8.tgz"; | ||
2797 | path = fetchurl { | ||
2798 | name = "for_in___for_in_0.1.8.tgz"; | ||
2799 | url = "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz"; | ||
2800 | sha1 = "d8773908e31256109952b1fdb9b3fa867d2775e1"; | ||
2801 | }; | ||
2802 | } | ||
2803 | |||
2804 | { | ||
2805 | name = "for_in___for_in_1.0.2.tgz"; | ||
2806 | path = fetchurl { | ||
2807 | name = "for_in___for_in_1.0.2.tgz"; | ||
2808 | url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz"; | ||
2809 | sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; | ||
2810 | }; | ||
2811 | } | ||
2812 | |||
2813 | { | ||
2814 | name = "for_own___for_own_0.1.5.tgz"; | ||
2815 | path = fetchurl { | ||
2816 | name = "for_own___for_own_0.1.5.tgz"; | ||
2817 | url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz"; | ||
2818 | sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce"; | ||
2819 | }; | ||
2820 | } | ||
2821 | |||
2822 | { | ||
2823 | name = "for_own___for_own_1.0.0.tgz"; | ||
2824 | path = fetchurl { | ||
2825 | name = "for_own___for_own_1.0.0.tgz"; | ||
2826 | url = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz"; | ||
2827 | sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b"; | ||
2828 | }; | ||
2829 | } | ||
2830 | |||
2831 | { | ||
2832 | name = "foreach___foreach_2.0.5.tgz"; | ||
2833 | path = fetchurl { | ||
2834 | name = "foreach___foreach_2.0.5.tgz"; | ||
2835 | url = "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz"; | ||
2836 | sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99"; | ||
2837 | }; | ||
2838 | } | ||
2839 | |||
2840 | { | ||
2841 | name = "forever_agent___forever_agent_0.6.1.tgz"; | ||
2842 | path = fetchurl { | ||
2843 | name = "forever_agent___forever_agent_0.6.1.tgz"; | ||
2844 | url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz"; | ||
2845 | sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; | ||
2846 | }; | ||
2847 | } | ||
2848 | |||
2849 | { | ||
2850 | name = "form_data___form_data_2.1.4.tgz"; | ||
2851 | path = fetchurl { | ||
2852 | name = "form_data___form_data_2.1.4.tgz"; | ||
2853 | url = "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz"; | ||
2854 | sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1"; | ||
2855 | }; | ||
2856 | } | ||
2857 | |||
2858 | { | ||
2859 | name = "form_data___form_data_2.3.2.tgz"; | ||
2860 | path = fetchurl { | ||
2861 | name = "form_data___form_data_2.3.2.tgz"; | ||
2862 | url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz"; | ||
2863 | sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099"; | ||
2864 | }; | ||
2865 | } | ||
2866 | |||
2867 | { | ||
2868 | name = "forwarded___forwarded_0.1.2.tgz"; | ||
2869 | path = fetchurl { | ||
2870 | name = "forwarded___forwarded_0.1.2.tgz"; | ||
2871 | url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz"; | ||
2872 | sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; | ||
2873 | }; | ||
2874 | } | ||
2875 | |||
2876 | { | ||
2877 | name = "fragment_cache___fragment_cache_0.2.1.tgz"; | ||
2878 | path = fetchurl { | ||
2879 | name = "fragment_cache___fragment_cache_0.2.1.tgz"; | ||
2880 | url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz"; | ||
2881 | sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; | ||
2882 | }; | ||
2883 | } | ||
2884 | |||
2885 | { | ||
2886 | name = "fresh___fresh_0.5.2.tgz"; | ||
2887 | path = fetchurl { | ||
2888 | name = "fresh___fresh_0.5.2.tgz"; | ||
2889 | url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz"; | ||
2890 | sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; | ||
2891 | }; | ||
2892 | } | ||
2893 | |||
2894 | { | ||
2895 | name = "friendly_errors_webpack_plugin___friendly_errors_webpack_plugin_1.7.0.tgz"; | ||
2896 | path = fetchurl { | ||
2897 | name = "friendly_errors_webpack_plugin___friendly_errors_webpack_plugin_1.7.0.tgz"; | ||
2898 | url = "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz"; | ||
2899 | sha1 = "efc86cbb816224565861a1be7a9d84d0aafea136"; | ||
2900 | }; | ||
2901 | } | ||
2902 | |||
2903 | { | ||
2904 | name = "fs_extra___fs_extra_2.1.2.tgz"; | ||
2905 | path = fetchurl { | ||
2906 | name = "fs_extra___fs_extra_2.1.2.tgz"; | ||
2907 | url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz"; | ||
2908 | sha1 = "046c70163cef9aad46b0e4a7fa467fb22d71de35"; | ||
2909 | }; | ||
2910 | } | ||
2911 | |||
2912 | { | ||
2913 | name = "fs_minipass___fs_minipass_1.2.5.tgz"; | ||
2914 | path = fetchurl { | ||
2915 | name = "fs_minipass___fs_minipass_1.2.5.tgz"; | ||
2916 | url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz"; | ||
2917 | sha1 = "06c277218454ec288df77ada54a03b8702aacb9d"; | ||
2918 | }; | ||
2919 | } | ||
2920 | |||
2921 | { | ||
2922 | name = "fs.realpath___fs.realpath_1.0.0.tgz"; | ||
2923 | path = fetchurl { | ||
2924 | name = "fs.realpath___fs.realpath_1.0.0.tgz"; | ||
2925 | url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; | ||
2926 | sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; | ||
2927 | }; | ||
2928 | } | ||
2929 | |||
2930 | { | ||
2931 | name = "fsevents___fsevents_1.2.4.tgz"; | ||
2932 | path = fetchurl { | ||
2933 | name = "fsevents___fsevents_1.2.4.tgz"; | ||
2934 | url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz"; | ||
2935 | sha1 = "f41dcb1af2582af3692da36fc55cbd8e1041c426"; | ||
2936 | }; | ||
2937 | } | ||
2938 | |||
2939 | { | ||
2940 | name = "fstream___fstream_1.0.11.tgz"; | ||
2941 | path = fetchurl { | ||
2942 | name = "fstream___fstream_1.0.11.tgz"; | ||
2943 | url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz"; | ||
2944 | sha1 = "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"; | ||
2945 | }; | ||
2946 | } | ||
2947 | |||
2948 | { | ||
2949 | name = "function_bind___function_bind_1.1.1.tgz"; | ||
2950 | path = fetchurl { | ||
2951 | name = "function_bind___function_bind_1.1.1.tgz"; | ||
2952 | url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; | ||
2953 | sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; | ||
2954 | }; | ||
2955 | } | ||
2956 | |||
2957 | { | ||
2958 | name = "gauge___gauge_2.7.4.tgz"; | ||
2959 | path = fetchurl { | ||
2960 | name = "gauge___gauge_2.7.4.tgz"; | ||
2961 | url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz"; | ||
2962 | sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; | ||
2963 | }; | ||
2964 | } | ||
2965 | |||
2966 | { | ||
2967 | name = "gaze___gaze_1.1.3.tgz"; | ||
2968 | path = fetchurl { | ||
2969 | name = "gaze___gaze_1.1.3.tgz"; | ||
2970 | url = "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz"; | ||
2971 | sha1 = "c441733e13b927ac8c0ff0b4c3b033f28812924a"; | ||
2972 | }; | ||
2973 | } | ||
2974 | |||
2975 | { | ||
2976 | name = "get_caller_file___get_caller_file_1.0.3.tgz"; | ||
2977 | path = fetchurl { | ||
2978 | name = "get_caller_file___get_caller_file_1.0.3.tgz"; | ||
2979 | url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz"; | ||
2980 | sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"; | ||
2981 | }; | ||
2982 | } | ||
2983 | |||
2984 | { | ||
2985 | name = "get_stdin___get_stdin_4.0.1.tgz"; | ||
2986 | path = fetchurl { | ||
2987 | name = "get_stdin___get_stdin_4.0.1.tgz"; | ||
2988 | url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz"; | ||
2989 | sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe"; | ||
2990 | }; | ||
2991 | } | ||
2992 | |||
2993 | { | ||
2994 | name = "get_stream___get_stream_3.0.0.tgz"; | ||
2995 | path = fetchurl { | ||
2996 | name = "get_stream___get_stream_3.0.0.tgz"; | ||
2997 | url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz"; | ||
2998 | sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14"; | ||
2999 | }; | ||
3000 | } | ||
3001 | |||
3002 | { | ||
3003 | name = "get_value___get_value_2.0.6.tgz"; | ||
3004 | path = fetchurl { | ||
3005 | name = "get_value___get_value_2.0.6.tgz"; | ||
3006 | url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz"; | ||
3007 | sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; | ||
3008 | }; | ||
3009 | } | ||
3010 | |||
3011 | { | ||
3012 | name = "getpass___getpass_0.1.7.tgz"; | ||
3013 | path = fetchurl { | ||
3014 | name = "getpass___getpass_0.1.7.tgz"; | ||
3015 | url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz"; | ||
3016 | sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; | ||
3017 | }; | ||
3018 | } | ||
3019 | |||
3020 | { | ||
3021 | name = "glob_base___glob_base_0.3.0.tgz"; | ||
3022 | path = fetchurl { | ||
3023 | name = "glob_base___glob_base_0.3.0.tgz"; | ||
3024 | url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz"; | ||
3025 | sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"; | ||
3026 | }; | ||
3027 | } | ||
3028 | |||
3029 | { | ||
3030 | name = "glob_parent___glob_parent_2.0.0.tgz"; | ||
3031 | path = fetchurl { | ||
3032 | name = "glob_parent___glob_parent_2.0.0.tgz"; | ||
3033 | url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz"; | ||
3034 | sha1 = "81383d72db054fcccf5336daa902f182f6edbb28"; | ||
3035 | }; | ||
3036 | } | ||
3037 | |||
3038 | { | ||
3039 | name = "glob_parent___glob_parent_3.1.0.tgz"; | ||
3040 | path = fetchurl { | ||
3041 | name = "glob_parent___glob_parent_3.1.0.tgz"; | ||
3042 | url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz"; | ||
3043 | sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; | ||
3044 | }; | ||
3045 | } | ||
3046 | |||
3047 | { | ||
3048 | name = "glob___glob_6.0.4.tgz"; | ||
3049 | path = fetchurl { | ||
3050 | name = "glob___glob_6.0.4.tgz"; | ||
3051 | url = "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz"; | ||
3052 | sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"; | ||
3053 | }; | ||
3054 | } | ||
3055 | |||
3056 | { | ||
3057 | name = "glob___glob_7.1.2.tgz"; | ||
3058 | path = fetchurl { | ||
3059 | name = "glob___glob_7.1.2.tgz"; | ||
3060 | url = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz"; | ||
3061 | sha1 = "c19c9df9a028702d678612384a6552404c636d15"; | ||
3062 | }; | ||
3063 | } | ||
3064 | |||
3065 | { | ||
3066 | name = "globals___globals_9.18.0.tgz"; | ||
3067 | path = fetchurl { | ||
3068 | name = "globals___globals_9.18.0.tgz"; | ||
3069 | url = "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz"; | ||
3070 | sha1 = "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"; | ||
3071 | }; | ||
3072 | } | ||
3073 | |||
3074 | { | ||
3075 | name = "globby___globby_6.1.0.tgz"; | ||
3076 | path = fetchurl { | ||
3077 | name = "globby___globby_6.1.0.tgz"; | ||
3078 | url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz"; | ||
3079 | sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c"; | ||
3080 | }; | ||
3081 | } | ||
3082 | |||
3083 | { | ||
3084 | name = "globule___globule_1.2.1.tgz"; | ||
3085 | path = fetchurl { | ||
3086 | name = "globule___globule_1.2.1.tgz"; | ||
3087 | url = "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz"; | ||
3088 | sha1 = "5dffb1b191f22d20797a9369b49eab4e9839696d"; | ||
3089 | }; | ||
3090 | } | ||
3091 | |||
3092 | { | ||
3093 | name = "graceful_fs___graceful_fs_4.1.11.tgz"; | ||
3094 | path = fetchurl { | ||
3095 | name = "graceful_fs___graceful_fs_4.1.11.tgz"; | ||
3096 | url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz"; | ||
3097 | sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"; | ||
3098 | }; | ||
3099 | } | ||
3100 | |||
3101 | { | ||
3102 | name = "handle_thing___handle_thing_1.2.5.tgz"; | ||
3103 | path = fetchurl { | ||
3104 | name = "handle_thing___handle_thing_1.2.5.tgz"; | ||
3105 | url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz"; | ||
3106 | sha1 = "fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"; | ||
3107 | }; | ||
3108 | } | ||
3109 | |||
3110 | { | ||
3111 | name = "har_schema___har_schema_1.0.5.tgz"; | ||
3112 | path = fetchurl { | ||
3113 | name = "har_schema___har_schema_1.0.5.tgz"; | ||
3114 | url = "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz"; | ||
3115 | sha1 = "d263135f43307c02c602afc8fe95970c0151369e"; | ||
3116 | }; | ||
3117 | } | ||
3118 | |||
3119 | { | ||
3120 | name = "har_schema___har_schema_2.0.0.tgz"; | ||
3121 | path = fetchurl { | ||
3122 | name = "har_schema___har_schema_2.0.0.tgz"; | ||
3123 | url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz"; | ||
3124 | sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; | ||
3125 | }; | ||
3126 | } | ||
3127 | |||
3128 | { | ||
3129 | name = "har_validator___har_validator_4.2.1.tgz"; | ||
3130 | path = fetchurl { | ||
3131 | name = "har_validator___har_validator_4.2.1.tgz"; | ||
3132 | url = "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz"; | ||
3133 | sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a"; | ||
3134 | }; | ||
3135 | } | ||
3136 | |||
3137 | { | ||
3138 | name = "har_validator___har_validator_5.0.3.tgz"; | ||
3139 | path = fetchurl { | ||
3140 | name = "har_validator___har_validator_5.0.3.tgz"; | ||
3141 | url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz"; | ||
3142 | sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd"; | ||
3143 | }; | ||
3144 | } | ||
3145 | |||
3146 | { | ||
3147 | name = "has_ansi___has_ansi_2.0.0.tgz"; | ||
3148 | path = fetchurl { | ||
3149 | name = "has_ansi___has_ansi_2.0.0.tgz"; | ||
3150 | url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz"; | ||
3151 | sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; | ||
3152 | }; | ||
3153 | } | ||
3154 | |||
3155 | { | ||
3156 | name = "has_flag___has_flag_1.0.0.tgz"; | ||
3157 | path = fetchurl { | ||
3158 | name = "has_flag___has_flag_1.0.0.tgz"; | ||
3159 | url = "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz"; | ||
3160 | sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa"; | ||
3161 | }; | ||
3162 | } | ||
3163 | |||
3164 | { | ||
3165 | name = "has_flag___has_flag_2.0.0.tgz"; | ||
3166 | path = fetchurl { | ||
3167 | name = "has_flag___has_flag_2.0.0.tgz"; | ||
3168 | url = "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz"; | ||
3169 | sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51"; | ||
3170 | }; | ||
3171 | } | ||
3172 | |||
3173 | { | ||
3174 | name = "has_flag___has_flag_3.0.0.tgz"; | ||
3175 | path = fetchurl { | ||
3176 | name = "has_flag___has_flag_3.0.0.tgz"; | ||
3177 | url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz"; | ||
3178 | sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; | ||
3179 | }; | ||
3180 | } | ||
3181 | |||
3182 | { | ||
3183 | name = "has_unicode___has_unicode_2.0.1.tgz"; | ||
3184 | path = fetchurl { | ||
3185 | name = "has_unicode___has_unicode_2.0.1.tgz"; | ||
3186 | url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz"; | ||
3187 | sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; | ||
3188 | }; | ||
3189 | } | ||
3190 | |||
3191 | { | ||
3192 | name = "has_value___has_value_0.3.1.tgz"; | ||
3193 | path = fetchurl { | ||
3194 | name = "has_value___has_value_0.3.1.tgz"; | ||
3195 | url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz"; | ||
3196 | sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; | ||
3197 | }; | ||
3198 | } | ||
3199 | |||
3200 | { | ||
3201 | name = "has_value___has_value_1.0.0.tgz"; | ||
3202 | path = fetchurl { | ||
3203 | name = "has_value___has_value_1.0.0.tgz"; | ||
3204 | url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz"; | ||
3205 | sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; | ||
3206 | }; | ||
3207 | } | ||
3208 | |||
3209 | { | ||
3210 | name = "has_values___has_values_0.1.4.tgz"; | ||
3211 | path = fetchurl { | ||
3212 | name = "has_values___has_values_0.1.4.tgz"; | ||
3213 | url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz"; | ||
3214 | sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; | ||
3215 | }; | ||
3216 | } | ||
3217 | |||
3218 | { | ||
3219 | name = "has_values___has_values_1.0.0.tgz"; | ||
3220 | path = fetchurl { | ||
3221 | name = "has_values___has_values_1.0.0.tgz"; | ||
3222 | url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz"; | ||
3223 | sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; | ||
3224 | }; | ||
3225 | } | ||
3226 | |||
3227 | { | ||
3228 | name = "has___has_1.0.3.tgz"; | ||
3229 | path = fetchurl { | ||
3230 | name = "has___has_1.0.3.tgz"; | ||
3231 | url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; | ||
3232 | sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; | ||
3233 | }; | ||
3234 | } | ||
3235 | |||
3236 | { | ||
3237 | name = "hash_base___hash_base_3.0.4.tgz"; | ||
3238 | path = fetchurl { | ||
3239 | name = "hash_base___hash_base_3.0.4.tgz"; | ||
3240 | url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz"; | ||
3241 | sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918"; | ||
3242 | }; | ||
3243 | } | ||
3244 | |||
3245 | { | ||
3246 | name = "hash.js___hash.js_1.1.5.tgz"; | ||
3247 | path = fetchurl { | ||
3248 | name = "hash.js___hash.js_1.1.5.tgz"; | ||
3249 | url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz"; | ||
3250 | sha1 = "e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"; | ||
3251 | }; | ||
3252 | } | ||
3253 | |||
3254 | { | ||
3255 | name = "hawk___hawk_3.1.3.tgz"; | ||
3256 | path = fetchurl { | ||
3257 | name = "hawk___hawk_3.1.3.tgz"; | ||
3258 | url = "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz"; | ||
3259 | sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4"; | ||
3260 | }; | ||
3261 | } | ||
3262 | |||
3263 | { | ||
3264 | name = "hmac_drbg___hmac_drbg_1.0.1.tgz"; | ||
3265 | path = fetchurl { | ||
3266 | name = "hmac_drbg___hmac_drbg_1.0.1.tgz"; | ||
3267 | url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; | ||
3268 | sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; | ||
3269 | }; | ||
3270 | } | ||
3271 | |||
3272 | { | ||
3273 | name = "hoek___hoek_2.16.3.tgz"; | ||
3274 | path = fetchurl { | ||
3275 | name = "hoek___hoek_2.16.3.tgz"; | ||
3276 | url = "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz"; | ||
3277 | sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed"; | ||
3278 | }; | ||
3279 | } | ||
3280 | |||
3281 | { | ||
3282 | name = "home_or_tmp___home_or_tmp_2.0.0.tgz"; | ||
3283 | path = fetchurl { | ||
3284 | name = "home_or_tmp___home_or_tmp_2.0.0.tgz"; | ||
3285 | url = "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz"; | ||
3286 | sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8"; | ||
3287 | }; | ||
3288 | } | ||
3289 | |||
3290 | { | ||
3291 | name = "hosted_git_info___hosted_git_info_2.7.1.tgz"; | ||
3292 | path = fetchurl { | ||
3293 | name = "hosted_git_info___hosted_git_info_2.7.1.tgz"; | ||
3294 | url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz"; | ||
3295 | sha1 = "97f236977bd6e125408930ff6de3eec6281ec047"; | ||
3296 | }; | ||
3297 | } | ||
3298 | |||
3299 | { | ||
3300 | name = "hpack.js___hpack.js_2.1.6.tgz"; | ||
3301 | path = fetchurl { | ||
3302 | name = "hpack.js___hpack.js_2.1.6.tgz"; | ||
3303 | url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz"; | ||
3304 | sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2"; | ||
3305 | }; | ||
3306 | } | ||
3307 | |||
3308 | { | ||
3309 | name = "html_comment_regex___html_comment_regex_1.1.1.tgz"; | ||
3310 | path = fetchurl { | ||
3311 | name = "html_comment_regex___html_comment_regex_1.1.1.tgz"; | ||
3312 | url = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz"; | ||
3313 | sha1 = "668b93776eaae55ebde8f3ad464b307a4963625e"; | ||
3314 | }; | ||
3315 | } | ||
3316 | |||
3317 | { | ||
3318 | name = "html_entities___html_entities_1.2.1.tgz"; | ||
3319 | path = fetchurl { | ||
3320 | name = "html_entities___html_entities_1.2.1.tgz"; | ||
3321 | url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz"; | ||
3322 | sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f"; | ||
3323 | }; | ||
3324 | } | ||
3325 | |||
3326 | { | ||
3327 | name = "htmlparser2___htmlparser2_3.3.0.tgz"; | ||
3328 | path = fetchurl { | ||
3329 | name = "htmlparser2___htmlparser2_3.3.0.tgz"; | ||
3330 | url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz"; | ||
3331 | sha1 = "cc70d05a59f6542e43f0e685c982e14c924a9efe"; | ||
3332 | }; | ||
3333 | } | ||
3334 | |||
3335 | { | ||
3336 | name = "http_deceiver___http_deceiver_1.2.7.tgz"; | ||
3337 | path = fetchurl { | ||
3338 | name = "http_deceiver___http_deceiver_1.2.7.tgz"; | ||
3339 | url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz"; | ||
3340 | sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87"; | ||
3341 | }; | ||
3342 | } | ||
3343 | |||
3344 | { | ||
3345 | name = "http_errors___http_errors_1.6.2.tgz"; | ||
3346 | path = fetchurl { | ||
3347 | name = "http_errors___http_errors_1.6.2.tgz"; | ||
3348 | url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz"; | ||
3349 | sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736"; | ||
3350 | }; | ||
3351 | } | ||
3352 | |||
3353 | { | ||
3354 | name = "http_errors___http_errors_1.6.3.tgz"; | ||
3355 | path = fetchurl { | ||
3356 | name = "http_errors___http_errors_1.6.3.tgz"; | ||
3357 | url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz"; | ||
3358 | sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d"; | ||
3359 | }; | ||
3360 | } | ||
3361 | |||
3362 | { | ||
3363 | name = "http_parser_js___http_parser_js_0.4.13.tgz"; | ||
3364 | path = fetchurl { | ||
3365 | name = "http_parser_js___http_parser_js_0.4.13.tgz"; | ||
3366 | url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz"; | ||
3367 | sha1 = "3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"; | ||
3368 | }; | ||
3369 | } | ||
3370 | |||
3371 | { | ||
3372 | name = "http_proxy_middleware___http_proxy_middleware_0.17.4.tgz"; | ||
3373 | path = fetchurl { | ||
3374 | name = "http_proxy_middleware___http_proxy_middleware_0.17.4.tgz"; | ||
3375 | url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz"; | ||
3376 | sha1 = "642e8848851d66f09d4f124912846dbaeb41b833"; | ||
3377 | }; | ||
3378 | } | ||
3379 | |||
3380 | { | ||
3381 | name = "http_proxy___http_proxy_1.17.0.tgz"; | ||
3382 | path = fetchurl { | ||
3383 | name = "http_proxy___http_proxy_1.17.0.tgz"; | ||
3384 | url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz"; | ||
3385 | sha1 = "7ad38494658f84605e2f6db4436df410f4e5be9a"; | ||
3386 | }; | ||
3387 | } | ||
3388 | |||
3389 | { | ||
3390 | name = "http_signature___http_signature_1.1.1.tgz"; | ||
3391 | path = fetchurl { | ||
3392 | name = "http_signature___http_signature_1.1.1.tgz"; | ||
3393 | url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz"; | ||
3394 | sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf"; | ||
3395 | }; | ||
3396 | } | ||
3397 | |||
3398 | { | ||
3399 | name = "http_signature___http_signature_1.2.0.tgz"; | ||
3400 | path = fetchurl { | ||
3401 | name = "http_signature___http_signature_1.2.0.tgz"; | ||
3402 | url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz"; | ||
3403 | sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; | ||
3404 | }; | ||
3405 | } | ||
3406 | |||
3407 | { | ||
3408 | name = "https_browserify___https_browserify_1.0.0.tgz"; | ||
3409 | path = fetchurl { | ||
3410 | name = "https_browserify___https_browserify_1.0.0.tgz"; | ||
3411 | url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz"; | ||
3412 | sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; | ||
3413 | }; | ||
3414 | } | ||
3415 | |||
3416 | { | ||
3417 | name = "iconv_lite___iconv_lite_0.4.19.tgz"; | ||
3418 | path = fetchurl { | ||
3419 | name = "iconv_lite___iconv_lite_0.4.19.tgz"; | ||
3420 | url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz"; | ||
3421 | sha1 = "f7468f60135f5e5dad3399c0a81be9a1603a082b"; | ||
3422 | }; | ||
3423 | } | ||
3424 | |||
3425 | { | ||
3426 | name = "iconv_lite___iconv_lite_0.4.23.tgz"; | ||
3427 | path = fetchurl { | ||
3428 | name = "iconv_lite___iconv_lite_0.4.23.tgz"; | ||
3429 | url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz"; | ||
3430 | sha1 = "297871f63be507adcfbfca715d0cd0eed84e9a63"; | ||
3431 | }; | ||
3432 | } | ||
3433 | |||
3434 | { | ||
3435 | name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz"; | ||
3436 | path = fetchurl { | ||
3437 | name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz"; | ||
3438 | url = "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz"; | ||
3439 | sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded"; | ||
3440 | }; | ||
3441 | } | ||
3442 | |||
3443 | { | ||
3444 | name = "ieee754___ieee754_1.1.12.tgz"; | ||
3445 | path = fetchurl { | ||
3446 | name = "ieee754___ieee754_1.1.12.tgz"; | ||
3447 | url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz"; | ||
3448 | sha1 = "50bf24e5b9c8bb98af4964c941cdb0918da7b60b"; | ||
3449 | }; | ||
3450 | } | ||
3451 | |||
3452 | { | ||
3453 | name = "ignore_walk___ignore_walk_3.0.1.tgz"; | ||
3454 | path = fetchurl { | ||
3455 | name = "ignore_walk___ignore_walk_3.0.1.tgz"; | ||
3456 | url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz"; | ||
3457 | sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8"; | ||
3458 | }; | ||
3459 | } | ||
3460 | |||
3461 | { | ||
3462 | name = "import_local___import_local_1.0.0.tgz"; | ||
3463 | path = fetchurl { | ||
3464 | name = "import_local___import_local_1.0.0.tgz"; | ||
3465 | url = "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz"; | ||
3466 | sha1 = "5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"; | ||
3467 | }; | ||
3468 | } | ||
3469 | |||
3470 | { | ||
3471 | name = "in_publish___in_publish_2.0.0.tgz"; | ||
3472 | path = fetchurl { | ||
3473 | name = "in_publish___in_publish_2.0.0.tgz"; | ||
3474 | url = "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz"; | ||
3475 | sha1 = "e20ff5e3a2afc2690320b6dc552682a9c7fadf51"; | ||
3476 | }; | ||
3477 | } | ||
3478 | |||
3479 | { | ||
3480 | name = "indent_string___indent_string_2.1.0.tgz"; | ||
3481 | path = fetchurl { | ||
3482 | name = "indent_string___indent_string_2.1.0.tgz"; | ||
3483 | url = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz"; | ||
3484 | sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80"; | ||
3485 | }; | ||
3486 | } | ||
3487 | |||
3488 | { | ||
3489 | name = "indexes_of___indexes_of_1.0.1.tgz"; | ||
3490 | path = fetchurl { | ||
3491 | name = "indexes_of___indexes_of_1.0.1.tgz"; | ||
3492 | url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz"; | ||
3493 | sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607"; | ||
3494 | }; | ||
3495 | } | ||
3496 | |||
3497 | { | ||
3498 | name = "indexof___indexof_0.0.1.tgz"; | ||
3499 | path = fetchurl { | ||
3500 | name = "indexof___indexof_0.0.1.tgz"; | ||
3501 | url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz"; | ||
3502 | sha1 = "82dc336d232b9062179d05ab3293a66059fd435d"; | ||
3503 | }; | ||
3504 | } | ||
3505 | |||
3506 | { | ||
3507 | name = "inflight___inflight_1.0.6.tgz"; | ||
3508 | path = fetchurl { | ||
3509 | name = "inflight___inflight_1.0.6.tgz"; | ||
3510 | url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; | ||
3511 | sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; | ||
3512 | }; | ||
3513 | } | ||
3514 | |||
3515 | { | ||
3516 | name = "inherits___inherits_2.0.3.tgz"; | ||
3517 | path = fetchurl { | ||
3518 | name = "inherits___inherits_2.0.3.tgz"; | ||
3519 | url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz"; | ||
3520 | sha1 = "633c2c83e3da42a502f52466022480f4208261de"; | ||
3521 | }; | ||
3522 | } | ||
3523 | |||
3524 | { | ||
3525 | name = "inherits___inherits_2.0.1.tgz"; | ||
3526 | path = fetchurl { | ||
3527 | name = "inherits___inherits_2.0.1.tgz"; | ||
3528 | url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz"; | ||
3529 | sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; | ||
3530 | }; | ||
3531 | } | ||
3532 | |||
3533 | { | ||
3534 | name = "ini___ini_1.3.5.tgz"; | ||
3535 | path = fetchurl { | ||
3536 | name = "ini___ini_1.3.5.tgz"; | ||
3537 | url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz"; | ||
3538 | sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927"; | ||
3539 | }; | ||
3540 | } | ||
3541 | |||
3542 | { | ||
3543 | name = "internal_ip___internal_ip_1.2.0.tgz"; | ||
3544 | path = fetchurl { | ||
3545 | name = "internal_ip___internal_ip_1.2.0.tgz"; | ||
3546 | url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz"; | ||
3547 | sha1 = "ae9fbf93b984878785d50a8de1b356956058cf5c"; | ||
3548 | }; | ||
3549 | } | ||
3550 | |||
3551 | { | ||
3552 | name = "interpret___interpret_1.1.0.tgz"; | ||
3553 | path = fetchurl { | ||
3554 | name = "interpret___interpret_1.1.0.tgz"; | ||
3555 | url = "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz"; | ||
3556 | sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"; | ||
3557 | }; | ||
3558 | } | ||
3559 | |||
3560 | { | ||
3561 | name = "invariant___invariant_2.2.4.tgz"; | ||
3562 | path = fetchurl { | ||
3563 | name = "invariant___invariant_2.2.4.tgz"; | ||
3564 | url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz"; | ||
3565 | sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6"; | ||
3566 | }; | ||
3567 | } | ||
3568 | |||
3569 | { | ||
3570 | name = "invert_kv___invert_kv_1.0.0.tgz"; | ||
3571 | path = fetchurl { | ||
3572 | name = "invert_kv___invert_kv_1.0.0.tgz"; | ||
3573 | url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz"; | ||
3574 | sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"; | ||
3575 | }; | ||
3576 | } | ||
3577 | |||
3578 | { | ||
3579 | name = "ip___ip_1.1.5.tgz"; | ||
3580 | path = fetchurl { | ||
3581 | name = "ip___ip_1.1.5.tgz"; | ||
3582 | url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz"; | ||
3583 | sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a"; | ||
3584 | }; | ||
3585 | } | ||
3586 | |||
3587 | { | ||
3588 | name = "ipaddr.js___ipaddr.js_1.8.0.tgz"; | ||
3589 | path = fetchurl { | ||
3590 | name = "ipaddr.js___ipaddr.js_1.8.0.tgz"; | ||
3591 | url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz"; | ||
3592 | sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"; | ||
3593 | }; | ||
3594 | } | ||
3595 | |||
3596 | { | ||
3597 | name = "is_absolute_url___is_absolute_url_2.1.0.tgz"; | ||
3598 | path = fetchurl { | ||
3599 | name = "is_absolute_url___is_absolute_url_2.1.0.tgz"; | ||
3600 | url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz"; | ||
3601 | sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"; | ||
3602 | }; | ||
3603 | } | ||
3604 | |||
3605 | { | ||
3606 | name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz"; | ||
3607 | path = fetchurl { | ||
3608 | name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz"; | ||
3609 | url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"; | ||
3610 | sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"; | ||
3611 | }; | ||
3612 | } | ||
3613 | |||
3614 | { | ||
3615 | name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz"; | ||
3616 | path = fetchurl { | ||
3617 | name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz"; | ||
3618 | url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"; | ||
3619 | sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656"; | ||
3620 | }; | ||
3621 | } | ||
3622 | |||
3623 | { | ||
3624 | name = "is_arrayish___is_arrayish_0.2.1.tgz"; | ||
3625 | path = fetchurl { | ||
3626 | name = "is_arrayish___is_arrayish_0.2.1.tgz"; | ||
3627 | url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz"; | ||
3628 | sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; | ||
3629 | }; | ||
3630 | } | ||
3631 | |||
3632 | { | ||
3633 | name = "is_binary_path___is_binary_path_1.0.1.tgz"; | ||
3634 | path = fetchurl { | ||
3635 | name = "is_binary_path___is_binary_path_1.0.1.tgz"; | ||
3636 | url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz"; | ||
3637 | sha1 = "75f16642b480f187a711c814161fd3a4a7655898"; | ||
3638 | }; | ||
3639 | } | ||
3640 | |||
3641 | { | ||
3642 | name = "is_buffer___is_buffer_1.1.6.tgz"; | ||
3643 | path = fetchurl { | ||
3644 | name = "is_buffer___is_buffer_1.1.6.tgz"; | ||
3645 | url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz"; | ||
3646 | sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"; | ||
3647 | }; | ||
3648 | } | ||
3649 | |||
3650 | { | ||
3651 | name = "is_builtin_module___is_builtin_module_1.0.0.tgz"; | ||
3652 | path = fetchurl { | ||
3653 | name = "is_builtin_module___is_builtin_module_1.0.0.tgz"; | ||
3654 | url = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz"; | ||
3655 | sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe"; | ||
3656 | }; | ||
3657 | } | ||
3658 | |||
3659 | { | ||
3660 | name = "is_callable___is_callable_1.1.4.tgz"; | ||
3661 | path = fetchurl { | ||
3662 | name = "is_callable___is_callable_1.1.4.tgz"; | ||
3663 | url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz"; | ||
3664 | sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"; | ||
3665 | }; | ||
3666 | } | ||
3667 | |||
3668 | { | ||
3669 | name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz"; | ||
3670 | path = fetchurl { | ||
3671 | name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz"; | ||
3672 | url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"; | ||
3673 | sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56"; | ||
3674 | }; | ||
3675 | } | ||
3676 | |||
3677 | { | ||
3678 | name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz"; | ||
3679 | path = fetchurl { | ||
3680 | name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz"; | ||
3681 | url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"; | ||
3682 | sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7"; | ||
3683 | }; | ||
3684 | } | ||
3685 | |||
3686 | { | ||
3687 | name = "is_date_object___is_date_object_1.0.1.tgz"; | ||
3688 | path = fetchurl { | ||
3689 | name = "is_date_object___is_date_object_1.0.1.tgz"; | ||
3690 | url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz"; | ||
3691 | sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"; | ||
3692 | }; | ||
3693 | } | ||
3694 | |||
3695 | { | ||
3696 | name = "is_descriptor___is_descriptor_0.1.6.tgz"; | ||
3697 | path = fetchurl { | ||
3698 | name = "is_descriptor___is_descriptor_0.1.6.tgz"; | ||
3699 | url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz"; | ||
3700 | sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca"; | ||
3701 | }; | ||
3702 | } | ||
3703 | |||
3704 | { | ||
3705 | name = "is_descriptor___is_descriptor_1.0.2.tgz"; | ||
3706 | path = fetchurl { | ||
3707 | name = "is_descriptor___is_descriptor_1.0.2.tgz"; | ||
3708 | url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz"; | ||
3709 | sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec"; | ||
3710 | }; | ||
3711 | } | ||
3712 | |||
3713 | { | ||
3714 | name = "is_dotfile___is_dotfile_1.0.3.tgz"; | ||
3715 | path = fetchurl { | ||
3716 | name = "is_dotfile___is_dotfile_1.0.3.tgz"; | ||
3717 | url = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz"; | ||
3718 | sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"; | ||
3719 | }; | ||
3720 | } | ||
3721 | |||
3722 | { | ||
3723 | name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz"; | ||
3724 | path = fetchurl { | ||
3725 | name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz"; | ||
3726 | url = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz"; | ||
3727 | sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534"; | ||
3728 | }; | ||
3729 | } | ||
3730 | |||
3731 | { | ||
3732 | name = "is_extendable___is_extendable_0.1.1.tgz"; | ||
3733 | path = fetchurl { | ||
3734 | name = "is_extendable___is_extendable_0.1.1.tgz"; | ||
3735 | url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz"; | ||
3736 | sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; | ||
3737 | }; | ||
3738 | } | ||
3739 | |||
3740 | { | ||
3741 | name = "is_extendable___is_extendable_1.0.1.tgz"; | ||
3742 | path = fetchurl { | ||
3743 | name = "is_extendable___is_extendable_1.0.1.tgz"; | ||
3744 | url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz"; | ||
3745 | sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4"; | ||
3746 | }; | ||
3747 | } | ||
3748 | |||
3749 | { | ||
3750 | name = "is_extglob___is_extglob_1.0.0.tgz"; | ||
3751 | path = fetchurl { | ||
3752 | name = "is_extglob___is_extglob_1.0.0.tgz"; | ||
3753 | url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz"; | ||
3754 | sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0"; | ||
3755 | }; | ||
3756 | } | ||
3757 | |||
3758 | { | ||
3759 | name = "is_extglob___is_extglob_2.1.1.tgz"; | ||
3760 | path = fetchurl { | ||
3761 | name = "is_extglob___is_extglob_2.1.1.tgz"; | ||
3762 | url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; | ||
3763 | sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; | ||
3764 | }; | ||
3765 | } | ||
3766 | |||
3767 | { | ||
3768 | name = "is_finite___is_finite_1.0.2.tgz"; | ||
3769 | path = fetchurl { | ||
3770 | name = "is_finite___is_finite_1.0.2.tgz"; | ||
3771 | url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz"; | ||
3772 | sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa"; | ||
3773 | }; | ||
3774 | } | ||
3775 | |||
3776 | { | ||
3777 | name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz"; | ||
3778 | path = fetchurl { | ||
3779 | name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz"; | ||
3780 | url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; | ||
3781 | sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; | ||
3782 | }; | ||
3783 | } | ||
3784 | |||
3785 | { | ||
3786 | name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; | ||
3787 | path = fetchurl { | ||
3788 | name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; | ||
3789 | url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; | ||
3790 | sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; | ||
3791 | }; | ||
3792 | } | ||
3793 | |||
3794 | { | ||
3795 | name = "is_glob___is_glob_2.0.1.tgz"; | ||
3796 | path = fetchurl { | ||
3797 | name = "is_glob___is_glob_2.0.1.tgz"; | ||
3798 | url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz"; | ||
3799 | sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863"; | ||
3800 | }; | ||
3801 | } | ||
3802 | |||
3803 | { | ||
3804 | name = "is_glob___is_glob_3.1.0.tgz"; | ||
3805 | path = fetchurl { | ||
3806 | name = "is_glob___is_glob_3.1.0.tgz"; | ||
3807 | url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz"; | ||
3808 | sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; | ||
3809 | }; | ||
3810 | } | ||
3811 | |||
3812 | { | ||
3813 | name = "is_glob___is_glob_4.0.0.tgz"; | ||
3814 | path = fetchurl { | ||
3815 | name = "is_glob___is_glob_4.0.0.tgz"; | ||
3816 | url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz"; | ||
3817 | sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0"; | ||
3818 | }; | ||
3819 | } | ||
3820 | |||
3821 | { | ||
3822 | name = "is_number___is_number_2.1.0.tgz"; | ||
3823 | path = fetchurl { | ||
3824 | name = "is_number___is_number_2.1.0.tgz"; | ||
3825 | url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz"; | ||
3826 | sha1 = "01fcbbb393463a548f2f466cce16dece49db908f"; | ||
3827 | }; | ||
3828 | } | ||
3829 | |||
3830 | { | ||
3831 | name = "is_number___is_number_3.0.0.tgz"; | ||
3832 | path = fetchurl { | ||
3833 | name = "is_number___is_number_3.0.0.tgz"; | ||
3834 | url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz"; | ||
3835 | sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; | ||
3836 | }; | ||
3837 | } | ||
3838 | |||
3839 | { | ||
3840 | name = "is_number___is_number_4.0.0.tgz"; | ||
3841 | path = fetchurl { | ||
3842 | name = "is_number___is_number_4.0.0.tgz"; | ||
3843 | url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz"; | ||
3844 | sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff"; | ||
3845 | }; | ||
3846 | } | ||
3847 | |||
3848 | { | ||
3849 | name = "is_path_cwd___is_path_cwd_1.0.0.tgz"; | ||
3850 | path = fetchurl { | ||
3851 | name = "is_path_cwd___is_path_cwd_1.0.0.tgz"; | ||
3852 | url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz"; | ||
3853 | sha1 = "d225ec23132e89edd38fda767472e62e65f1106d"; | ||
3854 | }; | ||
3855 | } | ||
3856 | |||
3857 | { | ||
3858 | name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz"; | ||
3859 | path = fetchurl { | ||
3860 | name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz"; | ||
3861 | url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz"; | ||
3862 | sha1 = "5ac48b345ef675339bd6c7a48a912110b241cf52"; | ||
3863 | }; | ||
3864 | } | ||
3865 | |||
3866 | { | ||
3867 | name = "is_path_inside___is_path_inside_1.0.1.tgz"; | ||
3868 | path = fetchurl { | ||
3869 | name = "is_path_inside___is_path_inside_1.0.1.tgz"; | ||
3870 | url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz"; | ||
3871 | sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"; | ||
3872 | }; | ||
3873 | } | ||
3874 | |||
3875 | { | ||
3876 | name = "is_plain_obj___is_plain_obj_1.1.0.tgz"; | ||
3877 | path = fetchurl { | ||
3878 | name = "is_plain_obj___is_plain_obj_1.1.0.tgz"; | ||
3879 | url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz"; | ||
3880 | sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e"; | ||
3881 | }; | ||
3882 | } | ||
3883 | |||
3884 | { | ||
3885 | name = "is_plain_object___is_plain_object_2.0.4.tgz"; | ||
3886 | path = fetchurl { | ||
3887 | name = "is_plain_object___is_plain_object_2.0.4.tgz"; | ||
3888 | url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz"; | ||
3889 | sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677"; | ||
3890 | }; | ||
3891 | } | ||
3892 | |||
3893 | { | ||
3894 | name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz"; | ||
3895 | path = fetchurl { | ||
3896 | name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz"; | ||
3897 | url = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz"; | ||
3898 | sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"; | ||
3899 | }; | ||
3900 | } | ||
3901 | |||
3902 | { | ||
3903 | name = "is_primitive___is_primitive_2.0.0.tgz"; | ||
3904 | path = fetchurl { | ||
3905 | name = "is_primitive___is_primitive_2.0.0.tgz"; | ||
3906 | url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz"; | ||
3907 | sha1 = "207bab91638499c07b2adf240a41a87210034575"; | ||
3908 | }; | ||
3909 | } | ||
3910 | |||
3911 | { | ||
3912 | name = "is_regex___is_regex_1.0.4.tgz"; | ||
3913 | path = fetchurl { | ||
3914 | name = "is_regex___is_regex_1.0.4.tgz"; | ||
3915 | url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz"; | ||
3916 | sha1 = "5517489b547091b0930e095654ced25ee97e9491"; | ||
3917 | }; | ||
3918 | } | ||
3919 | |||
3920 | { | ||
3921 | name = "is_stream___is_stream_1.1.0.tgz"; | ||
3922 | path = fetchurl { | ||
3923 | name = "is_stream___is_stream_1.1.0.tgz"; | ||
3924 | url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz"; | ||
3925 | sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; | ||
3926 | }; | ||
3927 | } | ||
3928 | |||
3929 | { | ||
3930 | name = "is_svg___is_svg_2.1.0.tgz"; | ||
3931 | path = fetchurl { | ||
3932 | name = "is_svg___is_svg_2.1.0.tgz"; | ||
3933 | url = "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz"; | ||
3934 | sha1 = "cf61090da0d9efbcab8722deba6f032208dbb0e9"; | ||
3935 | }; | ||
3936 | } | ||
3937 | |||
3938 | { | ||
3939 | name = "is_symbol___is_symbol_1.0.1.tgz"; | ||
3940 | path = fetchurl { | ||
3941 | name = "is_symbol___is_symbol_1.0.1.tgz"; | ||
3942 | url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz"; | ||
3943 | sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572"; | ||
3944 | }; | ||
3945 | } | ||
3946 | |||
3947 | { | ||
3948 | name = "is_typedarray___is_typedarray_1.0.0.tgz"; | ||
3949 | path = fetchurl { | ||
3950 | name = "is_typedarray___is_typedarray_1.0.0.tgz"; | ||
3951 | url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"; | ||
3952 | sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; | ||
3953 | }; | ||
3954 | } | ||
3955 | |||
3956 | { | ||
3957 | name = "is_utf8___is_utf8_0.2.1.tgz"; | ||
3958 | path = fetchurl { | ||
3959 | name = "is_utf8___is_utf8_0.2.1.tgz"; | ||
3960 | url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz"; | ||
3961 | sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72"; | ||
3962 | }; | ||
3963 | } | ||
3964 | |||
3965 | { | ||
3966 | name = "is_windows___is_windows_1.0.2.tgz"; | ||
3967 | path = fetchurl { | ||
3968 | name = "is_windows___is_windows_1.0.2.tgz"; | ||
3969 | url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz"; | ||
3970 | sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d"; | ||
3971 | }; | ||
3972 | } | ||
3973 | |||
3974 | { | ||
3975 | name = "is_wsl___is_wsl_1.1.0.tgz"; | ||
3976 | path = fetchurl { | ||
3977 | name = "is_wsl___is_wsl_1.1.0.tgz"; | ||
3978 | url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz"; | ||
3979 | sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d"; | ||
3980 | }; | ||
3981 | } | ||
3982 | |||
3983 | { | ||
3984 | name = "isarray___isarray_0.0.1.tgz"; | ||
3985 | path = fetchurl { | ||
3986 | name = "isarray___isarray_0.0.1.tgz"; | ||
3987 | url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz"; | ||
3988 | sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; | ||
3989 | }; | ||
3990 | } | ||
3991 | |||
3992 | { | ||
3993 | name = "isarray___isarray_1.0.0.tgz"; | ||
3994 | path = fetchurl { | ||
3995 | name = "isarray___isarray_1.0.0.tgz"; | ||
3996 | url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; | ||
3997 | sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; | ||
3998 | }; | ||
3999 | } | ||
4000 | |||
4001 | { | ||
4002 | name = "isexe___isexe_2.0.0.tgz"; | ||
4003 | path = fetchurl { | ||
4004 | name = "isexe___isexe_2.0.0.tgz"; | ||
4005 | url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; | ||
4006 | sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; | ||
4007 | }; | ||
4008 | } | ||
4009 | |||
4010 | { | ||
4011 | name = "isobject___isobject_2.1.0.tgz"; | ||
4012 | path = fetchurl { | ||
4013 | name = "isobject___isobject_2.1.0.tgz"; | ||
4014 | url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz"; | ||
4015 | sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; | ||
4016 | }; | ||
4017 | } | ||
4018 | |||
4019 | { | ||
4020 | name = "isobject___isobject_3.0.1.tgz"; | ||
4021 | path = fetchurl { | ||
4022 | name = "isobject___isobject_3.0.1.tgz"; | ||
4023 | url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz"; | ||
4024 | sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; | ||
4025 | }; | ||
4026 | } | ||
4027 | |||
4028 | { | ||
4029 | name = "isstream___isstream_0.1.2.tgz"; | ||
4030 | path = fetchurl { | ||
4031 | name = "isstream___isstream_0.1.2.tgz"; | ||
4032 | url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"; | ||
4033 | sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; | ||
4034 | }; | ||
4035 | } | ||
4036 | |||
4037 | { | ||
4038 | name = "jquery___jquery_3.3.1.tgz"; | ||
4039 | path = fetchurl { | ||
4040 | name = "jquery___jquery_3.3.1.tgz"; | ||
4041 | url = "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz"; | ||
4042 | sha1 = "958ce29e81c9790f31be7792df5d4d95fc57fbca"; | ||
4043 | }; | ||
4044 | } | ||
4045 | |||
4046 | { | ||
4047 | name = "js_base64___js_base64_2.4.8.tgz"; | ||
4048 | path = fetchurl { | ||
4049 | name = "js_base64___js_base64_2.4.8.tgz"; | ||
4050 | url = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz"; | ||
4051 | sha1 = "57a9b130888f956834aa40c5b165ba59c758f033"; | ||
4052 | }; | ||
4053 | } | ||
4054 | |||
4055 | { | ||
4056 | name = "js_tokens___js_tokens_4.0.0.tgz"; | ||
4057 | path = fetchurl { | ||
4058 | name = "js_tokens___js_tokens_4.0.0.tgz"; | ||
4059 | url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz"; | ||
4060 | sha1 = "19203fb59991df98e3a287050d4647cdeaf32499"; | ||
4061 | }; | ||
4062 | } | ||
4063 | |||
4064 | { | ||
4065 | name = "js_tokens___js_tokens_3.0.2.tgz"; | ||
4066 | path = fetchurl { | ||
4067 | name = "js_tokens___js_tokens_3.0.2.tgz"; | ||
4068 | url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz"; | ||
4069 | sha1 = "9866df395102130e38f7f996bceb65443209c25b"; | ||
4070 | }; | ||
4071 | } | ||
4072 | |||
4073 | { | ||
4074 | name = "js_yaml___js_yaml_3.7.0.tgz"; | ||
4075 | path = fetchurl { | ||
4076 | name = "js_yaml___js_yaml_3.7.0.tgz"; | ||
4077 | url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz"; | ||
4078 | sha1 = "5c967ddd837a9bfdca5f2de84253abe8a1c03b80"; | ||
4079 | }; | ||
4080 | } | ||
4081 | |||
4082 | { | ||
4083 | name = "jsbn___jsbn_0.1.1.tgz"; | ||
4084 | path = fetchurl { | ||
4085 | name = "jsbn___jsbn_0.1.1.tgz"; | ||
4086 | url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz"; | ||
4087 | sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; | ||
4088 | }; | ||
4089 | } | ||
4090 | |||
4091 | { | ||
4092 | name = "jsesc___jsesc_1.3.0.tgz"; | ||
4093 | path = fetchurl { | ||
4094 | name = "jsesc___jsesc_1.3.0.tgz"; | ||
4095 | url = "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz"; | ||
4096 | sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b"; | ||
4097 | }; | ||
4098 | } | ||
4099 | |||
4100 | { | ||
4101 | name = "jsesc___jsesc_0.5.0.tgz"; | ||
4102 | path = fetchurl { | ||
4103 | name = "jsesc___jsesc_0.5.0.tgz"; | ||
4104 | url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz"; | ||
4105 | sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d"; | ||
4106 | }; | ||
4107 | } | ||
4108 | |||
4109 | { | ||
4110 | name = "json_loader___json_loader_0.5.7.tgz"; | ||
4111 | path = fetchurl { | ||
4112 | name = "json_loader___json_loader_0.5.7.tgz"; | ||
4113 | url = "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz"; | ||
4114 | sha1 = "dca14a70235ff82f0ac9a3abeb60d337a365185d"; | ||
4115 | }; | ||
4116 | } | ||
4117 | |||
4118 | { | ||
4119 | name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz"; | ||
4120 | path = fetchurl { | ||
4121 | name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz"; | ||
4122 | url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz"; | ||
4123 | sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340"; | ||
4124 | }; | ||
4125 | } | ||
4126 | |||
4127 | { | ||
4128 | name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; | ||
4129 | path = fetchurl { | ||
4130 | name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; | ||
4131 | url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; | ||
4132 | sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660"; | ||
4133 | }; | ||
4134 | } | ||
4135 | |||
4136 | { | ||
4137 | name = "json_schema___json_schema_0.2.3.tgz"; | ||
4138 | path = fetchurl { | ||
4139 | name = "json_schema___json_schema_0.2.3.tgz"; | ||
4140 | url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz"; | ||
4141 | sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; | ||
4142 | }; | ||
4143 | } | ||
4144 | |||
4145 | { | ||
4146 | name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz"; | ||
4147 | path = fetchurl { | ||
4148 | name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz"; | ||
4149 | url = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"; | ||
4150 | sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af"; | ||
4151 | }; | ||
4152 | } | ||
4153 | |||
4154 | { | ||
4155 | name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; | ||
4156 | path = fetchurl { | ||
4157 | name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; | ||
4158 | url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; | ||
4159 | sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; | ||
4160 | }; | ||
4161 | } | ||
4162 | |||
4163 | { | ||
4164 | name = "json3___json3_3.3.2.tgz"; | ||
4165 | path = fetchurl { | ||
4166 | name = "json3___json3_3.3.2.tgz"; | ||
4167 | url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz"; | ||
4168 | sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1"; | ||
4169 | }; | ||
4170 | } | ||
4171 | |||
4172 | { | ||
4173 | name = "json5___json5_0.5.1.tgz"; | ||
4174 | path = fetchurl { | ||
4175 | name = "json5___json5_0.5.1.tgz"; | ||
4176 | url = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz"; | ||
4177 | sha1 = "1eade7acc012034ad84e2396767ead9fa5495821"; | ||
4178 | }; | ||
4179 | } | ||
4180 | |||
4181 | { | ||
4182 | name = "jsonfile___jsonfile_2.4.0.tgz"; | ||
4183 | path = fetchurl { | ||
4184 | name = "jsonfile___jsonfile_2.4.0.tgz"; | ||
4185 | url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz"; | ||
4186 | sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"; | ||
4187 | }; | ||
4188 | } | ||
4189 | |||
4190 | { | ||
4191 | name = "jsonify___jsonify_0.0.0.tgz"; | ||
4192 | path = fetchurl { | ||
4193 | name = "jsonify___jsonify_0.0.0.tgz"; | ||
4194 | url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz"; | ||
4195 | sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; | ||
4196 | }; | ||
4197 | } | ||
4198 | |||
4199 | { | ||
4200 | name = "jsprim___jsprim_1.4.1.tgz"; | ||
4201 | path = fetchurl { | ||
4202 | name = "jsprim___jsprim_1.4.1.tgz"; | ||
4203 | url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz"; | ||
4204 | sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; | ||
4205 | }; | ||
4206 | } | ||
4207 | |||
4208 | { | ||
4209 | name = "killable___killable_1.0.0.tgz"; | ||
4210 | path = fetchurl { | ||
4211 | name = "killable___killable_1.0.0.tgz"; | ||
4212 | url = "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz"; | ||
4213 | sha1 = "da8b84bd47de5395878f95d64d02f2449fe05e6b"; | ||
4214 | }; | ||
4215 | } | ||
4216 | |||
4217 | { | ||
4218 | name = "kind_of___kind_of_3.2.2.tgz"; | ||
4219 | path = fetchurl { | ||
4220 | name = "kind_of___kind_of_3.2.2.tgz"; | ||
4221 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz"; | ||
4222 | sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; | ||
4223 | }; | ||
4224 | } | ||
4225 | |||
4226 | { | ||
4227 | name = "kind_of___kind_of_4.0.0.tgz"; | ||
4228 | path = fetchurl { | ||
4229 | name = "kind_of___kind_of_4.0.0.tgz"; | ||
4230 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz"; | ||
4231 | sha1 = "20813df3d712928b207378691a45066fae72dd57"; | ||
4232 | }; | ||
4233 | } | ||
4234 | |||
4235 | { | ||
4236 | name = "kind_of___kind_of_5.1.0.tgz"; | ||
4237 | path = fetchurl { | ||
4238 | name = "kind_of___kind_of_5.1.0.tgz"; | ||
4239 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz"; | ||
4240 | sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d"; | ||
4241 | }; | ||
4242 | } | ||
4243 | |||
4244 | { | ||
4245 | name = "kind_of___kind_of_6.0.2.tgz"; | ||
4246 | path = fetchurl { | ||
4247 | name = "kind_of___kind_of_6.0.2.tgz"; | ||
4248 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz"; | ||
4249 | sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051"; | ||
4250 | }; | ||
4251 | } | ||
4252 | |||
4253 | { | ||
4254 | name = "lazy_cache___lazy_cache_1.0.4.tgz"; | ||
4255 | path = fetchurl { | ||
4256 | name = "lazy_cache___lazy_cache_1.0.4.tgz"; | ||
4257 | url = "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz"; | ||
4258 | sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"; | ||
4259 | }; | ||
4260 | } | ||
4261 | |||
4262 | { | ||
4263 | name = "lcid___lcid_1.0.0.tgz"; | ||
4264 | path = fetchurl { | ||
4265 | name = "lcid___lcid_1.0.0.tgz"; | ||
4266 | url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz"; | ||
4267 | sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835"; | ||
4268 | }; | ||
4269 | } | ||
4270 | |||
4271 | { | ||
4272 | name = "load_json_file___load_json_file_1.1.0.tgz"; | ||
4273 | path = fetchurl { | ||
4274 | name = "load_json_file___load_json_file_1.1.0.tgz"; | ||
4275 | url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz"; | ||
4276 | sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0"; | ||
4277 | }; | ||
4278 | } | ||
4279 | |||
4280 | { | ||
4281 | name = "load_json_file___load_json_file_2.0.0.tgz"; | ||
4282 | path = fetchurl { | ||
4283 | name = "load_json_file___load_json_file_2.0.0.tgz"; | ||
4284 | url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz"; | ||
4285 | sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8"; | ||
4286 | }; | ||
4287 | } | ||
4288 | |||
4289 | { | ||
4290 | name = "loader_runner___loader_runner_2.3.0.tgz"; | ||
4291 | path = fetchurl { | ||
4292 | name = "loader_runner___loader_runner_2.3.0.tgz"; | ||
4293 | url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz"; | ||
4294 | sha1 = "f482aea82d543e07921700d5a46ef26fdac6b8a2"; | ||
4295 | }; | ||
4296 | } | ||
4297 | |||
4298 | { | ||
4299 | name = "loader_utils___loader_utils_1.1.0.tgz"; | ||
4300 | path = fetchurl { | ||
4301 | name = "loader_utils___loader_utils_1.1.0.tgz"; | ||
4302 | url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz"; | ||
4303 | sha1 = "c98aef488bcceda2ffb5e2de646d6a754429f5cd"; | ||
4304 | }; | ||
4305 | } | ||
4306 | |||
4307 | { | ||
4308 | name = "locate_path___locate_path_2.0.0.tgz"; | ||
4309 | path = fetchurl { | ||
4310 | name = "locate_path___locate_path_2.0.0.tgz"; | ||
4311 | url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz"; | ||
4312 | sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; | ||
4313 | }; | ||
4314 | } | ||
4315 | |||
4316 | { | ||
4317 | name = "lodash._baseassign___lodash._baseassign_3.2.0.tgz"; | ||
4318 | path = fetchurl { | ||
4319 | name = "lodash._baseassign___lodash._baseassign_3.2.0.tgz"; | ||
4320 | url = "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz"; | ||
4321 | sha1 = "8c38a099500f215ad09e59f1722fd0c52bfe0a4e"; | ||
4322 | }; | ||
4323 | } | ||
4324 | |||
4325 | { | ||
4326 | name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz"; | ||
4327 | path = fetchurl { | ||
4328 | name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz"; | ||
4329 | url = "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz"; | ||
4330 | sha1 = "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"; | ||
4331 | }; | ||
4332 | } | ||
4333 | |||
4334 | { | ||
4335 | name = "lodash._bindcallback___lodash._bindcallback_3.0.1.tgz"; | ||
4336 | path = fetchurl { | ||
4337 | name = "lodash._bindcallback___lodash._bindcallback_3.0.1.tgz"; | ||
4338 | url = "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz"; | ||
4339 | sha1 = "e531c27644cf8b57a99e17ed95b35c748789392e"; | ||
4340 | }; | ||
4341 | } | ||
4342 | |||
4343 | { | ||
4344 | name = "lodash._createassigner___lodash._createassigner_3.1.1.tgz"; | ||
4345 | path = fetchurl { | ||
4346 | name = "lodash._createassigner___lodash._createassigner_3.1.1.tgz"; | ||
4347 | url = "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz"; | ||
4348 | sha1 = "838a5bae2fdaca63ac22dee8e19fa4e6d6970b11"; | ||
4349 | }; | ||
4350 | } | ||
4351 | |||
4352 | { | ||
4353 | name = "lodash._getnative___lodash._getnative_3.9.1.tgz"; | ||
4354 | path = fetchurl { | ||
4355 | name = "lodash._getnative___lodash._getnative_3.9.1.tgz"; | ||
4356 | url = "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz"; | ||
4357 | sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5"; | ||
4358 | }; | ||
4359 | } | ||
4360 | |||
4361 | { | ||
4362 | name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz"; | ||
4363 | path = fetchurl { | ||
4364 | name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz"; | ||
4365 | url = "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"; | ||
4366 | sha1 = "5203ad7ba425fae842460e696db9cf3e6aac057c"; | ||
4367 | }; | ||
4368 | } | ||
4369 | |||
4370 | { | ||
4371 | name = "lodash.assign___lodash.assign_3.2.0.tgz"; | ||
4372 | path = fetchurl { | ||
4373 | name = "lodash.assign___lodash.assign_3.2.0.tgz"; | ||
4374 | url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz"; | ||
4375 | sha1 = "3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa"; | ||
4376 | }; | ||
4377 | } | ||
4378 | |||
4379 | { | ||
4380 | name = "lodash.assign___lodash.assign_4.2.0.tgz"; | ||
4381 | path = fetchurl { | ||
4382 | name = "lodash.assign___lodash.assign_4.2.0.tgz"; | ||
4383 | url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz"; | ||
4384 | sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7"; | ||
4385 | }; | ||
4386 | } | ||
4387 | |||
4388 | { | ||
4389 | name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz"; | ||
4390 | path = fetchurl { | ||
4391 | name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz"; | ||
4392 | url = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"; | ||
4393 | sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6"; | ||
4394 | }; | ||
4395 | } | ||
4396 | |||
4397 | { | ||
4398 | name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz"; | ||
4399 | path = fetchurl { | ||
4400 | name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz"; | ||
4401 | url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"; | ||
4402 | sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef"; | ||
4403 | }; | ||
4404 | } | ||
4405 | |||
4406 | { | ||
4407 | name = "lodash.debounce___lodash.debounce_4.0.8.tgz"; | ||
4408 | path = fetchurl { | ||
4409 | name = "lodash.debounce___lodash.debounce_4.0.8.tgz"; | ||
4410 | url = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz"; | ||
4411 | sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af"; | ||
4412 | }; | ||
4413 | } | ||
4414 | |||
4415 | { | ||
4416 | name = "lodash.defaults___lodash.defaults_3.1.2.tgz"; | ||
4417 | path = fetchurl { | ||
4418 | name = "lodash.defaults___lodash.defaults_3.1.2.tgz"; | ||
4419 | url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz"; | ||
4420 | sha1 = "c7308b18dbf8bc9372d701a73493c61192bd2e2c"; | ||
4421 | }; | ||
4422 | } | ||
4423 | |||
4424 | { | ||
4425 | name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; | ||
4426 | path = fetchurl { | ||
4427 | name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; | ||
4428 | url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz"; | ||
4429 | sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c"; | ||
4430 | }; | ||
4431 | } | ||
4432 | |||
4433 | { | ||
4434 | name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz"; | ||
4435 | path = fetchurl { | ||
4436 | name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz"; | ||
4437 | url = "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz"; | ||
4438 | sha1 = "2f573d85c6a24289ff00663b491c1d338ff3458a"; | ||
4439 | }; | ||
4440 | } | ||
4441 | |||
4442 | { | ||
4443 | name = "lodash.isarray___lodash.isarray_3.0.4.tgz"; | ||
4444 | path = fetchurl { | ||
4445 | name = "lodash.isarray___lodash.isarray_3.0.4.tgz"; | ||
4446 | url = "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz"; | ||
4447 | sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55"; | ||
4448 | }; | ||
4449 | } | ||
4450 | |||
4451 | { | ||
4452 | name = "lodash.keys___lodash.keys_3.1.2.tgz"; | ||
4453 | path = fetchurl { | ||
4454 | name = "lodash.keys___lodash.keys_3.1.2.tgz"; | ||
4455 | url = "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz"; | ||
4456 | sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a"; | ||
4457 | }; | ||
4458 | } | ||
4459 | |||
4460 | { | ||
4461 | name = "lodash.memoize___lodash.memoize_4.1.2.tgz"; | ||
4462 | path = fetchurl { | ||
4463 | name = "lodash.memoize___lodash.memoize_4.1.2.tgz"; | ||
4464 | url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz"; | ||
4465 | sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe"; | ||
4466 | }; | ||
4467 | } | ||
4468 | |||
4469 | { | ||
4470 | name = "lodash.mergewith___lodash.mergewith_4.6.1.tgz"; | ||
4471 | path = fetchurl { | ||
4472 | name = "lodash.mergewith___lodash.mergewith_4.6.1.tgz"; | ||
4473 | url = "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz"; | ||
4474 | sha1 = "639057e726c3afbdb3e7d42741caa8d6e4335927"; | ||
4475 | }; | ||
4476 | } | ||
4477 | |||
4478 | { | ||
4479 | name = "lodash.restparam___lodash.restparam_3.6.1.tgz"; | ||
4480 | path = fetchurl { | ||
4481 | name = "lodash.restparam___lodash.restparam_3.6.1.tgz"; | ||
4482 | url = "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz"; | ||
4483 | sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805"; | ||
4484 | }; | ||
4485 | } | ||
4486 | |||
4487 | { | ||
4488 | name = "lodash.tail___lodash.tail_4.1.1.tgz"; | ||
4489 | path = fetchurl { | ||
4490 | name = "lodash.tail___lodash.tail_4.1.1.tgz"; | ||
4491 | url = "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz"; | ||
4492 | sha1 = "d2333a36d9e7717c8ad2f7cacafec7c32b444664"; | ||
4493 | }; | ||
4494 | } | ||
4495 | |||
4496 | { | ||
4497 | name = "lodash.uniq___lodash.uniq_4.5.0.tgz"; | ||
4498 | path = fetchurl { | ||
4499 | name = "lodash.uniq___lodash.uniq_4.5.0.tgz"; | ||
4500 | url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; | ||
4501 | sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; | ||
4502 | }; | ||
4503 | } | ||
4504 | |||
4505 | { | ||
4506 | name = "lodash___lodash_4.17.10.tgz"; | ||
4507 | path = fetchurl { | ||
4508 | name = "lodash___lodash_4.17.10.tgz"; | ||
4509 | url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz"; | ||
4510 | sha1 = "1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"; | ||
4511 | }; | ||
4512 | } | ||
4513 | |||
4514 | { | ||
4515 | name = "loglevel___loglevel_1.6.1.tgz"; | ||
4516 | path = fetchurl { | ||
4517 | name = "loglevel___loglevel_1.6.1.tgz"; | ||
4518 | url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz"; | ||
4519 | sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"; | ||
4520 | }; | ||
4521 | } | ||
4522 | |||
4523 | { | ||
4524 | name = "longest___longest_1.0.1.tgz"; | ||
4525 | path = fetchurl { | ||
4526 | name = "longest___longest_1.0.1.tgz"; | ||
4527 | url = "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz"; | ||
4528 | sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097"; | ||
4529 | }; | ||
4530 | } | ||
4531 | |||
4532 | { | ||
4533 | name = "loose_envify___loose_envify_1.4.0.tgz"; | ||
4534 | path = fetchurl { | ||
4535 | name = "loose_envify___loose_envify_1.4.0.tgz"; | ||
4536 | url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz"; | ||
4537 | sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf"; | ||
4538 | }; | ||
4539 | } | ||
4540 | |||
4541 | { | ||
4542 | name = "loud_rejection___loud_rejection_1.6.0.tgz"; | ||
4543 | path = fetchurl { | ||
4544 | name = "loud_rejection___loud_rejection_1.6.0.tgz"; | ||
4545 | url = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz"; | ||
4546 | sha1 = "5b46f80147edee578870f086d04821cf998e551f"; | ||
4547 | }; | ||
4548 | } | ||
4549 | |||
4550 | { | ||
4551 | name = "lru_cache___lru_cache_4.1.3.tgz"; | ||
4552 | path = fetchurl { | ||
4553 | name = "lru_cache___lru_cache_4.1.3.tgz"; | ||
4554 | url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz"; | ||
4555 | sha1 = "a1175cf3496dfc8436c156c334b4955992bce69c"; | ||
4556 | }; | ||
4557 | } | ||
4558 | |||
4559 | { | ||
4560 | name = "make_dir___make_dir_1.3.0.tgz"; | ||
4561 | path = fetchurl { | ||
4562 | name = "make_dir___make_dir_1.3.0.tgz"; | ||
4563 | url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz"; | ||
4564 | sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c"; | ||
4565 | }; | ||
4566 | } | ||
4567 | |||
4568 | { | ||
4569 | name = "map_cache___map_cache_0.2.2.tgz"; | ||
4570 | path = fetchurl { | ||
4571 | name = "map_cache___map_cache_0.2.2.tgz"; | ||
4572 | url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz"; | ||
4573 | sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; | ||
4574 | }; | ||
4575 | } | ||
4576 | |||
4577 | { | ||
4578 | name = "map_obj___map_obj_1.0.1.tgz"; | ||
4579 | path = fetchurl { | ||
4580 | name = "map_obj___map_obj_1.0.1.tgz"; | ||
4581 | url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz"; | ||
4582 | sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d"; | ||
4583 | }; | ||
4584 | } | ||
4585 | |||
4586 | { | ||
4587 | name = "map_visit___map_visit_1.0.0.tgz"; | ||
4588 | path = fetchurl { | ||
4589 | name = "map_visit___map_visit_1.0.0.tgz"; | ||
4590 | url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz"; | ||
4591 | sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; | ||
4592 | }; | ||
4593 | } | ||
4594 | |||
4595 | { | ||
4596 | name = "math_expression_evaluator___math_expression_evaluator_1.2.17.tgz"; | ||
4597 | path = fetchurl { | ||
4598 | name = "math_expression_evaluator___math_expression_evaluator_1.2.17.tgz"; | ||
4599 | url = "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz"; | ||
4600 | sha1 = "de819fdbcd84dccd8fae59c6aeb79615b9d266ac"; | ||
4601 | }; | ||
4602 | } | ||
4603 | |||
4604 | { | ||
4605 | name = "math_random___math_random_1.0.1.tgz"; | ||
4606 | path = fetchurl { | ||
4607 | name = "math_random___math_random_1.0.1.tgz"; | ||
4608 | url = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz"; | ||
4609 | sha1 = "8b3aac588b8a66e4975e3cdea67f7bb329601fac"; | ||
4610 | }; | ||
4611 | } | ||
4612 | |||
4613 | { | ||
4614 | name = "md5.js___md5.js_1.3.4.tgz"; | ||
4615 | path = fetchurl { | ||
4616 | name = "md5.js___md5.js_1.3.4.tgz"; | ||
4617 | url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz"; | ||
4618 | sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d"; | ||
4619 | }; | ||
4620 | } | ||
4621 | |||
4622 | { | ||
4623 | name = "media_typer___media_typer_0.3.0.tgz"; | ||
4624 | path = fetchurl { | ||
4625 | name = "media_typer___media_typer_0.3.0.tgz"; | ||
4626 | url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz"; | ||
4627 | sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; | ||
4628 | }; | ||
4629 | } | ||
4630 | |||
4631 | { | ||
4632 | name = "mem___mem_1.1.0.tgz"; | ||
4633 | path = fetchurl { | ||
4634 | name = "mem___mem_1.1.0.tgz"; | ||
4635 | url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz"; | ||
4636 | sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76"; | ||
4637 | }; | ||
4638 | } | ||
4639 | |||
4640 | { | ||
4641 | name = "memory_fs___memory_fs_0.4.1.tgz"; | ||
4642 | path = fetchurl { | ||
4643 | name = "memory_fs___memory_fs_0.4.1.tgz"; | ||
4644 | url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz"; | ||
4645 | sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552"; | ||
4646 | }; | ||
4647 | } | ||
4648 | |||
4649 | { | ||
4650 | name = "meow___meow_3.7.0.tgz"; | ||
4651 | path = fetchurl { | ||
4652 | name = "meow___meow_3.7.0.tgz"; | ||
4653 | url = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz"; | ||
4654 | sha1 = "72cb668b425228290abbfa856892587308a801fb"; | ||
4655 | }; | ||
4656 | } | ||
4657 | |||
4658 | { | ||
4659 | name = "merge_descriptors___merge_descriptors_1.0.1.tgz"; | ||
4660 | path = fetchurl { | ||
4661 | name = "merge_descriptors___merge_descriptors_1.0.1.tgz"; | ||
4662 | url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; | ||
4663 | sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; | ||
4664 | }; | ||
4665 | } | ||
4666 | |||
4667 | { | ||
4668 | name = "methods___methods_1.1.2.tgz"; | ||
4669 | path = fetchurl { | ||
4670 | name = "methods___methods_1.1.2.tgz"; | ||
4671 | url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz"; | ||
4672 | sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; | ||
4673 | }; | ||
4674 | } | ||
4675 | |||
4676 | { | ||
4677 | name = "micromatch___micromatch_2.3.11.tgz"; | ||
4678 | path = fetchurl { | ||
4679 | name = "micromatch___micromatch_2.3.11.tgz"; | ||
4680 | url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz"; | ||
4681 | sha1 = "86677c97d1720b363431d04d0d15293bd38c1565"; | ||
4682 | }; | ||
4683 | } | ||
4684 | |||
4685 | { | ||
4686 | name = "micromatch___micromatch_3.1.10.tgz"; | ||
4687 | path = fetchurl { | ||
4688 | name = "micromatch___micromatch_3.1.10.tgz"; | ||
4689 | url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz"; | ||
4690 | sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23"; | ||
4691 | }; | ||
4692 | } | ||
4693 | |||
4694 | { | ||
4695 | name = "miller_rabin___miller_rabin_4.0.1.tgz"; | ||
4696 | path = fetchurl { | ||
4697 | name = "miller_rabin___miller_rabin_4.0.1.tgz"; | ||
4698 | url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz"; | ||
4699 | sha1 = "f080351c865b0dc562a8462966daa53543c78a4d"; | ||
4700 | }; | ||
4701 | } | ||
4702 | |||
4703 | { | ||
4704 | name = "mime_db___mime_db_1.35.0.tgz"; | ||
4705 | path = fetchurl { | ||
4706 | name = "mime_db___mime_db_1.35.0.tgz"; | ||
4707 | url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz"; | ||
4708 | sha1 = "0569d657466491283709663ad379a99b90d9ab47"; | ||
4709 | }; | ||
4710 | } | ||
4711 | |||
4712 | { | ||
4713 | name = "mime_types___mime_types_2.1.19.tgz"; | ||
4714 | path = fetchurl { | ||
4715 | name = "mime_types___mime_types_2.1.19.tgz"; | ||
4716 | url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz"; | ||
4717 | sha1 = "71e464537a7ef81c15f2db9d97e913fc0ff606f0"; | ||
4718 | }; | ||
4719 | } | ||
4720 | |||
4721 | { | ||
4722 | name = "mime___mime_1.4.1.tgz"; | ||
4723 | path = fetchurl { | ||
4724 | name = "mime___mime_1.4.1.tgz"; | ||
4725 | url = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz"; | ||
4726 | sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"; | ||
4727 | }; | ||
4728 | } | ||
4729 | |||
4730 | { | ||
4731 | name = "mime___mime_1.6.0.tgz"; | ||
4732 | path = fetchurl { | ||
4733 | name = "mime___mime_1.6.0.tgz"; | ||
4734 | url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz"; | ||
4735 | sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1"; | ||
4736 | }; | ||
4737 | } | ||
4738 | |||
4739 | { | ||
4740 | name = "mimic_fn___mimic_fn_1.2.0.tgz"; | ||
4741 | path = fetchurl { | ||
4742 | name = "mimic_fn___mimic_fn_1.2.0.tgz"; | ||
4743 | url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz"; | ||
4744 | sha1 = "820c86a39334640e99516928bd03fca88057d022"; | ||
4745 | }; | ||
4746 | } | ||
4747 | |||
4748 | { | ||
4749 | name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz"; | ||
4750 | path = fetchurl { | ||
4751 | name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz"; | ||
4752 | url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; | ||
4753 | sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"; | ||
4754 | }; | ||
4755 | } | ||
4756 | |||
4757 | { | ||
4758 | name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz"; | ||
4759 | path = fetchurl { | ||
4760 | name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz"; | ||
4761 | url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"; | ||
4762 | sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"; | ||
4763 | }; | ||
4764 | } | ||
4765 | |||
4766 | { | ||
4767 | name = "minimatch___minimatch_3.0.4.tgz"; | ||
4768 | path = fetchurl { | ||
4769 | name = "minimatch___minimatch_3.0.4.tgz"; | ||
4770 | url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"; | ||
4771 | sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; | ||
4772 | }; | ||
4773 | } | ||
4774 | |||
4775 | { | ||
4776 | name = "minimist___minimist_0.0.8.tgz"; | ||
4777 | path = fetchurl { | ||
4778 | name = "minimist___minimist_0.0.8.tgz"; | ||
4779 | url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz"; | ||
4780 | sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; | ||
4781 | }; | ||
4782 | } | ||
4783 | |||
4784 | { | ||
4785 | name = "minimist___minimist_1.2.0.tgz"; | ||
4786 | path = fetchurl { | ||
4787 | name = "minimist___minimist_1.2.0.tgz"; | ||
4788 | url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz"; | ||
4789 | sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; | ||
4790 | }; | ||
4791 | } | ||
4792 | |||
4793 | { | ||
4794 | name = "minipass___minipass_2.3.3.tgz"; | ||
4795 | path = fetchurl { | ||
4796 | name = "minipass___minipass_2.3.3.tgz"; | ||
4797 | url = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz"; | ||
4798 | sha1 = "a7dcc8b7b833f5d368759cce544dccb55f50f233"; | ||
4799 | }; | ||
4800 | } | ||
4801 | |||
4802 | { | ||
4803 | name = "minizlib___minizlib_1.1.0.tgz"; | ||
4804 | path = fetchurl { | ||
4805 | name = "minizlib___minizlib_1.1.0.tgz"; | ||
4806 | url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz"; | ||
4807 | sha1 = "11e13658ce46bc3a70a267aac58359d1e0c29ceb"; | ||
4808 | }; | ||
4809 | } | ||
4810 | |||
4811 | { | ||
4812 | name = "mixin_deep___mixin_deep_1.3.1.tgz"; | ||
4813 | path = fetchurl { | ||
4814 | name = "mixin_deep___mixin_deep_1.3.1.tgz"; | ||
4815 | url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz"; | ||
4816 | sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe"; | ||
4817 | }; | ||
4818 | } | ||
4819 | |||
4820 | { | ||
4821 | name = "mixin_object___mixin_object_2.0.1.tgz"; | ||
4822 | path = fetchurl { | ||
4823 | name = "mixin_object___mixin_object_2.0.1.tgz"; | ||
4824 | url = "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz"; | ||
4825 | sha1 = "4fb949441dab182540f1fe035ba60e1947a5e57e"; | ||
4826 | }; | ||
4827 | } | ||
4828 | |||
4829 | { | ||
4830 | name = "mkdirp___mkdirp_0.5.1.tgz"; | ||
4831 | path = fetchurl { | ||
4832 | name = "mkdirp___mkdirp_0.5.1.tgz"; | ||
4833 | url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz"; | ||
4834 | sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; | ||
4835 | }; | ||
4836 | } | ||
4837 | |||
4838 | { | ||
4839 | name = "ms___ms_2.0.0.tgz"; | ||
4840 | path = fetchurl { | ||
4841 | name = "ms___ms_2.0.0.tgz"; | ||
4842 | url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz"; | ||
4843 | sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; | ||
4844 | }; | ||
4845 | } | ||
4846 | |||
4847 | { | ||
4848 | name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz"; | ||
4849 | path = fetchurl { | ||
4850 | name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz"; | ||
4851 | url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz"; | ||
4852 | sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901"; | ||
4853 | }; | ||
4854 | } | ||
4855 | |||
4856 | { | ||
4857 | name = "multicast_dns___multicast_dns_6.2.3.tgz"; | ||
4858 | path = fetchurl { | ||
4859 | name = "multicast_dns___multicast_dns_6.2.3.tgz"; | ||
4860 | url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz"; | ||
4861 | sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229"; | ||
4862 | }; | ||
4863 | } | ||
4864 | |||
4865 | { | ||
4866 | name = "nan___nan_2.10.0.tgz"; | ||
4867 | path = fetchurl { | ||
4868 | name = "nan___nan_2.10.0.tgz"; | ||
4869 | url = "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz"; | ||
4870 | sha1 = "96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"; | ||
4871 | }; | ||
4872 | } | ||
4873 | |||
4874 | { | ||
4875 | name = "nanomatch___nanomatch_1.2.13.tgz"; | ||
4876 | path = fetchurl { | ||
4877 | name = "nanomatch___nanomatch_1.2.13.tgz"; | ||
4878 | url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz"; | ||
4879 | sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119"; | ||
4880 | }; | ||
4881 | } | ||
4882 | |||
4883 | { | ||
4884 | name = "needle___needle_2.2.1.tgz"; | ||
4885 | path = fetchurl { | ||
4886 | name = "needle___needle_2.2.1.tgz"; | ||
4887 | url = "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz"; | ||
4888 | sha1 = "b5e325bd3aae8c2678902fa296f729455d1d3a7d"; | ||
4889 | }; | ||
4890 | } | ||
4891 | |||
4892 | { | ||
4893 | name = "negotiator___negotiator_0.6.1.tgz"; | ||
4894 | path = fetchurl { | ||
4895 | name = "negotiator___negotiator_0.6.1.tgz"; | ||
4896 | url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz"; | ||
4897 | sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9"; | ||
4898 | }; | ||
4899 | } | ||
4900 | |||
4901 | { | ||
4902 | name = "neo_async___neo_async_2.5.1.tgz"; | ||
4903 | path = fetchurl { | ||
4904 | name = "neo_async___neo_async_2.5.1.tgz"; | ||
4905 | url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz"; | ||
4906 | sha1 = "acb909e327b1e87ec9ef15f41b8a269512ad41ee"; | ||
4907 | }; | ||
4908 | } | ||
4909 | |||
4910 | { | ||
4911 | name = "next_tick___next_tick_1.0.0.tgz"; | ||
4912 | path = fetchurl { | ||
4913 | name = "next_tick___next_tick_1.0.0.tgz"; | ||
4914 | url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz"; | ||
4915 | sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c"; | ||
4916 | }; | ||
4917 | } | ||
4918 | |||
4919 | { | ||
4920 | name = "node_forge___node_forge_0.7.5.tgz"; | ||
4921 | path = fetchurl { | ||
4922 | name = "node_forge___node_forge_0.7.5.tgz"; | ||
4923 | url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz"; | ||
4924 | sha1 = "6c152c345ce11c52f465c2abd957e8639cd674df"; | ||
4925 | }; | ||
4926 | } | ||
4927 | |||
4928 | { | ||
4929 | name = "node_gyp___node_gyp_3.7.0.tgz"; | ||
4930 | path = fetchurl { | ||
4931 | name = "node_gyp___node_gyp_3.7.0.tgz"; | ||
4932 | url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.7.0.tgz"; | ||
4933 | sha1 = "789478e8f6c45e277aa014f3e28f958f286f9203"; | ||
4934 | }; | ||
4935 | } | ||
4936 | |||
4937 | { | ||
4938 | name = "node_libs_browser___node_libs_browser_2.1.0.tgz"; | ||
4939 | path = fetchurl { | ||
4940 | name = "node_libs_browser___node_libs_browser_2.1.0.tgz"; | ||
4941 | url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz"; | ||
4942 | sha1 = "5f94263d404f6e44767d726901fff05478d600df"; | ||
4943 | }; | ||
4944 | } | ||
4945 | |||
4946 | { | ||
4947 | name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz"; | ||
4948 | path = fetchurl { | ||
4949 | name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz"; | ||
4950 | url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz"; | ||
4951 | sha1 = "3070040716afdc778747b61b6887bf78880b80fc"; | ||
4952 | }; | ||
4953 | } | ||
4954 | |||
4955 | { | ||
4956 | name = "node_sass___node_sass_4.9.2.tgz"; | ||
4957 | path = fetchurl { | ||
4958 | name = "node_sass___node_sass_4.9.2.tgz"; | ||
4959 | url = "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.2.tgz"; | ||
4960 | sha1 = "5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437"; | ||
4961 | }; | ||
4962 | } | ||
4963 | |||
4964 | { | ||
4965 | name = "nopt___nopt_3.0.6.tgz"; | ||
4966 | path = fetchurl { | ||
4967 | name = "nopt___nopt_3.0.6.tgz"; | ||
4968 | url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz"; | ||
4969 | sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9"; | ||
4970 | }; | ||
4971 | } | ||
4972 | |||
4973 | { | ||
4974 | name = "nopt___nopt_4.0.1.tgz"; | ||
4975 | path = fetchurl { | ||
4976 | name = "nopt___nopt_4.0.1.tgz"; | ||
4977 | url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz"; | ||
4978 | sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; | ||
4979 | }; | ||
4980 | } | ||
4981 | |||
4982 | { | ||
4983 | name = "normalize_package_data___normalize_package_data_2.4.0.tgz"; | ||
4984 | path = fetchurl { | ||
4985 | name = "normalize_package_data___normalize_package_data_2.4.0.tgz"; | ||
4986 | url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz"; | ||
4987 | sha1 = "12f95a307d58352075a04907b84ac8be98ac012f"; | ||
4988 | }; | ||
4989 | } | ||
4990 | |||
4991 | { | ||
4992 | name = "normalize_path___normalize_path_2.1.1.tgz"; | ||
4993 | path = fetchurl { | ||
4994 | name = "normalize_path___normalize_path_2.1.1.tgz"; | ||
4995 | url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz"; | ||
4996 | sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; | ||
4997 | }; | ||
4998 | } | ||
4999 | |||
5000 | { | ||
5001 | name = "normalize_range___normalize_range_0.1.2.tgz"; | ||
5002 | path = fetchurl { | ||
5003 | name = "normalize_range___normalize_range_0.1.2.tgz"; | ||
5004 | url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz"; | ||
5005 | sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942"; | ||
5006 | }; | ||
5007 | } | ||
5008 | |||
5009 | { | ||
5010 | name = "normalize_url___normalize_url_1.9.1.tgz"; | ||
5011 | path = fetchurl { | ||
5012 | name = "normalize_url___normalize_url_1.9.1.tgz"; | ||
5013 | url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz"; | ||
5014 | sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c"; | ||
5015 | }; | ||
5016 | } | ||
5017 | |||
5018 | { | ||
5019 | name = "npm_bundled___npm_bundled_1.0.3.tgz"; | ||
5020 | path = fetchurl { | ||
5021 | name = "npm_bundled___npm_bundled_1.0.3.tgz"; | ||
5022 | url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz"; | ||
5023 | sha1 = "7e71703d973af3370a9591bafe3a63aca0be2308"; | ||
5024 | }; | ||
5025 | } | ||
5026 | |||
5027 | { | ||
5028 | name = "npm_packlist___npm_packlist_1.1.11.tgz"; | ||
5029 | path = fetchurl { | ||
5030 | name = "npm_packlist___npm_packlist_1.1.11.tgz"; | ||
5031 | url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz"; | ||
5032 | sha1 = "84e8c683cbe7867d34b1d357d893ce29e28a02de"; | ||
5033 | }; | ||
5034 | } | ||
5035 | |||
5036 | { | ||
5037 | name = "npm_run_path___npm_run_path_2.0.2.tgz"; | ||
5038 | path = fetchurl { | ||
5039 | name = "npm_run_path___npm_run_path_2.0.2.tgz"; | ||
5040 | url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz"; | ||
5041 | sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f"; | ||
5042 | }; | ||
5043 | } | ||
5044 | |||
5045 | { | ||
5046 | name = "npmlog___npmlog_4.1.2.tgz"; | ||
5047 | path = fetchurl { | ||
5048 | name = "npmlog___npmlog_4.1.2.tgz"; | ||
5049 | url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz"; | ||
5050 | sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b"; | ||
5051 | }; | ||
5052 | } | ||
5053 | |||
5054 | { | ||
5055 | name = "nth_check___nth_check_1.0.1.tgz"; | ||
5056 | path = fetchurl { | ||
5057 | name = "nth_check___nth_check_1.0.1.tgz"; | ||
5058 | url = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz"; | ||
5059 | sha1 = "9929acdf628fc2c41098deab82ac580cf149aae4"; | ||
5060 | }; | ||
5061 | } | ||
5062 | |||
5063 | { | ||
5064 | name = "num2fraction___num2fraction_1.2.2.tgz"; | ||
5065 | path = fetchurl { | ||
5066 | name = "num2fraction___num2fraction_1.2.2.tgz"; | ||
5067 | url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz"; | ||
5068 | sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"; | ||
5069 | }; | ||
5070 | } | ||
5071 | |||
5072 | { | ||
5073 | name = "number_is_nan___number_is_nan_1.0.1.tgz"; | ||
5074 | path = fetchurl { | ||
5075 | name = "number_is_nan___number_is_nan_1.0.1.tgz"; | ||
5076 | url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz"; | ||
5077 | sha1 = "097b602b53422a522c1afb8790318336941a011d"; | ||
5078 | }; | ||
5079 | } | ||
5080 | |||
5081 | { | ||
5082 | name = "oauth_sign___oauth_sign_0.8.2.tgz"; | ||
5083 | path = fetchurl { | ||
5084 | name = "oauth_sign___oauth_sign_0.8.2.tgz"; | ||
5085 | url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz"; | ||
5086 | sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"; | ||
5087 | }; | ||
5088 | } | ||
5089 | |||
5090 | { | ||
5091 | name = "object_assign___object_assign_4.1.1.tgz"; | ||
5092 | path = fetchurl { | ||
5093 | name = "object_assign___object_assign_4.1.1.tgz"; | ||
5094 | url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz"; | ||
5095 | sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; | ||
5096 | }; | ||
5097 | } | ||
5098 | |||
5099 | { | ||
5100 | name = "object_copy___object_copy_0.1.0.tgz"; | ||
5101 | path = fetchurl { | ||
5102 | name = "object_copy___object_copy_0.1.0.tgz"; | ||
5103 | url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz"; | ||
5104 | sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; | ||
5105 | }; | ||
5106 | } | ||
5107 | |||
5108 | { | ||
5109 | name = "object_keys___object_keys_1.0.12.tgz"; | ||
5110 | path = fetchurl { | ||
5111 | name = "object_keys___object_keys_1.0.12.tgz"; | ||
5112 | url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz"; | ||
5113 | sha1 = "09c53855377575310cca62f55bb334abff7b3ed2"; | ||
5114 | }; | ||
5115 | } | ||
5116 | |||
5117 | { | ||
5118 | name = "object_path___object_path_0.9.2.tgz"; | ||
5119 | path = fetchurl { | ||
5120 | name = "object_path___object_path_0.9.2.tgz"; | ||
5121 | url = "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz"; | ||
5122 | sha1 = "0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5"; | ||
5123 | }; | ||
5124 | } | ||
5125 | |||
5126 | { | ||
5127 | name = "object_visit___object_visit_1.0.1.tgz"; | ||
5128 | path = fetchurl { | ||
5129 | name = "object_visit___object_visit_1.0.1.tgz"; | ||
5130 | url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz"; | ||
5131 | sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; | ||
5132 | }; | ||
5133 | } | ||
5134 | |||
5135 | { | ||
5136 | name = "object.omit___object.omit_2.0.1.tgz"; | ||
5137 | path = fetchurl { | ||
5138 | name = "object.omit___object.omit_2.0.1.tgz"; | ||
5139 | url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz"; | ||
5140 | sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"; | ||
5141 | }; | ||
5142 | } | ||
5143 | |||
5144 | { | ||
5145 | name = "object.pick___object.pick_1.3.0.tgz"; | ||
5146 | path = fetchurl { | ||
5147 | name = "object.pick___object.pick_1.3.0.tgz"; | ||
5148 | url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz"; | ||
5149 | sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; | ||
5150 | }; | ||
5151 | } | ||
5152 | |||
5153 | { | ||
5154 | name = "obuf___obuf_1.1.2.tgz"; | ||
5155 | path = fetchurl { | ||
5156 | name = "obuf___obuf_1.1.2.tgz"; | ||
5157 | url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz"; | ||
5158 | sha1 = "09bea3343d41859ebd446292d11c9d4db619084e"; | ||
5159 | }; | ||
5160 | } | ||
5161 | |||
5162 | { | ||
5163 | name = "on_finished___on_finished_2.3.0.tgz"; | ||
5164 | path = fetchurl { | ||
5165 | name = "on_finished___on_finished_2.3.0.tgz"; | ||
5166 | url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz"; | ||
5167 | sha1 = "20f1336481b083cd75337992a16971aa2d906947"; | ||
5168 | }; | ||
5169 | } | ||
5170 | |||
5171 | { | ||
5172 | name = "on_headers___on_headers_1.0.1.tgz"; | ||
5173 | path = fetchurl { | ||
5174 | name = "on_headers___on_headers_1.0.1.tgz"; | ||
5175 | url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz"; | ||
5176 | sha1 = "928f5d0f470d49342651ea6794b0857c100693f7"; | ||
5177 | }; | ||
5178 | } | ||
5179 | |||
5180 | { | ||
5181 | name = "once___once_1.4.0.tgz"; | ||
5182 | path = fetchurl { | ||
5183 | name = "once___once_1.4.0.tgz"; | ||
5184 | url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; | ||
5185 | sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; | ||
5186 | }; | ||
5187 | } | ||
5188 | |||
5189 | { | ||
5190 | name = "open_iconic___open_iconic_1.1.1.tgz"; | ||
5191 | path = fetchurl { | ||
5192 | name = "open_iconic___open_iconic_1.1.1.tgz"; | ||
5193 | url = "https://registry.yarnpkg.com/open-iconic/-/open-iconic-1.1.1.tgz"; | ||
5194 | sha1 = "9dcfc8c7cd3c61cdb4a236b1a347894c97adc0c6"; | ||
5195 | }; | ||
5196 | } | ||
5197 | |||
5198 | { | ||
5199 | name = "opn___opn_5.3.0.tgz"; | ||
5200 | path = fetchurl { | ||
5201 | name = "opn___opn_5.3.0.tgz"; | ||
5202 | url = "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz"; | ||
5203 | sha1 = "64871565c863875f052cfdf53d3e3cb5adb53b1c"; | ||
5204 | }; | ||
5205 | } | ||
5206 | |||
5207 | { | ||
5208 | name = "original___original_1.0.1.tgz"; | ||
5209 | path = fetchurl { | ||
5210 | name = "original___original_1.0.1.tgz"; | ||
5211 | url = "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz"; | ||
5212 | sha1 = "b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190"; | ||
5213 | }; | ||
5214 | } | ||
5215 | |||
5216 | { | ||
5217 | name = "os_browserify___os_browserify_0.3.0.tgz"; | ||
5218 | path = fetchurl { | ||
5219 | name = "os_browserify___os_browserify_0.3.0.tgz"; | ||
5220 | url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz"; | ||
5221 | sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; | ||
5222 | }; | ||
5223 | } | ||
5224 | |||
5225 | { | ||
5226 | name = "os_homedir___os_homedir_1.0.2.tgz"; | ||
5227 | path = fetchurl { | ||
5228 | name = "os_homedir___os_homedir_1.0.2.tgz"; | ||
5229 | url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz"; | ||
5230 | sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; | ||
5231 | }; | ||
5232 | } | ||
5233 | |||
5234 | { | ||
5235 | name = "os_locale___os_locale_1.4.0.tgz"; | ||
5236 | path = fetchurl { | ||
5237 | name = "os_locale___os_locale_1.4.0.tgz"; | ||
5238 | url = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz"; | ||
5239 | sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9"; | ||
5240 | }; | ||
5241 | } | ||
5242 | |||
5243 | { | ||
5244 | name = "os_locale___os_locale_2.1.0.tgz"; | ||
5245 | path = fetchurl { | ||
5246 | name = "os_locale___os_locale_2.1.0.tgz"; | ||
5247 | url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz"; | ||
5248 | sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2"; | ||
5249 | }; | ||
5250 | } | ||
5251 | |||
5252 | { | ||
5253 | name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; | ||
5254 | path = fetchurl { | ||
5255 | name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; | ||
5256 | url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; | ||
5257 | sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; | ||
5258 | }; | ||
5259 | } | ||
5260 | |||
5261 | { | ||
5262 | name = "osenv___osenv_0.1.5.tgz"; | ||
5263 | path = fetchurl { | ||
5264 | name = "osenv___osenv_0.1.5.tgz"; | ||
5265 | url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz"; | ||
5266 | sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410"; | ||
5267 | }; | ||
5268 | } | ||
5269 | |||
5270 | { | ||
5271 | name = "p_finally___p_finally_1.0.0.tgz"; | ||
5272 | path = fetchurl { | ||
5273 | name = "p_finally___p_finally_1.0.0.tgz"; | ||
5274 | url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz"; | ||
5275 | sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae"; | ||
5276 | }; | ||
5277 | } | ||
5278 | |||
5279 | { | ||
5280 | name = "p_limit___p_limit_1.3.0.tgz"; | ||
5281 | path = fetchurl { | ||
5282 | name = "p_limit___p_limit_1.3.0.tgz"; | ||
5283 | url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz"; | ||
5284 | sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"; | ||
5285 | }; | ||
5286 | } | ||
5287 | |||
5288 | { | ||
5289 | name = "p_locate___p_locate_2.0.0.tgz"; | ||
5290 | path = fetchurl { | ||
5291 | name = "p_locate___p_locate_2.0.0.tgz"; | ||
5292 | url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz"; | ||
5293 | sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; | ||
5294 | }; | ||
5295 | } | ||
5296 | |||
5297 | { | ||
5298 | name = "p_map___p_map_1.2.0.tgz"; | ||
5299 | path = fetchurl { | ||
5300 | name = "p_map___p_map_1.2.0.tgz"; | ||
5301 | url = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz"; | ||
5302 | sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b"; | ||
5303 | }; | ||
5304 | } | ||
5305 | |||
5306 | { | ||
5307 | name = "p_try___p_try_1.0.0.tgz"; | ||
5308 | path = fetchurl { | ||
5309 | name = "p_try___p_try_1.0.0.tgz"; | ||
5310 | url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz"; | ||
5311 | sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; | ||
5312 | }; | ||
5313 | } | ||
5314 | |||
5315 | { | ||
5316 | name = "pako___pako_1.0.6.tgz"; | ||
5317 | path = fetchurl { | ||
5318 | name = "pako___pako_1.0.6.tgz"; | ||
5319 | url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz"; | ||
5320 | sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258"; | ||
5321 | }; | ||
5322 | } | ||
5323 | |||
5324 | { | ||
5325 | name = "parse_asn1___parse_asn1_5.1.1.tgz"; | ||
5326 | path = fetchurl { | ||
5327 | name = "parse_asn1___parse_asn1_5.1.1.tgz"; | ||
5328 | url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz"; | ||
5329 | sha1 = "f6bf293818332bd0dab54efb16087724745e6ca8"; | ||
5330 | }; | ||
5331 | } | ||
5332 | |||
5333 | { | ||
5334 | name = "parse_glob___parse_glob_3.0.4.tgz"; | ||
5335 | path = fetchurl { | ||
5336 | name = "parse_glob___parse_glob_3.0.4.tgz"; | ||
5337 | url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz"; | ||
5338 | sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c"; | ||
5339 | }; | ||
5340 | } | ||
5341 | |||
5342 | { | ||
5343 | name = "parse_json___parse_json_2.2.0.tgz"; | ||
5344 | path = fetchurl { | ||
5345 | name = "parse_json___parse_json_2.2.0.tgz"; | ||
5346 | url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz"; | ||
5347 | sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9"; | ||
5348 | }; | ||
5349 | } | ||
5350 | |||
5351 | { | ||
5352 | name = "parseurl___parseurl_1.3.2.tgz"; | ||
5353 | path = fetchurl { | ||
5354 | name = "parseurl___parseurl_1.3.2.tgz"; | ||
5355 | url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz"; | ||
5356 | sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3"; | ||
5357 | }; | ||
5358 | } | ||
5359 | |||
5360 | { | ||
5361 | name = "pascalcase___pascalcase_0.1.1.tgz"; | ||
5362 | path = fetchurl { | ||
5363 | name = "pascalcase___pascalcase_0.1.1.tgz"; | ||
5364 | url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz"; | ||
5365 | sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; | ||
5366 | }; | ||
5367 | } | ||
5368 | |||
5369 | { | ||
5370 | name = "path_browserify___path_browserify_0.0.0.tgz"; | ||
5371 | path = fetchurl { | ||
5372 | name = "path_browserify___path_browserify_0.0.0.tgz"; | ||
5373 | url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz"; | ||
5374 | sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a"; | ||
5375 | }; | ||
5376 | } | ||
5377 | |||
5378 | { | ||
5379 | name = "path_dirname___path_dirname_1.0.2.tgz"; | ||
5380 | path = fetchurl { | ||
5381 | name = "path_dirname___path_dirname_1.0.2.tgz"; | ||
5382 | url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz"; | ||
5383 | sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; | ||
5384 | }; | ||
5385 | } | ||
5386 | |||
5387 | { | ||
5388 | name = "path_exists___path_exists_2.1.0.tgz"; | ||
5389 | path = fetchurl { | ||
5390 | name = "path_exists___path_exists_2.1.0.tgz"; | ||
5391 | url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz"; | ||
5392 | sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b"; | ||
5393 | }; | ||
5394 | } | ||
5395 | |||
5396 | { | ||
5397 | name = "path_exists___path_exists_3.0.0.tgz"; | ||
5398 | path = fetchurl { | ||
5399 | name = "path_exists___path_exists_3.0.0.tgz"; | ||
5400 | url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz"; | ||
5401 | sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; | ||
5402 | }; | ||
5403 | } | ||
5404 | |||
5405 | { | ||
5406 | name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; | ||
5407 | path = fetchurl { | ||
5408 | name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; | ||
5409 | url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; | ||
5410 | sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; | ||
5411 | }; | ||
5412 | } | ||
5413 | |||
5414 | { | ||
5415 | name = "path_is_inside___path_is_inside_1.0.2.tgz"; | ||
5416 | path = fetchurl { | ||
5417 | name = "path_is_inside___path_is_inside_1.0.2.tgz"; | ||
5418 | url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz"; | ||
5419 | sha1 = "365417dede44430d1c11af61027facf074bdfc53"; | ||
5420 | }; | ||
5421 | } | ||
5422 | |||
5423 | { | ||
5424 | name = "path_key___path_key_2.0.1.tgz"; | ||
5425 | path = fetchurl { | ||
5426 | name = "path_key___path_key_2.0.1.tgz"; | ||
5427 | url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz"; | ||
5428 | sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; | ||
5429 | }; | ||
5430 | } | ||
5431 | |||
5432 | { | ||
5433 | name = "path_to_regexp___path_to_regexp_0.1.7.tgz"; | ||
5434 | path = fetchurl { | ||
5435 | name = "path_to_regexp___path_to_regexp_0.1.7.tgz"; | ||
5436 | url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; | ||
5437 | sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; | ||
5438 | }; | ||
5439 | } | ||
5440 | |||
5441 | { | ||
5442 | name = "path_type___path_type_1.1.0.tgz"; | ||
5443 | path = fetchurl { | ||
5444 | name = "path_type___path_type_1.1.0.tgz"; | ||
5445 | url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz"; | ||
5446 | sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441"; | ||
5447 | }; | ||
5448 | } | ||
5449 | |||
5450 | { | ||
5451 | name = "path_type___path_type_2.0.0.tgz"; | ||
5452 | path = fetchurl { | ||
5453 | name = "path_type___path_type_2.0.0.tgz"; | ||
5454 | url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz"; | ||
5455 | sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73"; | ||
5456 | }; | ||
5457 | } | ||
5458 | |||
5459 | { | ||
5460 | name = "pbkdf2___pbkdf2_3.0.16.tgz"; | ||
5461 | path = fetchurl { | ||
5462 | name = "pbkdf2___pbkdf2_3.0.16.tgz"; | ||
5463 | url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz"; | ||
5464 | sha1 = "7404208ec6b01b62d85bf83853a8064f8d9c2a5c"; | ||
5465 | }; | ||
5466 | } | ||
5467 | |||
5468 | { | ||
5469 | name = "performance_now___performance_now_0.2.0.tgz"; | ||
5470 | path = fetchurl { | ||
5471 | name = "performance_now___performance_now_0.2.0.tgz"; | ||
5472 | url = "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz"; | ||
5473 | sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"; | ||
5474 | }; | ||
5475 | } | ||
5476 | |||
5477 | { | ||
5478 | name = "performance_now___performance_now_2.1.0.tgz"; | ||
5479 | path = fetchurl { | ||
5480 | name = "performance_now___performance_now_2.1.0.tgz"; | ||
5481 | url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz"; | ||
5482 | sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; | ||
5483 | }; | ||
5484 | } | ||
5485 | |||
5486 | { | ||
5487 | name = "pify___pify_2.3.0.tgz"; | ||
5488 | path = fetchurl { | ||
5489 | name = "pify___pify_2.3.0.tgz"; | ||
5490 | url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz"; | ||
5491 | sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; | ||
5492 | }; | ||
5493 | } | ||
5494 | |||
5495 | { | ||
5496 | name = "pify___pify_3.0.0.tgz"; | ||
5497 | path = fetchurl { | ||
5498 | name = "pify___pify_3.0.0.tgz"; | ||
5499 | url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz"; | ||
5500 | sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; | ||
5501 | }; | ||
5502 | } | ||
5503 | |||
5504 | { | ||
5505 | name = "pinkie_promise___pinkie_promise_2.0.1.tgz"; | ||
5506 | path = fetchurl { | ||
5507 | name = "pinkie_promise___pinkie_promise_2.0.1.tgz"; | ||
5508 | url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; | ||
5509 | sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; | ||
5510 | }; | ||
5511 | } | ||
5512 | |||
5513 | { | ||
5514 | name = "pinkie___pinkie_2.0.4.tgz"; | ||
5515 | path = fetchurl { | ||
5516 | name = "pinkie___pinkie_2.0.4.tgz"; | ||
5517 | url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz"; | ||
5518 | sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; | ||
5519 | }; | ||
5520 | } | ||
5521 | |||
5522 | { | ||
5523 | name = "pkg_dir___pkg_dir_2.0.0.tgz"; | ||
5524 | path = fetchurl { | ||
5525 | name = "pkg_dir___pkg_dir_2.0.0.tgz"; | ||
5526 | url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz"; | ||
5527 | sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b"; | ||
5528 | }; | ||
5529 | } | ||
5530 | |||
5531 | { | ||
5532 | name = "pkg_up___pkg_up_1.0.0.tgz"; | ||
5533 | path = fetchurl { | ||
5534 | name = "pkg_up___pkg_up_1.0.0.tgz"; | ||
5535 | url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz"; | ||
5536 | sha1 = "3e08fb461525c4421624a33b9f7e6d0af5b05a26"; | ||
5537 | }; | ||
5538 | } | ||
5539 | |||
5540 | { | ||
5541 | name = "popper.js___popper.js_1.14.4.tgz"; | ||
5542 | path = fetchurl { | ||
5543 | name = "popper.js___popper.js_1.14.4.tgz"; | ||
5544 | url = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz"; | ||
5545 | sha1 = "8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6"; | ||
5546 | }; | ||
5547 | } | ||
5548 | |||
5549 | { | ||
5550 | name = "portfinder___portfinder_1.0.13.tgz"; | ||
5551 | path = fetchurl { | ||
5552 | name = "portfinder___portfinder_1.0.13.tgz"; | ||
5553 | url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz"; | ||
5554 | sha1 = "bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9"; | ||
5555 | }; | ||
5556 | } | ||
5557 | |||
5558 | { | ||
5559 | name = "posix_character_classes___posix_character_classes_0.1.1.tgz"; | ||
5560 | path = fetchurl { | ||
5561 | name = "posix_character_classes___posix_character_classes_0.1.1.tgz"; | ||
5562 | url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz"; | ||
5563 | sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"; | ||
5564 | }; | ||
5565 | } | ||
5566 | |||
5567 | { | ||
5568 | name = "postcss_calc___postcss_calc_5.3.1.tgz"; | ||
5569 | path = fetchurl { | ||
5570 | name = "postcss_calc___postcss_calc_5.3.1.tgz"; | ||
5571 | url = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz"; | ||
5572 | sha1 = "77bae7ca928ad85716e2fda42f261bf7c1d65b5e"; | ||
5573 | }; | ||
5574 | } | ||
5575 | |||
5576 | { | ||
5577 | name = "postcss_colormin___postcss_colormin_2.2.2.tgz"; | ||
5578 | path = fetchurl { | ||
5579 | name = "postcss_colormin___postcss_colormin_2.2.2.tgz"; | ||
5580 | url = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz"; | ||
5581 | sha1 = "6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"; | ||
5582 | }; | ||
5583 | } | ||
5584 | |||
5585 | { | ||
5586 | name = "postcss_convert_values___postcss_convert_values_2.6.1.tgz"; | ||
5587 | path = fetchurl { | ||
5588 | name = "postcss_convert_values___postcss_convert_values_2.6.1.tgz"; | ||
5589 | url = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz"; | ||
5590 | sha1 = "bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"; | ||
5591 | }; | ||
5592 | } | ||
5593 | |||
5594 | { | ||
5595 | name = "postcss_discard_comments___postcss_discard_comments_2.0.4.tgz"; | ||
5596 | path = fetchurl { | ||
5597 | name = "postcss_discard_comments___postcss_discard_comments_2.0.4.tgz"; | ||
5598 | url = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz"; | ||
5599 | sha1 = "befe89fafd5b3dace5ccce51b76b81514be00e3d"; | ||
5600 | }; | ||
5601 | } | ||
5602 | |||
5603 | { | ||
5604 | name = "postcss_discard_duplicates___postcss_discard_duplicates_2.1.0.tgz"; | ||
5605 | path = fetchurl { | ||
5606 | name = "postcss_discard_duplicates___postcss_discard_duplicates_2.1.0.tgz"; | ||
5607 | url = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz"; | ||
5608 | sha1 = "b9abf27b88ac188158a5eb12abcae20263b91932"; | ||
5609 | }; | ||
5610 | } | ||
5611 | |||
5612 | { | ||
5613 | name = "postcss_discard_empty___postcss_discard_empty_2.1.0.tgz"; | ||
5614 | path = fetchurl { | ||
5615 | name = "postcss_discard_empty___postcss_discard_empty_2.1.0.tgz"; | ||
5616 | url = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz"; | ||
5617 | sha1 = "d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"; | ||
5618 | }; | ||
5619 | } | ||
5620 | |||
5621 | { | ||
5622 | name = "postcss_discard_overridden___postcss_discard_overridden_0.1.1.tgz"; | ||
5623 | path = fetchurl { | ||
5624 | name = "postcss_discard_overridden___postcss_discard_overridden_0.1.1.tgz"; | ||
5625 | url = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz"; | ||
5626 | sha1 = "8b1eaf554f686fb288cd874c55667b0aa3668d58"; | ||
5627 | }; | ||
5628 | } | ||
5629 | |||
5630 | { | ||
5631 | name = "postcss_discard_unused___postcss_discard_unused_2.2.3.tgz"; | ||
5632 | path = fetchurl { | ||
5633 | name = "postcss_discard_unused___postcss_discard_unused_2.2.3.tgz"; | ||
5634 | url = "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz"; | ||
5635 | sha1 = "bce30b2cc591ffc634322b5fb3464b6d934f4433"; | ||
5636 | }; | ||
5637 | } | ||
5638 | |||
5639 | { | ||
5640 | name = "postcss_filter_plugins___postcss_filter_plugins_2.0.3.tgz"; | ||
5641 | path = fetchurl { | ||
5642 | name = "postcss_filter_plugins___postcss_filter_plugins_2.0.3.tgz"; | ||
5643 | url = "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz"; | ||
5644 | sha1 = "82245fdf82337041645e477114d8e593aa18b8ec"; | ||
5645 | }; | ||
5646 | } | ||
5647 | |||
5648 | { | ||
5649 | name = "postcss_merge_idents___postcss_merge_idents_2.1.7.tgz"; | ||
5650 | path = fetchurl { | ||
5651 | name = "postcss_merge_idents___postcss_merge_idents_2.1.7.tgz"; | ||
5652 | url = "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz"; | ||
5653 | sha1 = "4c5530313c08e1d5b3bbf3d2bbc747e278eea270"; | ||
5654 | }; | ||
5655 | } | ||
5656 | |||
5657 | { | ||
5658 | name = "postcss_merge_longhand___postcss_merge_longhand_2.0.2.tgz"; | ||
5659 | path = fetchurl { | ||
5660 | name = "postcss_merge_longhand___postcss_merge_longhand_2.0.2.tgz"; | ||
5661 | url = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz"; | ||
5662 | sha1 = "23d90cd127b0a77994915332739034a1a4f3d658"; | ||
5663 | }; | ||
5664 | } | ||
5665 | |||
5666 | { | ||
5667 | name = "postcss_merge_rules___postcss_merge_rules_2.1.2.tgz"; | ||
5668 | path = fetchurl { | ||
5669 | name = "postcss_merge_rules___postcss_merge_rules_2.1.2.tgz"; | ||
5670 | url = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz"; | ||
5671 | sha1 = "d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"; | ||
5672 | }; | ||
5673 | } | ||
5674 | |||
5675 | { | ||
5676 | name = "postcss_message_helpers___postcss_message_helpers_2.0.0.tgz"; | ||
5677 | path = fetchurl { | ||
5678 | name = "postcss_message_helpers___postcss_message_helpers_2.0.0.tgz"; | ||
5679 | url = "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz"; | ||
5680 | sha1 = "a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"; | ||
5681 | }; | ||
5682 | } | ||
5683 | |||
5684 | { | ||
5685 | name = "postcss_minify_font_values___postcss_minify_font_values_1.0.5.tgz"; | ||
5686 | path = fetchurl { | ||
5687 | name = "postcss_minify_font_values___postcss_minify_font_values_1.0.5.tgz"; | ||
5688 | url = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz"; | ||
5689 | sha1 = "4b58edb56641eba7c8474ab3526cafd7bbdecb69"; | ||
5690 | }; | ||
5691 | } | ||
5692 | |||
5693 | { | ||
5694 | name = "postcss_minify_gradients___postcss_minify_gradients_1.0.5.tgz"; | ||
5695 | path = fetchurl { | ||
5696 | name = "postcss_minify_gradients___postcss_minify_gradients_1.0.5.tgz"; | ||
5697 | url = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz"; | ||
5698 | sha1 = "5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"; | ||
5699 | }; | ||
5700 | } | ||
5701 | |||
5702 | { | ||
5703 | name = "postcss_minify_params___postcss_minify_params_1.2.2.tgz"; | ||
5704 | path = fetchurl { | ||
5705 | name = "postcss_minify_params___postcss_minify_params_1.2.2.tgz"; | ||
5706 | url = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz"; | ||
5707 | sha1 = "ad2ce071373b943b3d930a3fa59a358c28d6f1f3"; | ||
5708 | }; | ||
5709 | } | ||
5710 | |||
5711 | { | ||
5712 | name = "postcss_minify_selectors___postcss_minify_selectors_2.1.1.tgz"; | ||
5713 | path = fetchurl { | ||
5714 | name = "postcss_minify_selectors___postcss_minify_selectors_2.1.1.tgz"; | ||
5715 | url = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz"; | ||
5716 | sha1 = "b2c6a98c0072cf91b932d1a496508114311735bf"; | ||
5717 | }; | ||
5718 | } | ||
5719 | |||
5720 | { | ||
5721 | name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.1.0.tgz"; | ||
5722 | path = fetchurl { | ||
5723 | name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.1.0.tgz"; | ||
5724 | url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz"; | ||
5725 | sha1 = "b614c9720be6816eaee35fb3a5faa1dba6a05ddb"; | ||
5726 | }; | ||
5727 | } | ||
5728 | |||
5729 | { | ||
5730 | name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz"; | ||
5731 | path = fetchurl { | ||
5732 | name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz"; | ||
5733 | url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz"; | ||
5734 | sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069"; | ||
5735 | }; | ||
5736 | } | ||
5737 | |||
5738 | { | ||
5739 | name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz"; | ||
5740 | path = fetchurl { | ||
5741 | name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz"; | ||
5742 | url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz"; | ||
5743 | sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90"; | ||
5744 | }; | ||
5745 | } | ||
5746 | |||
5747 | { | ||
5748 | name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz"; | ||
5749 | path = fetchurl { | ||
5750 | name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz"; | ||
5751 | url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz"; | ||
5752 | sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20"; | ||
5753 | }; | ||
5754 | } | ||
5755 | |||
5756 | { | ||
5757 | name = "postcss_normalize_charset___postcss_normalize_charset_1.1.1.tgz"; | ||
5758 | path = fetchurl { | ||
5759 | name = "postcss_normalize_charset___postcss_normalize_charset_1.1.1.tgz"; | ||
5760 | url = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz"; | ||
5761 | sha1 = "ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"; | ||
5762 | }; | ||
5763 | } | ||
5764 | |||
5765 | { | ||
5766 | name = "postcss_normalize_url___postcss_normalize_url_3.0.8.tgz"; | ||
5767 | path = fetchurl { | ||
5768 | name = "postcss_normalize_url___postcss_normalize_url_3.0.8.tgz"; | ||
5769 | url = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz"; | ||
5770 | sha1 = "108f74b3f2fcdaf891a2ffa3ea4592279fc78222"; | ||
5771 | }; | ||
5772 | } | ||
5773 | |||
5774 | { | ||
5775 | name = "postcss_ordered_values___postcss_ordered_values_2.2.3.tgz"; | ||
5776 | path = fetchurl { | ||
5777 | name = "postcss_ordered_values___postcss_ordered_values_2.2.3.tgz"; | ||
5778 | url = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz"; | ||
5779 | sha1 = "eec6c2a67b6c412a8db2042e77fe8da43f95c11d"; | ||
5780 | }; | ||
5781 | } | ||
5782 | |||
5783 | { | ||
5784 | name = "postcss_reduce_idents___postcss_reduce_idents_2.4.0.tgz"; | ||
5785 | path = fetchurl { | ||
5786 | name = "postcss_reduce_idents___postcss_reduce_idents_2.4.0.tgz"; | ||
5787 | url = "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz"; | ||
5788 | sha1 = "c2c6d20cc958284f6abfbe63f7609bf409059ad3"; | ||
5789 | }; | ||
5790 | } | ||
5791 | |||
5792 | { | ||
5793 | name = "postcss_reduce_initial___postcss_reduce_initial_1.0.1.tgz"; | ||
5794 | path = fetchurl { | ||
5795 | name = "postcss_reduce_initial___postcss_reduce_initial_1.0.1.tgz"; | ||
5796 | url = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz"; | ||
5797 | sha1 = "68f80695f045d08263a879ad240df8dd64f644ea"; | ||
5798 | }; | ||
5799 | } | ||
5800 | |||
5801 | { | ||
5802 | name = "postcss_reduce_transforms___postcss_reduce_transforms_1.0.4.tgz"; | ||
5803 | path = fetchurl { | ||
5804 | name = "postcss_reduce_transforms___postcss_reduce_transforms_1.0.4.tgz"; | ||
5805 | url = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz"; | ||
5806 | sha1 = "ff76f4d8212437b31c298a42d2e1444025771ae1"; | ||
5807 | }; | ||
5808 | } | ||
5809 | |||
5810 | { | ||
5811 | name = "postcss_selector_parser___postcss_selector_parser_2.2.3.tgz"; | ||
5812 | path = fetchurl { | ||
5813 | name = "postcss_selector_parser___postcss_selector_parser_2.2.3.tgz"; | ||
5814 | url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz"; | ||
5815 | sha1 = "f9437788606c3c9acee16ffe8d8b16297f27bb90"; | ||
5816 | }; | ||
5817 | } | ||
5818 | |||
5819 | { | ||
5820 | name = "postcss_svgo___postcss_svgo_2.1.6.tgz"; | ||
5821 | path = fetchurl { | ||
5822 | name = "postcss_svgo___postcss_svgo_2.1.6.tgz"; | ||
5823 | url = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz"; | ||
5824 | sha1 = "b6df18aa613b666e133f08adb5219c2684ac108d"; | ||
5825 | }; | ||
5826 | } | ||
5827 | |||
5828 | { | ||
5829 | name = "postcss_unique_selectors___postcss_unique_selectors_2.0.2.tgz"; | ||
5830 | path = fetchurl { | ||
5831 | name = "postcss_unique_selectors___postcss_unique_selectors_2.0.2.tgz"; | ||
5832 | url = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz"; | ||
5833 | sha1 = "981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"; | ||
5834 | }; | ||
5835 | } | ||
5836 | |||
5837 | { | ||
5838 | name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz"; | ||
5839 | path = fetchurl { | ||
5840 | name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz"; | ||
5841 | url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"; | ||
5842 | sha1 = "87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"; | ||
5843 | }; | ||
5844 | } | ||
5845 | |||
5846 | { | ||
5847 | name = "postcss_zindex___postcss_zindex_2.2.0.tgz"; | ||
5848 | path = fetchurl { | ||
5849 | name = "postcss_zindex___postcss_zindex_2.2.0.tgz"; | ||
5850 | url = "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz"; | ||
5851 | sha1 = "d2109ddc055b91af67fc4cb3b025946639d2af22"; | ||
5852 | }; | ||
5853 | } | ||
5854 | |||
5855 | { | ||
5856 | name = "postcss___postcss_5.2.18.tgz"; | ||
5857 | path = fetchurl { | ||
5858 | name = "postcss___postcss_5.2.18.tgz"; | ||
5859 | url = "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz"; | ||
5860 | sha1 = "badfa1497d46244f6390f58b319830d9107853c5"; | ||
5861 | }; | ||
5862 | } | ||
5863 | |||
5864 | { | ||
5865 | name = "postcss___postcss_6.0.23.tgz"; | ||
5866 | path = fetchurl { | ||
5867 | name = "postcss___postcss_6.0.23.tgz"; | ||
5868 | url = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz"; | ||
5869 | sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324"; | ||
5870 | }; | ||
5871 | } | ||
5872 | |||
5873 | { | ||
5874 | name = "prepend_http___prepend_http_1.0.4.tgz"; | ||
5875 | path = fetchurl { | ||
5876 | name = "prepend_http___prepend_http_1.0.4.tgz"; | ||
5877 | url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz"; | ||
5878 | sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"; | ||
5879 | }; | ||
5880 | } | ||
5881 | |||
5882 | { | ||
5883 | name = "preserve___preserve_0.2.0.tgz"; | ||
5884 | path = fetchurl { | ||
5885 | name = "preserve___preserve_0.2.0.tgz"; | ||
5886 | url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz"; | ||
5887 | sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b"; | ||
5888 | }; | ||
5889 | } | ||
5890 | |||
5891 | { | ||
5892 | name = "pretty_error___pretty_error_2.1.1.tgz"; | ||
5893 | path = fetchurl { | ||
5894 | name = "pretty_error___pretty_error_2.1.1.tgz"; | ||
5895 | url = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz"; | ||
5896 | sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"; | ||
5897 | }; | ||
5898 | } | ||
5899 | |||
5900 | { | ||
5901 | name = "private___private_0.1.8.tgz"; | ||
5902 | path = fetchurl { | ||
5903 | name = "private___private_0.1.8.tgz"; | ||
5904 | url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz"; | ||
5905 | sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff"; | ||
5906 | }; | ||
5907 | } | ||
5908 | |||
5909 | { | ||
5910 | name = "process_nextick_args___process_nextick_args_2.0.0.tgz"; | ||
5911 | path = fetchurl { | ||
5912 | name = "process_nextick_args___process_nextick_args_2.0.0.tgz"; | ||
5913 | url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz"; | ||
5914 | sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa"; | ||
5915 | }; | ||
5916 | } | ||
5917 | |||
5918 | { | ||
5919 | name = "process___process_0.11.10.tgz"; | ||
5920 | path = fetchurl { | ||
5921 | name = "process___process_0.11.10.tgz"; | ||
5922 | url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz"; | ||
5923 | sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; | ||
5924 | }; | ||
5925 | } | ||
5926 | |||
5927 | { | ||
5928 | name = "proxy_addr___proxy_addr_2.0.4.tgz"; | ||
5929 | path = fetchurl { | ||
5930 | name = "proxy_addr___proxy_addr_2.0.4.tgz"; | ||
5931 | url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz"; | ||
5932 | sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93"; | ||
5933 | }; | ||
5934 | } | ||
5935 | |||
5936 | { | ||
5937 | name = "prr___prr_1.0.1.tgz"; | ||
5938 | path = fetchurl { | ||
5939 | name = "prr___prr_1.0.1.tgz"; | ||
5940 | url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz"; | ||
5941 | sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; | ||
5942 | }; | ||
5943 | } | ||
5944 | |||
5945 | { | ||
5946 | name = "pseudomap___pseudomap_1.0.2.tgz"; | ||
5947 | path = fetchurl { | ||
5948 | name = "pseudomap___pseudomap_1.0.2.tgz"; | ||
5949 | url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz"; | ||
5950 | sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; | ||
5951 | }; | ||
5952 | } | ||
5953 | |||
5954 | { | ||
5955 | name = "public_encrypt___public_encrypt_4.0.2.tgz"; | ||
5956 | path = fetchurl { | ||
5957 | name = "public_encrypt___public_encrypt_4.0.2.tgz"; | ||
5958 | url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz"; | ||
5959 | sha1 = "46eb9107206bf73489f8b85b69d91334c6610994"; | ||
5960 | }; | ||
5961 | } | ||
5962 | |||
5963 | { | ||
5964 | name = "punycode___punycode_1.3.2.tgz"; | ||
5965 | path = fetchurl { | ||
5966 | name = "punycode___punycode_1.3.2.tgz"; | ||
5967 | url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz"; | ||
5968 | sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; | ||
5969 | }; | ||
5970 | } | ||
5971 | |||
5972 | { | ||
5973 | name = "punycode___punycode_1.4.1.tgz"; | ||
5974 | path = fetchurl { | ||
5975 | name = "punycode___punycode_1.4.1.tgz"; | ||
5976 | url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz"; | ||
5977 | sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; | ||
5978 | }; | ||
5979 | } | ||
5980 | |||
5981 | { | ||
5982 | name = "punycode___punycode_2.1.1.tgz"; | ||
5983 | path = fetchurl { | ||
5984 | name = "punycode___punycode_2.1.1.tgz"; | ||
5985 | url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz"; | ||
5986 | sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec"; | ||
5987 | }; | ||
5988 | } | ||
5989 | |||
5990 | { | ||
5991 | name = "q___q_1.5.1.tgz"; | ||
5992 | path = fetchurl { | ||
5993 | name = "q___q_1.5.1.tgz"; | ||
5994 | url = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz"; | ||
5995 | sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7"; | ||
5996 | }; | ||
5997 | } | ||
5998 | |||
5999 | { | ||
6000 | name = "qs___qs_6.5.1.tgz"; | ||
6001 | path = fetchurl { | ||
6002 | name = "qs___qs_6.5.1.tgz"; | ||
6003 | url = "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz"; | ||
6004 | sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"; | ||
6005 | }; | ||
6006 | } | ||
6007 | |||
6008 | { | ||
6009 | name = "qs___qs_6.4.0.tgz"; | ||
6010 | path = fetchurl { | ||
6011 | name = "qs___qs_6.4.0.tgz"; | ||
6012 | url = "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz"; | ||
6013 | sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233"; | ||
6014 | }; | ||
6015 | } | ||
6016 | |||
6017 | { | ||
6018 | name = "qs___qs_6.5.2.tgz"; | ||
6019 | path = fetchurl { | ||
6020 | name = "qs___qs_6.5.2.tgz"; | ||
6021 | url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz"; | ||
6022 | sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36"; | ||
6023 | }; | ||
6024 | } | ||
6025 | |||
6026 | { | ||
6027 | name = "query_string___query_string_4.3.4.tgz"; | ||
6028 | path = fetchurl { | ||
6029 | name = "query_string___query_string_4.3.4.tgz"; | ||
6030 | url = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz"; | ||
6031 | sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb"; | ||
6032 | }; | ||
6033 | } | ||
6034 | |||
6035 | { | ||
6036 | name = "querystring_es3___querystring_es3_0.2.1.tgz"; | ||
6037 | path = fetchurl { | ||
6038 | name = "querystring_es3___querystring_es3_0.2.1.tgz"; | ||
6039 | url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz"; | ||
6040 | sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; | ||
6041 | }; | ||
6042 | } | ||
6043 | |||
6044 | { | ||
6045 | name = "querystring___querystring_0.2.0.tgz"; | ||
6046 | path = fetchurl { | ||
6047 | name = "querystring___querystring_0.2.0.tgz"; | ||
6048 | url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz"; | ||
6049 | sha1 = "b209849203bb25df820da756e747005878521620"; | ||
6050 | }; | ||
6051 | } | ||
6052 | |||
6053 | { | ||
6054 | name = "querystringify___querystringify_2.0.0.tgz"; | ||
6055 | path = fetchurl { | ||
6056 | name = "querystringify___querystringify_2.0.0.tgz"; | ||
6057 | url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz"; | ||
6058 | sha1 = "fa3ed6e68eb15159457c89b37bc6472833195755"; | ||
6059 | }; | ||
6060 | } | ||
6061 | |||
6062 | { | ||
6063 | name = "randomatic___randomatic_3.0.0.tgz"; | ||
6064 | path = fetchurl { | ||
6065 | name = "randomatic___randomatic_3.0.0.tgz"; | ||
6066 | url = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz"; | ||
6067 | sha1 = "d35490030eb4f7578de292ce6dfb04a91a128923"; | ||
6068 | }; | ||
6069 | } | ||
6070 | |||
6071 | { | ||
6072 | name = "randombytes___randombytes_2.0.6.tgz"; | ||
6073 | path = fetchurl { | ||
6074 | name = "randombytes___randombytes_2.0.6.tgz"; | ||
6075 | url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz"; | ||
6076 | sha1 = "d302c522948588848a8d300c932b44c24231da80"; | ||
6077 | }; | ||
6078 | } | ||
6079 | |||
6080 | { | ||
6081 | name = "randomfill___randomfill_1.0.4.tgz"; | ||
6082 | path = fetchurl { | ||
6083 | name = "randomfill___randomfill_1.0.4.tgz"; | ||
6084 | url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz"; | ||
6085 | sha1 = "c92196fc86ab42be983f1bf31778224931d61458"; | ||
6086 | }; | ||
6087 | } | ||
6088 | |||
6089 | { | ||
6090 | name = "range_parser___range_parser_1.2.0.tgz"; | ||
6091 | path = fetchurl { | ||
6092 | name = "range_parser___range_parser_1.2.0.tgz"; | ||
6093 | url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz"; | ||
6094 | sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e"; | ||
6095 | }; | ||
6096 | } | ||
6097 | |||
6098 | { | ||
6099 | name = "raw_body___raw_body_2.3.2.tgz"; | ||
6100 | path = fetchurl { | ||
6101 | name = "raw_body___raw_body_2.3.2.tgz"; | ||
6102 | url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz"; | ||
6103 | sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89"; | ||
6104 | }; | ||
6105 | } | ||
6106 | |||
6107 | { | ||
6108 | name = "rc___rc_1.2.8.tgz"; | ||
6109 | path = fetchurl { | ||
6110 | name = "rc___rc_1.2.8.tgz"; | ||
6111 | url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz"; | ||
6112 | sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"; | ||
6113 | }; | ||
6114 | } | ||
6115 | |||
6116 | { | ||
6117 | name = "read_pkg_up___read_pkg_up_1.0.1.tgz"; | ||
6118 | path = fetchurl { | ||
6119 | name = "read_pkg_up___read_pkg_up_1.0.1.tgz"; | ||
6120 | url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz"; | ||
6121 | sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02"; | ||
6122 | }; | ||
6123 | } | ||
6124 | |||
6125 | { | ||
6126 | name = "read_pkg_up___read_pkg_up_2.0.0.tgz"; | ||
6127 | path = fetchurl { | ||
6128 | name = "read_pkg_up___read_pkg_up_2.0.0.tgz"; | ||
6129 | url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz"; | ||
6130 | sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be"; | ||
6131 | }; | ||
6132 | } | ||
6133 | |||
6134 | { | ||
6135 | name = "read_pkg___read_pkg_1.1.0.tgz"; | ||
6136 | path = fetchurl { | ||
6137 | name = "read_pkg___read_pkg_1.1.0.tgz"; | ||
6138 | url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz"; | ||
6139 | sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"; | ||
6140 | }; | ||
6141 | } | ||
6142 | |||
6143 | { | ||
6144 | name = "read_pkg___read_pkg_2.0.0.tgz"; | ||
6145 | path = fetchurl { | ||
6146 | name = "read_pkg___read_pkg_2.0.0.tgz"; | ||
6147 | url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz"; | ||
6148 | sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"; | ||
6149 | }; | ||
6150 | } | ||
6151 | |||
6152 | { | ||
6153 | name = "readable_stream___readable_stream_1.0.34.tgz"; | ||
6154 | path = fetchurl { | ||
6155 | name = "readable_stream___readable_stream_1.0.34.tgz"; | ||
6156 | url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz"; | ||
6157 | sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c"; | ||
6158 | }; | ||
6159 | } | ||
6160 | |||
6161 | { | ||
6162 | name = "readable_stream___readable_stream_2.3.6.tgz"; | ||
6163 | path = fetchurl { | ||
6164 | name = "readable_stream___readable_stream_2.3.6.tgz"; | ||
6165 | url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz"; | ||
6166 | sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"; | ||
6167 | }; | ||
6168 | } | ||
6169 | |||
6170 | { | ||
6171 | name = "readdirp___readdirp_2.1.0.tgz"; | ||
6172 | path = fetchurl { | ||
6173 | name = "readdirp___readdirp_2.1.0.tgz"; | ||
6174 | url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz"; | ||
6175 | sha1 = "4ed0ad060df3073300c48440373f72d1cc642d78"; | ||
6176 | }; | ||
6177 | } | ||
6178 | |||
6179 | { | ||
6180 | name = "redent___redent_1.0.0.tgz"; | ||
6181 | path = fetchurl { | ||
6182 | name = "redent___redent_1.0.0.tgz"; | ||
6183 | url = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz"; | ||
6184 | sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"; | ||
6185 | }; | ||
6186 | } | ||
6187 | |||
6188 | { | ||
6189 | name = "reduce_css_calc___reduce_css_calc_1.3.0.tgz"; | ||
6190 | path = fetchurl { | ||
6191 | name = "reduce_css_calc___reduce_css_calc_1.3.0.tgz"; | ||
6192 | url = "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz"; | ||
6193 | sha1 = "747c914e049614a4c9cfbba629871ad1d2927716"; | ||
6194 | }; | ||
6195 | } | ||
6196 | |||
6197 | { | ||
6198 | name = "reduce_function_call___reduce_function_call_1.0.2.tgz"; | ||
6199 | path = fetchurl { | ||
6200 | name = "reduce_function_call___reduce_function_call_1.0.2.tgz"; | ||
6201 | url = "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz"; | ||
6202 | sha1 = "5a200bf92e0e37751752fe45b0ab330fd4b6be99"; | ||
6203 | }; | ||
6204 | } | ||
6205 | |||
6206 | { | ||
6207 | name = "regenerate___regenerate_1.4.0.tgz"; | ||
6208 | path = fetchurl { | ||
6209 | name = "regenerate___regenerate_1.4.0.tgz"; | ||
6210 | url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz"; | ||
6211 | sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11"; | ||
6212 | }; | ||
6213 | } | ||
6214 | |||
6215 | { | ||
6216 | name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz"; | ||
6217 | path = fetchurl { | ||
6218 | name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz"; | ||
6219 | url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"; | ||
6220 | sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"; | ||
6221 | }; | ||
6222 | } | ||
6223 | |||
6224 | { | ||
6225 | name = "regenerator_transform___regenerator_transform_0.10.1.tgz"; | ||
6226 | path = fetchurl { | ||
6227 | name = "regenerator_transform___regenerator_transform_0.10.1.tgz"; | ||
6228 | url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz"; | ||
6229 | sha1 = "1e4996837231da8b7f3cf4114d71b5691a0680dd"; | ||
6230 | }; | ||
6231 | } | ||
6232 | |||
6233 | { | ||
6234 | name = "regex_cache___regex_cache_0.4.4.tgz"; | ||
6235 | path = fetchurl { | ||
6236 | name = "regex_cache___regex_cache_0.4.4.tgz"; | ||
6237 | url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz"; | ||
6238 | sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd"; | ||
6239 | }; | ||
6240 | } | ||
6241 | |||
6242 | { | ||
6243 | name = "regex_not___regex_not_1.0.2.tgz"; | ||
6244 | path = fetchurl { | ||
6245 | name = "regex_not___regex_not_1.0.2.tgz"; | ||
6246 | url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz"; | ||
6247 | sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c"; | ||
6248 | }; | ||
6249 | } | ||
6250 | |||
6251 | { | ||
6252 | name = "regex_parser___regex_parser_2.2.9.tgz"; | ||
6253 | path = fetchurl { | ||
6254 | name = "regex_parser___regex_parser_2.2.9.tgz"; | ||
6255 | url = "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.9.tgz"; | ||
6256 | sha1 = "a372f45a248b62976a568037c1b6e60a60599192"; | ||
6257 | }; | ||
6258 | } | ||
6259 | |||
6260 | { | ||
6261 | name = "regexpu_core___regexpu_core_1.0.0.tgz"; | ||
6262 | path = fetchurl { | ||
6263 | name = "regexpu_core___regexpu_core_1.0.0.tgz"; | ||
6264 | url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz"; | ||
6265 | sha1 = "86a763f58ee4d7c2f6b102e4764050de7ed90c6b"; | ||
6266 | }; | ||
6267 | } | ||
6268 | |||
6269 | { | ||
6270 | name = "regexpu_core___regexpu_core_2.0.0.tgz"; | ||
6271 | path = fetchurl { | ||
6272 | name = "regexpu_core___regexpu_core_2.0.0.tgz"; | ||
6273 | url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz"; | ||
6274 | sha1 = "49d038837b8dcf8bfa5b9a42139938e6ea2ae240"; | ||
6275 | }; | ||
6276 | } | ||
6277 | |||
6278 | { | ||
6279 | name = "regjsgen___regjsgen_0.2.0.tgz"; | ||
6280 | path = fetchurl { | ||
6281 | name = "regjsgen___regjsgen_0.2.0.tgz"; | ||
6282 | url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz"; | ||
6283 | sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7"; | ||
6284 | }; | ||
6285 | } | ||
6286 | |||
6287 | { | ||
6288 | name = "regjsparser___regjsparser_0.1.5.tgz"; | ||
6289 | path = fetchurl { | ||
6290 | name = "regjsparser___regjsparser_0.1.5.tgz"; | ||
6291 | url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz"; | ||
6292 | sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"; | ||
6293 | }; | ||
6294 | } | ||
6295 | |||
6296 | { | ||
6297 | name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; | ||
6298 | path = fetchurl { | ||
6299 | name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; | ||
6300 | url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; | ||
6301 | sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; | ||
6302 | }; | ||
6303 | } | ||
6304 | |||
6305 | { | ||
6306 | name = "renderkid___renderkid_2.0.1.tgz"; | ||
6307 | path = fetchurl { | ||
6308 | name = "renderkid___renderkid_2.0.1.tgz"; | ||
6309 | url = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz"; | ||
6310 | sha1 = "898cabfc8bede4b7b91135a3ffd323e58c0db319"; | ||
6311 | }; | ||
6312 | } | ||
6313 | |||
6314 | { | ||
6315 | name = "repeat_element___repeat_element_1.1.2.tgz"; | ||
6316 | path = fetchurl { | ||
6317 | name = "repeat_element___repeat_element_1.1.2.tgz"; | ||
6318 | url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz"; | ||
6319 | sha1 = "ef089a178d1483baae4d93eb98b4f9e4e11d990a"; | ||
6320 | }; | ||
6321 | } | ||
6322 | |||
6323 | { | ||
6324 | name = "repeat_string___repeat_string_1.6.1.tgz"; | ||
6325 | path = fetchurl { | ||
6326 | name = "repeat_string___repeat_string_1.6.1.tgz"; | ||
6327 | url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz"; | ||
6328 | sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; | ||
6329 | }; | ||
6330 | } | ||
6331 | |||
6332 | { | ||
6333 | name = "repeating___repeating_2.0.1.tgz"; | ||
6334 | path = fetchurl { | ||
6335 | name = "repeating___repeating_2.0.1.tgz"; | ||
6336 | url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz"; | ||
6337 | sha1 = "5214c53a926d3552707527fbab415dbc08d06dda"; | ||
6338 | }; | ||
6339 | } | ||
6340 | |||
6341 | { | ||
6342 | name = "request___request_2.87.0.tgz"; | ||
6343 | path = fetchurl { | ||
6344 | name = "request___request_2.87.0.tgz"; | ||
6345 | url = "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz"; | ||
6346 | sha1 = "32f00235cd08d482b4d0d68db93a829c0ed5756e"; | ||
6347 | }; | ||
6348 | } | ||
6349 | |||
6350 | { | ||
6351 | name = "request___request_2.81.0.tgz"; | ||
6352 | path = fetchurl { | ||
6353 | name = "request___request_2.81.0.tgz"; | ||
6354 | url = "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz"; | ||
6355 | sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0"; | ||
6356 | }; | ||
6357 | } | ||
6358 | |||
6359 | { | ||
6360 | name = "require_directory___require_directory_2.1.1.tgz"; | ||
6361 | path = fetchurl { | ||
6362 | name = "require_directory___require_directory_2.1.1.tgz"; | ||
6363 | url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz"; | ||
6364 | sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; | ||
6365 | }; | ||
6366 | } | ||
6367 | |||
6368 | { | ||
6369 | name = "require_main_filename___require_main_filename_1.0.1.tgz"; | ||
6370 | path = fetchurl { | ||
6371 | name = "require_main_filename___require_main_filename_1.0.1.tgz"; | ||
6372 | url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz"; | ||
6373 | sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1"; | ||
6374 | }; | ||
6375 | } | ||
6376 | |||
6377 | { | ||
6378 | name = "requires_port___requires_port_1.0.0.tgz"; | ||
6379 | path = fetchurl { | ||
6380 | name = "requires_port___requires_port_1.0.0.tgz"; | ||
6381 | url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz"; | ||
6382 | sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; | ||
6383 | }; | ||
6384 | } | ||
6385 | |||
6386 | { | ||
6387 | name = "resolve_cwd___resolve_cwd_2.0.0.tgz"; | ||
6388 | path = fetchurl { | ||
6389 | name = "resolve_cwd___resolve_cwd_2.0.0.tgz"; | ||
6390 | url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz"; | ||
6391 | sha1 = "00a9f7387556e27038eae232caa372a6a59b665a"; | ||
6392 | }; | ||
6393 | } | ||
6394 | |||
6395 | { | ||
6396 | name = "resolve_from___resolve_from_3.0.0.tgz"; | ||
6397 | path = fetchurl { | ||
6398 | name = "resolve_from___resolve_from_3.0.0.tgz"; | ||
6399 | url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz"; | ||
6400 | sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748"; | ||
6401 | }; | ||
6402 | } | ||
6403 | |||
6404 | { | ||
6405 | name = "resolve_url_loader___resolve_url_loader_2.3.0.tgz"; | ||
6406 | path = fetchurl { | ||
6407 | name = "resolve_url_loader___resolve_url_loader_2.3.0.tgz"; | ||
6408 | url = "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz"; | ||
6409 | sha1 = "e1b37034d48f22f8cfb9f04c026faaa070fdaf26"; | ||
6410 | }; | ||
6411 | } | ||
6412 | |||
6413 | { | ||
6414 | name = "resolve_url___resolve_url_0.2.1.tgz"; | ||
6415 | path = fetchurl { | ||
6416 | name = "resolve_url___resolve_url_0.2.1.tgz"; | ||
6417 | url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz"; | ||
6418 | sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; | ||
6419 | }; | ||
6420 | } | ||
6421 | |||
6422 | { | ||
6423 | name = "ret___ret_0.1.15.tgz"; | ||
6424 | path = fetchurl { | ||
6425 | name = "ret___ret_0.1.15.tgz"; | ||
6426 | url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz"; | ||
6427 | sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"; | ||
6428 | }; | ||
6429 | } | ||
6430 | |||
6431 | { | ||
6432 | name = "rework_visit___rework_visit_1.0.0.tgz"; | ||
6433 | path = fetchurl { | ||
6434 | name = "rework_visit___rework_visit_1.0.0.tgz"; | ||
6435 | url = "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz"; | ||
6436 | sha1 = "9945b2803f219e2f7aca00adb8bc9f640f842c9a"; | ||
6437 | }; | ||
6438 | } | ||
6439 | |||
6440 | { | ||
6441 | name = "rework___rework_1.0.1.tgz"; | ||
6442 | path = fetchurl { | ||
6443 | name = "rework___rework_1.0.1.tgz"; | ||
6444 | url = "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz"; | ||
6445 | sha1 = "30806a841342b54510aa4110850cd48534144aa7"; | ||
6446 | }; | ||
6447 | } | ||
6448 | |||
6449 | { | ||
6450 | name = "right_align___right_align_0.1.3.tgz"; | ||
6451 | path = fetchurl { | ||
6452 | name = "right_align___right_align_0.1.3.tgz"; | ||
6453 | url = "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz"; | ||
6454 | sha1 = "61339b722fe6a3515689210d24e14c96148613ef"; | ||
6455 | }; | ||
6456 | } | ||
6457 | |||
6458 | { | ||
6459 | name = "rimraf___rimraf_2.6.2.tgz"; | ||
6460 | path = fetchurl { | ||
6461 | name = "rimraf___rimraf_2.6.2.tgz"; | ||
6462 | url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz"; | ||
6463 | sha1 = "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"; | ||
6464 | }; | ||
6465 | } | ||
6466 | |||
6467 | { | ||
6468 | name = "ripemd160___ripemd160_2.0.2.tgz"; | ||
6469 | path = fetchurl { | ||
6470 | name = "ripemd160___ripemd160_2.0.2.tgz"; | ||
6471 | url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz"; | ||
6472 | sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c"; | ||
6473 | }; | ||
6474 | } | ||
6475 | |||
6476 | { | ||
6477 | name = "safe_buffer___safe_buffer_5.1.1.tgz"; | ||
6478 | path = fetchurl { | ||
6479 | name = "safe_buffer___safe_buffer_5.1.1.tgz"; | ||
6480 | url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz"; | ||
6481 | sha1 = "893312af69b2123def71f57889001671eeb2c853"; | ||
6482 | }; | ||
6483 | } | ||
6484 | |||
6485 | { | ||
6486 | name = "safe_buffer___safe_buffer_5.1.2.tgz"; | ||
6487 | path = fetchurl { | ||
6488 | name = "safe_buffer___safe_buffer_5.1.2.tgz"; | ||
6489 | url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; | ||
6490 | sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; | ||
6491 | }; | ||
6492 | } | ||
6493 | |||
6494 | { | ||
6495 | name = "safe_regex___safe_regex_1.1.0.tgz"; | ||
6496 | path = fetchurl { | ||
6497 | name = "safe_regex___safe_regex_1.1.0.tgz"; | ||
6498 | url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz"; | ||
6499 | sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; | ||
6500 | }; | ||
6501 | } | ||
6502 | |||
6503 | { | ||
6504 | name = "safer_buffer___safer_buffer_2.1.2.tgz"; | ||
6505 | path = fetchurl { | ||
6506 | name = "safer_buffer___safer_buffer_2.1.2.tgz"; | ||
6507 | url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"; | ||
6508 | sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a"; | ||
6509 | }; | ||
6510 | } | ||
6511 | |||
6512 | { | ||
6513 | name = "sass_graph___sass_graph_2.2.4.tgz"; | ||
6514 | path = fetchurl { | ||
6515 | name = "sass_graph___sass_graph_2.2.4.tgz"; | ||
6516 | url = "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz"; | ||
6517 | sha1 = "13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"; | ||
6518 | }; | ||
6519 | } | ||
6520 | |||
6521 | { | ||
6522 | name = "sass_loader___sass_loader_7.0.3.tgz"; | ||
6523 | path = fetchurl { | ||
6524 | name = "sass_loader___sass_loader_7.0.3.tgz"; | ||
6525 | url = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.0.3.tgz"; | ||
6526 | sha1 = "6ca10871a1cc7549f8143db5a9958242c4e4ca2a"; | ||
6527 | }; | ||
6528 | } | ||
6529 | |||
6530 | { | ||
6531 | name = "sax___sax_1.2.4.tgz"; | ||
6532 | path = fetchurl { | ||
6533 | name = "sax___sax_1.2.4.tgz"; | ||
6534 | url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"; | ||
6535 | sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9"; | ||
6536 | }; | ||
6537 | } | ||
6538 | |||
6539 | { | ||
6540 | name = "schema_utils___schema_utils_0.3.0.tgz"; | ||
6541 | path = fetchurl { | ||
6542 | name = "schema_utils___schema_utils_0.3.0.tgz"; | ||
6543 | url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz"; | ||
6544 | sha1 = "f5877222ce3e931edae039f17eb3716e7137f8cf"; | ||
6545 | }; | ||
6546 | } | ||
6547 | |||
6548 | { | ||
6549 | name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz"; | ||
6550 | path = fetchurl { | ||
6551 | name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz"; | ||
6552 | url = "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz"; | ||
6553 | sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1"; | ||
6554 | }; | ||
6555 | } | ||
6556 | |||
6557 | { | ||
6558 | name = "select_hose___select_hose_2.0.0.tgz"; | ||
6559 | path = fetchurl { | ||
6560 | name = "select_hose___select_hose_2.0.0.tgz"; | ||
6561 | url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz"; | ||
6562 | sha1 = "625d8658f865af43ec962bfc376a37359a4994ca"; | ||
6563 | }; | ||
6564 | } | ||
6565 | |||
6566 | { | ||
6567 | name = "selfsigned___selfsigned_1.10.3.tgz"; | ||
6568 | path = fetchurl { | ||
6569 | name = "selfsigned___selfsigned_1.10.3.tgz"; | ||
6570 | url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz"; | ||
6571 | sha1 = "d628ecf9e3735f84e8bafba936b3cf85bea43823"; | ||
6572 | }; | ||
6573 | } | ||
6574 | |||
6575 | { | ||
6576 | name = "semver___semver_5.5.0.tgz"; | ||
6577 | path = fetchurl { | ||
6578 | name = "semver___semver_5.5.0.tgz"; | ||
6579 | url = "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz"; | ||
6580 | sha1 = "dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"; | ||
6581 | }; | ||
6582 | } | ||
6583 | |||
6584 | { | ||
6585 | name = "semver___semver_5.3.0.tgz"; | ||
6586 | path = fetchurl { | ||
6587 | name = "semver___semver_5.3.0.tgz"; | ||
6588 | url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz"; | ||
6589 | sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"; | ||
6590 | }; | ||
6591 | } | ||
6592 | |||
6593 | { | ||
6594 | name = "send___send_0.16.2.tgz"; | ||
6595 | path = fetchurl { | ||
6596 | name = "send___send_0.16.2.tgz"; | ||
6597 | url = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz"; | ||
6598 | sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1"; | ||
6599 | }; | ||
6600 | } | ||
6601 | |||
6602 | { | ||
6603 | name = "serve_index___serve_index_1.9.1.tgz"; | ||
6604 | path = fetchurl { | ||
6605 | name = "serve_index___serve_index_1.9.1.tgz"; | ||
6606 | url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz"; | ||
6607 | sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239"; | ||
6608 | }; | ||
6609 | } | ||
6610 | |||
6611 | { | ||
6612 | name = "serve_static___serve_static_1.13.2.tgz"; | ||
6613 | path = fetchurl { | ||
6614 | name = "serve_static___serve_static_1.13.2.tgz"; | ||
6615 | url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz"; | ||
6616 | sha1 = "095e8472fd5b46237db50ce486a43f4b86c6cec1"; | ||
6617 | }; | ||
6618 | } | ||
6619 | |||
6620 | { | ||
6621 | name = "set_blocking___set_blocking_2.0.0.tgz"; | ||
6622 | path = fetchurl { | ||
6623 | name = "set_blocking___set_blocking_2.0.0.tgz"; | ||
6624 | url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz"; | ||
6625 | sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; | ||
6626 | }; | ||
6627 | } | ||
6628 | |||
6629 | { | ||
6630 | name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz"; | ||
6631 | path = fetchurl { | ||
6632 | name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz"; | ||
6633 | url = "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz"; | ||
6634 | sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"; | ||
6635 | }; | ||
6636 | } | ||
6637 | |||
6638 | { | ||
6639 | name = "set_value___set_value_0.4.3.tgz"; | ||
6640 | path = fetchurl { | ||
6641 | name = "set_value___set_value_0.4.3.tgz"; | ||
6642 | url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz"; | ||
6643 | sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"; | ||
6644 | }; | ||
6645 | } | ||
6646 | |||
6647 | { | ||
6648 | name = "set_value___set_value_2.0.0.tgz"; | ||
6649 | path = fetchurl { | ||
6650 | name = "set_value___set_value_2.0.0.tgz"; | ||
6651 | url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz"; | ||
6652 | sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"; | ||
6653 | }; | ||
6654 | } | ||
6655 | |||
6656 | { | ||
6657 | name = "setimmediate___setimmediate_1.0.5.tgz"; | ||
6658 | path = fetchurl { | ||
6659 | name = "setimmediate___setimmediate_1.0.5.tgz"; | ||
6660 | url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz"; | ||
6661 | sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; | ||
6662 | }; | ||
6663 | } | ||
6664 | |||
6665 | { | ||
6666 | name = "setprototypeof___setprototypeof_1.0.3.tgz"; | ||
6667 | path = fetchurl { | ||
6668 | name = "setprototypeof___setprototypeof_1.0.3.tgz"; | ||
6669 | url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz"; | ||
6670 | sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04"; | ||
6671 | }; | ||
6672 | } | ||
6673 | |||
6674 | { | ||
6675 | name = "setprototypeof___setprototypeof_1.1.0.tgz"; | ||
6676 | path = fetchurl { | ||
6677 | name = "setprototypeof___setprototypeof_1.1.0.tgz"; | ||
6678 | url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz"; | ||
6679 | sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656"; | ||
6680 | }; | ||
6681 | } | ||
6682 | |||
6683 | { | ||
6684 | name = "sha.js___sha.js_2.4.11.tgz"; | ||
6685 | path = fetchurl { | ||
6686 | name = "sha.js___sha.js_2.4.11.tgz"; | ||
6687 | url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz"; | ||
6688 | sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7"; | ||
6689 | }; | ||
6690 | } | ||
6691 | |||
6692 | { | ||
6693 | name = "shallow_clone___shallow_clone_1.0.0.tgz"; | ||
6694 | path = fetchurl { | ||
6695 | name = "shallow_clone___shallow_clone_1.0.0.tgz"; | ||
6696 | url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz"; | ||
6697 | sha1 = "4480cd06e882ef68b2ad88a3ea54832e2c48b571"; | ||
6698 | }; | ||
6699 | } | ||
6700 | |||
6701 | { | ||
6702 | name = "shebang_command___shebang_command_1.2.0.tgz"; | ||
6703 | path = fetchurl { | ||
6704 | name = "shebang_command___shebang_command_1.2.0.tgz"; | ||
6705 | url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz"; | ||
6706 | sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; | ||
6707 | }; | ||
6708 | } | ||
6709 | |||
6710 | { | ||
6711 | name = "shebang_regex___shebang_regex_1.0.0.tgz"; | ||
6712 | path = fetchurl { | ||
6713 | name = "shebang_regex___shebang_regex_1.0.0.tgz"; | ||
6714 | url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz"; | ||
6715 | sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; | ||
6716 | }; | ||
6717 | } | ||
6718 | |||
6719 | { | ||
6720 | name = "signal_exit___signal_exit_3.0.2.tgz"; | ||
6721 | path = fetchurl { | ||
6722 | name = "signal_exit___signal_exit_3.0.2.tgz"; | ||
6723 | url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz"; | ||
6724 | sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; | ||
6725 | }; | ||
6726 | } | ||
6727 | |||
6728 | { | ||
6729 | name = "slash___slash_1.0.0.tgz"; | ||
6730 | path = fetchurl { | ||
6731 | name = "slash___slash_1.0.0.tgz"; | ||
6732 | url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz"; | ||
6733 | sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"; | ||
6734 | }; | ||
6735 | } | ||
6736 | |||
6737 | { | ||
6738 | name = "snapdragon_node___snapdragon_node_2.1.1.tgz"; | ||
6739 | path = fetchurl { | ||
6740 | name = "snapdragon_node___snapdragon_node_2.1.1.tgz"; | ||
6741 | url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; | ||
6742 | sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b"; | ||
6743 | }; | ||
6744 | } | ||
6745 | |||
6746 | { | ||
6747 | name = "snapdragon_util___snapdragon_util_3.0.1.tgz"; | ||
6748 | path = fetchurl { | ||
6749 | name = "snapdragon_util___snapdragon_util_3.0.1.tgz"; | ||
6750 | url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; | ||
6751 | sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2"; | ||
6752 | }; | ||
6753 | } | ||
6754 | |||
6755 | { | ||
6756 | name = "snapdragon___snapdragon_0.8.2.tgz"; | ||
6757 | path = fetchurl { | ||
6758 | name = "snapdragon___snapdragon_0.8.2.tgz"; | ||
6759 | url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz"; | ||
6760 | sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d"; | ||
6761 | }; | ||
6762 | } | ||
6763 | |||
6764 | { | ||
6765 | name = "sntp___sntp_1.0.9.tgz"; | ||
6766 | path = fetchurl { | ||
6767 | name = "sntp___sntp_1.0.9.tgz"; | ||
6768 | url = "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz"; | ||
6769 | sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198"; | ||
6770 | }; | ||
6771 | } | ||
6772 | |||
6773 | { | ||
6774 | name = "sockjs_client___sockjs_client_1.1.4.tgz"; | ||
6775 | path = fetchurl { | ||
6776 | name = "sockjs_client___sockjs_client_1.1.4.tgz"; | ||
6777 | url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz"; | ||
6778 | sha1 = "5babe386b775e4cf14e7520911452654016c8b12"; | ||
6779 | }; | ||
6780 | } | ||
6781 | |||
6782 | { | ||
6783 | name = "sockjs___sockjs_0.3.19.tgz"; | ||
6784 | path = fetchurl { | ||
6785 | name = "sockjs___sockjs_0.3.19.tgz"; | ||
6786 | url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz"; | ||
6787 | sha1 = "d976bbe800af7bd20ae08598d582393508993c0d"; | ||
6788 | }; | ||
6789 | } | ||
6790 | |||
6791 | { | ||
6792 | name = "sort_keys___sort_keys_1.1.2.tgz"; | ||
6793 | path = fetchurl { | ||
6794 | name = "sort_keys___sort_keys_1.1.2.tgz"; | ||
6795 | url = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz"; | ||
6796 | sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad"; | ||
6797 | }; | ||
6798 | } | ||
6799 | |||
6800 | { | ||
6801 | name = "source_list_map___source_list_map_0.1.8.tgz"; | ||
6802 | path = fetchurl { | ||
6803 | name = "source_list_map___source_list_map_0.1.8.tgz"; | ||
6804 | url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz"; | ||
6805 | sha1 = "c550b2ab5427f6b3f21f5afead88c4f5587b2106"; | ||
6806 | }; | ||
6807 | } | ||
6808 | |||
6809 | { | ||
6810 | name = "source_list_map___source_list_map_2.0.0.tgz"; | ||
6811 | path = fetchurl { | ||
6812 | name = "source_list_map___source_list_map_2.0.0.tgz"; | ||
6813 | url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz"; | ||
6814 | sha1 = "aaa47403f7b245a92fbc97ea08f250d6087ed085"; | ||
6815 | }; | ||
6816 | } | ||
6817 | |||
6818 | { | ||
6819 | name = "source_map_resolve___source_map_resolve_0.5.2.tgz"; | ||
6820 | path = fetchurl { | ||
6821 | name = "source_map_resolve___source_map_resolve_0.5.2.tgz"; | ||
6822 | url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz"; | ||
6823 | sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259"; | ||
6824 | }; | ||
6825 | } | ||
6826 | |||
6827 | { | ||
6828 | name = "source_map_support___source_map_support_0.4.18.tgz"; | ||
6829 | path = fetchurl { | ||
6830 | name = "source_map_support___source_map_support_0.4.18.tgz"; | ||
6831 | url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz"; | ||
6832 | sha1 = "0286a6de8be42641338594e97ccea75f0a2c585f"; | ||
6833 | }; | ||
6834 | } | ||
6835 | |||
6836 | { | ||
6837 | name = "source_map_url___source_map_url_0.4.0.tgz"; | ||
6838 | path = fetchurl { | ||
6839 | name = "source_map_url___source_map_url_0.4.0.tgz"; | ||
6840 | url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz"; | ||
6841 | sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3"; | ||
6842 | }; | ||
6843 | } | ||
6844 | |||
6845 | { | ||
6846 | name = "source_map___source_map_0.1.43.tgz"; | ||
6847 | path = fetchurl { | ||
6848 | name = "source_map___source_map_0.1.43.tgz"; | ||
6849 | url = "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz"; | ||
6850 | sha1 = "c24bc146ca517c1471f5dacbe2571b2b7f9e3346"; | ||
6851 | }; | ||
6852 | } | ||
6853 | |||
6854 | { | ||
6855 | name = "source_map___source_map_0.4.4.tgz"; | ||
6856 | path = fetchurl { | ||
6857 | name = "source_map___source_map_0.4.4.tgz"; | ||
6858 | url = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz"; | ||
6859 | sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b"; | ||
6860 | }; | ||
6861 | } | ||
6862 | |||
6863 | { | ||
6864 | name = "source_map___source_map_0.5.7.tgz"; | ||
6865 | path = fetchurl { | ||
6866 | name = "source_map___source_map_0.5.7.tgz"; | ||
6867 | url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; | ||
6868 | sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; | ||
6869 | }; | ||
6870 | } | ||
6871 | |||
6872 | { | ||
6873 | name = "source_map___source_map_0.6.1.tgz"; | ||
6874 | path = fetchurl { | ||
6875 | name = "source_map___source_map_0.6.1.tgz"; | ||
6876 | url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz"; | ||
6877 | sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263"; | ||
6878 | }; | ||
6879 | } | ||
6880 | |||
6881 | { | ||
6882 | name = "spdx_correct___spdx_correct_3.0.0.tgz"; | ||
6883 | path = fetchurl { | ||
6884 | name = "spdx_correct___spdx_correct_3.0.0.tgz"; | ||
6885 | url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz"; | ||
6886 | sha1 = "05a5b4d7153a195bc92c3c425b69f3b2a9524c82"; | ||
6887 | }; | ||
6888 | } | ||
6889 | |||
6890 | { | ||
6891 | name = "spdx_exceptions___spdx_exceptions_2.1.0.tgz"; | ||
6892 | path = fetchurl { | ||
6893 | name = "spdx_exceptions___spdx_exceptions_2.1.0.tgz"; | ||
6894 | url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz"; | ||
6895 | sha1 = "2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"; | ||
6896 | }; | ||
6897 | } | ||
6898 | |||
6899 | { | ||
6900 | name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz"; | ||
6901 | path = fetchurl { | ||
6902 | name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz"; | ||
6903 | url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"; | ||
6904 | sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0"; | ||
6905 | }; | ||
6906 | } | ||
6907 | |||
6908 | { | ||
6909 | name = "spdx_license_ids___spdx_license_ids_3.0.0.tgz"; | ||
6910 | path = fetchurl { | ||
6911 | name = "spdx_license_ids___spdx_license_ids_3.0.0.tgz"; | ||
6912 | url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz"; | ||
6913 | sha1 = "7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"; | ||
6914 | }; | ||
6915 | } | ||
6916 | |||
6917 | { | ||
6918 | name = "spdy_transport___spdy_transport_2.1.0.tgz"; | ||
6919 | path = fetchurl { | ||
6920 | name = "spdy_transport___spdy_transport_2.1.0.tgz"; | ||
6921 | url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz"; | ||
6922 | sha1 = "4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1"; | ||
6923 | }; | ||
6924 | } | ||
6925 | |||
6926 | { | ||
6927 | name = "spdy___spdy_3.4.7.tgz"; | ||
6928 | path = fetchurl { | ||
6929 | name = "spdy___spdy_3.4.7.tgz"; | ||
6930 | url = "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz"; | ||
6931 | sha1 = "42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc"; | ||
6932 | }; | ||
6933 | } | ||
6934 | |||
6935 | { | ||
6936 | name = "split_string___split_string_3.1.0.tgz"; | ||
6937 | path = fetchurl { | ||
6938 | name = "split_string___split_string_3.1.0.tgz"; | ||
6939 | url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz"; | ||
6940 | sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2"; | ||
6941 | }; | ||
6942 | } | ||
6943 | |||
6944 | { | ||
6945 | name = "sprintf_js___sprintf_js_1.0.3.tgz"; | ||
6946 | path = fetchurl { | ||
6947 | name = "sprintf_js___sprintf_js_1.0.3.tgz"; | ||
6948 | url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz"; | ||
6949 | sha1 = "04e6926f662895354f3dd015203633b857297e2c"; | ||
6950 | }; | ||
6951 | } | ||
6952 | |||
6953 | { | ||
6954 | name = "sshpk___sshpk_1.14.2.tgz"; | ||
6955 | path = fetchurl { | ||
6956 | name = "sshpk___sshpk_1.14.2.tgz"; | ||
6957 | url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz"; | ||
6958 | sha1 = "c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"; | ||
6959 | }; | ||
6960 | } | ||
6961 | |||
6962 | { | ||
6963 | name = "stackframe___stackframe_1.0.4.tgz"; | ||
6964 | path = fetchurl { | ||
6965 | name = "stackframe___stackframe_1.0.4.tgz"; | ||
6966 | url = "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz"; | ||
6967 | sha1 = "357b24a992f9427cba6b545d96a14ed2cbca187b"; | ||
6968 | }; | ||
6969 | } | ||
6970 | |||
6971 | { | ||
6972 | name = "static_extend___static_extend_0.1.2.tgz"; | ||
6973 | path = fetchurl { | ||
6974 | name = "static_extend___static_extend_0.1.2.tgz"; | ||
6975 | url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz"; | ||
6976 | sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; | ||
6977 | }; | ||
6978 | } | ||
6979 | |||
6980 | { | ||
6981 | name = "statuses___statuses_1.5.0.tgz"; | ||
6982 | path = fetchurl { | ||
6983 | name = "statuses___statuses_1.5.0.tgz"; | ||
6984 | url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz"; | ||
6985 | sha1 = "161c7dac177659fd9811f43771fa99381478628c"; | ||
6986 | }; | ||
6987 | } | ||
6988 | |||
6989 | { | ||
6990 | name = "statuses___statuses_1.4.0.tgz"; | ||
6991 | path = fetchurl { | ||
6992 | name = "statuses___statuses_1.4.0.tgz"; | ||
6993 | url = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz"; | ||
6994 | sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087"; | ||
6995 | }; | ||
6996 | } | ||
6997 | |||
6998 | { | ||
6999 | name = "stdout_stream___stdout_stream_1.4.0.tgz"; | ||
7000 | path = fetchurl { | ||
7001 | name = "stdout_stream___stdout_stream_1.4.0.tgz"; | ||
7002 | url = "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz"; | ||
7003 | sha1 = "a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"; | ||
7004 | }; | ||
7005 | } | ||
7006 | |||
7007 | { | ||
7008 | name = "stream_browserify___stream_browserify_2.0.1.tgz"; | ||
7009 | path = fetchurl { | ||
7010 | name = "stream_browserify___stream_browserify_2.0.1.tgz"; | ||
7011 | url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz"; | ||
7012 | sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"; | ||
7013 | }; | ||
7014 | } | ||
7015 | |||
7016 | { | ||
7017 | name = "stream_http___stream_http_2.8.3.tgz"; | ||
7018 | path = fetchurl { | ||
7019 | name = "stream_http___stream_http_2.8.3.tgz"; | ||
7020 | url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz"; | ||
7021 | sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc"; | ||
7022 | }; | ||
7023 | } | ||
7024 | |||
7025 | { | ||
7026 | name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz"; | ||
7027 | path = fetchurl { | ||
7028 | name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz"; | ||
7029 | url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"; | ||
7030 | sha1 = "279b225df1d582b1f54e65addd4352e18faa0713"; | ||
7031 | }; | ||
7032 | } | ||
7033 | |||
7034 | { | ||
7035 | name = "string_width___string_width_1.0.2.tgz"; | ||
7036 | path = fetchurl { | ||
7037 | name = "string_width___string_width_1.0.2.tgz"; | ||
7038 | url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz"; | ||
7039 | sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; | ||
7040 | }; | ||
7041 | } | ||
7042 | |||
7043 | { | ||
7044 | name = "string_width___string_width_2.1.1.tgz"; | ||
7045 | path = fetchurl { | ||
7046 | name = "string_width___string_width_2.1.1.tgz"; | ||
7047 | url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz"; | ||
7048 | sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e"; | ||
7049 | }; | ||
7050 | } | ||
7051 | |||
7052 | { | ||
7053 | name = "string_decoder___string_decoder_1.1.1.tgz"; | ||
7054 | path = fetchurl { | ||
7055 | name = "string_decoder___string_decoder_1.1.1.tgz"; | ||
7056 | url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; | ||
7057 | sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8"; | ||
7058 | }; | ||
7059 | } | ||
7060 | |||
7061 | { | ||
7062 | name = "string_decoder___string_decoder_0.10.31.tgz"; | ||
7063 | path = fetchurl { | ||
7064 | name = "string_decoder___string_decoder_0.10.31.tgz"; | ||
7065 | url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz"; | ||
7066 | sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; | ||
7067 | }; | ||
7068 | } | ||
7069 | |||
7070 | { | ||
7071 | name = "stringstream___stringstream_0.0.6.tgz"; | ||
7072 | path = fetchurl { | ||
7073 | name = "stringstream___stringstream_0.0.6.tgz"; | ||
7074 | url = "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz"; | ||
7075 | sha1 = "7880225b0d4ad10e30927d167a1d6f2fd3b33a72"; | ||
7076 | }; | ||
7077 | } | ||
7078 | |||
7079 | { | ||
7080 | name = "strip_ansi___strip_ansi_3.0.1.tgz"; | ||
7081 | path = fetchurl { | ||
7082 | name = "strip_ansi___strip_ansi_3.0.1.tgz"; | ||
7083 | url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz"; | ||
7084 | sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; | ||
7085 | }; | ||
7086 | } | ||
7087 | |||
7088 | { | ||
7089 | name = "strip_ansi___strip_ansi_4.0.0.tgz"; | ||
7090 | path = fetchurl { | ||
7091 | name = "strip_ansi___strip_ansi_4.0.0.tgz"; | ||
7092 | url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz"; | ||
7093 | sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; | ||
7094 | }; | ||
7095 | } | ||
7096 | |||
7097 | { | ||
7098 | name = "strip_bom___strip_bom_2.0.0.tgz"; | ||
7099 | path = fetchurl { | ||
7100 | name = "strip_bom___strip_bom_2.0.0.tgz"; | ||
7101 | url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz"; | ||
7102 | sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e"; | ||
7103 | }; | ||
7104 | } | ||
7105 | |||
7106 | { | ||
7107 | name = "strip_bom___strip_bom_3.0.0.tgz"; | ||
7108 | path = fetchurl { | ||
7109 | name = "strip_bom___strip_bom_3.0.0.tgz"; | ||
7110 | url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz"; | ||
7111 | sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"; | ||
7112 | }; | ||
7113 | } | ||
7114 | |||
7115 | { | ||
7116 | name = "strip_eof___strip_eof_1.0.0.tgz"; | ||
7117 | path = fetchurl { | ||
7118 | name = "strip_eof___strip_eof_1.0.0.tgz"; | ||
7119 | url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz"; | ||
7120 | sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf"; | ||
7121 | }; | ||
7122 | } | ||
7123 | |||
7124 | { | ||
7125 | name = "strip_indent___strip_indent_1.0.1.tgz"; | ||
7126 | path = fetchurl { | ||
7127 | name = "strip_indent___strip_indent_1.0.1.tgz"; | ||
7128 | url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz"; | ||
7129 | sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2"; | ||
7130 | }; | ||
7131 | } | ||
7132 | |||
7133 | { | ||
7134 | name = "strip_json_comments___strip_json_comments_2.0.1.tgz"; | ||
7135 | path = fetchurl { | ||
7136 | name = "strip_json_comments___strip_json_comments_2.0.1.tgz"; | ||
7137 | url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; | ||
7138 | sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; | ||
7139 | }; | ||
7140 | } | ||
7141 | |||
7142 | { | ||
7143 | name = "style_loader___style_loader_0.13.2.tgz"; | ||
7144 | path = fetchurl { | ||
7145 | name = "style_loader___style_loader_0.13.2.tgz"; | ||
7146 | url = "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.2.tgz"; | ||
7147 | sha1 = "74533384cf698c7104c7951150b49717adc2f3bb"; | ||
7148 | }; | ||
7149 | } | ||
7150 | |||
7151 | { | ||
7152 | name = "summernote___summernote_0.8.10.tgz"; | ||
7153 | path = fetchurl { | ||
7154 | name = "summernote___summernote_0.8.10.tgz"; | ||
7155 | url = "https://registry.yarnpkg.com/summernote/-/summernote-0.8.10.tgz"; | ||
7156 | sha1 = "21a5d7f18a3b07500b58b60d5907417a54897520"; | ||
7157 | }; | ||
7158 | } | ||
7159 | |||
7160 | { | ||
7161 | name = "supports_color___supports_color_2.0.0.tgz"; | ||
7162 | path = fetchurl { | ||
7163 | name = "supports_color___supports_color_2.0.0.tgz"; | ||
7164 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz"; | ||
7165 | sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; | ||
7166 | }; | ||
7167 | } | ||
7168 | |||
7169 | { | ||
7170 | name = "supports_color___supports_color_3.2.3.tgz"; | ||
7171 | path = fetchurl { | ||
7172 | name = "supports_color___supports_color_3.2.3.tgz"; | ||
7173 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz"; | ||
7174 | sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"; | ||
7175 | }; | ||
7176 | } | ||
7177 | |||
7178 | { | ||
7179 | name = "supports_color___supports_color_4.5.0.tgz"; | ||
7180 | path = fetchurl { | ||
7181 | name = "supports_color___supports_color_4.5.0.tgz"; | ||
7182 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz"; | ||
7183 | sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b"; | ||
7184 | }; | ||
7185 | } | ||
7186 | |||
7187 | { | ||
7188 | name = "supports_color___supports_color_5.4.0.tgz"; | ||
7189 | path = fetchurl { | ||
7190 | name = "supports_color___supports_color_5.4.0.tgz"; | ||
7191 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz"; | ||
7192 | sha1 = "1c6b337402c2137605efe19f10fec390f6faab54"; | ||
7193 | }; | ||
7194 | } | ||
7195 | |||
7196 | { | ||
7197 | name = "svgo___svgo_0.7.2.tgz"; | ||
7198 | path = fetchurl { | ||
7199 | name = "svgo___svgo_0.7.2.tgz"; | ||
7200 | url = "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz"; | ||
7201 | sha1 = "9f5772413952135c6fefbf40afe6a4faa88b4bb5"; | ||
7202 | }; | ||
7203 | } | ||
7204 | |||
7205 | { | ||
7206 | name = "tapable___tapable_0.2.8.tgz"; | ||
7207 | path = fetchurl { | ||
7208 | name = "tapable___tapable_0.2.8.tgz"; | ||
7209 | url = "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz"; | ||
7210 | sha1 = "99372a5c999bf2df160afc0d74bed4f47948cd22"; | ||
7211 | }; | ||
7212 | } | ||
7213 | |||
7214 | { | ||
7215 | name = "tar___tar_2.2.1.tgz"; | ||
7216 | path = fetchurl { | ||
7217 | name = "tar___tar_2.2.1.tgz"; | ||
7218 | url = "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz"; | ||
7219 | sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"; | ||
7220 | }; | ||
7221 | } | ||
7222 | |||
7223 | { | ||
7224 | name = "tar___tar_4.4.4.tgz"; | ||
7225 | path = fetchurl { | ||
7226 | name = "tar___tar_4.4.4.tgz"; | ||
7227 | url = "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz"; | ||
7228 | sha1 = "ec8409fae9f665a4355cc3b4087d0820232bb8cd"; | ||
7229 | }; | ||
7230 | } | ||
7231 | |||
7232 | { | ||
7233 | name = "thunky___thunky_1.0.2.tgz"; | ||
7234 | path = fetchurl { | ||
7235 | name = "thunky___thunky_1.0.2.tgz"; | ||
7236 | url = "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz"; | ||
7237 | sha1 = "a862e018e3fb1ea2ec3fce5d55605cf57f247371"; | ||
7238 | }; | ||
7239 | } | ||
7240 | |||
7241 | { | ||
7242 | name = "time_stamp___time_stamp_2.0.0.tgz"; | ||
7243 | path = fetchurl { | ||
7244 | name = "time_stamp___time_stamp_2.0.0.tgz"; | ||
7245 | url = "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz"; | ||
7246 | sha1 = "95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"; | ||
7247 | }; | ||
7248 | } | ||
7249 | |||
7250 | { | ||
7251 | name = "timers_browserify___timers_browserify_2.0.10.tgz"; | ||
7252 | path = fetchurl { | ||
7253 | name = "timers_browserify___timers_browserify_2.0.10.tgz"; | ||
7254 | url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz"; | ||
7255 | sha1 = "1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"; | ||
7256 | }; | ||
7257 | } | ||
7258 | |||
7259 | { | ||
7260 | name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz"; | ||
7261 | path = fetchurl { | ||
7262 | name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz"; | ||
7263 | url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; | ||
7264 | sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; | ||
7265 | }; | ||
7266 | } | ||
7267 | |||
7268 | { | ||
7269 | name = "to_fast_properties___to_fast_properties_1.0.3.tgz"; | ||
7270 | path = fetchurl { | ||
7271 | name = "to_fast_properties___to_fast_properties_1.0.3.tgz"; | ||
7272 | url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz"; | ||
7273 | sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47"; | ||
7274 | }; | ||
7275 | } | ||
7276 | |||
7277 | { | ||
7278 | name = "to_object_path___to_object_path_0.3.0.tgz"; | ||
7279 | path = fetchurl { | ||
7280 | name = "to_object_path___to_object_path_0.3.0.tgz"; | ||
7281 | url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz"; | ||
7282 | sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af"; | ||
7283 | }; | ||
7284 | } | ||
7285 | |||
7286 | { | ||
7287 | name = "to_regex_range___to_regex_range_2.1.1.tgz"; | ||
7288 | path = fetchurl { | ||
7289 | name = "to_regex_range___to_regex_range_2.1.1.tgz"; | ||
7290 | url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz"; | ||
7291 | sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38"; | ||
7292 | }; | ||
7293 | } | ||
7294 | |||
7295 | { | ||
7296 | name = "to_regex___to_regex_3.0.2.tgz"; | ||
7297 | path = fetchurl { | ||
7298 | name = "to_regex___to_regex_3.0.2.tgz"; | ||
7299 | url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz"; | ||
7300 | sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"; | ||
7301 | }; | ||
7302 | } | ||
7303 | |||
7304 | { | ||
7305 | name = "tough_cookie___tough_cookie_2.3.4.tgz"; | ||
7306 | path = fetchurl { | ||
7307 | name = "tough_cookie___tough_cookie_2.3.4.tgz"; | ||
7308 | url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz"; | ||
7309 | sha1 = "ec60cee38ac675063ffc97a5c18970578ee83655"; | ||
7310 | }; | ||
7311 | } | ||
7312 | |||
7313 | { | ||
7314 | name = "trim_newlines___trim_newlines_1.0.0.tgz"; | ||
7315 | path = fetchurl { | ||
7316 | name = "trim_newlines___trim_newlines_1.0.0.tgz"; | ||
7317 | url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz"; | ||
7318 | sha1 = "5887966bb582a4503a41eb524f7d35011815a613"; | ||
7319 | }; | ||
7320 | } | ||
7321 | |||
7322 | { | ||
7323 | name = "trim_right___trim_right_1.0.1.tgz"; | ||
7324 | path = fetchurl { | ||
7325 | name = "trim_right___trim_right_1.0.1.tgz"; | ||
7326 | url = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz"; | ||
7327 | sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003"; | ||
7328 | }; | ||
7329 | } | ||
7330 | |||
7331 | { | ||
7332 | name = "true_case_path___true_case_path_1.0.2.tgz"; | ||
7333 | path = fetchurl { | ||
7334 | name = "true_case_path___true_case_path_1.0.2.tgz"; | ||
7335 | url = "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz"; | ||
7336 | sha1 = "7ec91130924766c7f573be3020c34f8fdfd00d62"; | ||
7337 | }; | ||
7338 | } | ||
7339 | |||
7340 | { | ||
7341 | name = "tty_browserify___tty_browserify_0.0.0.tgz"; | ||
7342 | path = fetchurl { | ||
7343 | name = "tty_browserify___tty_browserify_0.0.0.tgz"; | ||
7344 | url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz"; | ||
7345 | sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6"; | ||
7346 | }; | ||
7347 | } | ||
7348 | |||
7349 | { | ||
7350 | name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; | ||
7351 | path = fetchurl { | ||
7352 | name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; | ||
7353 | url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; | ||
7354 | sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; | ||
7355 | }; | ||
7356 | } | ||
7357 | |||
7358 | { | ||
7359 | name = "tweetnacl___tweetnacl_0.14.5.tgz"; | ||
7360 | path = fetchurl { | ||
7361 | name = "tweetnacl___tweetnacl_0.14.5.tgz"; | ||
7362 | url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz"; | ||
7363 | sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; | ||
7364 | }; | ||
7365 | } | ||
7366 | |||
7367 | { | ||
7368 | name = "type_is___type_is_1.6.16.tgz"; | ||
7369 | path = fetchurl { | ||
7370 | name = "type_is___type_is_1.6.16.tgz"; | ||
7371 | url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz"; | ||
7372 | sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194"; | ||
7373 | }; | ||
7374 | } | ||
7375 | |||
7376 | { | ||
7377 | name = "uglify_js___uglify_js_2.8.29.tgz"; | ||
7378 | path = fetchurl { | ||
7379 | name = "uglify_js___uglify_js_2.8.29.tgz"; | ||
7380 | url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz"; | ||
7381 | sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd"; | ||
7382 | }; | ||
7383 | } | ||
7384 | |||
7385 | { | ||
7386 | name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz"; | ||
7387 | path = fetchurl { | ||
7388 | name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz"; | ||
7389 | url = "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"; | ||
7390 | sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7"; | ||
7391 | }; | ||
7392 | } | ||
7393 | |||
7394 | { | ||
7395 | name = "uglifyjs_webpack_plugin___uglifyjs_webpack_plugin_0.4.6.tgz"; | ||
7396 | path = fetchurl { | ||
7397 | name = "uglifyjs_webpack_plugin___uglifyjs_webpack_plugin_0.4.6.tgz"; | ||
7398 | url = "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz"; | ||
7399 | sha1 = "b951f4abb6bd617e66f63eb891498e391763e309"; | ||
7400 | }; | ||
7401 | } | ||
7402 | |||
7403 | { | ||
7404 | name = "union_value___union_value_1.0.0.tgz"; | ||
7405 | path = fetchurl { | ||
7406 | name = "union_value___union_value_1.0.0.tgz"; | ||
7407 | url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz"; | ||
7408 | sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"; | ||
7409 | }; | ||
7410 | } | ||
7411 | |||
7412 | { | ||
7413 | name = "uniq___uniq_1.0.1.tgz"; | ||
7414 | path = fetchurl { | ||
7415 | name = "uniq___uniq_1.0.1.tgz"; | ||
7416 | url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz"; | ||
7417 | sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff"; | ||
7418 | }; | ||
7419 | } | ||
7420 | |||
7421 | { | ||
7422 | name = "uniqs___uniqs_2.0.0.tgz"; | ||
7423 | path = fetchurl { | ||
7424 | name = "uniqs___uniqs_2.0.0.tgz"; | ||
7425 | url = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz"; | ||
7426 | sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02"; | ||
7427 | }; | ||
7428 | } | ||
7429 | |||
7430 | { | ||
7431 | name = "unpipe___unpipe_1.0.0.tgz"; | ||
7432 | path = fetchurl { | ||
7433 | name = "unpipe___unpipe_1.0.0.tgz"; | ||
7434 | url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz"; | ||
7435 | sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; | ||
7436 | }; | ||
7437 | } | ||
7438 | |||
7439 | { | ||
7440 | name = "unset_value___unset_value_1.0.0.tgz"; | ||
7441 | path = fetchurl { | ||
7442 | name = "unset_value___unset_value_1.0.0.tgz"; | ||
7443 | url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz"; | ||
7444 | sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; | ||
7445 | }; | ||
7446 | } | ||
7447 | |||
7448 | { | ||
7449 | name = "upath___upath_1.1.0.tgz"; | ||
7450 | path = fetchurl { | ||
7451 | name = "upath___upath_1.1.0.tgz"; | ||
7452 | url = "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz"; | ||
7453 | sha1 = "35256597e46a581db4793d0ce47fa9aebfc9fabd"; | ||
7454 | }; | ||
7455 | } | ||
7456 | |||
7457 | { | ||
7458 | name = "uri_js___uri_js_4.2.2.tgz"; | ||
7459 | path = fetchurl { | ||
7460 | name = "uri_js___uri_js_4.2.2.tgz"; | ||
7461 | url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz"; | ||
7462 | sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0"; | ||
7463 | }; | ||
7464 | } | ||
7465 | |||
7466 | { | ||
7467 | name = "urix___urix_0.1.0.tgz"; | ||
7468 | path = fetchurl { | ||
7469 | name = "urix___urix_0.1.0.tgz"; | ||
7470 | url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz"; | ||
7471 | sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; | ||
7472 | }; | ||
7473 | } | ||
7474 | |||
7475 | { | ||
7476 | name = "url_parse___url_parse_1.4.1.tgz"; | ||
7477 | path = fetchurl { | ||
7478 | name = "url_parse___url_parse_1.4.1.tgz"; | ||
7479 | url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.1.tgz"; | ||
7480 | sha1 = "4dec9dad3dc8585f862fed461d2e19bbf623df30"; | ||
7481 | }; | ||
7482 | } | ||
7483 | |||
7484 | { | ||
7485 | name = "url___url_0.11.0.tgz"; | ||
7486 | path = fetchurl { | ||
7487 | name = "url___url_0.11.0.tgz"; | ||
7488 | url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz"; | ||
7489 | sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; | ||
7490 | }; | ||
7491 | } | ||
7492 | |||
7493 | { | ||
7494 | name = "use___use_3.1.1.tgz"; | ||
7495 | path = fetchurl { | ||
7496 | name = "use___use_3.1.1.tgz"; | ||
7497 | url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz"; | ||
7498 | sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f"; | ||
7499 | }; | ||
7500 | } | ||
7501 | |||
7502 | { | ||
7503 | name = "util_deprecate___util_deprecate_1.0.2.tgz"; | ||
7504 | path = fetchurl { | ||
7505 | name = "util_deprecate___util_deprecate_1.0.2.tgz"; | ||
7506 | url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; | ||
7507 | sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; | ||
7508 | }; | ||
7509 | } | ||
7510 | |||
7511 | { | ||
7512 | name = "util___util_0.10.3.tgz"; | ||
7513 | path = fetchurl { | ||
7514 | name = "util___util_0.10.3.tgz"; | ||
7515 | url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz"; | ||
7516 | sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; | ||
7517 | }; | ||
7518 | } | ||
7519 | |||
7520 | { | ||
7521 | name = "util___util_0.10.4.tgz"; | ||
7522 | path = fetchurl { | ||
7523 | name = "util___util_0.10.4.tgz"; | ||
7524 | url = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz"; | ||
7525 | sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901"; | ||
7526 | }; | ||
7527 | } | ||
7528 | |||
7529 | { | ||
7530 | name = "utila___utila_0.3.3.tgz"; | ||
7531 | path = fetchurl { | ||
7532 | name = "utila___utila_0.3.3.tgz"; | ||
7533 | url = "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz"; | ||
7534 | sha1 = "d7e8e7d7e309107092b05f8d9688824d633a4226"; | ||
7535 | }; | ||
7536 | } | ||
7537 | |||
7538 | { | ||
7539 | name = "utila___utila_0.4.0.tgz"; | ||
7540 | path = fetchurl { | ||
7541 | name = "utila___utila_0.4.0.tgz"; | ||
7542 | url = "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz"; | ||
7543 | sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c"; | ||
7544 | }; | ||
7545 | } | ||
7546 | |||
7547 | { | ||
7548 | name = "utils_merge___utils_merge_1.0.1.tgz"; | ||
7549 | path = fetchurl { | ||
7550 | name = "utils_merge___utils_merge_1.0.1.tgz"; | ||
7551 | url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz"; | ||
7552 | sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; | ||
7553 | }; | ||
7554 | } | ||
7555 | |||
7556 | { | ||
7557 | name = "uuid___uuid_3.3.2.tgz"; | ||
7558 | path = fetchurl { | ||
7559 | name = "uuid___uuid_3.3.2.tgz"; | ||
7560 | url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz"; | ||
7561 | sha1 = "1b4af4955eb3077c501c23872fc6513811587131"; | ||
7562 | }; | ||
7563 | } | ||
7564 | |||
7565 | { | ||
7566 | name = "validate_npm_package_license___validate_npm_package_license_3.0.3.tgz"; | ||
7567 | path = fetchurl { | ||
7568 | name = "validate_npm_package_license___validate_npm_package_license_3.0.3.tgz"; | ||
7569 | url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz"; | ||
7570 | sha1 = "81643bcbef1bdfecd4623793dc4648948ba98338"; | ||
7571 | }; | ||
7572 | } | ||
7573 | |||
7574 | { | ||
7575 | name = "vary___vary_1.1.2.tgz"; | ||
7576 | path = fetchurl { | ||
7577 | name = "vary___vary_1.1.2.tgz"; | ||
7578 | url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz"; | ||
7579 | sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; | ||
7580 | }; | ||
7581 | } | ||
7582 | |||
7583 | { | ||
7584 | name = "vendors___vendors_1.0.2.tgz"; | ||
7585 | path = fetchurl { | ||
7586 | name = "vendors___vendors_1.0.2.tgz"; | ||
7587 | url = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz"; | ||
7588 | sha1 = "7fcb5eef9f5623b156bcea89ec37d63676f21801"; | ||
7589 | }; | ||
7590 | } | ||
7591 | |||
7592 | { | ||
7593 | name = "verror___verror_1.10.0.tgz"; | ||
7594 | path = fetchurl { | ||
7595 | name = "verror___verror_1.10.0.tgz"; | ||
7596 | url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz"; | ||
7597 | sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; | ||
7598 | }; | ||
7599 | } | ||
7600 | |||
7601 | { | ||
7602 | name = "vm_browserify___vm_browserify_0.0.4.tgz"; | ||
7603 | path = fetchurl { | ||
7604 | name = "vm_browserify___vm_browserify_0.0.4.tgz"; | ||
7605 | url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz"; | ||
7606 | sha1 = "5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"; | ||
7607 | }; | ||
7608 | } | ||
7609 | |||
7610 | { | ||
7611 | name = "watchpack___watchpack_1.6.0.tgz"; | ||
7612 | path = fetchurl { | ||
7613 | name = "watchpack___watchpack_1.6.0.tgz"; | ||
7614 | url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz"; | ||
7615 | sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"; | ||
7616 | }; | ||
7617 | } | ||
7618 | |||
7619 | { | ||
7620 | name = "wbuf___wbuf_1.7.3.tgz"; | ||
7621 | path = fetchurl { | ||
7622 | name = "wbuf___wbuf_1.7.3.tgz"; | ||
7623 | url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz"; | ||
7624 | sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df"; | ||
7625 | }; | ||
7626 | } | ||
7627 | |||
7628 | { | ||
7629 | name = "webpack_chunk_hash___webpack_chunk_hash_0.5.0.tgz"; | ||
7630 | path = fetchurl { | ||
7631 | name = "webpack_chunk_hash___webpack_chunk_hash_0.5.0.tgz"; | ||
7632 | url = "https://registry.yarnpkg.com/webpack-chunk-hash/-/webpack-chunk-hash-0.5.0.tgz"; | ||
7633 | sha1 = "1dba38203d73c1e6ab069b6810a5a37402399dec"; | ||
7634 | }; | ||
7635 | } | ||
7636 | |||
7637 | { | ||
7638 | name = "webpack_dev_middleware___webpack_dev_middleware_1.12.2.tgz"; | ||
7639 | path = fetchurl { | ||
7640 | name = "webpack_dev_middleware___webpack_dev_middleware_1.12.2.tgz"; | ||
7641 | url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz"; | ||
7642 | sha1 = "f8fc1120ce3b4fc5680ceecb43d777966b21105e"; | ||
7643 | }; | ||
7644 | } | ||
7645 | |||
7646 | { | ||
7647 | name = "webpack_dev_server___webpack_dev_server_2.11.2.tgz"; | ||
7648 | path = fetchurl { | ||
7649 | name = "webpack_dev_server___webpack_dev_server_2.11.2.tgz"; | ||
7650 | url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz"; | ||
7651 | sha1 = "1f4f4c78bf1895378f376815910812daf79a216f"; | ||
7652 | }; | ||
7653 | } | ||
7654 | |||
7655 | { | ||
7656 | name = "webpack_sources___webpack_sources_1.1.0.tgz"; | ||
7657 | path = fetchurl { | ||
7658 | name = "webpack_sources___webpack_sources_1.1.0.tgz"; | ||
7659 | url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz"; | ||
7660 | sha1 = "a101ebae59d6507354d71d8013950a3a8b7a5a54"; | ||
7661 | }; | ||
7662 | } | ||
7663 | |||
7664 | { | ||
7665 | name = "webpack___webpack_3.12.0.tgz"; | ||
7666 | path = fetchurl { | ||
7667 | name = "webpack___webpack_3.12.0.tgz"; | ||
7668 | url = "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz"; | ||
7669 | sha1 = "3f9e34360370602fcf639e97939db486f4ec0d74"; | ||
7670 | }; | ||
7671 | } | ||
7672 | |||
7673 | { | ||
7674 | name = "websocket_driver___websocket_driver_0.7.0.tgz"; | ||
7675 | path = fetchurl { | ||
7676 | name = "websocket_driver___websocket_driver_0.7.0.tgz"; | ||
7677 | url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz"; | ||
7678 | sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"; | ||
7679 | }; | ||
7680 | } | ||
7681 | |||
7682 | { | ||
7683 | name = "websocket_extensions___websocket_extensions_0.1.3.tgz"; | ||
7684 | path = fetchurl { | ||
7685 | name = "websocket_extensions___websocket_extensions_0.1.3.tgz"; | ||
7686 | url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz"; | ||
7687 | sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29"; | ||
7688 | }; | ||
7689 | } | ||
7690 | |||
7691 | { | ||
7692 | name = "whet.extend___whet.extend_0.9.9.tgz"; | ||
7693 | path = fetchurl { | ||
7694 | name = "whet.extend___whet.extend_0.9.9.tgz"; | ||
7695 | url = "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz"; | ||
7696 | sha1 = "f877d5bf648c97e5aa542fadc16d6a259b9c11a1"; | ||
7697 | }; | ||
7698 | } | ||
7699 | |||
7700 | { | ||
7701 | name = "which_module___which_module_1.0.0.tgz"; | ||
7702 | path = fetchurl { | ||
7703 | name = "which_module___which_module_1.0.0.tgz"; | ||
7704 | url = "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz"; | ||
7705 | sha1 = "bba63ca861948994ff307736089e3b96026c2a4f"; | ||
7706 | }; | ||
7707 | } | ||
7708 | |||
7709 | { | ||
7710 | name = "which_module___which_module_2.0.0.tgz"; | ||
7711 | path = fetchurl { | ||
7712 | name = "which_module___which_module_2.0.0.tgz"; | ||
7713 | url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz"; | ||
7714 | sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; | ||
7715 | }; | ||
7716 | } | ||
7717 | |||
7718 | { | ||
7719 | name = "which___which_1.3.1.tgz"; | ||
7720 | path = fetchurl { | ||
7721 | name = "which___which_1.3.1.tgz"; | ||
7722 | url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz"; | ||
7723 | sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a"; | ||
7724 | }; | ||
7725 | } | ||
7726 | |||
7727 | { | ||
7728 | name = "wide_align___wide_align_1.1.3.tgz"; | ||
7729 | path = fetchurl { | ||
7730 | name = "wide_align___wide_align_1.1.3.tgz"; | ||
7731 | url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz"; | ||
7732 | sha1 = "ae074e6bdc0c14a431e804e624549c633b000457"; | ||
7733 | }; | ||
7734 | } | ||
7735 | |||
7736 | { | ||
7737 | name = "window_size___window_size_0.1.0.tgz"; | ||
7738 | path = fetchurl { | ||
7739 | name = "window_size___window_size_0.1.0.tgz"; | ||
7740 | url = "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz"; | ||
7741 | sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"; | ||
7742 | }; | ||
7743 | } | ||
7744 | |||
7745 | { | ||
7746 | name = "wordwrap___wordwrap_0.0.2.tgz"; | ||
7747 | path = fetchurl { | ||
7748 | name = "wordwrap___wordwrap_0.0.2.tgz"; | ||
7749 | url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz"; | ||
7750 | sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f"; | ||
7751 | }; | ||
7752 | } | ||
7753 | |||
7754 | { | ||
7755 | name = "wrap_ansi___wrap_ansi_2.1.0.tgz"; | ||
7756 | path = fetchurl { | ||
7757 | name = "wrap_ansi___wrap_ansi_2.1.0.tgz"; | ||
7758 | url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz"; | ||
7759 | sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85"; | ||
7760 | }; | ||
7761 | } | ||
7762 | |||
7763 | { | ||
7764 | name = "wrappy___wrappy_1.0.2.tgz"; | ||
7765 | path = fetchurl { | ||
7766 | name = "wrappy___wrappy_1.0.2.tgz"; | ||
7767 | url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; | ||
7768 | sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; | ||
7769 | }; | ||
7770 | } | ||
7771 | |||
7772 | { | ||
7773 | name = "xtend___xtend_4.0.1.tgz"; | ||
7774 | path = fetchurl { | ||
7775 | name = "xtend___xtend_4.0.1.tgz"; | ||
7776 | url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz"; | ||
7777 | sha1 = "a5c6d532be656e23db820efb943a1f04998d63af"; | ||
7778 | }; | ||
7779 | } | ||
7780 | |||
7781 | { | ||
7782 | name = "y18n___y18n_3.2.1.tgz"; | ||
7783 | path = fetchurl { | ||
7784 | name = "y18n___y18n_3.2.1.tgz"; | ||
7785 | url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz"; | ||
7786 | sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41"; | ||
7787 | }; | ||
7788 | } | ||
7789 | |||
7790 | { | ||
7791 | name = "yallist___yallist_2.1.2.tgz"; | ||
7792 | path = fetchurl { | ||
7793 | name = "yallist___yallist_2.1.2.tgz"; | ||
7794 | url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz"; | ||
7795 | sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; | ||
7796 | }; | ||
7797 | } | ||
7798 | |||
7799 | { | ||
7800 | name = "yallist___yallist_3.0.2.tgz"; | ||
7801 | path = fetchurl { | ||
7802 | name = "yallist___yallist_3.0.2.tgz"; | ||
7803 | url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz"; | ||
7804 | sha1 = "8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"; | ||
7805 | }; | ||
7806 | } | ||
7807 | |||
7808 | { | ||
7809 | name = "yargs_parser___yargs_parser_4.2.1.tgz"; | ||
7810 | path = fetchurl { | ||
7811 | name = "yargs_parser___yargs_parser_4.2.1.tgz"; | ||
7812 | url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz"; | ||
7813 | sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"; | ||
7814 | }; | ||
7815 | } | ||
7816 | |||
7817 | { | ||
7818 | name = "yargs_parser___yargs_parser_5.0.0.tgz"; | ||
7819 | path = fetchurl { | ||
7820 | name = "yargs_parser___yargs_parser_5.0.0.tgz"; | ||
7821 | url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz"; | ||
7822 | sha1 = "275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"; | ||
7823 | }; | ||
7824 | } | ||
7825 | |||
7826 | { | ||
7827 | name = "yargs_parser___yargs_parser_7.0.0.tgz"; | ||
7828 | path = fetchurl { | ||
7829 | name = "yargs_parser___yargs_parser_7.0.0.tgz"; | ||
7830 | url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz"; | ||
7831 | sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"; | ||
7832 | }; | ||
7833 | } | ||
7834 | |||
7835 | { | ||
7836 | name = "yargs___yargs_6.6.0.tgz"; | ||
7837 | path = fetchurl { | ||
7838 | name = "yargs___yargs_6.6.0.tgz"; | ||
7839 | url = "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz"; | ||
7840 | sha1 = "782ec21ef403345f830a808ca3d513af56065208"; | ||
7841 | }; | ||
7842 | } | ||
7843 | |||
7844 | { | ||
7845 | name = "yargs___yargs_7.1.0.tgz"; | ||
7846 | path = fetchurl { | ||
7847 | name = "yargs___yargs_7.1.0.tgz"; | ||
7848 | url = "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz"; | ||
7849 | sha1 = "6ba318eb16961727f5d284f8ea003e8d6154d0c8"; | ||
7850 | }; | ||
7851 | } | ||
7852 | |||
7853 | { | ||
7854 | name = "yargs___yargs_8.0.2.tgz"; | ||
7855 | path = fetchurl { | ||
7856 | name = "yargs___yargs_8.0.2.tgz"; | ||
7857 | url = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz"; | ||
7858 | sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360"; | ||
7859 | }; | ||
7860 | } | ||
7861 | |||
7862 | { | ||
7863 | name = "yargs___yargs_3.10.0.tgz"; | ||
7864 | path = fetchurl { | ||
7865 | name = "yargs___yargs_3.10.0.tgz"; | ||
7866 | url = "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz"; | ||
7867 | sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"; | ||
7868 | }; | ||
7869 | } | ||
7870 | ]; | ||
7871 | } | ||
diff --git a/modules/private/websites/isabelle/aten_integration.nix b/modules/private/websites/isabelle/aten_integration.nix deleted file mode 100644 index c55ef92..0000000 --- a/modules/private/websites/isabelle/aten_integration.nix +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.isabelle.aten_integration; | ||
4 | webRoot = "/var/lib/ftp/immae/aten/public"; | ||
5 | cfg = config.myServices.websites.isabelle.aten_integration; | ||
6 | pcfg = config.services.phpApplication; | ||
7 | in { | ||
8 | options.myServices.websites.isabelle.aten_integration.enable = lib.mkEnableOption "enable Aten's website in integration"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.phpApplication.apps.isabelle_aten_integration = { | ||
12 | websiteEnv = "integration"; | ||
13 | httpdUser = config.services.httpd.Inte.user; | ||
14 | httpdGroup = config.services.httpd.Inte.group; | ||
15 | httpdWatchFiles = [ | ||
16 | config.secrets.fullPaths."websites/isabelle/aten_integration" | ||
17 | ]; | ||
18 | inherit webRoot; | ||
19 | varDir = "/var/lib/ftp/immae/aten_var"; | ||
20 | app = "/var/lib/ftp/immae/aten"; | ||
21 | serviceDeps = [ "postgresql.service" ]; | ||
22 | preStartActions = [ | ||
23 | "APP_ENV=dev ./bin/console --env=dev cache:clear --no-warmup" | ||
24 | ]; | ||
25 | phpOpenbasedir = [ "/tmp" ]; | ||
26 | phpPool = { | ||
27 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
28 | "php_admin_value[post_max_size]" = "20M"; | ||
29 | #"php_admin_flag[log_errors]" = "on"; | ||
30 | "pm" = "ondemand"; | ||
31 | "pm.max_children" = "5"; | ||
32 | "pm.process_idle_timeout" = "60"; | ||
33 | }; | ||
34 | phpEnv = { | ||
35 | SYMFONY_DEBUG_MODE = "\"yes\""; | ||
36 | }; | ||
37 | phpPackage = pkgs.php72; | ||
38 | }; | ||
39 | |||
40 | secrets.keys."websites/isabelle/aten_integration" = { | ||
41 | user = config.services.httpd.Inte.user; | ||
42 | group = config.services.httpd.Inte.group; | ||
43 | permissions = "0400"; | ||
44 | text = let | ||
45 | # cf: | ||
46 | # https://secure.php.net/manual/fr/function.parse-url.php | ||
47 | # vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php#parseDatabaseUrlQuery | ||
48 | psql_url = with secrets.postgresql; "pdo-pgsql://${user}:${password}@invalid:${port}/${database}?host=${socket}"; | ||
49 | in '' | ||
50 | SetEnv APP_ENV "dev" | ||
51 | SetEnv APP_SECRET "${secrets.secret}" | ||
52 | SetEnv DATABASE_URL "${psql_url}" | ||
53 | ''; | ||
54 | }; | ||
55 | services.websites.env.integration.vhostConfs.isabelle_aten_integration = { | ||
56 | certName = "integration"; | ||
57 | addToCerts = true; | ||
58 | hosts = [ "aten.ic.immae.dev" ]; | ||
59 | root = webRoot; | ||
60 | extraConfig = [ | ||
61 | '' | ||
62 | <FilesMatch "\.php$"> | ||
63 | SetHandler "proxy:unix:${pcfg.phpListenPaths.isabelle_aten_integration}|fcgi://localhost" | ||
64 | </FilesMatch> | ||
65 | |||
66 | Include ${config.secrets.fullPaths."websites/isabelle/aten_integration"} | ||
67 | |||
68 | <Location /> | ||
69 | Use LDAPConnect | ||
70 | Require ldap-group cn=ic.immae.dev,cn=httpd,ou=services,dc=immae,dc=eu | ||
71 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>" | ||
72 | </Location> | ||
73 | |||
74 | <Location /backend> | ||
75 | Use LDAPConnect | ||
76 | Require ldap-group cn=ic.immae.dev,cn=httpd,ou=services,dc=immae,dc=eu | ||
77 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>" | ||
78 | </Location> | ||
79 | |||
80 | <Directory ${webRoot}> | ||
81 | Options Indexes FollowSymLinks MultiViews Includes | ||
82 | AllowOverride All | ||
83 | Require all granted | ||
84 | DirectoryIndex index.php | ||
85 | FallbackResource /index.php | ||
86 | </Directory> | ||
87 | '' | ||
88 | ]; | ||
89 | }; | ||
90 | }; | ||
91 | } | ||
diff --git a/modules/private/websites/isabelle/aten_production.nix b/modules/private/websites/isabelle/aten_production.nix deleted file mode 100644 index 928a815..0000000 --- a/modules/private/websites/isabelle/aten_production.nix +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.isabelle.aten_production; | ||
4 | app = pkgs.callPackage ./aten_app { | ||
5 | composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; | ||
6 | environment = secrets.environment; | ||
7 | varDir = "/var/lib/isabelle_aten_production"; | ||
8 | }; | ||
9 | cfg = config.myServices.websites.isabelle.aten_production; | ||
10 | pcfg = config.services.phpApplication; | ||
11 | in { | ||
12 | options.myServices.websites.isabelle.aten_production.enable = lib.mkEnableOption "enable Aten's website in production"; | ||
13 | |||
14 | config = lib.mkIf cfg.enable { | ||
15 | services.webstats.sites = [ { name = "aten.pro"; } ]; | ||
16 | services.phpApplication.apps.isabelle_aten_production = { | ||
17 | websiteEnv = "production"; | ||
18 | httpdUser = config.services.httpd.Prod.user; | ||
19 | httpdGroup = config.services.httpd.Prod.group; | ||
20 | httpdWatchFiles = [ | ||
21 | config.secrets.fullPaths."websites/isabelle/aten_production" | ||
22 | ]; | ||
23 | inherit (app) webRoot varDir; | ||
24 | inherit app; | ||
25 | serviceDeps = [ "postgresql.service" ]; | ||
26 | preStartActions = [ | ||
27 | "APP_ENV=${app.environment} ./bin/console --env=${app.environment} cache:clear --no-warmup" | ||
28 | ]; | ||
29 | phpOpenbasedir = [ "/tmp" ]; | ||
30 | phpPool = { | ||
31 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
32 | "php_admin_value[post_max_size]" = "20M"; | ||
33 | #"php_admin_flag[log_errors]" = "on"; | ||
34 | "pm" = "dynamic"; | ||
35 | "pm.max_children" = "20"; | ||
36 | "pm.start_servers" = "2"; | ||
37 | "pm.min_spare_servers" = "1"; | ||
38 | "pm.max_spare_servers" = "3"; | ||
39 | }; | ||
40 | phpPackage = pkgs.php72; | ||
41 | }; | ||
42 | |||
43 | secrets.keys."websites/isabelle/aten_production" = { | ||
44 | user = config.services.httpd.Prod.user; | ||
45 | group = config.services.httpd.Prod.group; | ||
46 | permissions = "0400"; | ||
47 | text = let | ||
48 | # cf: | ||
49 | # https://secure.php.net/manual/fr/function.parse-url.php | ||
50 | # vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php#parseDatabaseUrlQuery | ||
51 | psql_url = with secrets.postgresql; "pdo-pgsql://${user}:${password}@invalid:${port}/${database}?host=${socket}"; | ||
52 | in '' | ||
53 | SetEnv APP_ENV "${app.environment}" | ||
54 | SetEnv APP_SECRET "${secrets.secret}" | ||
55 | SetEnv DATABASE_URL "${psql_url}" | ||
56 | ''; | ||
57 | }; | ||
58 | services.websites.env.production.vhostConfs.isabelle_aten_production = { | ||
59 | certName = "isabelle"; | ||
60 | certMainHost = "aten.pro"; | ||
61 | hosts = [ "aten.pro" "www.aten.pro" ]; | ||
62 | root = app.webRoot; | ||
63 | extraConfig = [ | ||
64 | '' | ||
65 | <FilesMatch "\.php$"> | ||
66 | SetHandler "proxy:unix:${pcfg.phpListenPaths.isabelle_aten_production}|fcgi://localhost" | ||
67 | </FilesMatch> | ||
68 | |||
69 | Include ${config.secrets.fullPaths."websites/isabelle/aten_production"} | ||
70 | |||
71 | Use Stats aten.pro | ||
72 | |||
73 | <Location /backend> | ||
74 | Use LDAPConnect | ||
75 | Require ldap-group cn=aten.pro,cn=httpd,ou=services,dc=immae,dc=eu | ||
76 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>" | ||
77 | </Location> | ||
78 | |||
79 | <Directory ${app.webRoot}> | ||
80 | Options Indexes FollowSymLinks MultiViews Includes | ||
81 | AllowOverride All | ||
82 | Require all granted | ||
83 | DirectoryIndex index.php | ||
84 | FallbackResource /index.php | ||
85 | </Directory> | ||
86 | '' | ||
87 | ]; | ||
88 | }; | ||
89 | }; | ||
90 | } | ||
diff --git a/modules/private/websites/isabelle/config/chmod.php b/modules/private/websites/isabelle/config/chmod.php deleted file mode 100644 index aae16cd..0000000 --- a/modules/private/websites/isabelle/config/chmod.php +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | <?php | ||
2 | if (!defined("_ECRIRE_INC_VERSION")) return; | ||
3 | if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', 0777); | ||
4 | ?> \ No newline at end of file | ||
diff --git a/modules/private/websites/isabelle/config/connect.php b/modules/private/websites/isabelle/config/connect.php deleted file mode 100644 index 18b0933..0000000 --- a/modules/private/websites/isabelle/config/connect.php +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | <?php | ||
2 | if (!defined("_ECRIRE_INC_VERSION")) return; | ||
3 | define('_MYSQL_SET_SQL_MODE',true); | ||
4 | $GLOBALS['spip_connect_version'] = 0.7; | ||
5 | spip_connect_db( | ||
6 | getenv("SPIP_MYSQL_HOST"), | ||
7 | getenv("SPIP_MYSQL_PORT"), | ||
8 | getenv("SPIP_MYSQL_USER"), | ||
9 | getenv("SPIP_MYSQL_PASSWORD"), | ||
10 | getenv("SPIP_MYSQL_DB"), | ||
11 | 'mysql', | ||
12 | 'spip', | ||
13 | 'ldap.php' | ||
14 | ); | ||
15 | ?> | ||
diff --git a/modules/private/websites/isabelle/config/ldap.php b/modules/private/websites/isabelle/config/ldap.php deleted file mode 100644 index 825b7ed..0000000 --- a/modules/private/websites/isabelle/config/ldap.php +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | <?php | ||
2 | if (!defined("_ECRIRE_INC_VERSION")) return; | ||
3 | $GLOBALS['ldap_base'] = getenv("SPIP_LDAP_BASE"); | ||
4 | $GLOBALS['ldap_link'] = @ldap_connect(getenv("SPIP_LDAP_HOST")); | ||
5 | @ldap_set_option($GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'3'); | ||
6 | @ldap_bind($GLOBALS['ldap_link'],getenv("SPIP_LDAP_SEARCH_DN"), getenv("SPIP_LDAP_SEARCH_PW")); | ||
7 | $GLOBALS['ldap_champs'] = array('login' => array('sAMAccountName','uid','login','userid','cn','sn'),'nom' => 'cn','email' => 'mail','bio' => 'description',); | ||
8 | $GLOBALS['ldap_search'] = getenv("SPIP_LDAP_SEARCH"); | ||
9 | ?> | ||
diff --git a/modules/private/websites/isabelle/iridologie.nix b/modules/private/websites/isabelle/iridologie.nix deleted file mode 100644 index cd733c1..0000000 --- a/modules/private/websites/isabelle/iridologie.nix +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | icfg = config.myEnv.websites.isabelle.iridologie; | ||
4 | cfg = config.myServices.websites.isabelle.iridologie; | ||
5 | app = pkgs.callPackage ./iridologie_app { | ||
6 | inherit (icfg) environment; | ||
7 | inherit (pkgs.webapps) spip; | ||
8 | varDir = "/var/lib/isabelle_iridologie"; | ||
9 | }; | ||
10 | |||
11 | apacheUser = config.services.httpd.Prod.user; | ||
12 | apacheGroup = config.services.httpd.Prod.group; | ||
13 | secretsPath = config.secrets.fullPaths."websites/isabelle/iridologie"; | ||
14 | in { | ||
15 | options.myServices.websites.isabelle.iridologie.enable = lib.mkEnableOption "enable Iridologie's website"; | ||
16 | |||
17 | config = lib.mkIf cfg.enable { | ||
18 | secrets.keys."websites/isabelle/iridologie" = { | ||
19 | user = apacheUser; | ||
20 | group = apacheGroup; | ||
21 | permissions = "0400"; | ||
22 | text = '' | ||
23 | SetEnv SPIP_CONFIG_DIR "${./config}" | ||
24 | SetEnv SPIP_VAR_DIR "${app.varDir}" | ||
25 | SetEnv SPIP_SITE "iridologie-${app.environment}" | ||
26 | SetEnv SPIP_LDAP_BASE "dc=immae,dc=eu" | ||
27 | SetEnv SPIP_LDAP_HOST "ldaps://ldap.immae.eu" | ||
28 | SetEnv SPIP_LDAP_SEARCH_DN "${icfg.ldap.dn}" | ||
29 | SetEnv SPIP_LDAP_SEARCH_PW "${icfg.ldap.password}" | ||
30 | SetEnv SPIP_LDAP_SEARCH "${icfg.ldap.filter}" | ||
31 | SetEnv SPIP_MYSQL_HOST "${icfg.mysql.host}" | ||
32 | SetEnv SPIP_MYSQL_PORT "${icfg.mysql.port}" | ||
33 | SetEnv SPIP_MYSQL_DB "${icfg.mysql.database}" | ||
34 | SetEnv SPIP_MYSQL_USER "${icfg.mysql.user}" | ||
35 | SetEnv SPIP_MYSQL_PASSWORD "${icfg.mysql.password}" | ||
36 | ''; | ||
37 | }; | ||
38 | services.webstats.sites = [ { name = "iridologie.icommandeur.org"; } ]; | ||
39 | |||
40 | systemd.services.phpfpm-isabelle_iridologie.after = lib.mkAfter [ "mysql.service" ]; | ||
41 | systemd.services.phpfpm-isabelle_iridologie.wants = [ "mysql.service" ]; | ||
42 | services.phpfpm.pools.isabelle_iridologie = { | ||
43 | user = config.services.httpd.Prod.user; | ||
44 | group = config.services.httpd.Prod.group; | ||
45 | settings = { | ||
46 | "listen.owner" = "${apacheUser}"; | ||
47 | "listen.group" = "${apacheGroup}"; | ||
48 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
49 | "php_admin_value[post_max_size]" = "20M"; | ||
50 | #"php_admin_flag[log_errors]" = "on"; | ||
51 | "php_admin_value[open_basedir]" = "${app.spipConfig}:${./config}:${app}:${app.varDir}:/tmp"; | ||
52 | "php_admin_value[session.save_path]" = "${app.varDir}/phpSessions"; | ||
53 | "pm" = "dynamic"; | ||
54 | "pm.max_children" = "20"; | ||
55 | "pm.start_servers" = "2"; | ||
56 | "pm.min_spare_servers" = "1"; | ||
57 | "pm.max_spare_servers" = "3"; | ||
58 | }; | ||
59 | phpPackage = pkgs.php72; | ||
60 | }; | ||
61 | system.activationScripts.isabelle_iridologie = { | ||
62 | deps = [ "wrappers" ]; | ||
63 | text = '' | ||
64 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} ${app.varDir}/IMG ${app.varDir}/tmp ${app.varDir}/local | ||
65 | install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions | ||
66 | ''; | ||
67 | }; | ||
68 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
69 | services.websites.env.production.vhostConfs.isabelle_iridologie = { | ||
70 | certName = "isabelle"; | ||
71 | addToCerts = true; | ||
72 | hosts = [ "iridologie.icommandeur.org" "icommandeur.org" "www.icommandeur.org" ]; | ||
73 | root = app.webRoot; | ||
74 | extraConfig = [ | ||
75 | '' | ||
76 | RewriteEngine On | ||
77 | RewriteCond "%{HTTP_HOST}" "!^iridologie\.icommandeur\.org$" [NC] | ||
78 | RewriteRule ^(.+)$ https://iridologie.icommandeur.org$1 [R=302,L] | ||
79 | |||
80 | Include ${secretsPath} | ||
81 | |||
82 | RewriteEngine On | ||
83 | |||
84 | <FilesMatch "\.php$"> | ||
85 | SetHandler "proxy:unix:${config.services.phpfpm.pools.isabelle_iridologie.socket}|fcgi://localhost" | ||
86 | </FilesMatch> | ||
87 | |||
88 | <Directory ${app.webRoot}> | ||
89 | DirectoryIndex index.php index.htm index.html | ||
90 | Options -Indexes +FollowSymLinks +MultiViews +Includes | ||
91 | Include ${app.webRoot}/htaccess.txt | ||
92 | |||
93 | AllowOverride AuthConfig FileInfo Limit | ||
94 | Require all granted | ||
95 | </Directory> | ||
96 | |||
97 | <DirectoryMatch "${app.webRoot}/squelettes"> | ||
98 | Require all denied | ||
99 | </DirectoryMatch> | ||
100 | |||
101 | <FilesMatch "(.htaccess|rewrite-rules|.gitignore)$"> | ||
102 | Require all denied | ||
103 | </FilesMatch> | ||
104 | |||
105 | Use Stats iridologie.icommandeur.org | ||
106 | '' | ||
107 | ]; | ||
108 | }; | ||
109 | services.websites.env.production.watchPaths = [ | ||
110 | secretsPath | ||
111 | ]; | ||
112 | }; | ||
113 | } | ||
diff --git a/modules/private/websites/isabelle/iridologie_app/default.nix b/modules/private/websites/isabelle/iridologie_app/default.nix deleted file mode 100644 index edb7eef..0000000 --- a/modules/private/websites/isabelle/iridologie_app/default.nix +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | { environment ? "prod" | ||
2 | , varDir ? "/var/lib/iridologie_${environment}" | ||
3 | , spip, stdenv, sassc, sources }: | ||
4 | let | ||
5 | siteDir = stdenv.mkDerivation rec { | ||
6 | version = sources.websites-isabelle-iridologie.version; | ||
7 | pname = "iridologie"; | ||
8 | name = "${pname}-${version}"; | ||
9 | src = sources.websites-isabelle-iridologie; | ||
10 | installPhase = '' | ||
11 | cp -a . $out | ||
12 | ''; | ||
13 | }; | ||
14 | in | ||
15 | spip.override { | ||
16 | ldap = true; | ||
17 | siteName = "iridologie"; | ||
18 | inherit environment siteDir varDir; | ||
19 | } | ||
diff --git a/modules/private/websites/jerome/naturaloutil.nix b/modules/private/websites/jerome/naturaloutil.nix deleted file mode 100644 index 0974ce3..0000000 --- a/modules/private/websites/jerome/naturaloutil.nix +++ /dev/null | |||
@@ -1,97 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | adminer = pkgs.callPackage ../commons/adminer.nix { inherit config; }; | ||
4 | cfg = config.myServices.websites.jerome.naturaloutil; | ||
5 | varDir = "/var/lib/ftp/jerome"; | ||
6 | env = config.myEnv.websites.jerome; | ||
7 | apacheUser = config.services.httpd.Prod.user; | ||
8 | apacheGroup = config.services.httpd.Prod.group; | ||
9 | secretsPath = config.secrets.fullPaths."websites/jerome/naturaloutil"; | ||
10 | in { | ||
11 | options.myServices.websites.jerome.naturaloutil.enable = lib.mkEnableOption "enable Jerome Naturaloutil's website"; | ||
12 | |||
13 | config = lib.mkIf cfg.enable { | ||
14 | services.webstats.sites = [ { name = "naturaloutil.immae.eu"; } ]; | ||
15 | |||
16 | security.acme.certs."ftp".extraDomains."naturaloutil.immae.eu" = null; | ||
17 | |||
18 | secrets.keys."websites/jerome/naturaloutil" = { | ||
19 | user = apacheUser; | ||
20 | group = apacheGroup; | ||
21 | permissions = "0400"; | ||
22 | text = '' | ||
23 | <?php | ||
24 | $mysql_user = '${env.mysql.user}' ; | ||
25 | $mysql_server = '${env.mysql.host}' ; | ||
26 | $mysql_base = '${env.mysql.database}' ; | ||
27 | $mysql_password = '${env.mysql.password}' ; | ||
28 | //connect to db | ||
29 | $db = mysqli_init(); | ||
30 | ${if env.mysql.host != "localhost" then '' | ||
31 | mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); | ||
32 | $db->ssl_set(NULL, NULL, "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt", NULL, NULL); | ||
33 | '' else ""} | ||
34 | $database = connect_db($db, $mysql_server, $mysql_base, $mysql_user, $mysql_password); | ||
35 | ?> | ||
36 | ''; | ||
37 | }; | ||
38 | system.activationScripts.jerome_naturaloutil = { | ||
39 | deps = [ "httpd" ]; | ||
40 | text = '' | ||
41 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/jerome_naturaloutil | ||
42 | ''; | ||
43 | }; | ||
44 | systemd.services.phpfpm-jerome_naturaloutil.after = lib.mkAfter [ "mysql.service" ]; | ||
45 | systemd.services.phpfpm-jerome_naturaloutil.wants = [ "mysql.service" ]; | ||
46 | services.phpfpm.pools.jerome_naturaloutil = { | ||
47 | user = apacheUser; | ||
48 | group = apacheGroup; | ||
49 | settings = { | ||
50 | "listen.owner" = apacheUser; | ||
51 | "listen.group" = apacheGroup; | ||
52 | |||
53 | "pm" = "ondemand"; | ||
54 | "pm.max_children" = "5"; | ||
55 | "pm.process_idle_timeout" = "60"; | ||
56 | |||
57 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/jerome_naturaloutil:${secretsPath}:${varDir}:/tmp"; | ||
58 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/jerome_naturaloutil"; | ||
59 | }; | ||
60 | phpEnv = { | ||
61 | BDD_CONNECT = secretsPath; | ||
62 | }; | ||
63 | phpPackage = pkgs.php72; | ||
64 | }; | ||
65 | services.websites.env.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ]; | ||
66 | services.websites.env.production.vhostConfs.jerome_naturaloutil = { | ||
67 | certName = "jerome"; | ||
68 | certMainHost = "naturaloutil.immae.eu"; | ||
69 | hosts = ["naturaloutil.immae.eu" ]; | ||
70 | root = varDir; | ||
71 | extraConfig = [ | ||
72 | (adminer.apache.vhostConf null) | ||
73 | '' | ||
74 | Use Stats naturaloutil.immae.eu | ||
75 | ServerAdmin ${env.server_admin} | ||
76 | ErrorLog "${varDir}/logs/error_log" | ||
77 | CustomLog "${varDir}/logs/access_log" combined | ||
78 | |||
79 | <FilesMatch "\.php$"> | ||
80 | SetHandler "proxy:unix:${config.services.phpfpm.pools.jerome_naturaloutil.socket}|fcgi://localhost" | ||
81 | </FilesMatch> | ||
82 | |||
83 | <Directory ${varDir}/logs> | ||
84 | AllowOverride None | ||
85 | Require all denied | ||
86 | </Directory> | ||
87 | <Directory ${varDir}> | ||
88 | DirectoryIndex index.php index.htm index.html | ||
89 | Options Indexes FollowSymLinks MultiViews Includes | ||
90 | AllowOverride None | ||
91 | Require all granted | ||
92 | </Directory> | ||
93 | '' | ||
94 | ]; | ||
95 | }; | ||
96 | }; | ||
97 | } | ||
diff --git a/modules/private/websites/leila/production.nix b/modules/private/websites/leila/production.nix deleted file mode 100644 index 8385bc7..0000000 --- a/modules/private/websites/leila/production.nix +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.leila.production; | ||
4 | varDir = "/var/lib/ftp/leila"; | ||
5 | apacheUser = config.services.httpd.Prod.user; | ||
6 | apacheGroup = config.services.httpd.Prod.group; | ||
7 | in { | ||
8 | options.myServices.websites.leila.production.enable = lib.mkEnableOption "enable Leila's websites in production"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.phpfpm.pools.leila = { | ||
12 | user = apacheUser; | ||
13 | group = apacheGroup; | ||
14 | settings = { | ||
15 | "listen.owner" = apacheUser; | ||
16 | "listen.group" = apacheGroup; | ||
17 | |||
18 | "pm" = "ondemand"; | ||
19 | "pm.max_children" = "5"; | ||
20 | "pm.process_idle_timeout" = "60"; | ||
21 | |||
22 | "php_admin_value[open_basedir]" = "${varDir}:/tmp"; | ||
23 | "php_admin_value[max_execution_time]" = "1800"; | ||
24 | }; | ||
25 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
26 | disable_functions = "mail" | ||
27 | ''; | ||
28 | phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.imagick ]); | ||
29 | phpEnv = { | ||
30 | PATH = lib.makeBinPath [ pkgs.imagemagick ]; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | services.webstats.sites = [ | ||
35 | { name = "leila.bouya.org"; } | ||
36 | { name = "chorale.leila.bouya.org"; } | ||
37 | { name = "syrwennecreation.bouya.org"; } | ||
38 | ]; | ||
39 | |||
40 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
41 | services.websites.env.production.vhostConfs.leila_chorale = { | ||
42 | certName = "leila"; | ||
43 | addToCerts = true; | ||
44 | hosts = [ "chorale.leila.bouya.org" "chorale-vocanta.fr.nf" "www.chorale-vocanta.fr.nf" ]; | ||
45 | root = "${varDir}/Chorale"; | ||
46 | extraConfig = [ | ||
47 | '' | ||
48 | Use Stats chorale.leila.bouya.org | ||
49 | <Directory ${varDir}/Chorale> | ||
50 | DirectoryIndex index.php index.htm index.html | ||
51 | Options Indexes FollowSymLinks MultiViews Includes | ||
52 | AllowOverride None | ||
53 | |||
54 | Use LDAPConnect | ||
55 | Require ldap-group cn=chorale.leila.bouya.org,cn=httpd,ou=services,dc=immae,dc=eu | ||
56 | |||
57 | <FilesMatch "\.php$"> | ||
58 | SetHandler "proxy:unix:${config.services.phpfpm.pools.leila.socket}|fcgi://localhost" | ||
59 | </FilesMatch> | ||
60 | </Directory> | ||
61 | '' | ||
62 | ]; | ||
63 | }; | ||
64 | services.websites.env.production.vhostConfs.leila_syrwenne = { | ||
65 | certName = "leila"; | ||
66 | addToCerts = true; | ||
67 | hosts = [ "syrwennecreation.bouya.org" ]; | ||
68 | root = "${varDir}/Syrwennecreation"; | ||
69 | extraConfig = [ | ||
70 | '' | ||
71 | Use Stats syrwennecreation.bouya.org | ||
72 | <Directory ${varDir}/Syrwennecreation> | ||
73 | DirectoryIndex index.php index.htm index.html | ||
74 | Options Indexes FollowSymLinks MultiViews Includes | ||
75 | AllowOverride None | ||
76 | |||
77 | <FilesMatch "\.php$"> | ||
78 | SetHandler "proxy:unix:${config.services.phpfpm.pools.leila.socket}|fcgi://localhost" | ||
79 | </FilesMatch> | ||
80 | </Directory> | ||
81 | '' | ||
82 | ]; | ||
83 | }; | ||
84 | services.websites.env.production.vhostConfs.leila = { | ||
85 | certName = "leila"; | ||
86 | certMainHost = "leila.bouya.org"; | ||
87 | hosts = [ "leila.bouya.org" ]; | ||
88 | root = varDir; | ||
89 | extraConfig = [ | ||
90 | '' | ||
91 | Use Stats leila.bouya.org | ||
92 | <Directory ${varDir}/Chorale> | ||
93 | DirectoryIndex index.htm index.html | ||
94 | Options Indexes FollowSymLinks MultiViews Includes | ||
95 | AllowOverride None | ||
96 | |||
97 | Use LDAPConnect | ||
98 | Require ldap-group cn=chorale.leila.bouya.org,cn=httpd,ou=services,dc=immae,dc=eu | ||
99 | |||
100 | <FilesMatch "\.php$"> | ||
101 | SetHandler "proxy:unix:${config.services.phpfpm.pools.leila.socket}|fcgi://localhost" | ||
102 | </FilesMatch> | ||
103 | </Directory> | ||
104 | <Directory ${varDir}> | ||
105 | DirectoryIndex index.htm index.html | ||
106 | Options Indexes FollowSymLinks MultiViews Includes | ||
107 | AllowOverride None | ||
108 | Require all granted | ||
109 | </Directory> | ||
110 | '' | ||
111 | ]; | ||
112 | }; | ||
113 | }; | ||
114 | } | ||
diff --git a/modules/private/websites/ludivine/app/default.nix b/modules/private/websites/ludivine/app/default.nix deleted file mode 100644 index 323b6e0..0000000 --- a/modules/private/websites/ludivine/app/default.nix +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | { environment, varDir, secretsPath | ||
2 | , composerEnv, fetchurl, fetchgit, imagemagick, sass, ruby, sources }: | ||
3 | let | ||
4 | app = composerEnv.buildPackage ( | ||
5 | import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // | ||
6 | rec { | ||
7 | name = "${pname}-${version}"; | ||
8 | pname = "ludivinecassal"; | ||
9 | version = sources.websites-ludivine-app.version; | ||
10 | src = sources.websites-ludivine-app; | ||
11 | noDev = (environment == "prod"); | ||
12 | preInstall = '' | ||
13 | export SYMFONY_ENV="${environment}" | ||
14 | cp app/config/parameters.yml.dist app/config/parameters.yml | ||
15 | cat >> app/config/parameters.yml <<EOF | ||
16 | leapt_im: | ||
17 | binary_path: ${imagemagick}/bin | ||
18 | assetic: | ||
19 | sass: ${sass}/bin/sass | ||
20 | ruby: ${ruby}/bin/ruby | ||
21 | EOF | ||
22 | sed -i -e "/Incenteev..ParameterHandler..ScriptHandler::buildParameters/d" composer.json | ||
23 | ''; | ||
24 | # /!\ miniatures and data need to be in the same physical dir due to a | ||
25 | # bug in leapt.im (searches for data/../miniatures) | ||
26 | postInstall = '' | ||
27 | rm -rf var/{logs,cache,data,miniatures,tmp} | ||
28 | ln -sf ${varDir}/{logs,cache,data,miniatures,tmp} var/ | ||
29 | ln -sf ${secretsPath} app/config/parameters.yml | ||
30 | ''; | ||
31 | buildInputs = [ sass ]; | ||
32 | passthru = { | ||
33 | inherit varDir environment; | ||
34 | webRoot = "${app}/web"; | ||
35 | }; | ||
36 | }); | ||
37 | in app | ||
diff --git a/modules/private/websites/ludivine/app/php-packages.nix b/modules/private/websites/ludivine/app/php-packages.nix deleted file mode 100644 index 4dd5ef5..0000000 --- a/modules/private/websites/ludivine/app/php-packages.nix +++ /dev/null | |||
@@ -1,868 +0,0 @@ | |||
1 | # Generated with composer2nix and adapted to return only the list of | ||
2 | # packages | ||
3 | { composerEnv, fetchurl, fetchgit ? null }: | ||
4 | { | ||
5 | packages = { | ||
6 | "behat/transliterator" = { | ||
7 | targetDir = ""; | ||
8 | src = composerEnv.buildZipPackage { | ||
9 | name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c"; | ||
10 | src = fetchurl { | ||
11 | url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c; | ||
12 | sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0"; | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
16 | "components/bootstrap" = { | ||
17 | targetDir = ""; | ||
18 | src = composerEnv.buildZipPackage { | ||
19 | name = "components-bootstrap-5d60b2efd3159e1a9e203901849b3493c5aac61f"; | ||
20 | src = fetchurl { | ||
21 | url = https://api.github.com/repos/components/bootstrap/zipball/5d60b2efd3159e1a9e203901849b3493c5aac61f; | ||
22 | sha256 = "0jdyxl86dr2lf8az1vby84i7kdn1qcqkp8fy60rs18gav0aqp4fg"; | ||
23 | }; | ||
24 | }; | ||
25 | }; | ||
26 | "components/jquery" = { | ||
27 | targetDir = ""; | ||
28 | src = composerEnv.buildZipPackage { | ||
29 | name = "components-jquery-459648cda77875519c5da3ae1dd0ed5d170aa649"; | ||
30 | src = fetchurl { | ||
31 | url = https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649; | ||
32 | sha256 = "04jv8yifhwx0cpkw3y3ng0bs2dv77pzrdd640p59rjxwba6r1lbb"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | "components/jqueryui" = { | ||
37 | targetDir = ""; | ||
38 | src = composerEnv.buildZipPackage { | ||
39 | name = "components-jqueryui-c34f8dbf3ba57b3784b93f26119f436c0e8288e1"; | ||
40 | src = fetchurl { | ||
41 | url = https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1; | ||
42 | sha256 = "00nkg6z8g6l3jysyzsfmfxhxqcdsd3jfqib28j8kn2frzx508xv9"; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | "composer/ca-bundle" = { | ||
47 | targetDir = ""; | ||
48 | src = composerEnv.buildZipPackage { | ||
49 | name = "composer-ca-bundle-8afa52cd417f4ec417b4bfe86b68106538a87660"; | ||
50 | src = fetchurl { | ||
51 | url = https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660; | ||
52 | sha256 = "18b0gq29frjf4yhl4sl3i3zbz6zr3qjgsjb8cjdhz65vpb50581p"; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
56 | "doctrine/annotations" = { | ||
57 | targetDir = ""; | ||
58 | src = composerEnv.buildZipPackage { | ||
59 | name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"; | ||
60 | src = fetchurl { | ||
61 | url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5; | ||
62 | sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7"; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | "doctrine/cache" = { | ||
67 | targetDir = ""; | ||
68 | src = composerEnv.buildZipPackage { | ||
69 | name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57"; | ||
70 | src = fetchurl { | ||
71 | url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57; | ||
72 | sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | "doctrine/collections" = { | ||
77 | targetDir = ""; | ||
78 | src = composerEnv.buildZipPackage { | ||
79 | name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf"; | ||
80 | src = fetchurl { | ||
81 | url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf; | ||
82 | sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | "doctrine/common" = { | ||
87 | targetDir = ""; | ||
88 | src = composerEnv.buildZipPackage { | ||
89 | name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d"; | ||
90 | src = fetchurl { | ||
91 | url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d; | ||
92 | sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na"; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | "doctrine/dbal" = { | ||
97 | targetDir = ""; | ||
98 | src = composerEnv.buildZipPackage { | ||
99 | name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9"; | ||
100 | src = fetchurl { | ||
101 | url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9; | ||
102 | sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj"; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
106 | "doctrine/doctrine-bundle" = { | ||
107 | targetDir = ""; | ||
108 | src = composerEnv.buildZipPackage { | ||
109 | name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d"; | ||
110 | src = fetchurl { | ||
111 | url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d; | ||
112 | sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3"; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | "doctrine/doctrine-cache-bundle" = { | ||
117 | targetDir = ""; | ||
118 | src = composerEnv.buildZipPackage { | ||
119 | name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927"; | ||
120 | src = fetchurl { | ||
121 | url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927; | ||
122 | sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa"; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | "doctrine/doctrine-migrations-bundle" = { | ||
127 | targetDir = ""; | ||
128 | src = composerEnv.buildZipPackage { | ||
129 | name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce"; | ||
130 | src = fetchurl { | ||
131 | url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce; | ||
132 | sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn"; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | "doctrine/event-manager" = { | ||
137 | targetDir = ""; | ||
138 | src = composerEnv.buildZipPackage { | ||
139 | name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3"; | ||
140 | src = fetchurl { | ||
141 | url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3; | ||
142 | sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88"; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | "doctrine/inflector" = { | ||
147 | targetDir = ""; | ||
148 | src = composerEnv.buildZipPackage { | ||
149 | name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a"; | ||
150 | src = fetchurl { | ||
151 | url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a; | ||
152 | sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5"; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | "doctrine/instantiator" = { | ||
157 | targetDir = ""; | ||
158 | src = composerEnv.buildZipPackage { | ||
159 | name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"; | ||
160 | src = fetchurl { | ||
161 | url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda; | ||
162 | sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy"; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | "doctrine/lexer" = { | ||
167 | targetDir = ""; | ||
168 | src = composerEnv.buildZipPackage { | ||
169 | name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c"; | ||
170 | src = fetchurl { | ||
171 | url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c; | ||
172 | sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | "doctrine/migrations" = { | ||
177 | targetDir = ""; | ||
178 | src = composerEnv.buildZipPackage { | ||
179 | name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6"; | ||
180 | src = fetchurl { | ||
181 | url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6; | ||
182 | sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld"; | ||
183 | }; | ||
184 | }; | ||
185 | }; | ||
186 | "doctrine/orm" = { | ||
187 | targetDir = ""; | ||
188 | src = composerEnv.buildZipPackage { | ||
189 | name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8"; | ||
190 | src = fetchurl { | ||
191 | url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8; | ||
192 | sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls"; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | "doctrine/persistence" = { | ||
197 | targetDir = ""; | ||
198 | src = composerEnv.buildZipPackage { | ||
199 | name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38"; | ||
200 | src = fetchurl { | ||
201 | url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38; | ||
202 | sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7"; | ||
203 | }; | ||
204 | }; | ||
205 | }; | ||
206 | "doctrine/reflection" = { | ||
207 | targetDir = ""; | ||
208 | src = composerEnv.buildZipPackage { | ||
209 | name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6"; | ||
210 | src = fetchurl { | ||
211 | url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6; | ||
212 | sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | "fig/link-util" = { | ||
217 | targetDir = ""; | ||
218 | src = composerEnv.buildZipPackage { | ||
219 | name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac"; | ||
220 | src = fetchurl { | ||
221 | url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac; | ||
222 | sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64"; | ||
223 | }; | ||
224 | }; | ||
225 | }; | ||
226 | "gedmo/doctrine-extensions" = { | ||
227 | targetDir = ""; | ||
228 | src = composerEnv.buildZipPackage { | ||
229 | name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27"; | ||
230 | src = fetchurl { | ||
231 | url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27; | ||
232 | sha256 = "1i33xy9s18rncc1fllwi2qi7hrxj8g762fvgl9np7xndxa7kclyb"; | ||
233 | }; | ||
234 | }; | ||
235 | }; | ||
236 | "immae/ludivine-ckeditor-component" = { | ||
237 | targetDir = ""; | ||
238 | src = fetchgit { | ||
239 | name = "immae-ludivine-ckeditor-component-1794320dcfdfcd19572fb1676294f9853a6bbc20"; | ||
240 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-ckeditor-component.git"; | ||
241 | rev = "1794320dcfdfcd19572fb1676294f9853a6bbc20"; | ||
242 | sha256 = "080f3znvp0aj5jdpc3ywis0kfzvkwz5mw2jcj12gwq3r5g5i8zdq"; | ||
243 | }; | ||
244 | }; | ||
245 | "immae/ludivine-slick-component" = { | ||
246 | targetDir = ""; | ||
247 | src = fetchgit { | ||
248 | name = "immae-ludivine-slick-component-604734c4a960aac3d99f1008337181ed2b0f04db"; | ||
249 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-slick-component.git"; | ||
250 | rev = "604734c4a960aac3d99f1008337181ed2b0f04db"; | ||
251 | sha256 = "041wqv9pa9nvqcgqykx6cnbj539qnr9h1iym7l54igw12yj57w06"; | ||
252 | }; | ||
253 | }; | ||
254 | "incenteev/composer-parameter-handler" = { | ||
255 | targetDir = ""; | ||
256 | src = composerEnv.buildZipPackage { | ||
257 | name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550"; | ||
258 | src = fetchurl { | ||
259 | url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550; | ||
260 | sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm"; | ||
261 | }; | ||
262 | }; | ||
263 | }; | ||
264 | "jdorn/sql-formatter" = { | ||
265 | targetDir = ""; | ||
266 | src = composerEnv.buildZipPackage { | ||
267 | name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc"; | ||
268 | src = fetchurl { | ||
269 | url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc; | ||
270 | sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi"; | ||
271 | }; | ||
272 | }; | ||
273 | }; | ||
274 | "kriswallsmith/assetic" = { | ||
275 | targetDir = ""; | ||
276 | src = composerEnv.buildZipPackage { | ||
277 | name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"; | ||
278 | src = fetchurl { | ||
279 | url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1; | ||
280 | sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8"; | ||
281 | }; | ||
282 | }; | ||
283 | }; | ||
284 | "leapt/im-bundle" = { | ||
285 | targetDir = ""; | ||
286 | src = composerEnv.buildZipPackage { | ||
287 | name = "leapt-im-bundle-83442778d118f6edb537b93f9746c3a97e56c3d1"; | ||
288 | src = fetchurl { | ||
289 | url = https://api.github.com/repos/leapt/im-bundle/zipball/83442778d118f6edb537b93f9746c3a97e56c3d1; | ||
290 | sha256 = "1gm4ih3v1j0xjm7mrpspd3yacdwvbqgag22cyqmix0hc9hw3pc6a"; | ||
291 | }; | ||
292 | }; | ||
293 | }; | ||
294 | "luxifer/doctrine-functions" = { | ||
295 | targetDir = ""; | ||
296 | src = composerEnv.buildZipPackage { | ||
297 | name = "luxifer-doctrine-functions-e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c"; | ||
298 | src = fetchurl { | ||
299 | url = https://api.github.com/repos/luxifer/doctrine-functions/zipball/e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c; | ||
300 | sha256 = "1sw4826nvs5q0y2na9m26rbxfiaw0kfqwhky7x7apicgx5adqfa9"; | ||
301 | }; | ||
302 | }; | ||
303 | }; | ||
304 | "monolog/monolog" = { | ||
305 | targetDir = ""; | ||
306 | src = composerEnv.buildZipPackage { | ||
307 | name = "monolog-monolog-bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"; | ||
308 | src = fetchurl { | ||
309 | url = https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266; | ||
310 | sha256 = "0h3nnxjf2bdh7nmpqnpij99lqv6bw13r2bx83d8vn5zvblwg5png"; | ||
311 | }; | ||
312 | }; | ||
313 | }; | ||
314 | "ocramius/package-versions" = { | ||
315 | targetDir = ""; | ||
316 | needsModifyRights = true; | ||
317 | src = composerEnv.buildZipPackage { | ||
318 | name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f"; | ||
319 | src = fetchurl { | ||
320 | url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f; | ||
321 | sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881"; | ||
322 | }; | ||
323 | }; | ||
324 | }; | ||
325 | "ocramius/proxy-manager" = { | ||
326 | targetDir = ""; | ||
327 | src = composerEnv.buildZipPackage { | ||
328 | name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1"; | ||
329 | src = fetchurl { | ||
330 | url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1; | ||
331 | sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn"; | ||
332 | }; | ||
333 | }; | ||
334 | }; | ||
335 | "paragonie/random_compat" = { | ||
336 | targetDir = ""; | ||
337 | src = composerEnv.buildZipPackage { | ||
338 | name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"; | ||
339 | src = fetchurl { | ||
340 | url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95; | ||
341 | sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09"; | ||
342 | }; | ||
343 | }; | ||
344 | }; | ||
345 | "psr/cache" = { | ||
346 | targetDir = ""; | ||
347 | src = composerEnv.buildZipPackage { | ||
348 | name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8"; | ||
349 | src = fetchurl { | ||
350 | url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8; | ||
351 | sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz"; | ||
352 | }; | ||
353 | }; | ||
354 | }; | ||
355 | "psr/container" = { | ||
356 | targetDir = ""; | ||
357 | src = composerEnv.buildZipPackage { | ||
358 | name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f"; | ||
359 | src = fetchurl { | ||
360 | url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f; | ||
361 | sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j"; | ||
362 | }; | ||
363 | }; | ||
364 | }; | ||
365 | "psr/link" = { | ||
366 | targetDir = ""; | ||
367 | src = composerEnv.buildZipPackage { | ||
368 | name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562"; | ||
369 | src = fetchurl { | ||
370 | url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562; | ||
371 | sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13"; | ||
372 | }; | ||
373 | }; | ||
374 | }; | ||
375 | "psr/log" = { | ||
376 | targetDir = ""; | ||
377 | src = composerEnv.buildZipPackage { | ||
378 | name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"; | ||
379 | src = fetchurl { | ||
380 | url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd; | ||
381 | sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d"; | ||
382 | }; | ||
383 | }; | ||
384 | }; | ||
385 | "psr/simple-cache" = { | ||
386 | targetDir = ""; | ||
387 | src = composerEnv.buildZipPackage { | ||
388 | name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"; | ||
389 | src = fetchurl { | ||
390 | url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b; | ||
391 | sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw"; | ||
392 | }; | ||
393 | }; | ||
394 | }; | ||
395 | "robloach/component-installer" = { | ||
396 | targetDir = ""; | ||
397 | src = composerEnv.buildZipPackage { | ||
398 | name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7"; | ||
399 | src = fetchurl { | ||
400 | url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7; | ||
401 | sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9"; | ||
402 | }; | ||
403 | }; | ||
404 | }; | ||
405 | "sensio/distribution-bundle" = { | ||
406 | targetDir = ""; | ||
407 | src = composerEnv.buildZipPackage { | ||
408 | name = "sensio-distribution-bundle-59eac70f15f97ee945924948a6f5e2f6f86b7a4b"; | ||
409 | src = fetchurl { | ||
410 | url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b; | ||
411 | sha256 = "05mj4c0ahwg6l2wipyqfyyjjp1m2vvl7ymp61nvwv7zhvqacvljs"; | ||
412 | }; | ||
413 | }; | ||
414 | }; | ||
415 | "sensio/framework-extra-bundle" = { | ||
416 | targetDir = ""; | ||
417 | src = composerEnv.buildZipPackage { | ||
418 | name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a"; | ||
419 | src = fetchurl { | ||
420 | url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a; | ||
421 | sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck"; | ||
422 | }; | ||
423 | }; | ||
424 | }; | ||
425 | "sensiolabs/security-checker" = { | ||
426 | targetDir = ""; | ||
427 | src = composerEnv.buildZipPackage { | ||
428 | name = "sensiolabs-security-checker-46be3f58adac13084497961e10eed9a7fb4d44d1"; | ||
429 | src = fetchurl { | ||
430 | url = https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1; | ||
431 | sha256 = "1caqf3hdfsajj9nb8fpinvs6apv90g1srwxcyxdnr6a8d6g0p6qi"; | ||
432 | }; | ||
433 | }; | ||
434 | }; | ||
435 | "swiftmailer/swiftmailer" = { | ||
436 | targetDir = ""; | ||
437 | src = composerEnv.buildZipPackage { | ||
438 | name = "swiftmailer-swiftmailer-181b89f18a90f8925ef805f950d47a7190e9b950"; | ||
439 | src = fetchurl { | ||
440 | url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950; | ||
441 | sha256 = "0hkmawv3bhbqdavy4wxqhzajg5zqd7chsi8w27y2zdi5r35az75d"; | ||
442 | }; | ||
443 | }; | ||
444 | }; | ||
445 | "symfony/assetic-bundle" = { | ||
446 | targetDir = ""; | ||
447 | src = composerEnv.buildZipPackage { | ||
448 | name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c"; | ||
449 | src = fetchurl { | ||
450 | url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c; | ||
451 | sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc"; | ||
452 | }; | ||
453 | }; | ||
454 | }; | ||
455 | "symfony/monolog-bundle" = { | ||
456 | targetDir = ""; | ||
457 | src = composerEnv.buildZipPackage { | ||
458 | name = "symfony-monolog-bundle-572e143afc03419a75ab002c80a2fd99299195ff"; | ||
459 | src = fetchurl { | ||
460 | url = https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff; | ||
461 | sha256 = "0g8icydnwfbqcbc56pqyc8bv1vp31331w0r75r3hqh225p2j1nd7"; | ||
462 | }; | ||
463 | }; | ||
464 | }; | ||
465 | "symfony/polyfill-apcu" = { | ||
466 | targetDir = ""; | ||
467 | src = composerEnv.buildZipPackage { | ||
468 | name = "symfony-polyfill-apcu-19e1b73bf255265ad0b568f81766ae2a3266d8d2"; | ||
469 | src = fetchurl { | ||
470 | url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2; | ||
471 | sha256 = "0jg33c81kwkpxk0b18jkslz9jkbkxl5k48h6m5b33dm63p1fj05r"; | ||
472 | }; | ||
473 | }; | ||
474 | }; | ||
475 | "symfony/polyfill-ctype" = { | ||
476 | targetDir = ""; | ||
477 | src = composerEnv.buildZipPackage { | ||
478 | name = "symfony-polyfill-ctype-e3d826245268269cd66f8326bd8bc066687b4a19"; | ||
479 | src = fetchurl { | ||
480 | url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19; | ||
481 | sha256 = "16md0qmy5jvvl7lc6n6r5hxjdr5i30vl6n9rpkm4b11rh2nqh7mh"; | ||
482 | }; | ||
483 | }; | ||
484 | }; | ||
485 | "symfony/polyfill-intl-icu" = { | ||
486 | targetDir = ""; | ||
487 | src = composerEnv.buildZipPackage { | ||
488 | name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644"; | ||
489 | src = fetchurl { | ||
490 | url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644; | ||
491 | sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq"; | ||
492 | }; | ||
493 | }; | ||
494 | }; | ||
495 | "symfony/polyfill-mbstring" = { | ||
496 | targetDir = ""; | ||
497 | src = composerEnv.buildZipPackage { | ||
498 | name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494"; | ||
499 | src = fetchurl { | ||
500 | url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494; | ||
501 | sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi"; | ||
502 | }; | ||
503 | }; | ||
504 | }; | ||
505 | "symfony/polyfill-php56" = { | ||
506 | targetDir = ""; | ||
507 | src = composerEnv.buildZipPackage { | ||
508 | name = "symfony-polyfill-php56-ff208829fe1aa48ab9af356992bb7199fed551af"; | ||
509 | src = fetchurl { | ||
510 | url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af; | ||
511 | sha256 = "0vmpiwakc7hpbr6jwpk7cqcy41ybgwl6jkn3q8c4ryxynknn5hfk"; | ||
512 | }; | ||
513 | }; | ||
514 | }; | ||
515 | "symfony/polyfill-php70" = { | ||
516 | targetDir = ""; | ||
517 | src = composerEnv.buildZipPackage { | ||
518 | name = "symfony-polyfill-php70-6b88000cdd431cd2e940caa2cb569201f3f84224"; | ||
519 | src = fetchurl { | ||
520 | url = https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224; | ||
521 | sha256 = "08h77r1i2q4pwdd0yk3pfhqqgk0z7gwmkzmvykx9bfv1z7a0h8ik"; | ||
522 | }; | ||
523 | }; | ||
524 | }; | ||
525 | "symfony/polyfill-util" = { | ||
526 | targetDir = ""; | ||
527 | src = composerEnv.buildZipPackage { | ||
528 | name = "symfony-polyfill-util-3b58903eae668d348a7126f999b0da0f2f93611c"; | ||
529 | src = fetchurl { | ||
530 | url = https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c; | ||
531 | sha256 = "00bb5mgljk6d54nyvd4gmc7mbzfr4b4q7h3rxmv8rzq613wcjp3i"; | ||
532 | }; | ||
533 | }; | ||
534 | }; | ||
535 | "symfony/swiftmailer-bundle" = { | ||
536 | targetDir = ""; | ||
537 | src = composerEnv.buildZipPackage { | ||
538 | name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec"; | ||
539 | src = fetchurl { | ||
540 | url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec; | ||
541 | sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01"; | ||
542 | }; | ||
543 | }; | ||
544 | }; | ||
545 | "symfony/symfony" = { | ||
546 | targetDir = ""; | ||
547 | src = composerEnv.buildZipPackage { | ||
548 | name = "symfony-symfony-f6b8ddc362b1cf3fb06548693c3adbb736092412"; | ||
549 | src = fetchurl { | ||
550 | url = https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412; | ||
551 | sha256 = "0ip7k5xf34w4p1zvv2nkv4nyik3asidk3zlgzyc1v57429z0f28q"; | ||
552 | }; | ||
553 | }; | ||
554 | }; | ||
555 | "twig/extensions" = { | ||
556 | targetDir = ""; | ||
557 | src = composerEnv.buildZipPackage { | ||
558 | name = "twig-extensions-57873c8b0c1be51caa47df2cdb824490beb16202"; | ||
559 | src = fetchurl { | ||
560 | url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202; | ||
561 | sha256 = "1sjajjd6vnczvdrl9b8zhzr06l5dflzqiwg9d33d92q8gli4j7jn"; | ||
562 | }; | ||
563 | }; | ||
564 | }; | ||
565 | "twig/twig" = { | ||
566 | targetDir = ""; | ||
567 | src = composerEnv.buildZipPackage { | ||
568 | name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1"; | ||
569 | src = fetchurl { | ||
570 | url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1; | ||
571 | sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n"; | ||
572 | }; | ||
573 | }; | ||
574 | }; | ||
575 | "zendframework/zend-code" = { | ||
576 | targetDir = ""; | ||
577 | src = composerEnv.buildZipPackage { | ||
578 | name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb"; | ||
579 | src = fetchurl { | ||
580 | url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb; | ||
581 | sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1"; | ||
582 | }; | ||
583 | }; | ||
584 | }; | ||
585 | "zendframework/zend-eventmanager" = { | ||
586 | targetDir = ""; | ||
587 | src = composerEnv.buildZipPackage { | ||
588 | name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd"; | ||
589 | src = fetchurl { | ||
590 | url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd; | ||
591 | sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n"; | ||
592 | }; | ||
593 | }; | ||
594 | }; | ||
595 | }; | ||
596 | devPackages = { | ||
597 | "doctrine/data-fixtures" = { | ||
598 | targetDir = ""; | ||
599 | src = composerEnv.buildZipPackage { | ||
600 | name = "doctrine-data-fixtures-3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a"; | ||
601 | src = fetchurl { | ||
602 | url = https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a; | ||
603 | sha256 = "0wbxhy7hq17laqgnq9x9ygysv0n1kn7s4x3v89pk7iy622pil3sm"; | ||
604 | }; | ||
605 | }; | ||
606 | }; | ||
607 | "doctrine/doctrine-fixtures-bundle" = { | ||
608 | targetDir = ""; | ||
609 | src = composerEnv.buildZipPackage { | ||
610 | name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273"; | ||
611 | src = fetchurl { | ||
612 | url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273; | ||
613 | sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf"; | ||
614 | }; | ||
615 | }; | ||
616 | }; | ||
617 | "fzaninotto/faker" = { | ||
618 | targetDir = ""; | ||
619 | src = composerEnv.buildZipPackage { | ||
620 | name = "fzaninotto-faker-d0190b156bcca848d401fb80f31f504f37141c8d"; | ||
621 | src = fetchurl { | ||
622 | url = https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d; | ||
623 | sha256 = "1x7xrxw14x7b0iq7sxi9ynswk8ljga62i77ch7xip4dwgq1dypvi"; | ||
624 | }; | ||
625 | }; | ||
626 | }; | ||
627 | "league/factory-muffin" = { | ||
628 | targetDir = ""; | ||
629 | src = composerEnv.buildZipPackage { | ||
630 | name = "league-factory-muffin-316ed2bac70178567f995d877b831804c9c58d5a"; | ||
631 | src = fetchurl { | ||
632 | url = https://api.github.com/repos/thephpleague/factory-muffin/zipball/316ed2bac70178567f995d877b831804c9c58d5a; | ||
633 | sha256 = "1fxh0hsqifmnhgkwyd460x3w9wn74369lmak3f1m24mn2asiynxq"; | ||
634 | }; | ||
635 | }; | ||
636 | }; | ||
637 | "league/factory-muffin-faker" = { | ||
638 | targetDir = ""; | ||
639 | src = composerEnv.buildZipPackage { | ||
640 | name = "league-factory-muffin-faker-30dbd11bb6be03b47e52bd60006ae198d20ab426"; | ||
641 | src = fetchurl { | ||
642 | url = https://api.github.com/repos/thephpleague/factory-muffin-faker/zipball/30dbd11bb6be03b47e52bd60006ae198d20ab426; | ||
643 | sha256 = "0dsimjdnsmzdd4vwjzw1gz1bb4zlhmv66g3fc9k4nj5bqch6mny1"; | ||
644 | }; | ||
645 | }; | ||
646 | }; | ||
647 | "mikey179/vfsStream" = { | ||
648 | targetDir = ""; | ||
649 | src = composerEnv.buildZipPackage { | ||
650 | name = "mikey179-vfsStream-d5fec95f541d4d71c4823bb5e30cf9b9e5b96145"; | ||
651 | src = fetchurl { | ||
652 | url = https://github.com/bovigo/vfsStream/archive/v1.6.5.zip; | ||
653 | sha256 = "16vi7ci8nxq5hxnzzjmmia73gdm55qcwn006c6hgdwa3i58dnr4l"; | ||
654 | }; | ||
655 | }; | ||
656 | }; | ||
657 | "phpdocumentor/reflection-common" = { | ||
658 | targetDir = ""; | ||
659 | src = composerEnv.buildZipPackage { | ||
660 | name = "phpdocumentor-reflection-common-21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"; | ||
661 | src = fetchurl { | ||
662 | url = https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6; | ||
663 | sha256 = "1yaf1zg9lnkfnq2ndpviv0hg5bza9vjvv5l4wgcn25lx1p8a94w2"; | ||
664 | }; | ||
665 | }; | ||
666 | }; | ||
667 | "phpdocumentor/reflection-docblock" = { | ||
668 | targetDir = ""; | ||
669 | src = composerEnv.buildZipPackage { | ||
670 | name = "phpdocumentor-reflection-docblock-94fd0001232e47129dd3504189fa1c7225010d08"; | ||
671 | src = fetchurl { | ||
672 | url = https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08; | ||
673 | sha256 = "03zvxqb5n9ddvysj8mjdwf59h7sagj5x5z15nhs7mqpcky1w388x"; | ||
674 | }; | ||
675 | }; | ||
676 | }; | ||
677 | "phpdocumentor/type-resolver" = { | ||
678 | targetDir = ""; | ||
679 | src = composerEnv.buildZipPackage { | ||
680 | name = "phpdocumentor-type-resolver-9c977708995954784726e25d0cd1dddf4e65b0f7"; | ||
681 | src = fetchurl { | ||
682 | url = https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7; | ||
683 | sha256 = "0h888r2iy2290yp9i3fij8wd5b7960yi7yn1rwh26x1xxd83n2mb"; | ||
684 | }; | ||
685 | }; | ||
686 | }; | ||
687 | "phpspec/prophecy" = { | ||
688 | targetDir = ""; | ||
689 | src = composerEnv.buildZipPackage { | ||
690 | name = "phpspec-prophecy-4ba436b55987b4bf311cb7c6ba82aa528aac0a06"; | ||
691 | src = fetchurl { | ||
692 | url = https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06; | ||
693 | sha256 = "0sz9fg8r4yvpgrhsh6qaic3p89pafdj8bdf4izbcccq6mdhclxn6"; | ||
694 | }; | ||
695 | }; | ||
696 | }; | ||
697 | "phpunit/php-code-coverage" = { | ||
698 | targetDir = ""; | ||
699 | src = composerEnv.buildZipPackage { | ||
700 | name = "phpunit-php-code-coverage-eabf68b476ac7d0f73793aada060f1c1a9bf8979"; | ||
701 | src = fetchurl { | ||
702 | url = https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979; | ||
703 | sha256 = "0xfkf2kaqrid0ajr8qfh3qnpiqqddl0cmmdy6hd7l9y7ziy6qz8d"; | ||
704 | }; | ||
705 | }; | ||
706 | }; | ||
707 | "phpunit/php-file-iterator" = { | ||
708 | targetDir = ""; | ||
709 | src = composerEnv.buildZipPackage { | ||
710 | name = "phpunit-php-file-iterator-730b01bc3e867237eaac355e06a36b85dd93a8b4"; | ||
711 | src = fetchurl { | ||
712 | url = https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4; | ||
713 | sha256 = "0kbg907g9hrx7pv8v0wnf4ifqywdgvigq6y6z00lyhgd0b8is060"; | ||
714 | }; | ||
715 | }; | ||
716 | }; | ||
717 | "phpunit/php-text-template" = { | ||
718 | targetDir = ""; | ||
719 | src = composerEnv.buildZipPackage { | ||
720 | name = "phpunit-php-text-template-31f8b717e51d9a2afca6c9f046f5d69fc27c8686"; | ||
721 | src = fetchurl { | ||
722 | url = https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686; | ||
723 | sha256 = "1y03m38qqvsbvyakd72v4dram81dw3swyn5jpss153i5nmqr4p76"; | ||
724 | }; | ||
725 | }; | ||
726 | }; | ||
727 | "phpunit/php-timer" = { | ||
728 | targetDir = ""; | ||
729 | src = composerEnv.buildZipPackage { | ||
730 | name = "phpunit-php-timer-3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"; | ||
731 | src = fetchurl { | ||
732 | url = https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f; | ||
733 | sha256 = "1j04r0hqzrv6m1jk5nb92k2nnana72nscqpfk3rgv3fzrrv69ljr"; | ||
734 | }; | ||
735 | }; | ||
736 | }; | ||
737 | "phpunit/php-token-stream" = { | ||
738 | targetDir = ""; | ||
739 | src = composerEnv.buildZipPackage { | ||
740 | name = "phpunit-php-token-stream-1ce90ba27c42e4e44e6d8458241466380b51fa16"; | ||
741 | src = fetchurl { | ||
742 | url = https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16; | ||
743 | sha256 = "0j1v83m268cddhyzi8qvqfzhpz12hrm3dyw6skyqvljdp7l9x6lk"; | ||
744 | }; | ||
745 | }; | ||
746 | }; | ||
747 | "phpunit/phpunit" = { | ||
748 | targetDir = ""; | ||
749 | src = composerEnv.buildZipPackage { | ||
750 | name = "phpunit-phpunit-46023de9a91eec7dfb06cc56cb4e260017298517"; | ||
751 | src = fetchurl { | ||
752 | url = https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517; | ||
753 | sha256 = "0mxhgcmc575hw3n7czindgqiha8jhdi4p19h883vf15fg6xf5iv6"; | ||
754 | }; | ||
755 | }; | ||
756 | }; | ||
757 | "phpunit/phpunit-mock-objects" = { | ||
758 | targetDir = ""; | ||
759 | src = composerEnv.buildZipPackage { | ||
760 | name = "phpunit-phpunit-mock-objects-ac8e7a3db35738d56ee9a76e78a4e03d97628983"; | ||
761 | src = fetchurl { | ||
762 | url = https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983; | ||
763 | sha256 = "0s7nyyafdqw2hp7wsd2mxnjxpk26630vv3wii6hcdb0q8xy8r78i"; | ||
764 | }; | ||
765 | }; | ||
766 | }; | ||
767 | "sebastian/comparator" = { | ||
768 | targetDir = ""; | ||
769 | src = composerEnv.buildZipPackage { | ||
770 | name = "sebastian-comparator-2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"; | ||
771 | src = fetchurl { | ||
772 | url = https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be; | ||
773 | sha256 = "0ymarxgnr8b3iy0w18h5z13iiv0ja17vjryryzfcwlqqhlc6w7iq"; | ||
774 | }; | ||
775 | }; | ||
776 | }; | ||
777 | "sebastian/diff" = { | ||
778 | targetDir = ""; | ||
779 | src = composerEnv.buildZipPackage { | ||
780 | name = "sebastian-diff-7f066a26a962dbe58ddea9f72a4e82874a3975a4"; | ||
781 | src = fetchurl { | ||
782 | url = https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4; | ||
783 | sha256 = "1ppx21vjj79z6d584ryq451k7kvdc511awmqjkj9g4vxj1s1h3j6"; | ||
784 | }; | ||
785 | }; | ||
786 | }; | ||
787 | "sebastian/environment" = { | ||
788 | targetDir = ""; | ||
789 | src = composerEnv.buildZipPackage { | ||
790 | name = "sebastian-environment-be2c607e43ce4c89ecd60e75c6a85c126e754aea"; | ||
791 | src = fetchurl { | ||
792 | url = https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea; | ||
793 | sha256 = "0gzgnk847kf18krq4ybbi2knzj7i0kdghsdlj6qynzzrlf7idij0"; | ||
794 | }; | ||
795 | }; | ||
796 | }; | ||
797 | "sebastian/exporter" = { | ||
798 | targetDir = ""; | ||
799 | src = composerEnv.buildZipPackage { | ||
800 | name = "sebastian-exporter-42c4c2eec485ee3e159ec9884f95b431287edde4"; | ||
801 | src = fetchurl { | ||
802 | url = https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4; | ||
803 | sha256 = "1p5mc4lqwxn79v06jjlgqxynblywcxw2mkhbf6r4jlz0bsrqafxn"; | ||
804 | }; | ||
805 | }; | ||
806 | }; | ||
807 | "sebastian/global-state" = { | ||
808 | targetDir = ""; | ||
809 | src = composerEnv.buildZipPackage { | ||
810 | name = "sebastian-global-state-bc37d50fea7d017d3d340f230811c9f1d7280af4"; | ||
811 | src = fetchurl { | ||
812 | url = https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4; | ||
813 | sha256 = "0y1x16mf9q38s7rlc7k2s6sxn2ccxmyk1q5zgh24hr4yp035f0pb"; | ||
814 | }; | ||
815 | }; | ||
816 | }; | ||
817 | "sebastian/recursion-context" = { | ||
818 | targetDir = ""; | ||
819 | src = composerEnv.buildZipPackage { | ||
820 | name = "sebastian-recursion-context-b19cc3298482a335a95f3016d2f8a6950f0fbcd7"; | ||
821 | src = fetchurl { | ||
822 | url = https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7; | ||
823 | sha256 = "1i9xdv55nkg1yy5q4lmpq1jsjif69hjrwmr1zha6b5qjf6ivlvjm"; | ||
824 | }; | ||
825 | }; | ||
826 | }; | ||
827 | "sebastian/version" = { | ||
828 | targetDir = ""; | ||
829 | src = composerEnv.buildZipPackage { | ||
830 | name = "sebastian-version-58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"; | ||
831 | src = fetchurl { | ||
832 | url = https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6; | ||
833 | sha256 = "1s71b6ss29pcsm0120myriwnzla1kpj13f3f739c7k1wfm69h4wz"; | ||
834 | }; | ||
835 | }; | ||
836 | }; | ||
837 | "sensio/generator-bundle" = { | ||
838 | targetDir = ""; | ||
839 | src = composerEnv.buildZipPackage { | ||
840 | name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65"; | ||
841 | src = fetchurl { | ||
842 | url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65; | ||
843 | sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3"; | ||
844 | }; | ||
845 | }; | ||
846 | }; | ||
847 | "symfony/phpunit-bridge" = { | ||
848 | targetDir = ""; | ||
849 | src = composerEnv.buildZipPackage { | ||
850 | name = "symfony-phpunit-bridge-2155067dfc73e0e77dbc26f236af17e4df552de5"; | ||
851 | src = fetchurl { | ||
852 | url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5; | ||
853 | sha256 = "1fhqyhvns69pkv086d1sp918bakqq9pk9d16nzck2s4pfdf097pj"; | ||
854 | }; | ||
855 | }; | ||
856 | }; | ||
857 | "webmozart/assert" = { | ||
858 | targetDir = ""; | ||
859 | src = composerEnv.buildZipPackage { | ||
860 | name = "webmozart-assert-83e253c8e0be5b0257b881e1827274667c5c17a9"; | ||
861 | src = fetchurl { | ||
862 | url = https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9; | ||
863 | sha256 = "04w7rrjy43k93376an7xhnxqn2ibbw5fra7rqky7j1dl1f0hkn6d"; | ||
864 | }; | ||
865 | }; | ||
866 | }; | ||
867 | }; | ||
868 | } | ||
diff --git a/modules/private/websites/ludivine/integration.nix b/modules/private/websites/ludivine/integration.nix deleted file mode 100644 index 49aa113..0000000 --- a/modules/private/websites/ludivine/integration.nix +++ /dev/null | |||
@@ -1,145 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.ludivine.integration; | ||
4 | cfg = config.myServices.websites.ludivine.integration; | ||
5 | pcfg = config.services.phpApplication; | ||
6 | webRoot = "/var/lib/ftp/immae/ludivine/web"; | ||
7 | in { | ||
8 | options.myServices.websites.ludivine.integration.enable = lib.mkEnableOption "enable Ludivine's website in integration"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.phpApplication.apps.ludivine_integration = { | ||
12 | websiteEnv = "integration"; | ||
13 | httpdUser = config.services.httpd.Inte.user; | ||
14 | httpdGroup = config.services.httpd.Inte.group; | ||
15 | inherit webRoot; | ||
16 | varDir = "/var/lib/ftp/immae/ludivine_var"; | ||
17 | app = "/var/lib/ftp/immae/ludivine"; | ||
18 | varDirPaths = { | ||
19 | "tmp" = "0700"; | ||
20 | }; | ||
21 | serviceDeps = [ "mysql.service" ]; | ||
22 | preStartActions = [ | ||
23 | "./bin/console --env=dev cache:clear --no-warmup" | ||
24 | ]; | ||
25 | phpOpenbasedir = [ "/tmp" ]; | ||
26 | phpPool = { | ||
27 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
28 | "php_admin_value[post_max_size]" = "20M"; | ||
29 | #"php_admin_flag[log_errors]" = "on"; | ||
30 | "pm" = "ondemand"; | ||
31 | "pm.max_children" = "5"; | ||
32 | "pm.process_idle_timeout" = "60"; | ||
33 | }; | ||
34 | phpEnv = { | ||
35 | PATH = lib.makeBinPath [ | ||
36 | # below ones don't need to be in the PATH but they’re used in | ||
37 | # secrets | ||
38 | pkgs.imagemagick pkgs.sass pkgs.ruby | ||
39 | ]; | ||
40 | SYMFONY_DEBUG_MODE = "\"yes\""; | ||
41 | }; | ||
42 | phpWatchFiles = [ | ||
43 | config.secrets.fullPaths."websites/ludivine/integration" | ||
44 | ]; | ||
45 | phpPackage = pkgs.php72; | ||
46 | }; | ||
47 | |||
48 | secrets.keys."websites/ludivine/integration" = { | ||
49 | user = config.services.httpd.Inte.user; | ||
50 | group = config.services.httpd.Inte.group; | ||
51 | permissions = "0400"; | ||
52 | text = '' | ||
53 | # This file is auto-generated during the composer install | ||
54 | parameters: | ||
55 | database_host: ${secrets.mysql.host} | ||
56 | database_port: ${secrets.mysql.port} | ||
57 | database_name: ${secrets.mysql.database} | ||
58 | database_user: ${secrets.mysql.user} | ||
59 | database_password: ${secrets.mysql.password} | ||
60 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
61 | mailer_transport: smtp | ||
62 | mailer_host: 127.0.0.1 | ||
63 | mailer_user: null | ||
64 | mailer_password: null | ||
65 | secret: ${secrets.secret} | ||
66 | ldap_host: ldap.immae.eu | ||
67 | ldap_port: 636 | ||
68 | ldap_version: 3 | ||
69 | ldap_ssl: true | ||
70 | ldap_tls: false | ||
71 | ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu' | ||
72 | ldap_base_dn: 'dc=immae,dc=eu' | ||
73 | ldap_search_dn: '${secrets.ldap.dn}' | ||
74 | ldap_search_password: '${secrets.ldap.password}' | ||
75 | ldap_search_filter: '${secrets.ldap.filter}' | ||
76 | leapt_im: | ||
77 | binary_path: ${pkgs.imagemagick}/bin | ||
78 | assetic: | ||
79 | sass: ${pkgs.sass}/bin/sass | ||
80 | ruby: ${pkgs.ruby}/bin/ruby | ||
81 | ''; | ||
82 | }; | ||
83 | |||
84 | services.websites.env.integration.vhostConfs.ludivine_integration = { | ||
85 | certName = "integration"; | ||
86 | addToCerts = true; | ||
87 | hosts = [ "test.lc.immae.dev" ]; | ||
88 | root = webRoot; | ||
89 | extraConfig = [ | ||
90 | '' | ||
91 | <FilesMatch "\.php$"> | ||
92 | SetHandler "proxy:unix:${pcfg.phpListenPaths.ludivine_integration}|fcgi://localhost" | ||
93 | </FilesMatch> | ||
94 | |||
95 | <Location /> | ||
96 | Use LDAPConnect | ||
97 | Require ldap-group cn=lc.immae.dev,cn=httpd,ou=services,dc=immae,dc=eu | ||
98 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://ludivinecassal.com\"></html>" | ||
99 | </Location> | ||
100 | |||
101 | <Directory ${webRoot}> | ||
102 | Options Indexes FollowSymLinks MultiViews Includes | ||
103 | AllowOverride None | ||
104 | Require all granted | ||
105 | |||
106 | DirectoryIndex app_dev.php | ||
107 | |||
108 | <IfModule mod_negotiation.c> | ||
109 | Options -MultiViews | ||
110 | </IfModule> | ||
111 | |||
112 | <IfModule mod_rewrite.c> | ||
113 | RewriteEngine On | ||
114 | |||
115 | RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ | ||
116 | RewriteRule ^(.*) - [E=BASE:%1] | ||
117 | |||
118 | # Maintenance script | ||
119 | RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f | ||
120 | RewriteCond %{SCRIPT_FILENAME} !maintenance.php | ||
121 | RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L] | ||
122 | ErrorDocument 503 /maintenance.php | ||
123 | |||
124 | # Sets the HTTP_AUTHORIZATION header removed by Apache | ||
125 | RewriteCond %{HTTP:Authorization} . | ||
126 | RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | ||
127 | |||
128 | RewriteCond %{ENV:REDIRECT_STATUS} ^$ | ||
129 | RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] | ||
130 | |||
131 | # If the requested filename exists, simply serve it. | ||
132 | # We only want to let Apache serve files and not directories. | ||
133 | RewriteCond %{REQUEST_FILENAME} -f | ||
134 | RewriteRule ^ - [L] | ||
135 | |||
136 | # Rewrite all other queries to the front controller. | ||
137 | RewriteRule ^ %{ENV:BASE}/app_dev.php [L] | ||
138 | </IfModule> | ||
139 | |||
140 | </Directory> | ||
141 | '' | ||
142 | ]; | ||
143 | }; | ||
144 | }; | ||
145 | } | ||
diff --git a/modules/private/websites/ludivine/production.nix b/modules/private/websites/ludivine/production.nix deleted file mode 100644 index 7a18b88..0000000 --- a/modules/private/websites/ludivine/production.nix +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.ludivine.production; | ||
4 | app = pkgs.callPackage ./app { | ||
5 | composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; | ||
6 | environment = secrets.environment; | ||
7 | varDir = "/var/lib/ludivine_production"; | ||
8 | secretsPath = config.secrets.fullPaths."websites/ludivine/production"; | ||
9 | }; | ||
10 | pcfg = config.services.phpApplication; | ||
11 | cfg = config.myServices.websites.ludivine.production; | ||
12 | in { | ||
13 | options.myServices.websites.ludivine.production.enable = lib.mkEnableOption "enable Ludivine's website in production"; | ||
14 | |||
15 | config = lib.mkIf cfg.enable { | ||
16 | services.webstats.sites = [ { name = "ludivinecassal.com"; } ]; | ||
17 | services.phpApplication.apps.ludivine_production = { | ||
18 | websiteEnv = "production"; | ||
19 | httpdUser = config.services.httpd.Prod.user; | ||
20 | httpdGroup = config.services.httpd.Prod.group; | ||
21 | inherit (app) webRoot varDir; | ||
22 | varDirPaths = { | ||
23 | "tmp" = "0700"; | ||
24 | }; | ||
25 | inherit app; | ||
26 | serviceDeps = [ "mysql.service" ]; | ||
27 | preStartActions = [ | ||
28 | "./bin/console --env=${app.environment} cache:clear --no-warmup" | ||
29 | ]; | ||
30 | phpOpenbasedir = [ "/tmp" ]; | ||
31 | phpPool = { | ||
32 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
33 | "php_admin_value[post_max_size]" = "20M"; | ||
34 | #"php_admin_flag[log_errors]" = "on"; | ||
35 | "pm" = "dynamic"; | ||
36 | "pm.max_children" = "20"; | ||
37 | "pm.start_servers" = "2"; | ||
38 | "pm.min_spare_servers" = "1"; | ||
39 | "pm.max_spare_servers" = "3"; | ||
40 | }; | ||
41 | phpWatchFiles = [ | ||
42 | config.secrets.fullPaths."websites/ludivine/production" | ||
43 | ]; | ||
44 | phpEnv = { | ||
45 | PATH = lib.makeBinPath [ | ||
46 | # below ones don't need to be in the PATH but they’re used in | ||
47 | # secrets | ||
48 | pkgs.imagemagick pkgs.sass pkgs.ruby | ||
49 | ]; | ||
50 | }; | ||
51 | phpPackage = pkgs.php72; | ||
52 | }; | ||
53 | |||
54 | secrets.keys."websites/ludivine/production" = { | ||
55 | user = config.services.httpd.Prod.user; | ||
56 | group = config.services.httpd.Prod.group; | ||
57 | permissions = "0400"; | ||
58 | text = '' | ||
59 | # This file is auto-generated during the composer install | ||
60 | parameters: | ||
61 | database_host: ${secrets.mysql.host} | ||
62 | database_port: ${secrets.mysql.port} | ||
63 | database_name: ${secrets.mysql.database} | ||
64 | database_user: ${secrets.mysql.user} | ||
65 | database_password: ${secrets.mysql.password} | ||
66 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
67 | mailer_transport: smtp | ||
68 | mailer_host: 127.0.0.1 | ||
69 | mailer_user: null | ||
70 | mailer_password: null | ||
71 | secret: ${secrets.secret} | ||
72 | ldap_host: ldap.immae.eu | ||
73 | ldap_port: 636 | ||
74 | ldap_version: 3 | ||
75 | ldap_ssl: true | ||
76 | ldap_tls: false | ||
77 | ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu' | ||
78 | ldap_base_dn: 'dc=immae,dc=eu' | ||
79 | ldap_search_dn: '${secrets.ldap.dn}' | ||
80 | ldap_search_password: '${secrets.ldap.password}' | ||
81 | ldap_search_filter: '${secrets.ldap.filter}' | ||
82 | leapt_im: | ||
83 | binary_path: ${pkgs.imagemagick}/bin | ||
84 | assetic: | ||
85 | sass: ${pkgs.sass}/bin/sass | ||
86 | ruby: ${pkgs.ruby}/bin/ruby | ||
87 | ''; | ||
88 | }; | ||
89 | |||
90 | services.websites.env.production.vhostConfs.ludivine_production = { | ||
91 | certName = "ludivine"; | ||
92 | certMainHost = "ludivinecassal.com"; | ||
93 | hosts = ["ludivinecassal.com" "www.ludivinecassal.com" ]; | ||
94 | root = app.webRoot; | ||
95 | extraConfig = [ | ||
96 | '' | ||
97 | RewriteEngine on | ||
98 | RewriteCond "%{HTTP_HOST}" "!^ludivinecassal\.com$" [NC] | ||
99 | RewriteRule ^(.+)$ https://ludivinecassal.com$1 [R=302,L] | ||
100 | |||
101 | <FilesMatch "\.php$"> | ||
102 | SetHandler "proxy:unix:${pcfg.phpListenPaths.ludivine_production}|fcgi://localhost" | ||
103 | </FilesMatch> | ||
104 | |||
105 | Use Stats ludivinecassal.com | ||
106 | |||
107 | <Directory ${app.webRoot}> | ||
108 | Options Indexes FollowSymLinks MultiViews Includes | ||
109 | AllowOverride All | ||
110 | Require all granted | ||
111 | </Directory> | ||
112 | '' | ||
113 | ]; | ||
114 | }; | ||
115 | }; | ||
116 | } | ||
diff --git a/modules/private/websites/moomin.txt b/modules/private/websites/moomin.txt deleted file mode 100644 index 036fb1c..0000000 --- a/modules/private/websites/moomin.txt +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | ⠀⠀⠀⠀⠀⠀⠀⢠⢦⡀⠀⡰⣩⠃ | ||
2 | ⠀⠀⠀⠀⠀⠀⠀⠘⣄⠙⠍⠁⠙⠦⡀ | ||
3 | ⠀⠀⠀⠀⠀⠀⠀⠀⡎⠀⠀⡠⠄⠔⠊⠉⠒⠒⠒⢄ | ||
4 | ⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⠆ | ||
5 | ⠀⠀⢠⢤⠜⡆⠀⢸⠀⠰⣄⠀⠀⠀⠀⠀⠀⠀⣠⠎ | ||
6 | ⠀⠀⠱⠤⡁⠈⠑⠇⠀⠀⠀⠉⠒⠤⠤⠄⢖⠊⠀⡐⠧⣄⣀ | ||
7 | ⠀⠀⠀⠀⠘⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡉⠀⣀⣨⡷ | ||
8 | ⠀⠀⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠜⠁ | ||
9 | ⠀⠀⠀⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣸⠱⡀ | ||
10 | ⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠁⠀⣣ | ||
11 | ⠀⠀⠀⠀⠀⠀⠀⠑⣄⠀⠀⠀⠀⠀⠀⠀⢀⣠⣀⠴⠊⠁ | ||
12 | ⠰⢍⢒⢄⠀⠀⠀⠀⢸⢳⢆⠀⠀⠀⠰⡖⠋⠁ | ||
13 | ⠀⠳⠴⣙⢄⠀⢀⡠⣣⠃⠈⠑⢤⡄⠀⡸⠂ | ||
14 | ⠀⠀⠀⠀⠑⠋⠓⠊⠁⠀⠀⠀⠓⠒⠉ | ||
15 | Credentials: https://twitter.com/thingskatedid/status/1278274012754309120 | ||
16 | Credentials: https://gist.github.com/katef/09581d7c84eddf784508fa430f6ef47a | ||
diff --git a/modules/private/websites/nassime/production.nix b/modules/private/websites/nassime/production.nix deleted file mode 100644 index 1179351..0000000 --- a/modules/private/websites/nassime/production.nix +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.nassime.production; | ||
4 | varDir = "/var/lib/ftp/nassime"; | ||
5 | env = config.myEnv.websites.nassime; | ||
6 | domain = "nassime.bouya.org"; | ||
7 | in { | ||
8 | options.myServices.websites.nassime.production.enable = lib.mkEnableOption "enable Nassime's website"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.webstats.sites = [ { name = domain; } ]; | ||
12 | |||
13 | security.acme.certs."ftp".extraDomains."${domain}" = null; | ||
14 | |||
15 | services.websites.env.production.vhostConfs.nassime = { | ||
16 | certName = "nassime"; | ||
17 | certMainHost = domain; | ||
18 | hosts = [ domain ]; | ||
19 | root = varDir; | ||
20 | extraConfig = [ | ||
21 | '' | ||
22 | Use Stats ${domain} | ||
23 | ServerAdmin ${env.server_admin} | ||
24 | |||
25 | <Directory ${varDir}> | ||
26 | DirectoryIndex index.htm index.html | ||
27 | Options Indexes FollowSymLinks MultiViews Includes | ||
28 | AllowOverride None | ||
29 | Require all granted | ||
30 | </Directory> | ||
31 | '' | ||
32 | ]; | ||
33 | }; | ||
34 | }; | ||
35 | } | ||
diff --git a/modules/private/websites/nath/villon.nix b/modules/private/websites/nath/villon.nix deleted file mode 100644 index 57a1df5..0000000 --- a/modules/private/websites/nath/villon.nix +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.nath.villon; | ||
4 | varDir = "/var/lib/ftp/nath"; | ||
5 | env = config.myEnv.websites.nath; | ||
6 | domain = "sntvillon.immae.eu"; | ||
7 | apacheUser = config.services.httpd.Prod.user; | ||
8 | apacheGroup = config.services.httpd.Prod.group; | ||
9 | in { | ||
10 | options.myServices.websites.nath.villon.enable = lib.mkEnableOption "enable Nath's website"; | ||
11 | |||
12 | config = lib.mkIf cfg.enable { | ||
13 | services.webstats.sites = [ { name = domain; } ]; | ||
14 | |||
15 | system.activationScripts.nath_villon = { | ||
16 | deps = [ "users" ]; | ||
17 | text = '' | ||
18 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir} | ||
19 | ''; | ||
20 | }; | ||
21 | security.acme.certs."ftp".extraDomains."${domain}" = null; | ||
22 | |||
23 | services.websites.env.production.vhostConfs.nath_villon = { | ||
24 | certName = "nath"; | ||
25 | certMainHost = domain; | ||
26 | hosts = [ domain ]; | ||
27 | root = varDir; | ||
28 | extraConfig = [ | ||
29 | '' | ||
30 | Use Stats ${domain} | ||
31 | |||
32 | <Directory ${varDir}> | ||
33 | DirectoryIndex index.htm index.html | ||
34 | Options Indexes FollowSymLinks MultiViews Includes | ||
35 | AllowOverride None | ||
36 | Require all granted | ||
37 | </Directory> | ||
38 | '' | ||
39 | ]; | ||
40 | }; | ||
41 | }; | ||
42 | } | ||
diff --git a/modules/private/websites/papa/maison_bbc.nix b/modules/private/websites/papa/maison_bbc.nix deleted file mode 100644 index 3eb736e..0000000 --- a/modules/private/websites/papa/maison_bbc.nix +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | { lib, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.papa.maison_bbc; | ||
4 | in { | ||
5 | options.myServices.websites.papa.maison_bbc.enable = lib.mkEnableOption "enable Papa Maison bbc website"; | ||
6 | |||
7 | config = lib.mkIf cfg.enable { | ||
8 | services.webstats.sites = [ { name = "maison.bbc.bouya.org"; } ]; | ||
9 | |||
10 | services.websites.env.production.vhostConfs.papa_maison_bbc = { | ||
11 | certName = "papa"; | ||
12 | addToCerts = true; | ||
13 | hosts = [ "maison.bbc.bouya.org" ]; | ||
14 | root = ./maison_bbc_static; | ||
15 | extraConfig = [ | ||
16 | '' | ||
17 | ErrorDocument 404 /index.html | ||
18 | <Directory ${./maison_bbc_static}> | ||
19 | DirectoryIndex index.htm index.html | ||
20 | AllowOverride None | ||
21 | Require all granted | ||
22 | </Directory> | ||
23 | '' | ||
24 | ]; | ||
25 | }; | ||
26 | }; | ||
27 | } | ||
28 | |||
diff --git a/modules/private/websites/papa/maison_bbc_static/data.json b/modules/private/websites/papa/maison_bbc_static/data.json deleted file mode 100644 index 1784d27..0000000 --- a/modules/private/websites/papa/maison_bbc_static/data.json +++ /dev/null | |||
@@ -1,4101 +0,0 @@ | |||
1 | { | ||
2 | "mean_consumption": { | ||
3 | "data": [ | ||
4 | { | ||
5 | "x": "2010-01-01 00:00:00", | ||
6 | "y": 0 | ||
7 | }, | ||
8 | { | ||
9 | "x": "2012-06-01 00:00:00", | ||
10 | "y": 0.3 | ||
11 | }, | ||
12 | { | ||
13 | "x": "2012-07-01 00:00:00", | ||
14 | "y": 0.3 | ||
15 | }, | ||
16 | { | ||
17 | "x": "2012-08-01 00:00:00", | ||
18 | "y": 0.5 | ||
19 | }, | ||
20 | { | ||
21 | "x": "2012-09-01 00:00:00", | ||
22 | "y": 0.4 | ||
23 | }, | ||
24 | { | ||
25 | "x": "2012-10-01 00:00:00", | ||
26 | "y": 0.4 | ||
27 | }, | ||
28 | { | ||
29 | "x": "2012-11-01 00:00:00", | ||
30 | "y": 0.5 | ||
31 | }, | ||
32 | { | ||
33 | "x": "2012-12-01 00:00:00", | ||
34 | "y": 0.5 | ||
35 | }, | ||
36 | { | ||
37 | "x": "2013-01-01 00:00:00", | ||
38 | "y": 0.5 | ||
39 | }, | ||
40 | { | ||
41 | "x": "2013-02-01 00:00:00", | ||
42 | "y": 0.4 | ||
43 | }, | ||
44 | { | ||
45 | "x": "2013-03-01 00:00:00", | ||
46 | "y": 0.6 | ||
47 | }, | ||
48 | { | ||
49 | "x": "2013-04-01 00:00:00", | ||
50 | "y": 0.5 | ||
51 | }, | ||
52 | { | ||
53 | "x": "2013-05-01 00:00:00", | ||
54 | "y": 0.5 | ||
55 | }, | ||
56 | { | ||
57 | "x": "2013-06-01 00:00:00", | ||
58 | "y": 0.4 | ||
59 | }, | ||
60 | { | ||
61 | "x": "2013-07-01 00:00:00", | ||
62 | "y": 0.5 | ||
63 | }, | ||
64 | { | ||
65 | "x": "2013-08-01 00:00:00", | ||
66 | "y": 0.4 | ||
67 | }, | ||
68 | { | ||
69 | "x": "2013-09-01 00:00:00", | ||
70 | "y": 0.5 | ||
71 | }, | ||
72 | { | ||
73 | "x": "2013-10-01 00:00:00", | ||
74 | "y": 0.5 | ||
75 | }, | ||
76 | { | ||
77 | "x": "2013-11-01 00:00:00", | ||
78 | "y": 0.6 | ||
79 | }, | ||
80 | { | ||
81 | "x": "2013-12-01 00:00:00", | ||
82 | "y": 0.6 | ||
83 | }, | ||
84 | { | ||
85 | "x": "2014-01-01 00:00:00", | ||
86 | "y": 0.6 | ||
87 | }, | ||
88 | { | ||
89 | "x": "2014-02-01 00:00:00", | ||
90 | "y": 0.5 | ||
91 | }, | ||
92 | { | ||
93 | "x": "2014-03-01 00:00:00", | ||
94 | "y": 0.6 | ||
95 | }, | ||
96 | { | ||
97 | "x": "2014-04-01 00:00:00", | ||
98 | "y": 0.5 | ||
99 | }, | ||
100 | { | ||
101 | "x": "2014-05-01 00:00:00", | ||
102 | "y": 0.6 | ||
103 | }, | ||
104 | { | ||
105 | "x": "2014-10-01 00:00:00", | ||
106 | "y": 0.7 | ||
107 | }, | ||
108 | { | ||
109 | "x": "2014-12-01 00:00:00", | ||
110 | "y": 8.1 | ||
111 | }, | ||
112 | { | ||
113 | "x": "2015-01-01 00:00:00", | ||
114 | "y": 8.8 | ||
115 | }, | ||
116 | { | ||
117 | "x": "2015-02-01 00:00:00", | ||
118 | "y": 8.2 | ||
119 | }, | ||
120 | { | ||
121 | "x": "2015-03-01 00:00:00", | ||
122 | "y": 7.2 | ||
123 | }, | ||
124 | { | ||
125 | "x": "2015-04-01 00:00:00", | ||
126 | "y": 1.2 | ||
127 | }, | ||
128 | { | ||
129 | "x": "2015-05-01 00:00:00", | ||
130 | "y": 0.6 | ||
131 | }, | ||
132 | { | ||
133 | "x": "2015-06-01 00:00:00", | ||
134 | "y": 0.6 | ||
135 | }, | ||
136 | { | ||
137 | "x": "2015-07-01 00:00:00", | ||
138 | "y": 0.5 | ||
139 | }, | ||
140 | { | ||
141 | "x": "2015-08-01 00:00:00", | ||
142 | "y": 0.6 | ||
143 | }, | ||
144 | { | ||
145 | "x": "2015-09-01 00:00:00", | ||
146 | "y": 0.5 | ||
147 | }, | ||
148 | { | ||
149 | "x": "2016-02-01 00:00:00", | ||
150 | "y": 0 | ||
151 | }, | ||
152 | { | ||
153 | "x": "2016-03-01 00:00:00", | ||
154 | "y": 0 | ||
155 | }, | ||
156 | { | ||
157 | "x": "2016-04-01 00:00:00", | ||
158 | "y": 0 | ||
159 | }, | ||
160 | { | ||
161 | "x": "2016-05-01 00:00:00", | ||
162 | "y": 0 | ||
163 | }, | ||
164 | { | ||
165 | "x": "2016-06-01 00:00:00", | ||
166 | "y": 0 | ||
167 | }, | ||
168 | { | ||
169 | "x": "2016-07-01 00:00:00", | ||
170 | "y": 0 | ||
171 | }, | ||
172 | { | ||
173 | "x": "2016-08-01 00:00:00", | ||
174 | "y": 0 | ||
175 | }, | ||
176 | { | ||
177 | "x": "2016-09-01 00:00:00", | ||
178 | "y": 0 | ||
179 | }, | ||
180 | { | ||
181 | "x": "2017-04-01 00:00:00", | ||
182 | "y": 0.4 | ||
183 | }, | ||
184 | { | ||
185 | "x": "2017-05-01 00:00:00", | ||
186 | "y": 0.5 | ||
187 | }, | ||
188 | { | ||
189 | "x": "2017-06-01 00:00:00", | ||
190 | "y": 0.4 | ||
191 | }, | ||
192 | { | ||
193 | "x": "2017-07-01 00:00:00", | ||
194 | "y": 0.6 | ||
195 | }, | ||
196 | { | ||
197 | "x": "2017-08-01 00:00:00", | ||
198 | "y": 0.4 | ||
199 | }, | ||
200 | { | ||
201 | "x": "2017-09-01 00:00:00", | ||
202 | "y": 0.5 | ||
203 | }, | ||
204 | { | ||
205 | "x": "2017-10-01 00:00:00", | ||
206 | "y": 0.4 | ||
207 | }, | ||
208 | { | ||
209 | "x": "2017-11-01 00:00:00", | ||
210 | "y": 0.5 | ||
211 | }, | ||
212 | { | ||
213 | "x": "2017-12-01 00:00:00", | ||
214 | "y": 0.6 | ||
215 | }, | ||
216 | { | ||
217 | "x": "2018-01-01 00:00:00", | ||
218 | "y": 0.6 | ||
219 | }, | ||
220 | { | ||
221 | "x": "2018-02-01 00:00:00", | ||
222 | "y": 0.6 | ||
223 | }, | ||
224 | { | ||
225 | "x": "2018-03-01 00:00:00", | ||
226 | "y": 0.6 | ||
227 | }, | ||
228 | { | ||
229 | "x": "2018-04-01 00:00:00", | ||
230 | "y": 0.5 | ||
231 | }, | ||
232 | { | ||
233 | "x": "2018-05-01 00:00:00", | ||
234 | "y": 0.4 | ||
235 | }, | ||
236 | { | ||
237 | "x": "2018-06-01 00:00:00", | ||
238 | "y": 0.5 | ||
239 | }, | ||
240 | { | ||
241 | "x": "2018-07-01 00:00:00", | ||
242 | "y": 0.5 | ||
243 | }, | ||
244 | { | ||
245 | "x": "2018-08-01 00:00:00", | ||
246 | "y": 0.8 | ||
247 | }, | ||
248 | { | ||
249 | "x": "2019-03-01 00:00:00", | ||
250 | "y": 0.6 | ||
251 | }, | ||
252 | { | ||
253 | "x": "2019-04-01 00:00:00", | ||
254 | "y": 0.6 | ||
255 | }, | ||
256 | { | ||
257 | "x": "2019-05-01 00:00:00", | ||
258 | "y": 0.4 | ||
259 | }, | ||
260 | { | ||
261 | "x": "2019-06-01 00:00:00", | ||
262 | "y": 0.4 | ||
263 | }, | ||
264 | { | ||
265 | "x": "2019-07-01 00:00:00", | ||
266 | "y": 0.4 | ||
267 | }, | ||
268 | { | ||
269 | "x": "2019-08-01 00:00:00", | ||
270 | "y": 0.6 | ||
271 | }, | ||
272 | { | ||
273 | "x": "2020-03-01 00:00:00", | ||
274 | "y": 0.5 | ||
275 | }, | ||
276 | { | ||
277 | "x": "2020-04-01 00:00:00", | ||
278 | "y": 0.5 | ||
279 | }, | ||
280 | { | ||
281 | "x": "2020-05-01 00:00:00", | ||
282 | "y": 0.5 | ||
283 | } | ||
284 | ], | ||
285 | "name": "Consommation moyenne", | ||
286 | "unit": "kW", | ||
287 | "hide": false | ||
288 | }, | ||
289 | "total_consumption": { | ||
290 | "data": [ | ||
291 | { | ||
292 | "x": "2010-01-01 00:00:00", | ||
293 | "y": 74.8 | ||
294 | }, | ||
295 | { | ||
296 | "x": "2012-08-01 00:00:00", | ||
297 | "y": 629 | ||
298 | }, | ||
299 | { | ||
300 | "x": "2012-09-01 00:00:00", | ||
301 | "y": 859.3 | ||
302 | }, | ||
303 | { | ||
304 | "x": "2012-10-01 00:00:00", | ||
305 | "y": 1150.7 | ||
306 | }, | ||
307 | { | ||
308 | "x": "2012-11-01 00:00:00", | ||
309 | "y": 1440.1 | ||
310 | }, | ||
311 | { | ||
312 | "x": "2012-12-01 00:00:00", | ||
313 | "y": 1829.6 | ||
314 | }, | ||
315 | { | ||
316 | "x": "2013-01-01 00:00:00", | ||
317 | "y": 2218.6 | ||
318 | }, | ||
319 | { | ||
320 | "x": "2013-02-01 00:00:00", | ||
321 | "y": 468.7 | ||
322 | }, | ||
323 | { | ||
324 | "x": "2013-03-01 00:00:00", | ||
325 | "y": 2924.1 | ||
326 | }, | ||
327 | { | ||
328 | "x": "2013-04-01 00:00:00", | ||
329 | "y": -3217.1 | ||
330 | }, | ||
331 | { | ||
332 | "x": "2013-05-01 00:00:00", | ||
333 | "y": -2847.2 | ||
334 | }, | ||
335 | { | ||
336 | "x": "2013-06-01 00:00:00", | ||
337 | "y": 224.6 | ||
338 | }, | ||
339 | { | ||
340 | "x": "2013-07-01 00:00:00", | ||
341 | "y": 536.5 | ||
342 | }, | ||
343 | { | ||
344 | "x": "2013-08-01 00:00:00", | ||
345 | "y": 882 | ||
346 | }, | ||
347 | { | ||
348 | "x": "2013-09-01 00:00:00", | ||
349 | "y": 1207.7 | ||
350 | }, | ||
351 | { | ||
352 | "x": "2013-10-01 00:00:00", | ||
353 | "y": 1565.4 | ||
354 | }, | ||
355 | { | ||
356 | "x": "2013-11-01 00:00:00", | ||
357 | "y": 1924.1 | ||
358 | }, | ||
359 | { | ||
360 | "x": "2013-12-01 00:00:00", | ||
361 | "y": 2323.5 | ||
362 | }, | ||
363 | { | ||
364 | "x": "2014-01-01 00:00:00", | ||
365 | "y": 2754.8 | ||
366 | }, | ||
367 | { | ||
368 | "x": "2014-02-01 00:00:00", | ||
369 | "y": 3176.7 | ||
370 | }, | ||
371 | { | ||
372 | "x": "2014-03-01 00:00:00", | ||
373 | "y": 3530.1 | ||
374 | }, | ||
375 | { | ||
376 | "x": "2014-04-01 00:00:00", | ||
377 | "y": 3975 | ||
378 | }, | ||
379 | { | ||
380 | "x": "2014-05-01 00:00:00", | ||
381 | "y": 4364.8 | ||
382 | }, | ||
383 | { | ||
384 | "x": "2014-10-01 00:00:00", | ||
385 | "y": 1485.8 | ||
386 | }, | ||
387 | { | ||
388 | "x": "2014-12-01 00:00:00", | ||
389 | "y": 9.3 | ||
390 | }, | ||
391 | { | ||
392 | "x": "2015-01-01 00:00:00", | ||
393 | "y": 6 | ||
394 | }, | ||
395 | { | ||
396 | "x": "2015-02-01 00:00:00", | ||
397 | "y": 10 | ||
398 | }, | ||
399 | { | ||
400 | "x": "2015-03-01 00:00:00", | ||
401 | "y": 10.9 | ||
402 | }, | ||
403 | { | ||
404 | "x": "2015-04-01 00:00:00", | ||
405 | "y": 13.1 | ||
406 | }, | ||
407 | { | ||
408 | "x": "2015-05-01 00:00:00", | ||
409 | "y": 1.6 | ||
410 | }, | ||
411 | { | ||
412 | "x": "2015-06-01 00:00:00", | ||
413 | "y": 2.1 | ||
414 | }, | ||
415 | { | ||
416 | "x": "2015-07-01 00:00:00", | ||
417 | "y": 2.8 | ||
418 | }, | ||
419 | { | ||
420 | "x": "2015-08-01 00:00:00", | ||
421 | "y": 2.2 | ||
422 | }, | ||
423 | { | ||
424 | "x": "2015-09-01 00:00:00", | ||
425 | "y": 2.8 | ||
426 | }, | ||
427 | { | ||
428 | "x": "2016-02-01 00:00:00", | ||
429 | "y": 0 | ||
430 | }, | ||
431 | { | ||
432 | "x": "2016-03-01 00:00:00", | ||
433 | "y": 2.1 | ||
434 | }, | ||
435 | { | ||
436 | "x": "2016-04-01 00:00:00", | ||
437 | "y": 43.2 | ||
438 | }, | ||
439 | { | ||
440 | "x": "2016-05-01 00:00:00", | ||
441 | "y": 78.6 | ||
442 | }, | ||
443 | { | ||
444 | "x": "2016-06-01 00:00:00", | ||
445 | "y": 118.2 | ||
446 | }, | ||
447 | { | ||
448 | "x": "2016-07-01 00:00:00", | ||
449 | "y": 155.2 | ||
450 | }, | ||
451 | { | ||
452 | "x": "2016-08-01 00:00:00", | ||
453 | "y": 203.1 | ||
454 | }, | ||
455 | { | ||
456 | "x": "2016-09-01 00:00:00", | ||
457 | "y": 213.7 | ||
458 | }, | ||
459 | { | ||
460 | "x": "2017-04-01 00:00:00", | ||
461 | "y": 4567.8 | ||
462 | }, | ||
463 | { | ||
464 | "x": "2017-05-01 00:00:00", | ||
465 | "y": 46.2 | ||
466 | }, | ||
467 | { | ||
468 | "x": "2017-06-01 00:00:00", | ||
469 | "y": 404.3 | ||
470 | }, | ||
471 | { | ||
472 | "x": "2017-07-01 00:00:00", | ||
473 | "y": 711.3 | ||
474 | }, | ||
475 | { | ||
476 | "x": "2017-08-01 00:00:00", | ||
477 | "y": 1098.7 | ||
478 | }, | ||
479 | { | ||
480 | "x": "2017-09-01 00:00:00", | ||
481 | "y": 1365.4 | ||
482 | }, | ||
483 | { | ||
484 | "x": "2017-10-01 00:00:00", | ||
485 | "y": 1705.3 | ||
486 | }, | ||
487 | { | ||
488 | "x": "2017-11-01 00:00:00", | ||
489 | "y": 2041.5 | ||
490 | }, | ||
491 | { | ||
492 | "x": "2017-12-01 00:00:00", | ||
493 | "y": 2400.8 | ||
494 | }, | ||
495 | { | ||
496 | "x": "2018-01-01 00:00:00", | ||
497 | "y": 2816.8 | ||
498 | }, | ||
499 | { | ||
500 | "x": "2018-02-01 00:00:00", | ||
501 | "y": 3236.5 | ||
502 | }, | ||
503 | { | ||
504 | "x": "2018-03-01 00:00:00", | ||
505 | "y": 3610 | ||
506 | }, | ||
507 | { | ||
508 | "x": "2018-04-01 00:00:00", | ||
509 | "y": 4047.8 | ||
510 | }, | ||
511 | { | ||
512 | "x": "2018-05-01 00:00:00", | ||
513 | "y": 4447.2 | ||
514 | }, | ||
515 | { | ||
516 | "x": "2018-06-01 00:00:00", | ||
517 | "y": 4704.1 | ||
518 | }, | ||
519 | { | ||
520 | "x": "2018-07-01 00:00:00", | ||
521 | "y": 260.9 | ||
522 | }, | ||
523 | { | ||
524 | "x": "2018-08-01 00:00:00", | ||
525 | "y": 502.7 | ||
526 | }, | ||
527 | { | ||
528 | "x": "2019-03-01 00:00:00", | ||
529 | "y": 896.9 | ||
530 | }, | ||
531 | { | ||
532 | "x": "2019-04-01 00:00:00", | ||
533 | "y": 1268.4 | ||
534 | }, | ||
535 | { | ||
536 | "x": "2019-05-01 00:00:00", | ||
537 | "y": 1625.5 | ||
538 | }, | ||
539 | { | ||
540 | "x": "2019-06-01 00:00:00", | ||
541 | "y": 1944.8 | ||
542 | }, | ||
543 | { | ||
544 | "x": "2019-07-01 00:00:00", | ||
545 | "y": 2256.8 | ||
546 | }, | ||
547 | { | ||
548 | "x": "2019-08-01 00:00:00", | ||
549 | "y": 2714.7 | ||
550 | }, | ||
551 | { | ||
552 | "x": "2020-03-01 00:00:00", | ||
553 | "y": 314.9 | ||
554 | }, | ||
555 | { | ||
556 | "x": "2020-04-01 00:00:00", | ||
557 | "y": 679.7 | ||
558 | }, | ||
559 | { | ||
560 | "x": "2020-05-01 00:00:00", | ||
561 | "y": 1084.7 | ||
562 | } | ||
563 | ], | ||
564 | "name": "Consommation totale", | ||
565 | "unit": "kWh", | ||
566 | "hide": false | ||
567 | }, | ||
568 | "Chambre_RDC_temperature": { | ||
569 | "data": [ | ||
570 | { | ||
571 | "x": "2012-06-01 00:00:00", | ||
572 | "y": 22.3 | ||
573 | }, | ||
574 | { | ||
575 | "x": "2012-07-01 00:00:00", | ||
576 | "y": 22.7 | ||
577 | }, | ||
578 | { | ||
579 | "x": "2012-08-01 00:00:00", | ||
580 | "y": 25.1 | ||
581 | }, | ||
582 | { | ||
583 | "x": "2012-09-01 00:00:00", | ||
584 | "y": 22.6 | ||
585 | }, | ||
586 | { | ||
587 | "x": "2012-10-01 00:00:00", | ||
588 | "y": 20.7 | ||
589 | }, | ||
590 | { | ||
591 | "x": "2012-11-01 00:00:00", | ||
592 | "y": 18 | ||
593 | }, | ||
594 | { | ||
595 | "x": "2012-12-01 00:00:00", | ||
596 | "y": 20 | ||
597 | }, | ||
598 | { | ||
599 | "x": "2013-01-01 00:00:00", | ||
600 | "y": 20.1 | ||
601 | }, | ||
602 | { | ||
603 | "x": "2013-02-01 00:00:00", | ||
604 | "y": 15.6 | ||
605 | }, | ||
606 | { | ||
607 | "x": "2013-03-01 00:00:00", | ||
608 | "y": 20.3 | ||
609 | }, | ||
610 | { | ||
611 | "x": "2013-04-01 00:00:00", | ||
612 | "y": 18.1 | ||
613 | }, | ||
614 | { | ||
615 | "x": "2013-05-01 00:00:00", | ||
616 | "y": 21.5 | ||
617 | }, | ||
618 | { | ||
619 | "x": "2013-06-01 00:00:00", | ||
620 | "y": 22.3 | ||
621 | }, | ||
622 | { | ||
623 | "x": "2013-07-01 00:00:00", | ||
624 | "y": 25.1 | ||
625 | }, | ||
626 | { | ||
627 | "x": "2013-08-01 00:00:00", | ||
628 | "y": 22.7 | ||
629 | }, | ||
630 | { | ||
631 | "x": "2013-09-01 00:00:00", | ||
632 | "y": 22.7 | ||
633 | }, | ||
634 | { | ||
635 | "x": "2013-10-01 00:00:00", | ||
636 | "y": 21.4 | ||
637 | }, | ||
638 | { | ||
639 | "x": "2013-11-01 00:00:00", | ||
640 | "y": 20.3 | ||
641 | }, | ||
642 | { | ||
643 | "x": "2013-12-01 00:00:00", | ||
644 | "y": 20.4 | ||
645 | }, | ||
646 | { | ||
647 | "x": "2014-01-01 00:00:00", | ||
648 | "y": 20.5 | ||
649 | }, | ||
650 | { | ||
651 | "x": "2014-02-01 00:00:00", | ||
652 | "y": 19.8 | ||
653 | }, | ||
654 | { | ||
655 | "x": "2014-03-01 00:00:00", | ||
656 | "y": 20.6 | ||
657 | }, | ||
658 | { | ||
659 | "x": "2014-04-01 00:00:00", | ||
660 | "y": 21.3 | ||
661 | }, | ||
662 | { | ||
663 | "x": "2014-05-01 00:00:00", | ||
664 | "y": 21.9 | ||
665 | }, | ||
666 | { | ||
667 | "x": "2014-06-01 00:00:00", | ||
668 | "y": 25 | ||
669 | }, | ||
670 | { | ||
671 | "x": "2014-10-01 00:00:00", | ||
672 | "y": 22.4 | ||
673 | }, | ||
674 | { | ||
675 | "x": "2014-11-01 00:00:00", | ||
676 | "y": 20.6 | ||
677 | }, | ||
678 | { | ||
679 | "x": "2014-12-01 00:00:00", | ||
680 | "y": 18.2 | ||
681 | }, | ||
682 | { | ||
683 | "x": "2015-01-01 00:00:00", | ||
684 | "y": 20 | ||
685 | }, | ||
686 | { | ||
687 | "x": "2015-02-01 00:00:00", | ||
688 | "y": 20 | ||
689 | }, | ||
690 | { | ||
691 | "x": "2015-03-01 00:00:00", | ||
692 | "y": 19.6 | ||
693 | }, | ||
694 | { | ||
695 | "x": "2015-04-01 00:00:00", | ||
696 | "y": 21.4 | ||
697 | }, | ||
698 | { | ||
699 | "x": "2015-05-01 00:00:00", | ||
700 | "y": 20.4 | ||
701 | }, | ||
702 | { | ||
703 | "x": "2015-06-01 00:00:00", | ||
704 | "y": 24.2 | ||
705 | }, | ||
706 | { | ||
707 | "x": "2015-07-01 00:00:00", | ||
708 | "y": 24.5 | ||
709 | }, | ||
710 | { | ||
711 | "x": "2015-08-01 00:00:00", | ||
712 | "y": 23.6 | ||
713 | }, | ||
714 | { | ||
715 | "x": "2015-09-01 00:00:00", | ||
716 | "y": 22.2 | ||
717 | }, | ||
718 | { | ||
719 | "x": "2015-10-01 00:00:00", | ||
720 | "y": 20.9 | ||
721 | }, | ||
722 | { | ||
723 | "x": "2015-11-01 00:00:00", | ||
724 | "y": 20.6 | ||
725 | }, | ||
726 | { | ||
727 | "x": "2015-12-01 00:00:00", | ||
728 | "y": 19.5 | ||
729 | }, | ||
730 | { | ||
731 | "x": "2016-01-01 00:00:00", | ||
732 | "y": 19.8 | ||
733 | }, | ||
734 | { | ||
735 | "x": "2016-02-01 00:00:00", | ||
736 | "y": 20.4 | ||
737 | }, | ||
738 | { | ||
739 | "x": "2016-03-01 00:00:00", | ||
740 | "y": 19.8 | ||
741 | }, | ||
742 | { | ||
743 | "x": "2016-04-01 00:00:00", | ||
744 | "y": 19.5 | ||
745 | }, | ||
746 | { | ||
747 | "x": "2016-05-01 00:00:00", | ||
748 | "y": 21.3 | ||
749 | }, | ||
750 | { | ||
751 | "x": "2016-06-01 00:00:00", | ||
752 | "y": 22.9 | ||
753 | }, | ||
754 | { | ||
755 | "x": "2016-07-01 00:00:00", | ||
756 | "y": 24.4 | ||
757 | }, | ||
758 | { | ||
759 | "x": "2016-08-01 00:00:00", | ||
760 | "y": 24 | ||
761 | }, | ||
762 | { | ||
763 | "x": "2016-09-01 00:00:00", | ||
764 | "y": 23.5 | ||
765 | }, | ||
766 | { | ||
767 | "x": "2017-03-01 00:00:00", | ||
768 | "y": 21.1 | ||
769 | }, | ||
770 | { | ||
771 | "x": "2017-04-01 00:00:00", | ||
772 | "y": 20.6 | ||
773 | }, | ||
774 | { | ||
775 | "x": "2017-05-01 00:00:00", | ||
776 | "y": 22.2 | ||
777 | }, | ||
778 | { | ||
779 | "x": "2017-06-01 00:00:00", | ||
780 | "y": 23.7 | ||
781 | }, | ||
782 | { | ||
783 | "x": "2017-07-01 00:00:00", | ||
784 | "y": 23.9 | ||
785 | }, | ||
786 | { | ||
787 | "x": "2017-08-01 00:00:00", | ||
788 | "y": 23.4 | ||
789 | }, | ||
790 | { | ||
791 | "x": "2017-09-01 00:00:00", | ||
792 | "y": 22.9 | ||
793 | }, | ||
794 | { | ||
795 | "x": "2017-10-01 00:00:00", | ||
796 | "y": 22 | ||
797 | }, | ||
798 | { | ||
799 | "x": "2017-11-01 00:00:00", | ||
800 | "y": 19.7 | ||
801 | }, | ||
802 | { | ||
803 | "x": "2017-12-01 00:00:00", | ||
804 | "y": 20 | ||
805 | }, | ||
806 | { | ||
807 | "x": "2018-01-01 00:00:00", | ||
808 | "y": 20 | ||
809 | }, | ||
810 | { | ||
811 | "x": "2018-02-01 00:00:00", | ||
812 | "y": 20.2 | ||
813 | }, | ||
814 | { | ||
815 | "x": "2018-03-01 00:00:00", | ||
816 | "y": 19.9 | ||
817 | }, | ||
818 | { | ||
819 | "x": "2018-04-01 00:00:00", | ||
820 | "y": 21.1 | ||
821 | }, | ||
822 | { | ||
823 | "x": "2018-05-01 00:00:00", | ||
824 | "y": 22.3 | ||
825 | }, | ||
826 | { | ||
827 | "x": "2018-06-01 00:00:00", | ||
828 | "y": 23.5 | ||
829 | }, | ||
830 | { | ||
831 | "x": "2018-07-01 00:00:00", | ||
832 | "y": 23.8 | ||
833 | }, | ||
834 | { | ||
835 | "x": "2018-08-01 00:00:00", | ||
836 | "y": 23.5 | ||
837 | }, | ||
838 | { | ||
839 | "x": "2019-03-01 00:00:00", | ||
840 | "y": 21.7 | ||
841 | }, | ||
842 | { | ||
843 | "x": "2019-04-01 00:00:00", | ||
844 | "y": 21.7 | ||
845 | }, | ||
846 | { | ||
847 | "x": "2019-05-01 00:00:00", | ||
848 | "y": 21.7 | ||
849 | }, | ||
850 | { | ||
851 | "x": "2019-06-01 00:00:00", | ||
852 | "y": 23.6 | ||
853 | }, | ||
854 | { | ||
855 | "x": "2019-07-01 00:00:00", | ||
856 | "y": 24.4 | ||
857 | }, | ||
858 | { | ||
859 | "x": "2019-08-01 00:00:00", | ||
860 | "y": 23.3 | ||
861 | }, | ||
862 | { | ||
863 | "x": "2020-03-01 00:00:00", | ||
864 | "y": 22 | ||
865 | } | ||
866 | ], | ||
867 | "name": "Chambre_RDC", | ||
868 | "unit": "°C", | ||
869 | "hide": false | ||
870 | }, | ||
871 | "Exterieure_temperature": { | ||
872 | "data": [ | ||
873 | { | ||
874 | "x": "2012-06-01 00:00:00", | ||
875 | "y": 18.6 | ||
876 | }, | ||
877 | { | ||
878 | "x": "2012-07-01 00:00:00", | ||
879 | "y": 20.2 | ||
880 | }, | ||
881 | { | ||
882 | "x": "2012-08-01 00:00:00", | ||
883 | "y": 24.7 | ||
884 | }, | ||
885 | { | ||
886 | "x": "2012-09-01 00:00:00", | ||
887 | "y": 23.2 | ||
888 | }, | ||
889 | { | ||
890 | "x": "2012-10-01 00:00:00", | ||
891 | "y": 21.7 | ||
892 | }, | ||
893 | { | ||
894 | "x": "2012-11-01 00:00:00", | ||
895 | "y": 13.3 | ||
896 | }, | ||
897 | { | ||
898 | "x": "2012-12-01 00:00:00", | ||
899 | "y": 6.1 | ||
900 | }, | ||
901 | { | ||
902 | "x": "2013-01-01 00:00:00", | ||
903 | "y": 3.3 | ||
904 | }, | ||
905 | { | ||
906 | "x": "2013-02-01 00:00:00", | ||
907 | "y": 1.9 | ||
908 | }, | ||
909 | { | ||
910 | "x": "2013-03-01 00:00:00", | ||
911 | "y": 6.6 | ||
912 | }, | ||
913 | { | ||
914 | "x": "2013-04-01 00:00:00", | ||
915 | "y": 10.2 | ||
916 | }, | ||
917 | { | ||
918 | "x": "2013-05-01 00:00:00", | ||
919 | "y": 11.2 | ||
920 | }, | ||
921 | { | ||
922 | "x": "2013-06-01 00:00:00", | ||
923 | "y": 16.9 | ||
924 | }, | ||
925 | { | ||
926 | "x": "2013-07-01 00:00:00", | ||
927 | "y": 28.9 | ||
928 | }, | ||
929 | { | ||
930 | "x": "2013-10-01 00:00:00", | ||
931 | "y": 16.9 | ||
932 | }, | ||
933 | { | ||
934 | "x": "2013-11-01 00:00:00", | ||
935 | "y": 5.9 | ||
936 | }, | ||
937 | { | ||
938 | "x": "2013-12-01 00:00:00", | ||
939 | "y": 4.5 | ||
940 | }, | ||
941 | { | ||
942 | "x": "2014-01-01 00:00:00", | ||
943 | "y": 6.9 | ||
944 | }, | ||
945 | { | ||
946 | "x": "2014-02-01 00:00:00", | ||
947 | "y": 6.8 | ||
948 | }, | ||
949 | { | ||
950 | "x": "2014-03-01 00:00:00", | ||
951 | "y": 8.3 | ||
952 | }, | ||
953 | { | ||
954 | "x": "2014-04-01 00:00:00", | ||
955 | "y": 11.6 | ||
956 | }, | ||
957 | { | ||
958 | "x": "2014-05-01 00:00:00", | ||
959 | "y": 12 | ||
960 | }, | ||
961 | { | ||
962 | "x": "2014-06-01 00:00:00", | ||
963 | "y": 17.3 | ||
964 | }, | ||
965 | { | ||
966 | "x": "2014-10-01 00:00:00", | ||
967 | "y": 13.5 | ||
968 | }, | ||
969 | { | ||
970 | "x": "2014-11-01 00:00:00", | ||
971 | "y": 9.9 | ||
972 | }, | ||
973 | { | ||
974 | "x": "2014-12-01 00:00:00", | ||
975 | "y": 4.5 | ||
976 | }, | ||
977 | { | ||
978 | "x": "2015-01-01 00:00:00", | ||
979 | "y": 4.4 | ||
980 | }, | ||
981 | { | ||
982 | "x": "2015-02-01 00:00:00", | ||
983 | "y": 4.4 | ||
984 | }, | ||
985 | { | ||
986 | "x": "2015-03-01 00:00:00", | ||
987 | "y": 7.7 | ||
988 | }, | ||
989 | { | ||
990 | "x": "2015-04-01 00:00:00", | ||
991 | "y": 12.4 | ||
992 | }, | ||
993 | { | ||
994 | "x": "2015-05-01 00:00:00", | ||
995 | "y": 14.1 | ||
996 | }, | ||
997 | { | ||
998 | "x": "2015-06-01 00:00:00", | ||
999 | "y": 18.8 | ||
1000 | }, | ||
1001 | { | ||
1002 | "x": "2015-07-01 00:00:00", | ||
1003 | "y": 21.5 | ||
1004 | }, | ||
1005 | { | ||
1006 | "x": "2015-08-01 00:00:00", | ||
1007 | "y": 20.7 | ||
1008 | }, | ||
1009 | { | ||
1010 | "x": "2015-09-01 00:00:00", | ||
1011 | "y": 14.3 | ||
1012 | }, | ||
1013 | { | ||
1014 | "x": "2015-10-01 00:00:00", | ||
1015 | "y": 10.4 | ||
1016 | }, | ||
1017 | { | ||
1018 | "x": "2015-11-01 00:00:00", | ||
1019 | "y": 9.3 | ||
1020 | }, | ||
1021 | { | ||
1022 | "x": "2015-12-01 00:00:00", | ||
1023 | "y": 7.7 | ||
1024 | }, | ||
1025 | { | ||
1026 | "x": "2016-01-01 00:00:00", | ||
1027 | "y": 6 | ||
1028 | }, | ||
1029 | { | ||
1030 | "x": "2016-02-01 00:00:00", | ||
1031 | "y": 5.6 | ||
1032 | }, | ||
1033 | { | ||
1034 | "x": "2016-03-01 00:00:00", | ||
1035 | "y": 6.6 | ||
1036 | }, | ||
1037 | { | ||
1038 | "x": "2016-04-01 00:00:00", | ||
1039 | "y": 9.6 | ||
1040 | }, | ||
1041 | { | ||
1042 | "x": "2016-05-01 00:00:00", | ||
1043 | "y": 14.5 | ||
1044 | }, | ||
1045 | { | ||
1046 | "x": "2016-06-01 00:00:00", | ||
1047 | "y": 17.9 | ||
1048 | }, | ||
1049 | { | ||
1050 | "x": "2016-07-01 00:00:00", | ||
1051 | "y": 21.3 | ||
1052 | }, | ||
1053 | { | ||
1054 | "x": "2016-08-01 00:00:00", | ||
1055 | "y": 20.4 | ||
1056 | }, | ||
1057 | { | ||
1058 | "x": "2017-03-01 00:00:00", | ||
1059 | "y": 14.2 | ||
1060 | }, | ||
1061 | { | ||
1062 | "x": "2017-04-01 00:00:00", | ||
1063 | "y": 9.7 | ||
1064 | }, | ||
1065 | { | ||
1066 | "x": "2017-05-01 00:00:00", | ||
1067 | "y": 16.8 | ||
1068 | }, | ||
1069 | { | ||
1070 | "x": "2017-06-01 00:00:00", | ||
1071 | "y": 23.9 | ||
1072 | }, | ||
1073 | { | ||
1074 | "x": "2017-07-01 00:00:00", | ||
1075 | "y": 21.4 | ||
1076 | }, | ||
1077 | { | ||
1078 | "x": "2017-08-01 00:00:00", | ||
1079 | "y": 20.7 | ||
1080 | }, | ||
1081 | { | ||
1082 | "x": "2017-09-01 00:00:00", | ||
1083 | "y": 15.8 | ||
1084 | }, | ||
1085 | { | ||
1086 | "x": "2017-10-01 00:00:00", | ||
1087 | "y": 14.2 | ||
1088 | }, | ||
1089 | { | ||
1090 | "x": "2017-11-01 00:00:00", | ||
1091 | "y": 7.5 | ||
1092 | }, | ||
1093 | { | ||
1094 | "x": "2017-12-01 00:00:00", | ||
1095 | "y": 4.2 | ||
1096 | }, | ||
1097 | { | ||
1098 | "x": "2018-03-01 00:00:00", | ||
1099 | "y": 10.2 | ||
1100 | }, | ||
1101 | { | ||
1102 | "x": "2018-04-01 00:00:00", | ||
1103 | "y": 17.6 | ||
1104 | }, | ||
1105 | { | ||
1106 | "x": "2018-05-01 00:00:00", | ||
1107 | "y": 16.1 | ||
1108 | }, | ||
1109 | { | ||
1110 | "x": "2018-06-01 00:00:00", | ||
1111 | "y": 22.4 | ||
1112 | }, | ||
1113 | { | ||
1114 | "x": "2018-07-01 00:00:00", | ||
1115 | "y": 30 | ||
1116 | }, | ||
1117 | { | ||
1118 | "x": "2018-08-01 00:00:00", | ||
1119 | "y": 19.8 | ||
1120 | } | ||
1121 | ], | ||
1122 | "name": "Exterieure", | ||
1123 | "unit": "°C", | ||
1124 | "hide": false | ||
1125 | }, | ||
1126 | "Sejour_temperature": { | ||
1127 | "data": [ | ||
1128 | { | ||
1129 | "x": "2012-06-01 00:00:00", | ||
1130 | "y": 22.8 | ||
1131 | }, | ||
1132 | { | ||
1133 | "x": "2012-07-01 00:00:00", | ||
1134 | "y": 23 | ||
1135 | }, | ||
1136 | { | ||
1137 | "x": "2012-08-01 00:00:00", | ||
1138 | "y": 25.3 | ||
1139 | }, | ||
1140 | { | ||
1141 | "x": "2012-09-01 00:00:00", | ||
1142 | "y": 23.3 | ||
1143 | }, | ||
1144 | { | ||
1145 | "x": "2012-10-01 00:00:00", | ||
1146 | "y": 21.7 | ||
1147 | }, | ||
1148 | { | ||
1149 | "x": "2012-11-01 00:00:00", | ||
1150 | "y": 19.9 | ||
1151 | }, | ||
1152 | { | ||
1153 | "x": "2012-12-01 00:00:00", | ||
1154 | "y": 20.1 | ||
1155 | }, | ||
1156 | { | ||
1157 | "x": "2013-01-01 00:00:00", | ||
1158 | "y": 20 | ||
1159 | }, | ||
1160 | { | ||
1161 | "x": "2013-02-01 00:00:00", | ||
1162 | "y": 15.8 | ||
1163 | }, | ||
1164 | { | ||
1165 | "x": "2013-03-01 00:00:00", | ||
1166 | "y": 20.5 | ||
1167 | }, | ||
1168 | { | ||
1169 | "x": "2013-04-01 00:00:00", | ||
1170 | "y": 20.8 | ||
1171 | }, | ||
1172 | { | ||
1173 | "x": "2013-05-01 00:00:00", | ||
1174 | "y": 20.9 | ||
1175 | }, | ||
1176 | { | ||
1177 | "x": "2013-06-01 00:00:00", | ||
1178 | "y": 22 | ||
1179 | }, | ||
1180 | { | ||
1181 | "x": "2013-07-01 00:00:00", | ||
1182 | "y": 25 | ||
1183 | }, | ||
1184 | { | ||
1185 | "x": "2013-08-01 00:00:00", | ||
1186 | "y": 22.7 | ||
1187 | }, | ||
1188 | { | ||
1189 | "x": "2013-09-01 00:00:00", | ||
1190 | "y": 22.9 | ||
1191 | }, | ||
1192 | { | ||
1193 | "x": "2013-10-01 00:00:00", | ||
1194 | "y": 21.5 | ||
1195 | }, | ||
1196 | { | ||
1197 | "x": "2013-11-01 00:00:00", | ||
1198 | "y": 20.3 | ||
1199 | }, | ||
1200 | { | ||
1201 | "x": "2013-12-01 00:00:00", | ||
1202 | "y": 20.7 | ||
1203 | }, | ||
1204 | { | ||
1205 | "x": "2014-01-01 00:00:00", | ||
1206 | "y": 20.6 | ||
1207 | }, | ||
1208 | { | ||
1209 | "x": "2014-02-01 00:00:00", | ||
1210 | "y": 19.9 | ||
1211 | }, | ||
1212 | { | ||
1213 | "x": "2014-03-01 00:00:00", | ||
1214 | "y": 21.2 | ||
1215 | }, | ||
1216 | { | ||
1217 | "x": "2014-04-01 00:00:00", | ||
1218 | "y": 21.7 | ||
1219 | }, | ||
1220 | { | ||
1221 | "x": "2014-05-01 00:00:00", | ||
1222 | "y": 22.3 | ||
1223 | }, | ||
1224 | { | ||
1225 | "x": "2014-06-01 00:00:00", | ||
1226 | "y": 25.6 | ||
1227 | }, | ||
1228 | { | ||
1229 | "x": "2014-10-01 00:00:00", | ||
1230 | "y": 22.8 | ||
1231 | }, | ||
1232 | { | ||
1233 | "x": "2014-11-01 00:00:00", | ||
1234 | "y": 20.9 | ||
1235 | }, | ||
1236 | { | ||
1237 | "x": "2014-12-01 00:00:00", | ||
1238 | "y": 18 | ||
1239 | }, | ||
1240 | { | ||
1241 | "x": "2015-01-01 00:00:00", | ||
1242 | "y": 20 | ||
1243 | }, | ||
1244 | { | ||
1245 | "x": "2015-02-01 00:00:00", | ||
1246 | "y": 20 | ||
1247 | }, | ||
1248 | { | ||
1249 | "x": "2015-03-01 00:00:00", | ||
1250 | "y": 19.6 | ||
1251 | }, | ||
1252 | { | ||
1253 | "x": "2015-04-01 00:00:00", | ||
1254 | "y": 21.8 | ||
1255 | }, | ||
1256 | { | ||
1257 | "x": "2015-05-01 00:00:00", | ||
1258 | "y": 20.5 | ||
1259 | }, | ||
1260 | { | ||
1261 | "x": "2015-06-01 00:00:00", | ||
1262 | "y": 24.4 | ||
1263 | }, | ||
1264 | { | ||
1265 | "x": "2015-07-01 00:00:00", | ||
1266 | "y": 21.6 | ||
1267 | }, | ||
1268 | { | ||
1269 | "x": "2015-08-01 00:00:00", | ||
1270 | "y": 23.9 | ||
1271 | }, | ||
1272 | { | ||
1273 | "x": "2015-09-01 00:00:00", | ||
1274 | "y": 23.1 | ||
1275 | }, | ||
1276 | { | ||
1277 | "x": "2015-10-01 00:00:00", | ||
1278 | "y": 21.4 | ||
1279 | }, | ||
1280 | { | ||
1281 | "x": "2015-11-01 00:00:00", | ||
1282 | "y": 21.1 | ||
1283 | }, | ||
1284 | { | ||
1285 | "x": "2015-12-01 00:00:00", | ||
1286 | "y": 20.1 | ||
1287 | }, | ||
1288 | { | ||
1289 | "x": "2016-01-01 00:00:00", | ||
1290 | "y": 20.1 | ||
1291 | }, | ||
1292 | { | ||
1293 | "x": "2016-02-01 00:00:00", | ||
1294 | "y": 20.3 | ||
1295 | }, | ||
1296 | { | ||
1297 | "x": "2016-03-01 00:00:00", | ||
1298 | "y": 20.2 | ||
1299 | }, | ||
1300 | { | ||
1301 | "x": "2016-04-01 00:00:00", | ||
1302 | "y": 19.7 | ||
1303 | }, | ||
1304 | { | ||
1305 | "x": "2016-05-01 00:00:00", | ||
1306 | "y": 21.6 | ||
1307 | }, | ||
1308 | { | ||
1309 | "x": "2016-06-01 00:00:00", | ||
1310 | "y": 23.2 | ||
1311 | }, | ||
1312 | { | ||
1313 | "x": "2016-07-01 00:00:00", | ||
1314 | "y": 24.7 | ||
1315 | }, | ||
1316 | { | ||
1317 | "x": "2016-08-01 00:00:00", | ||
1318 | "y": 24.5 | ||
1319 | }, | ||
1320 | { | ||
1321 | "x": "2016-09-01 00:00:00", | ||
1322 | "y": 23.7 | ||
1323 | }, | ||
1324 | { | ||
1325 | "x": "2017-03-01 00:00:00", | ||
1326 | "y": 21.7 | ||
1327 | }, | ||
1328 | { | ||
1329 | "x": "2017-04-01 00:00:00", | ||
1330 | "y": 21 | ||
1331 | }, | ||
1332 | { | ||
1333 | "x": "2017-05-01 00:00:00", | ||
1334 | "y": 22.6 | ||
1335 | }, | ||
1336 | { | ||
1337 | "x": "2017-06-01 00:00:00", | ||
1338 | "y": 24 | ||
1339 | }, | ||
1340 | { | ||
1341 | "x": "2017-07-01 00:00:00", | ||
1342 | "y": 24.3 | ||
1343 | }, | ||
1344 | { | ||
1345 | "x": "2017-08-01 00:00:00", | ||
1346 | "y": 23.7 | ||
1347 | }, | ||
1348 | { | ||
1349 | "x": "2017-09-01 00:00:00", | ||
1350 | "y": 23.3 | ||
1351 | }, | ||
1352 | { | ||
1353 | "x": "2017-10-01 00:00:00", | ||
1354 | "y": 22.6 | ||
1355 | }, | ||
1356 | { | ||
1357 | "x": "2017-11-01 00:00:00", | ||
1358 | "y": 20.3 | ||
1359 | }, | ||
1360 | { | ||
1361 | "x": "2017-12-01 00:00:00", | ||
1362 | "y": 19.9 | ||
1363 | }, | ||
1364 | { | ||
1365 | "x": "2018-01-01 00:00:00", | ||
1366 | "y": 19.9 | ||
1367 | }, | ||
1368 | { | ||
1369 | "x": "2018-02-01 00:00:00", | ||
1370 | "y": 19.9 | ||
1371 | }, | ||
1372 | { | ||
1373 | "x": "2018-03-01 00:00:00", | ||
1374 | "y": 20.3 | ||
1375 | }, | ||
1376 | { | ||
1377 | "x": "2018-04-01 00:00:00", | ||
1378 | "y": 21.6 | ||
1379 | }, | ||
1380 | { | ||
1381 | "x": "2018-05-01 00:00:00", | ||
1382 | "y": 22.6 | ||
1383 | }, | ||
1384 | { | ||
1385 | "x": "2018-06-01 00:00:00", | ||
1386 | "y": 23.8 | ||
1387 | }, | ||
1388 | { | ||
1389 | "x": "2018-07-01 00:00:00", | ||
1390 | "y": 23.9 | ||
1391 | }, | ||
1392 | { | ||
1393 | "x": "2018-08-01 00:00:00", | ||
1394 | "y": 23.7 | ||
1395 | }, | ||
1396 | { | ||
1397 | "x": "2019-03-01 00:00:00", | ||
1398 | "y": 23.3 | ||
1399 | }, | ||
1400 | { | ||
1401 | "x": "2019-04-01 00:00:00", | ||
1402 | "y": 22.7 | ||
1403 | }, | ||
1404 | { | ||
1405 | "x": "2019-05-01 00:00:00", | ||
1406 | "y": 22.2 | ||
1407 | }, | ||
1408 | { | ||
1409 | "x": "2019-06-01 00:00:00", | ||
1410 | "y": 23.8 | ||
1411 | }, | ||
1412 | { | ||
1413 | "x": "2019-07-01 00:00:00", | ||
1414 | "y": 24.6 | ||
1415 | }, | ||
1416 | { | ||
1417 | "x": "2019-08-01 00:00:00", | ||
1418 | "y": 23.3 | ||
1419 | }, | ||
1420 | { | ||
1421 | "x": "2020-03-01 00:00:00", | ||
1422 | "y": 23.5 | ||
1423 | } | ||
1424 | ], | ||
1425 | "name": "Sejour", | ||
1426 | "unit": "°C", | ||
1427 | "hide": false | ||
1428 | }, | ||
1429 | "Garage_temperature": { | ||
1430 | "data": [ | ||
1431 | { | ||
1432 | "x": "2012-06-01 00:00:00", | ||
1433 | "y": 20.2 | ||
1434 | }, | ||
1435 | { | ||
1436 | "x": "2012-07-01 00:00:00", | ||
1437 | "y": 19.4 | ||
1438 | }, | ||
1439 | { | ||
1440 | "x": "2012-08-01 00:00:00", | ||
1441 | "y": 22.2 | ||
1442 | }, | ||
1443 | { | ||
1444 | "x": "2012-09-01 00:00:00", | ||
1445 | "y": 17 | ||
1446 | }, | ||
1447 | { | ||
1448 | "x": "2012-10-01 00:00:00", | ||
1449 | "y": 13.8 | ||
1450 | }, | ||
1451 | { | ||
1452 | "x": "2012-11-01 00:00:00", | ||
1453 | "y": 9.2 | ||
1454 | }, | ||
1455 | { | ||
1456 | "x": "2012-12-01 00:00:00", | ||
1457 | "y": 7.6 | ||
1458 | }, | ||
1459 | { | ||
1460 | "x": "2013-01-01 00:00:00", | ||
1461 | "y": 5.3 | ||
1462 | }, | ||
1463 | { | ||
1464 | "x": "2013-02-01 00:00:00", | ||
1465 | "y": 3.4 | ||
1466 | }, | ||
1467 | { | ||
1468 | "x": "2013-03-01 00:00:00", | ||
1469 | "y": 7.3 | ||
1470 | }, | ||
1471 | { | ||
1472 | "x": "2013-04-01 00:00:00", | ||
1473 | "y": 10.7 | ||
1474 | }, | ||
1475 | { | ||
1476 | "x": "2013-05-01 00:00:00", | ||
1477 | "y": 12.4 | ||
1478 | }, | ||
1479 | { | ||
1480 | "x": "2013-06-01 00:00:00", | ||
1481 | "y": 17.2 | ||
1482 | }, | ||
1483 | { | ||
1484 | "x": "2013-07-01 00:00:00", | ||
1485 | "y": 23 | ||
1486 | }, | ||
1487 | { | ||
1488 | "x": "2013-08-01 00:00:00", | ||
1489 | "y": 20.2 | ||
1490 | }, | ||
1491 | { | ||
1492 | "x": "2013-09-01 00:00:00", | ||
1493 | "y": 17.1 | ||
1494 | }, | ||
1495 | { | ||
1496 | "x": "2013-10-01 00:00:00", | ||
1497 | "y": 14.5 | ||
1498 | }, | ||
1499 | { | ||
1500 | "x": "2013-11-01 00:00:00", | ||
1501 | "y": 8.2 | ||
1502 | }, | ||
1503 | { | ||
1504 | "x": "2013-12-01 00:00:00", | ||
1505 | "y": 5.9 | ||
1506 | }, | ||
1507 | { | ||
1508 | "x": "2014-01-01 00:00:00", | ||
1509 | "y": 7.9 | ||
1510 | }, | ||
1511 | { | ||
1512 | "x": "2014-02-01 00:00:00", | ||
1513 | "y": 7.6 | ||
1514 | }, | ||
1515 | { | ||
1516 | "x": "2014-03-01 00:00:00", | ||
1517 | "y": 9 | ||
1518 | }, | ||
1519 | { | ||
1520 | "x": "2014-04-01 00:00:00", | ||
1521 | "y": 12.6 | ||
1522 | }, | ||
1523 | { | ||
1524 | "x": "2014-05-01 00:00:00", | ||
1525 | "y": 14.2 | ||
1526 | }, | ||
1527 | { | ||
1528 | "x": "2014-06-01 00:00:00", | ||
1529 | "y": 21.5 | ||
1530 | }, | ||
1531 | { | ||
1532 | "x": "2014-10-01 00:00:00", | ||
1533 | "y": 14.6 | ||
1534 | }, | ||
1535 | { | ||
1536 | "x": "2014-11-01 00:00:00", | ||
1537 | "y": 11.2 | ||
1538 | }, | ||
1539 | { | ||
1540 | "x": "2014-12-01 00:00:00", | ||
1541 | "y": 6.7 | ||
1542 | }, | ||
1543 | { | ||
1544 | "x": "2015-01-01 00:00:00", | ||
1545 | "y": 6.3 | ||
1546 | }, | ||
1547 | { | ||
1548 | "x": "2015-02-01 00:00:00", | ||
1549 | "y": 5.1 | ||
1550 | }, | ||
1551 | { | ||
1552 | "x": "2015-03-01 00:00:00", | ||
1553 | "y": 8.6 | ||
1554 | }, | ||
1555 | { | ||
1556 | "x": "2015-04-01 00:00:00", | ||
1557 | "y": 13.3 | ||
1558 | }, | ||
1559 | { | ||
1560 | "x": "2015-05-01 00:00:00", | ||
1561 | "y": 14.2 | ||
1562 | }, | ||
1563 | { | ||
1564 | "x": "2015-06-01 00:00:00", | ||
1565 | "y": 20.9 | ||
1566 | }, | ||
1567 | { | ||
1568 | "x": "2015-07-01 00:00:00", | ||
1569 | "y": 23.2 | ||
1570 | }, | ||
1571 | { | ||
1572 | "x": "2015-08-01 00:00:00", | ||
1573 | "y": 21.8 | ||
1574 | }, | ||
1575 | { | ||
1576 | "x": "2015-09-01 00:00:00", | ||
1577 | "y": 16.3 | ||
1578 | }, | ||
1579 | { | ||
1580 | "x": "2015-10-01 00:00:00", | ||
1581 | "y": 12.5 | ||
1582 | }, | ||
1583 | { | ||
1584 | "x": "2015-11-01 00:00:00", | ||
1585 | "y": 10.8 | ||
1586 | }, | ||
1587 | { | ||
1588 | "x": "2015-12-01 00:00:00", | ||
1589 | "y": 7.5 | ||
1590 | }, | ||
1591 | { | ||
1592 | "x": "2016-02-01 00:00:00", | ||
1593 | "y": 55.6 | ||
1594 | }, | ||
1595 | { | ||
1596 | "x": "2016-03-01 00:00:00", | ||
1597 | "y": 8 | ||
1598 | }, | ||
1599 | { | ||
1600 | "x": "2016-04-01 00:00:00", | ||
1601 | "y": 11.4 | ||
1602 | }, | ||
1603 | { | ||
1604 | "x": "2016-05-01 00:00:00", | ||
1605 | "y": 15.2 | ||
1606 | }, | ||
1607 | { | ||
1608 | "x": "2016-06-01 00:00:00", | ||
1609 | "y": 18.5 | ||
1610 | }, | ||
1611 | { | ||
1612 | "x": "2016-07-01 00:00:00", | ||
1613 | "y": 21.3 | ||
1614 | }, | ||
1615 | { | ||
1616 | "x": "2016-08-01 00:00:00", | ||
1617 | "y": 22.6 | ||
1618 | }, | ||
1619 | { | ||
1620 | "x": "2016-09-01 00:00:00", | ||
1621 | "y": 18.8 | ||
1622 | }, | ||
1623 | { | ||
1624 | "x": "2017-03-01 00:00:00", | ||
1625 | "y": 15.2 | ||
1626 | }, | ||
1627 | { | ||
1628 | "x": "2017-04-01 00:00:00", | ||
1629 | "y": 11.5 | ||
1630 | }, | ||
1631 | { | ||
1632 | "x": "2017-05-01 00:00:00", | ||
1633 | "y": 16.7 | ||
1634 | }, | ||
1635 | { | ||
1636 | "x": "2017-06-01 00:00:00", | ||
1637 | "y": 21.7 | ||
1638 | }, | ||
1639 | { | ||
1640 | "x": "2017-07-01 00:00:00", | ||
1641 | "y": 21.5 | ||
1642 | }, | ||
1643 | { | ||
1644 | "x": "2017-08-01 00:00:00", | ||
1645 | "y": 21.1 | ||
1646 | }, | ||
1647 | { | ||
1648 | "x": "2017-09-01 00:00:00", | ||
1649 | "y": 16.4 | ||
1650 | }, | ||
1651 | { | ||
1652 | "x": "2017-10-01 00:00:00", | ||
1653 | "y": 14.2 | ||
1654 | }, | ||
1655 | { | ||
1656 | "x": "2017-11-01 00:00:00", | ||
1657 | "y": 9 | ||
1658 | }, | ||
1659 | { | ||
1660 | "x": "2017-12-01 00:00:00", | ||
1661 | "y": 7 | ||
1662 | }, | ||
1663 | { | ||
1664 | "x": "2018-01-01 00:00:00", | ||
1665 | "y": 9.3 | ||
1666 | }, | ||
1667 | { | ||
1668 | "x": "2018-02-01 00:00:00", | ||
1669 | "y": 4 | ||
1670 | }, | ||
1671 | { | ||
1672 | "x": "2018-03-01 00:00:00", | ||
1673 | "y": 9.4 | ||
1674 | }, | ||
1675 | { | ||
1676 | "x": "2018-04-01 00:00:00", | ||
1677 | "y": 12.9 | ||
1678 | }, | ||
1679 | { | ||
1680 | "x": "2019-03-01 00:00:00", | ||
1681 | "y": 13.9 | ||
1682 | }, | ||
1683 | { | ||
1684 | "x": "2019-04-01 00:00:00", | ||
1685 | "y": 14.1 | ||
1686 | }, | ||
1687 | { | ||
1688 | "x": "2019-05-01 00:00:00", | ||
1689 | "y": 16.4 | ||
1690 | }, | ||
1691 | { | ||
1692 | "x": "2019-06-01 00:00:00", | ||
1693 | "y": 24 | ||
1694 | }, | ||
1695 | { | ||
1696 | "x": "2019-07-01 00:00:00", | ||
1697 | "y": 24.2 | ||
1698 | }, | ||
1699 | { | ||
1700 | "x": "2020-03-01 00:00:00", | ||
1701 | "y": 21.3 | ||
1702 | }, | ||
1703 | { | ||
1704 | "x": "2020-05-01 00:00:00", | ||
1705 | "y": 21 | ||
1706 | } | ||
1707 | ], | ||
1708 | "name": "Garage", | ||
1709 | "unit": "°C", | ||
1710 | "hide": true | ||
1711 | }, | ||
1712 | "Soufflage_temperature": { | ||
1713 | "data": [ | ||
1714 | { | ||
1715 | "x": "2012-06-01 00:00:00", | ||
1716 | "y": 22 | ||
1717 | }, | ||
1718 | { | ||
1719 | "x": "2012-07-01 00:00:00", | ||
1720 | "y": 22.3 | ||
1721 | }, | ||
1722 | { | ||
1723 | "x": "2012-08-01 00:00:00", | ||
1724 | "y": 24.1 | ||
1725 | }, | ||
1726 | { | ||
1727 | "x": "2012-09-01 00:00:00", | ||
1728 | "y": 20.7 | ||
1729 | }, | ||
1730 | { | ||
1731 | "x": "2012-10-01 00:00:00", | ||
1732 | "y": 18.1 | ||
1733 | }, | ||
1734 | { | ||
1735 | "x": "2012-11-01 00:00:00", | ||
1736 | "y": 14.6 | ||
1737 | }, | ||
1738 | { | ||
1739 | "x": "2012-12-01 00:00:00", | ||
1740 | "y": 16.5 | ||
1741 | }, | ||
1742 | { | ||
1743 | "x": "2013-01-01 00:00:00", | ||
1744 | "y": 16.7 | ||
1745 | }, | ||
1746 | { | ||
1747 | "x": "2013-02-01 00:00:00", | ||
1748 | "y": 13.4 | ||
1749 | }, | ||
1750 | { | ||
1751 | "x": "2013-03-01 00:00:00", | ||
1752 | "y": 18.2 | ||
1753 | }, | ||
1754 | { | ||
1755 | "x": "2013-04-01 00:00:00", | ||
1756 | "y": 19.8 | ||
1757 | }, | ||
1758 | { | ||
1759 | "x": "2013-05-01 00:00:00", | ||
1760 | "y": 20.4 | ||
1761 | }, | ||
1762 | { | ||
1763 | "x": "2013-06-01 00:00:00", | ||
1764 | "y": 22.7 | ||
1765 | }, | ||
1766 | { | ||
1767 | "x": "2013-07-01 00:00:00", | ||
1768 | "y": 24.9 | ||
1769 | }, | ||
1770 | { | ||
1771 | "x": "2013-08-01 00:00:00", | ||
1772 | "y": 22.8 | ||
1773 | }, | ||
1774 | { | ||
1775 | "x": "2013-09-01 00:00:00", | ||
1776 | "y": 22.3 | ||
1777 | }, | ||
1778 | { | ||
1779 | "x": "2013-10-01 00:00:00", | ||
1780 | "y": 20.2 | ||
1781 | }, | ||
1782 | { | ||
1783 | "x": "2013-11-01 00:00:00", | ||
1784 | "y": 17 | ||
1785 | }, | ||
1786 | { | ||
1787 | "x": "2013-12-01 00:00:00", | ||
1788 | "y": 17.8 | ||
1789 | }, | ||
1790 | { | ||
1791 | "x": "2014-01-01 00:00:00", | ||
1792 | "y": 18.3 | ||
1793 | }, | ||
1794 | { | ||
1795 | "x": "2014-02-01 00:00:00", | ||
1796 | "y": 17.8 | ||
1797 | }, | ||
1798 | { | ||
1799 | "x": "2014-03-01 00:00:00", | ||
1800 | "y": 19.1 | ||
1801 | }, | ||
1802 | { | ||
1803 | "x": "2014-04-01 00:00:00", | ||
1804 | "y": 20.7 | ||
1805 | }, | ||
1806 | { | ||
1807 | "x": "2014-11-01 00:00:00", | ||
1808 | "y": 24.1 | ||
1809 | }, | ||
1810 | { | ||
1811 | "x": "2014-12-01 00:00:00", | ||
1812 | "y": 6.6 | ||
1813 | }, | ||
1814 | { | ||
1815 | "x": "2015-01-01 00:00:00", | ||
1816 | "y": 6.4 | ||
1817 | }, | ||
1818 | { | ||
1819 | "x": "2015-02-01 00:00:00", | ||
1820 | "y": 4.8 | ||
1821 | }, | ||
1822 | { | ||
1823 | "x": "2015-03-01 00:00:00", | ||
1824 | "y": 9.9 | ||
1825 | }, | ||
1826 | { | ||
1827 | "x": "2015-04-01 00:00:00", | ||
1828 | "y": 15.3 | ||
1829 | }, | ||
1830 | { | ||
1831 | "x": "2015-05-01 00:00:00", | ||
1832 | "y": 15.8 | ||
1833 | }, | ||
1834 | { | ||
1835 | "x": "2015-06-01 00:00:00", | ||
1836 | "y": 20.1 | ||
1837 | }, | ||
1838 | { | ||
1839 | "x": "2015-07-01 00:00:00", | ||
1840 | "y": 21.8 | ||
1841 | }, | ||
1842 | { | ||
1843 | "x": "2015-08-01 00:00:00", | ||
1844 | "y": 21.9 | ||
1845 | }, | ||
1846 | { | ||
1847 | "x": "2015-09-01 00:00:00", | ||
1848 | "y": 17.1 | ||
1849 | }, | ||
1850 | { | ||
1851 | "x": "2015-10-01 00:00:00", | ||
1852 | "y": 13.2 | ||
1853 | }, | ||
1854 | { | ||
1855 | "x": "2015-11-01 00:00:00", | ||
1856 | "y": 12.8 | ||
1857 | }, | ||
1858 | { | ||
1859 | "x": "2015-12-01 00:00:00", | ||
1860 | "y": 11.1 | ||
1861 | }, | ||
1862 | { | ||
1863 | "x": "2016-01-01 00:00:00", | ||
1864 | "y": 11.7 | ||
1865 | }, | ||
1866 | { | ||
1867 | "x": "2016-02-01 00:00:00", | ||
1868 | "y": 11.3 | ||
1869 | }, | ||
1870 | { | ||
1871 | "x": "2017-03-01 00:00:00", | ||
1872 | "y": 24.2 | ||
1873 | }, | ||
1874 | { | ||
1875 | "x": "2017-04-01 00:00:00", | ||
1876 | "y": 18.5 | ||
1877 | }, | ||
1878 | { | ||
1879 | "x": "2017-05-01 00:00:00", | ||
1880 | "y": 22.2 | ||
1881 | }, | ||
1882 | { | ||
1883 | "x": "2017-06-01 00:00:00", | ||
1884 | "y": 24.2 | ||
1885 | }, | ||
1886 | { | ||
1887 | "x": "2017-07-01 00:00:00", | ||
1888 | "y": 23.8 | ||
1889 | }, | ||
1890 | { | ||
1891 | "x": "2017-08-01 00:00:00", | ||
1892 | "y": 23 | ||
1893 | }, | ||
1894 | { | ||
1895 | "x": "2017-09-01 00:00:00", | ||
1896 | "y": 20.9 | ||
1897 | }, | ||
1898 | { | ||
1899 | "x": "2017-10-01 00:00:00", | ||
1900 | "y": 19.3 | ||
1901 | }, | ||
1902 | { | ||
1903 | "x": "2017-11-01 00:00:00", | ||
1904 | "y": 14.6 | ||
1905 | }, | ||
1906 | { | ||
1907 | "x": "2017-12-01 00:00:00", | ||
1908 | "y": 14.9 | ||
1909 | }, | ||
1910 | { | ||
1911 | "x": "2018-01-01 00:00:00", | ||
1912 | "y": 16.4 | ||
1913 | }, | ||
1914 | { | ||
1915 | "x": "2018-02-01 00:00:00", | ||
1916 | "y": 13.5 | ||
1917 | }, | ||
1918 | { | ||
1919 | "x": "2018-03-01 00:00:00", | ||
1920 | "y": 14.7 | ||
1921 | } | ||
1922 | ], | ||
1923 | "name": "Soufflage", | ||
1924 | "unit": "°C", | ||
1925 | "hide": true | ||
1926 | }, | ||
1927 | "Mezzanine_temperature": { | ||
1928 | "data": [ | ||
1929 | { | ||
1930 | "x": "2012-06-01 00:00:00", | ||
1931 | "y": 23.3 | ||
1932 | }, | ||
1933 | { | ||
1934 | "x": "2012-07-01 00:00:00", | ||
1935 | "y": 23.5 | ||
1936 | }, | ||
1937 | { | ||
1938 | "x": "2012-08-01 00:00:00", | ||
1939 | "y": 25.9 | ||
1940 | }, | ||
1941 | { | ||
1942 | "x": "2012-09-01 00:00:00", | ||
1943 | "y": 23.1 | ||
1944 | }, | ||
1945 | { | ||
1946 | "x": "2012-10-01 00:00:00", | ||
1947 | "y": 21.5 | ||
1948 | }, | ||
1949 | { | ||
1950 | "x": "2012-11-01 00:00:00", | ||
1951 | "y": 19.7 | ||
1952 | }, | ||
1953 | { | ||
1954 | "x": "2012-12-01 00:00:00", | ||
1955 | "y": 19.4 | ||
1956 | }, | ||
1957 | { | ||
1958 | "x": "2013-01-01 00:00:00", | ||
1959 | "y": 19 | ||
1960 | }, | ||
1961 | { | ||
1962 | "x": "2013-02-01 00:00:00", | ||
1963 | "y": 15.3 | ||
1964 | }, | ||
1965 | { | ||
1966 | "x": "2013-03-01 00:00:00", | ||
1967 | "y": 19.9 | ||
1968 | }, | ||
1969 | { | ||
1970 | "x": "2013-04-01 00:00:00", | ||
1971 | "y": 20.5 | ||
1972 | }, | ||
1973 | { | ||
1974 | "x": "2013-05-01 00:00:00", | ||
1975 | "y": 20.8 | ||
1976 | }, | ||
1977 | { | ||
1978 | "x": "2013-06-01 00:00:00", | ||
1979 | "y": 22.2 | ||
1980 | }, | ||
1981 | { | ||
1982 | "x": "2013-07-01 00:00:00", | ||
1983 | "y": 25.7 | ||
1984 | }, | ||
1985 | { | ||
1986 | "x": "2013-08-01 00:00:00", | ||
1987 | "y": 23.1 | ||
1988 | }, | ||
1989 | { | ||
1990 | "x": "2013-09-01 00:00:00", | ||
1991 | "y": 23 | ||
1992 | }, | ||
1993 | { | ||
1994 | "x": "2013-10-01 00:00:00", | ||
1995 | "y": 21.5 | ||
1996 | }, | ||
1997 | { | ||
1998 | "x": "2013-11-01 00:00:00", | ||
1999 | "y": 19.5 | ||
2000 | }, | ||
2001 | { | ||
2002 | "x": "2013-12-01 00:00:00", | ||
2003 | "y": 20 | ||
2004 | }, | ||
2005 | { | ||
2006 | "x": "2014-01-01 00:00:00", | ||
2007 | "y": 20 | ||
2008 | }, | ||
2009 | { | ||
2010 | "x": "2014-02-01 00:00:00", | ||
2011 | "y": 19.6 | ||
2012 | }, | ||
2013 | { | ||
2014 | "x": "2014-03-01 00:00:00", | ||
2015 | "y": 21.1 | ||
2016 | }, | ||
2017 | { | ||
2018 | "x": "2014-04-01 00:00:00", | ||
2019 | "y": 21.6 | ||
2020 | }, | ||
2021 | { | ||
2022 | "x": "2014-05-01 00:00:00", | ||
2023 | "y": 22.3 | ||
2024 | }, | ||
2025 | { | ||
2026 | "x": "2014-06-01 00:00:00", | ||
2027 | "y": 25.9 | ||
2028 | }, | ||
2029 | { | ||
2030 | "x": "2015-09-01 00:00:00", | ||
2031 | "y": 22.7 | ||
2032 | }, | ||
2033 | { | ||
2034 | "x": "2015-10-01 00:00:00", | ||
2035 | "y": 21.3 | ||
2036 | }, | ||
2037 | { | ||
2038 | "x": "2015-11-01 00:00:00", | ||
2039 | "y": 20.9 | ||
2040 | }, | ||
2041 | { | ||
2042 | "x": "2015-12-01 00:00:00", | ||
2043 | "y": 19.9 | ||
2044 | }, | ||
2045 | { | ||
2046 | "x": "2016-01-01 00:00:00", | ||
2047 | "y": 19.6 | ||
2048 | }, | ||
2049 | { | ||
2050 | "x": "2016-02-01 00:00:00", | ||
2051 | "y": 17.6 | ||
2052 | }, | ||
2053 | { | ||
2054 | "x": "2016-03-01 00:00:00", | ||
2055 | "y": 19.9 | ||
2056 | }, | ||
2057 | { | ||
2058 | "x": "2016-04-01 00:00:00", | ||
2059 | "y": 19.5 | ||
2060 | }, | ||
2061 | { | ||
2062 | "x": "2016-05-01 00:00:00", | ||
2063 | "y": 21.6 | ||
2064 | }, | ||
2065 | { | ||
2066 | "x": "2016-06-01 00:00:00", | ||
2067 | "y": 23.5 | ||
2068 | }, | ||
2069 | { | ||
2070 | "x": "2016-07-01 00:00:00", | ||
2071 | "y": 25.4 | ||
2072 | }, | ||
2073 | { | ||
2074 | "x": "2016-08-01 00:00:00", | ||
2075 | "y": 25.1 | ||
2076 | }, | ||
2077 | { | ||
2078 | "x": "2016-09-01 00:00:00", | ||
2079 | "y": 24.2 | ||
2080 | }, | ||
2081 | { | ||
2082 | "x": "2017-03-01 00:00:00", | ||
2083 | "y": 21.8 | ||
2084 | }, | ||
2085 | { | ||
2086 | "x": "2017-04-01 00:00:00", | ||
2087 | "y": 20.6 | ||
2088 | }, | ||
2089 | { | ||
2090 | "x": "2017-05-01 00:00:00", | ||
2091 | "y": 22.8 | ||
2092 | }, | ||
2093 | { | ||
2094 | "x": "2017-06-01 00:00:00", | ||
2095 | "y": 24.9 | ||
2096 | }, | ||
2097 | { | ||
2098 | "x": "2017-07-01 00:00:00", | ||
2099 | "y": 24.9 | ||
2100 | }, | ||
2101 | { | ||
2102 | "x": "2017-08-01 00:00:00", | ||
2103 | "y": 24.2 | ||
2104 | }, | ||
2105 | { | ||
2106 | "x": "2017-09-01 00:00:00", | ||
2107 | "y": 23.2 | ||
2108 | }, | ||
2109 | { | ||
2110 | "x": "2019-03-01 00:00:00", | ||
2111 | "y": 22.7 | ||
2112 | }, | ||
2113 | { | ||
2114 | "x": "2019-04-01 00:00:00", | ||
2115 | "y": 22.6 | ||
2116 | }, | ||
2117 | { | ||
2118 | "x": "2019-05-01 00:00:00", | ||
2119 | "y": 22.2 | ||
2120 | }, | ||
2121 | { | ||
2122 | "x": "2019-06-01 00:00:00", | ||
2123 | "y": 24.4 | ||
2124 | }, | ||
2125 | { | ||
2126 | "x": "2019-07-01 00:00:00", | ||
2127 | "y": 25.6 | ||
2128 | }, | ||
2129 | { | ||
2130 | "x": "2019-08-01 00:00:00", | ||
2131 | "y": 23.9 | ||
2132 | } | ||
2133 | ], | ||
2134 | "name": "Mezzanine", | ||
2135 | "unit": "°C", | ||
2136 | "hide": false | ||
2137 | }, | ||
2138 | "Extraction_temperature": { | ||
2139 | "data": [ | ||
2140 | { | ||
2141 | "x": "2012-06-01 00:00:00", | ||
2142 | "y": 22 | ||
2143 | }, | ||
2144 | { | ||
2145 | "x": "2012-07-01 00:00:00", | ||
2146 | "y": 22.4 | ||
2147 | }, | ||
2148 | { | ||
2149 | "x": "2012-08-01 00:00:00", | ||
2150 | "y": 24.6 | ||
2151 | }, | ||
2152 | { | ||
2153 | "x": "2012-09-01 00:00:00", | ||
2154 | "y": 21.7 | ||
2155 | }, | ||
2156 | { | ||
2157 | "x": "2012-10-01 00:00:00", | ||
2158 | "y": 19.2 | ||
2159 | }, | ||
2160 | { | ||
2161 | "x": "2012-11-01 00:00:00", | ||
2162 | "y": 17.3 | ||
2163 | }, | ||
2164 | { | ||
2165 | "x": "2012-12-01 00:00:00", | ||
2166 | "y": 18.4 | ||
2167 | }, | ||
2168 | { | ||
2169 | "x": "2013-01-01 00:00:00", | ||
2170 | "y": 20.3 | ||
2171 | }, | ||
2172 | { | ||
2173 | "x": "2013-02-01 00:00:00", | ||
2174 | "y": 16.2 | ||
2175 | }, | ||
2176 | { | ||
2177 | "x": "2013-03-01 00:00:00", | ||
2178 | "y": 20.8 | ||
2179 | }, | ||
2180 | { | ||
2181 | "x": "2013-04-01 00:00:00", | ||
2182 | "y": 21.4 | ||
2183 | }, | ||
2184 | { | ||
2185 | "x": "2013-05-01 00:00:00", | ||
2186 | "y": 21.7 | ||
2187 | }, | ||
2188 | { | ||
2189 | "x": "2013-06-01 00:00:00", | ||
2190 | "y": 22.7 | ||
2191 | }, | ||
2192 | { | ||
2193 | "x": "2013-07-01 00:00:00", | ||
2194 | "y": 25.5 | ||
2195 | }, | ||
2196 | { | ||
2197 | "x": "2013-08-01 00:00:00", | ||
2198 | "y": 22.7 | ||
2199 | }, | ||
2200 | { | ||
2201 | "x": "2013-09-01 00:00:00", | ||
2202 | "y": 22.7 | ||
2203 | }, | ||
2204 | { | ||
2205 | "x": "2013-10-01 00:00:00", | ||
2206 | "y": 21.3 | ||
2207 | }, | ||
2208 | { | ||
2209 | "x": "2013-11-01 00:00:00", | ||
2210 | "y": 19.3 | ||
2211 | }, | ||
2212 | { | ||
2213 | "x": "2013-12-01 00:00:00", | ||
2214 | "y": 20.6 | ||
2215 | }, | ||
2216 | { | ||
2217 | "x": "2014-11-01 00:00:00", | ||
2218 | "y": 20.8 | ||
2219 | }, | ||
2220 | { | ||
2221 | "x": "2014-12-01 00:00:00", | ||
2222 | "y": 18.8 | ||
2223 | }, | ||
2224 | { | ||
2225 | "x": "2015-01-01 00:00:00", | ||
2226 | "y": -90.2 | ||
2227 | }, | ||
2228 | { | ||
2229 | "x": "2017-03-01 00:00:00", | ||
2230 | "y": 24 | ||
2231 | }, | ||
2232 | { | ||
2233 | "x": "2017-04-01 00:00:00", | ||
2234 | "y": 20.4 | ||
2235 | }, | ||
2236 | { | ||
2237 | "x": "2017-05-01 00:00:00", | ||
2238 | "y": 22.7 | ||
2239 | }, | ||
2240 | { | ||
2241 | "x": "2017-06-01 00:00:00", | ||
2242 | "y": 24.4 | ||
2243 | }, | ||
2244 | { | ||
2245 | "x": "2017-07-01 00:00:00", | ||
2246 | "y": 24.7 | ||
2247 | }, | ||
2248 | { | ||
2249 | "x": "2017-08-01 00:00:00", | ||
2250 | "y": 23.7 | ||
2251 | }, | ||
2252 | { | ||
2253 | "x": "2017-09-01 00:00:00", | ||
2254 | "y": 22.8 | ||
2255 | }, | ||
2256 | { | ||
2257 | "x": "2017-10-01 00:00:00", | ||
2258 | "y": 21.8 | ||
2259 | }, | ||
2260 | { | ||
2261 | "x": "2017-11-01 00:00:00", | ||
2262 | "y": 17.9 | ||
2263 | } | ||
2264 | ], | ||
2265 | "name": "Extraction", | ||
2266 | "unit": "°C", | ||
2267 | "hide": true | ||
2268 | }, | ||
2269 | "Bureau_temperature": { | ||
2270 | "data": [ | ||
2271 | { | ||
2272 | "x": "2012-08-01 00:00:00", | ||
2273 | "y": 26 | ||
2274 | }, | ||
2275 | { | ||
2276 | "x": "2012-09-01 00:00:00", | ||
2277 | "y": 26.3 | ||
2278 | }, | ||
2279 | { | ||
2280 | "x": "2012-10-01 00:00:00", | ||
2281 | "y": 24.8 | ||
2282 | }, | ||
2283 | { | ||
2284 | "x": "2012-11-01 00:00:00", | ||
2285 | "y": 24.4 | ||
2286 | }, | ||
2287 | { | ||
2288 | "x": "2012-12-01 00:00:00", | ||
2289 | "y": 23.6 | ||
2290 | }, | ||
2291 | { | ||
2292 | "x": "2013-01-01 00:00:00", | ||
2293 | "y": 23.9 | ||
2294 | }, | ||
2295 | { | ||
2296 | "x": "2013-02-01 00:00:00", | ||
2297 | "y": 18 | ||
2298 | }, | ||
2299 | { | ||
2300 | "x": "2013-03-01 00:00:00", | ||
2301 | "y": 23.2 | ||
2302 | }, | ||
2303 | { | ||
2304 | "x": "2013-04-01 00:00:00", | ||
2305 | "y": 22.6 | ||
2306 | }, | ||
2307 | { | ||
2308 | "x": "2013-05-01 00:00:00", | ||
2309 | "y": 22.7 | ||
2310 | }, | ||
2311 | { | ||
2312 | "x": "2013-06-01 00:00:00", | ||
2313 | "y": 22.6 | ||
2314 | }, | ||
2315 | { | ||
2316 | "x": "2013-07-01 00:00:00", | ||
2317 | "y": 26.1 | ||
2318 | }, | ||
2319 | { | ||
2320 | "x": "2013-08-01 00:00:00", | ||
2321 | "y": 23.9 | ||
2322 | }, | ||
2323 | { | ||
2324 | "x": "2013-09-01 00:00:00", | ||
2325 | "y": 23.5 | ||
2326 | }, | ||
2327 | { | ||
2328 | "x": "2013-10-01 00:00:00", | ||
2329 | "y": 22.2 | ||
2330 | }, | ||
2331 | { | ||
2332 | "x": "2013-11-01 00:00:00", | ||
2333 | "y": 23.7 | ||
2334 | }, | ||
2335 | { | ||
2336 | "x": "2013-12-01 00:00:00", | ||
2337 | "y": 23.9 | ||
2338 | }, | ||
2339 | { | ||
2340 | "x": "2014-01-01 00:00:00", | ||
2341 | "y": 23.5 | ||
2342 | }, | ||
2343 | { | ||
2344 | "x": "2014-02-01 00:00:00", | ||
2345 | "y": 22.7 | ||
2346 | }, | ||
2347 | { | ||
2348 | "x": "2014-03-01 00:00:00", | ||
2349 | "y": 22.8 | ||
2350 | }, | ||
2351 | { | ||
2352 | "x": "2014-04-01 00:00:00", | ||
2353 | "y": 22.9 | ||
2354 | }, | ||
2355 | { | ||
2356 | "x": "2014-05-01 00:00:00", | ||
2357 | "y": 23.6 | ||
2358 | }, | ||
2359 | { | ||
2360 | "x": "2014-06-01 00:00:00", | ||
2361 | "y": 27 | ||
2362 | }, | ||
2363 | { | ||
2364 | "x": "2014-10-01 00:00:00", | ||
2365 | "y": 24 | ||
2366 | }, | ||
2367 | { | ||
2368 | "x": "2014-11-01 00:00:00", | ||
2369 | "y": 22.5 | ||
2370 | }, | ||
2371 | { | ||
2372 | "x": "2014-12-01 00:00:00", | ||
2373 | "y": 20.9 | ||
2374 | }, | ||
2375 | { | ||
2376 | "x": "2015-01-01 00:00:00", | ||
2377 | "y": 23.5 | ||
2378 | }, | ||
2379 | { | ||
2380 | "x": "2015-02-01 00:00:00", | ||
2381 | "y": 23.7 | ||
2382 | }, | ||
2383 | { | ||
2384 | "x": "2015-03-01 00:00:00", | ||
2385 | "y": 22.4 | ||
2386 | }, | ||
2387 | { | ||
2388 | "x": "2015-04-01 00:00:00", | ||
2389 | "y": 23.3 | ||
2390 | }, | ||
2391 | { | ||
2392 | "x": "2015-05-01 00:00:00", | ||
2393 | "y": 23.2 | ||
2394 | }, | ||
2395 | { | ||
2396 | "x": "2015-06-01 00:00:00", | ||
2397 | "y": 26 | ||
2398 | }, | ||
2399 | { | ||
2400 | "x": "2015-07-01 00:00:00", | ||
2401 | "y": 26.3 | ||
2402 | }, | ||
2403 | { | ||
2404 | "x": "2015-08-01 00:00:00", | ||
2405 | "y": 24.3 | ||
2406 | }, | ||
2407 | { | ||
2408 | "x": "2015-09-01 00:00:00", | ||
2409 | "y": 23.7 | ||
2410 | }, | ||
2411 | { | ||
2412 | "x": "2015-10-01 00:00:00", | ||
2413 | "y": 22.6 | ||
2414 | }, | ||
2415 | { | ||
2416 | "x": "2015-11-01 00:00:00", | ||
2417 | "y": 22.5 | ||
2418 | }, | ||
2419 | { | ||
2420 | "x": "2015-12-01 00:00:00", | ||
2421 | "y": 22 | ||
2422 | }, | ||
2423 | { | ||
2424 | "x": "2016-01-01 00:00:00", | ||
2425 | "y": 22.8 | ||
2426 | }, | ||
2427 | { | ||
2428 | "x": "2016-02-01 00:00:00", | ||
2429 | "y": 20.8 | ||
2430 | }, | ||
2431 | { | ||
2432 | "x": "2016-03-01 00:00:00", | ||
2433 | "y": 22.8 | ||
2434 | }, | ||
2435 | { | ||
2436 | "x": "2016-04-01 00:00:00", | ||
2437 | "y": 22.1 | ||
2438 | }, | ||
2439 | { | ||
2440 | "x": "2016-05-01 00:00:00", | ||
2441 | "y": 23.1 | ||
2442 | }, | ||
2443 | { | ||
2444 | "x": "2016-06-01 00:00:00", | ||
2445 | "y": 24.4 | ||
2446 | }, | ||
2447 | { | ||
2448 | "x": "2016-07-01 00:00:00", | ||
2449 | "y": 26.3 | ||
2450 | }, | ||
2451 | { | ||
2452 | "x": "2016-08-01 00:00:00", | ||
2453 | "y": 26 | ||
2454 | }, | ||
2455 | { | ||
2456 | "x": "2016-09-01 00:00:00", | ||
2457 | "y": 24.9 | ||
2458 | }, | ||
2459 | { | ||
2460 | "x": "2017-03-01 00:00:00", | ||
2461 | "y": 22.9 | ||
2462 | }, | ||
2463 | { | ||
2464 | "x": "2017-04-01 00:00:00", | ||
2465 | "y": 23.9 | ||
2466 | }, | ||
2467 | { | ||
2468 | "x": "2017-05-01 00:00:00", | ||
2469 | "y": 24.6 | ||
2470 | }, | ||
2471 | { | ||
2472 | "x": "2017-06-01 00:00:00", | ||
2473 | "y": 25.2 | ||
2474 | }, | ||
2475 | { | ||
2476 | "x": "2017-07-01 00:00:00", | ||
2477 | "y": 33.8 | ||
2478 | }, | ||
2479 | { | ||
2480 | "x": "2017-08-01 00:00:00", | ||
2481 | "y": 38.6 | ||
2482 | }, | ||
2483 | { | ||
2484 | "x": "2017-09-01 00:00:00", | ||
2485 | "y": 35.3 | ||
2486 | }, | ||
2487 | { | ||
2488 | "x": "2017-10-01 00:00:00", | ||
2489 | "y": 35.2 | ||
2490 | }, | ||
2491 | { | ||
2492 | "x": "2017-11-01 00:00:00", | ||
2493 | "y": 36.2 | ||
2494 | }, | ||
2495 | { | ||
2496 | "x": "2017-12-01 00:00:00", | ||
2497 | "y": 24.3 | ||
2498 | }, | ||
2499 | { | ||
2500 | "x": "2018-01-01 00:00:00", | ||
2501 | "y": 23.6 | ||
2502 | }, | ||
2503 | { | ||
2504 | "x": "2018-02-01 00:00:00", | ||
2505 | "y": 24.6 | ||
2506 | }, | ||
2507 | { | ||
2508 | "x": "2018-03-01 00:00:00", | ||
2509 | "y": 22.7 | ||
2510 | }, | ||
2511 | { | ||
2512 | "x": "2018-04-01 00:00:00", | ||
2513 | "y": 24.8 | ||
2514 | }, | ||
2515 | { | ||
2516 | "x": "2018-05-01 00:00:00", | ||
2517 | "y": 26.1 | ||
2518 | }, | ||
2519 | { | ||
2520 | "x": "2018-06-01 00:00:00", | ||
2521 | "y": 26.5 | ||
2522 | }, | ||
2523 | { | ||
2524 | "x": "2018-07-01 00:00:00", | ||
2525 | "y": 30 | ||
2526 | }, | ||
2527 | { | ||
2528 | "x": "2018-08-01 00:00:00", | ||
2529 | "y": 27.5 | ||
2530 | }, | ||
2531 | { | ||
2532 | "x": "2019-03-01 00:00:00", | ||
2533 | "y": 25.3 | ||
2534 | }, | ||
2535 | { | ||
2536 | "x": "2019-04-01 00:00:00", | ||
2537 | "y": 26.1 | ||
2538 | }, | ||
2539 | { | ||
2540 | "x": "2019-05-01 00:00:00", | ||
2541 | "y": 25.2 | ||
2542 | }, | ||
2543 | { | ||
2544 | "x": "2019-06-01 00:00:00", | ||
2545 | "y": 27.3 | ||
2546 | }, | ||
2547 | { | ||
2548 | "x": "2019-07-01 00:00:00", | ||
2549 | "y": 30.2 | ||
2550 | }, | ||
2551 | { | ||
2552 | "x": "2019-08-01 00:00:00", | ||
2553 | "y": 25.6 | ||
2554 | }, | ||
2555 | { | ||
2556 | "x": "2020-03-01 00:00:00", | ||
2557 | "y": 36 | ||
2558 | }, | ||
2559 | { | ||
2560 | "x": "2020-04-01 00:00:00", | ||
2561 | "y": 35.2 | ||
2562 | }, | ||
2563 | { | ||
2564 | "x": "2020-05-01 00:00:00", | ||
2565 | "y": 37.4 | ||
2566 | } | ||
2567 | ], | ||
2568 | "name": "Bureau", | ||
2569 | "unit": "°C", | ||
2570 | "hide": false | ||
2571 | }, | ||
2572 | "Temp_Nord_temperature": { | ||
2573 | "data": [ | ||
2574 | { | ||
2575 | "x": "2012-08-01 00:00:00", | ||
2576 | "y": 22.9 | ||
2577 | }, | ||
2578 | { | ||
2579 | "x": "2012-09-01 00:00:00", | ||
2580 | "y": 15.4 | ||
2581 | }, | ||
2582 | { | ||
2583 | "x": "2012-10-01 00:00:00", | ||
2584 | "y": 12.8 | ||
2585 | }, | ||
2586 | { | ||
2587 | "x": "2012-11-01 00:00:00", | ||
2588 | "y": 8.5 | ||
2589 | }, | ||
2590 | { | ||
2591 | "x": "2012-12-01 00:00:00", | ||
2592 | "y": 18.1 | ||
2593 | }, | ||
2594 | { | ||
2595 | "x": "2013-01-01 00:00:00", | ||
2596 | "y": 22 | ||
2597 | }, | ||
2598 | { | ||
2599 | "x": "2013-02-01 00:00:00", | ||
2600 | "y": 16.8 | ||
2601 | }, | ||
2602 | { | ||
2603 | "x": "2013-03-01 00:00:00", | ||
2604 | "y": 21.2 | ||
2605 | }, | ||
2606 | { | ||
2607 | "x": "2013-04-01 00:00:00", | ||
2608 | "y": 21.3 | ||
2609 | }, | ||
2610 | { | ||
2611 | "x": "2013-05-01 00:00:00", | ||
2612 | "y": 21.9 | ||
2613 | }, | ||
2614 | { | ||
2615 | "x": "2013-06-01 00:00:00", | ||
2616 | "y": 22.7 | ||
2617 | }, | ||
2618 | { | ||
2619 | "x": "2013-07-01 00:00:00", | ||
2620 | "y": 26.2 | ||
2621 | }, | ||
2622 | { | ||
2623 | "x": "2013-08-01 00:00:00", | ||
2624 | "y": 24.5 | ||
2625 | }, | ||
2626 | { | ||
2627 | "x": "2013-09-01 00:00:00", | ||
2628 | "y": 23.6 | ||
2629 | }, | ||
2630 | { | ||
2631 | "x": "2013-10-01 00:00:00", | ||
2632 | "y": 22 | ||
2633 | }, | ||
2634 | { | ||
2635 | "x": "2013-11-01 00:00:00", | ||
2636 | "y": 22.5 | ||
2637 | }, | ||
2638 | { | ||
2639 | "x": "2013-12-01 00:00:00", | ||
2640 | "y": 22.7 | ||
2641 | }, | ||
2642 | { | ||
2643 | "x": "2014-01-01 00:00:00", | ||
2644 | "y": 22.5 | ||
2645 | }, | ||
2646 | { | ||
2647 | "x": "2014-02-01 00:00:00", | ||
2648 | "y": 20.7 | ||
2649 | }, | ||
2650 | { | ||
2651 | "x": "2014-03-01 00:00:00", | ||
2652 | "y": 21.5 | ||
2653 | }, | ||
2654 | { | ||
2655 | "x": "2014-04-01 00:00:00", | ||
2656 | "y": 22.4 | ||
2657 | }, | ||
2658 | { | ||
2659 | "x": "2014-05-01 00:00:00", | ||
2660 | "y": 23.4 | ||
2661 | }, | ||
2662 | { | ||
2663 | "x": "2014-06-01 00:00:00", | ||
2664 | "y": 26.8 | ||
2665 | }, | ||
2666 | { | ||
2667 | "x": "2014-10-01 00:00:00", | ||
2668 | "y": 23.7 | ||
2669 | }, | ||
2670 | { | ||
2671 | "x": "2014-11-01 00:00:00", | ||
2672 | "y": 22.1 | ||
2673 | }, | ||
2674 | { | ||
2675 | "x": "2014-12-01 00:00:00", | ||
2676 | "y": 19.2 | ||
2677 | } | ||
2678 | ], | ||
2679 | "name": "Temp_Nord", | ||
2680 | "unit": "°C", | ||
2681 | "hide": true | ||
2682 | }, | ||
2683 | "Chambre_RDC_hygrometrie": { | ||
2684 | "data": [ | ||
2685 | { | ||
2686 | "x": "2012-06-01 00:00:00", | ||
2687 | "y": 63 | ||
2688 | }, | ||
2689 | { | ||
2690 | "x": "2012-07-01 00:00:00", | ||
2691 | "y": 59 | ||
2692 | }, | ||
2693 | { | ||
2694 | "x": "2012-08-01 00:00:00", | ||
2695 | "y": 56 | ||
2696 | }, | ||
2697 | { | ||
2698 | "x": "2012-09-01 00:00:00", | ||
2699 | "y": 54 | ||
2700 | }, | ||
2701 | { | ||
2702 | "x": "2012-10-01 00:00:00", | ||
2703 | "y": 59 | ||
2704 | }, | ||
2705 | { | ||
2706 | "x": "2012-11-01 00:00:00", | ||
2707 | "y": 67 | ||
2708 | }, | ||
2709 | { | ||
2710 | "x": "2012-12-01 00:00:00", | ||
2711 | "y": 62 | ||
2712 | }, | ||
2713 | { | ||
2714 | "x": "2013-01-01 00:00:00", | ||
2715 | "y": 46 | ||
2716 | }, | ||
2717 | { | ||
2718 | "x": "2013-02-01 00:00:00", | ||
2719 | "y": 42 | ||
2720 | }, | ||
2721 | { | ||
2722 | "x": "2013-03-01 00:00:00", | ||
2723 | "y": 44 | ||
2724 | }, | ||
2725 | { | ||
2726 | "x": "2013-04-01 00:00:00", | ||
2727 | "y": 47 | ||
2728 | }, | ||
2729 | { | ||
2730 | "x": "2013-05-01 00:00:00", | ||
2731 | "y": 50 | ||
2732 | }, | ||
2733 | { | ||
2734 | "x": "2013-06-01 00:00:00", | ||
2735 | "y": 56 | ||
2736 | }, | ||
2737 | { | ||
2738 | "x": "2013-07-01 00:00:00", | ||
2739 | "y": 60 | ||
2740 | }, | ||
2741 | { | ||
2742 | "x": "2013-08-01 00:00:00", | ||
2743 | "y": 59 | ||
2744 | }, | ||
2745 | { | ||
2746 | "x": "2013-09-01 00:00:00", | ||
2747 | "y": 59 | ||
2748 | }, | ||
2749 | { | ||
2750 | "x": "2013-10-01 00:00:00", | ||
2751 | "y": 62 | ||
2752 | }, | ||
2753 | { | ||
2754 | "x": "2013-11-01 00:00:00", | ||
2755 | "y": 49 | ||
2756 | }, | ||
2757 | { | ||
2758 | "x": "2013-12-01 00:00:00", | ||
2759 | "y": 45 | ||
2760 | }, | ||
2761 | { | ||
2762 | "x": "2014-01-01 00:00:00", | ||
2763 | "y": 52 | ||
2764 | }, | ||
2765 | { | ||
2766 | "x": "2014-02-01 00:00:00", | ||
2767 | "y": 48 | ||
2768 | }, | ||
2769 | { | ||
2770 | "x": "2014-03-01 00:00:00", | ||
2771 | "y": 47 | ||
2772 | }, | ||
2773 | { | ||
2774 | "x": "2014-04-01 00:00:00", | ||
2775 | "y": 48 | ||
2776 | }, | ||
2777 | { | ||
2778 | "x": "2014-05-01 00:00:00", | ||
2779 | "y": 53 | ||
2780 | }, | ||
2781 | { | ||
2782 | "x": "2014-06-01 00:00:00", | ||
2783 | "y": 63 | ||
2784 | }, | ||
2785 | { | ||
2786 | "x": "2014-10-01 00:00:00", | ||
2787 | "y": 57 | ||
2788 | }, | ||
2789 | { | ||
2790 | "x": "2014-11-01 00:00:00", | ||
2791 | "y": 56 | ||
2792 | }, | ||
2793 | { | ||
2794 | "x": "2014-12-01 00:00:00", | ||
2795 | "y": 47 | ||
2796 | }, | ||
2797 | { | ||
2798 | "x": "2015-01-01 00:00:00", | ||
2799 | "y": 47 | ||
2800 | }, | ||
2801 | { | ||
2802 | "x": "2015-02-01 00:00:00", | ||
2803 | "y": 43 | ||
2804 | }, | ||
2805 | { | ||
2806 | "x": "2015-03-01 00:00:00", | ||
2807 | "y": 47 | ||
2808 | }, | ||
2809 | { | ||
2810 | "x": "2015-04-01 00:00:00", | ||
2811 | "y": 47 | ||
2812 | }, | ||
2813 | { | ||
2814 | "x": "2015-05-01 00:00:00", | ||
2815 | "y": 46 | ||
2816 | }, | ||
2817 | { | ||
2818 | "x": "2015-06-01 00:00:00", | ||
2819 | "y": 56 | ||
2820 | }, | ||
2821 | { | ||
2822 | "x": "2015-07-01 00:00:00", | ||
2823 | "y": 54 | ||
2824 | }, | ||
2825 | { | ||
2826 | "x": "2015-08-01 00:00:00", | ||
2827 | "y": 59 | ||
2828 | }, | ||
2829 | { | ||
2830 | "x": "2015-09-01 00:00:00", | ||
2831 | "y": 54 | ||
2832 | }, | ||
2833 | { | ||
2834 | "x": "2015-10-01 00:00:00", | ||
2835 | "y": 57 | ||
2836 | }, | ||
2837 | { | ||
2838 | "x": "2015-11-01 00:00:00", | ||
2839 | "y": 59 | ||
2840 | }, | ||
2841 | { | ||
2842 | "x": "2015-12-01 00:00:00", | ||
2843 | "y": 63 | ||
2844 | }, | ||
2845 | { | ||
2846 | "x": "2016-01-01 00:00:00", | ||
2847 | "y": 64 | ||
2848 | }, | ||
2849 | { | ||
2850 | "x": "2016-02-01 00:00:00", | ||
2851 | "y": 59 | ||
2852 | }, | ||
2853 | { | ||
2854 | "x": "2016-03-01 00:00:00", | ||
2855 | "y": 55 | ||
2856 | }, | ||
2857 | { | ||
2858 | "x": "2016-04-01 00:00:00", | ||
2859 | "y": 53 | ||
2860 | }, | ||
2861 | { | ||
2862 | "x": "2016-05-01 00:00:00", | ||
2863 | "y": 52 | ||
2864 | }, | ||
2865 | { | ||
2866 | "x": "2016-06-01 00:00:00", | ||
2867 | "y": 61 | ||
2868 | }, | ||
2869 | { | ||
2870 | "x": "2016-07-01 00:00:00", | ||
2871 | "y": 58 | ||
2872 | }, | ||
2873 | { | ||
2874 | "x": "2016-08-01 00:00:00", | ||
2875 | "y": 52 | ||
2876 | }, | ||
2877 | { | ||
2878 | "x": "2016-09-01 00:00:00", | ||
2879 | "y": 54 | ||
2880 | }, | ||
2881 | { | ||
2882 | "x": "2017-03-01 00:00:00", | ||
2883 | "y": 56 | ||
2884 | }, | ||
2885 | { | ||
2886 | "x": "2017-04-01 00:00:00", | ||
2887 | "y": 51 | ||
2888 | }, | ||
2889 | { | ||
2890 | "x": "2017-05-01 00:00:00", | ||
2891 | "y": 58 | ||
2892 | }, | ||
2893 | { | ||
2894 | "x": "2017-06-01 00:00:00", | ||
2895 | "y": 60 | ||
2896 | }, | ||
2897 | { | ||
2898 | "x": "2017-07-01 00:00:00", | ||
2899 | "y": 60 | ||
2900 | }, | ||
2901 | { | ||
2902 | "x": "2017-08-01 00:00:00", | ||
2903 | "y": 59 | ||
2904 | }, | ||
2905 | { | ||
2906 | "x": "2017-09-01 00:00:00", | ||
2907 | "y": 55 | ||
2908 | }, | ||
2909 | { | ||
2910 | "x": "2017-10-01 00:00:00", | ||
2911 | "y": 54 | ||
2912 | }, | ||
2913 | { | ||
2914 | "x": "2017-11-01 00:00:00", | ||
2915 | "y": 60 | ||
2916 | }, | ||
2917 | { | ||
2918 | "x": "2017-12-01 00:00:00", | ||
2919 | "y": 49 | ||
2920 | }, | ||
2921 | { | ||
2922 | "x": "2018-01-01 00:00:00", | ||
2923 | "y": 51 | ||
2924 | }, | ||
2925 | { | ||
2926 | "x": "2018-02-01 00:00:00", | ||
2927 | "y": 43 | ||
2928 | }, | ||
2929 | { | ||
2930 | "x": "2018-03-01 00:00:00", | ||
2931 | "y": 44 | ||
2932 | }, | ||
2933 | { | ||
2934 | "x": "2018-04-01 00:00:00", | ||
2935 | "y": 49 | ||
2936 | }, | ||
2937 | { | ||
2938 | "x": "2018-05-01 00:00:00", | ||
2939 | "y": 59 | ||
2940 | }, | ||
2941 | { | ||
2942 | "x": "2018-06-01 00:00:00", | ||
2943 | "y": 61 | ||
2944 | }, | ||
2945 | { | ||
2946 | "x": "2018-07-01 00:00:00", | ||
2947 | "y": 56 | ||
2948 | }, | ||
2949 | { | ||
2950 | "x": "2018-08-01 00:00:00", | ||
2951 | "y": 51 | ||
2952 | }, | ||
2953 | { | ||
2954 | "x": "2019-03-01 00:00:00", | ||
2955 | "y": 41 | ||
2956 | }, | ||
2957 | { | ||
2958 | "x": "2019-04-01 00:00:00", | ||
2959 | "y": 43 | ||
2960 | }, | ||
2961 | { | ||
2962 | "x": "2019-05-01 00:00:00", | ||
2963 | "y": 50 | ||
2964 | }, | ||
2965 | { | ||
2966 | "x": "2019-06-01 00:00:00", | ||
2967 | "y": 57 | ||
2968 | }, | ||
2969 | { | ||
2970 | "x": "2019-07-01 00:00:00", | ||
2971 | "y": 52 | ||
2972 | }, | ||
2973 | { | ||
2974 | "x": "2019-08-01 00:00:00", | ||
2975 | "y": 48 | ||
2976 | }, | ||
2977 | { | ||
2978 | "x": "2020-03-01 00:00:00", | ||
2979 | "y": 51 | ||
2980 | } | ||
2981 | ], | ||
2982 | "name": "Chambre_RDC", | ||
2983 | "unit": "%", | ||
2984 | "hide": false | ||
2985 | }, | ||
2986 | "Exterieure_hygrometrie": { | ||
2987 | "data": [ | ||
2988 | { | ||
2989 | "x": "2012-06-01 00:00:00", | ||
2990 | "y": 63 | ||
2991 | }, | ||
2992 | { | ||
2993 | "x": "2012-07-01 00:00:00", | ||
2994 | "y": 59 | ||
2995 | }, | ||
2996 | { | ||
2997 | "x": "2012-08-01 00:00:00", | ||
2998 | "y": 50 | ||
2999 | }, | ||
3000 | { | ||
3001 | "x": "2012-09-01 00:00:00", | ||
3002 | "y": 49 | ||
3003 | }, | ||
3004 | { | ||
3005 | "x": "2012-10-01 00:00:00", | ||
3006 | "y": 53 | ||
3007 | }, | ||
3008 | { | ||
3009 | "x": "2012-11-01 00:00:00", | ||
3010 | "y": 69 | ||
3011 | }, | ||
3012 | { | ||
3013 | "x": "2012-12-01 00:00:00", | ||
3014 | "y": 82 | ||
3015 | }, | ||
3016 | { | ||
3017 | "x": "2013-01-01 00:00:00", | ||
3018 | "y": 85 | ||
3019 | }, | ||
3020 | { | ||
3021 | "x": "2013-02-01 00:00:00", | ||
3022 | "y": 80 | ||
3023 | }, | ||
3024 | { | ||
3025 | "x": "2013-03-01 00:00:00", | ||
3026 | "y": 72 | ||
3027 | }, | ||
3028 | { | ||
3029 | "x": "2013-04-01 00:00:00", | ||
3030 | "y": 67 | ||
3031 | }, | ||
3032 | { | ||
3033 | "x": "2013-05-01 00:00:00", | ||
3034 | "y": 74 | ||
3035 | }, | ||
3036 | { | ||
3037 | "x": "2013-06-01 00:00:00", | ||
3038 | "y": 70 | ||
3039 | }, | ||
3040 | { | ||
3041 | "x": "2013-07-01 00:00:00", | ||
3042 | "y": 40 | ||
3043 | }, | ||
3044 | { | ||
3045 | "x": "2013-10-01 00:00:00", | ||
3046 | "y": 75 | ||
3047 | }, | ||
3048 | { | ||
3049 | "x": "2013-11-01 00:00:00", | ||
3050 | "y": 84 | ||
3051 | }, | ||
3052 | { | ||
3053 | "x": "2013-12-01 00:00:00", | ||
3054 | "y": 74 | ||
3055 | }, | ||
3056 | { | ||
3057 | "x": "2014-01-01 00:00:00", | ||
3058 | "y": 79 | ||
3059 | }, | ||
3060 | { | ||
3061 | "x": "2014-02-01 00:00:00", | ||
3062 | "y": 74 | ||
3063 | }, | ||
3064 | { | ||
3065 | "x": "2014-03-01 00:00:00", | ||
3066 | "y": 65 | ||
3067 | }, | ||
3068 | { | ||
3069 | "x": "2014-04-01 00:00:00", | ||
3070 | "y": 66 | ||
3071 | }, | ||
3072 | { | ||
3073 | "x": "2014-05-01 00:00:00", | ||
3074 | "y": 67 | ||
3075 | }, | ||
3076 | { | ||
3077 | "x": "2014-06-01 00:00:00", | ||
3078 | "y": 68 | ||
3079 | }, | ||
3080 | { | ||
3081 | "x": "2014-10-01 00:00:00", | ||
3082 | "y": 76 | ||
3083 | }, | ||
3084 | { | ||
3085 | "x": "2014-11-01 00:00:00", | ||
3086 | "y": 79 | ||
3087 | }, | ||
3088 | { | ||
3089 | "x": "2014-12-01 00:00:00", | ||
3090 | "y": 82 | ||
3091 | }, | ||
3092 | { | ||
3093 | "x": "2015-01-01 00:00:00", | ||
3094 | "y": 81 | ||
3095 | }, | ||
3096 | { | ||
3097 | "x": "2015-02-01 00:00:00", | ||
3098 | "y": 70 | ||
3099 | }, | ||
3100 | { | ||
3101 | "x": "2015-03-01 00:00:00", | ||
3102 | "y": 69 | ||
3103 | }, | ||
3104 | { | ||
3105 | "x": "2015-04-01 00:00:00", | ||
3106 | "y": 60 | ||
3107 | }, | ||
3108 | { | ||
3109 | "x": "2015-05-01 00:00:00", | ||
3110 | "y": 82 | ||
3111 | }, | ||
3112 | { | ||
3113 | "x": "2015-06-01 00:00:00", | ||
3114 | "y": 68 | ||
3115 | }, | ||
3116 | { | ||
3117 | "x": "2015-07-01 00:00:00", | ||
3118 | "y": 55 | ||
3119 | }, | ||
3120 | { | ||
3121 | "x": "2015-08-01 00:00:00", | ||
3122 | "y": 59 | ||
3123 | }, | ||
3124 | { | ||
3125 | "x": "2015-09-01 00:00:00", | ||
3126 | "y": 65 | ||
3127 | }, | ||
3128 | { | ||
3129 | "x": "2015-10-01 00:00:00", | ||
3130 | "y": 74 | ||
3131 | }, | ||
3132 | { | ||
3133 | "x": "2015-11-01 00:00:00", | ||
3134 | "y": 75 | ||
3135 | }, | ||
3136 | { | ||
3137 | "x": "2015-12-01 00:00:00", | ||
3138 | "y": 69 | ||
3139 | }, | ||
3140 | { | ||
3141 | "x": "2016-01-01 00:00:00", | ||
3142 | "y": 78 | ||
3143 | }, | ||
3144 | { | ||
3145 | "x": "2016-02-01 00:00:00", | ||
3146 | "y": 76 | ||
3147 | }, | ||
3148 | { | ||
3149 | "x": "2016-03-01 00:00:00", | ||
3150 | "y": 67 | ||
3151 | }, | ||
3152 | { | ||
3153 | "x": "2016-04-01 00:00:00", | ||
3154 | "y": 67 | ||
3155 | }, | ||
3156 | { | ||
3157 | "x": "2016-05-01 00:00:00", | ||
3158 | "y": 64 | ||
3159 | }, | ||
3160 | { | ||
3161 | "x": "2016-06-01 00:00:00", | ||
3162 | "y": 68 | ||
3163 | }, | ||
3164 | { | ||
3165 | "x": "2016-07-01 00:00:00", | ||
3166 | "y": 54 | ||
3167 | }, | ||
3168 | { | ||
3169 | "x": "2016-08-01 00:00:00", | ||
3170 | "y": 48 | ||
3171 | }, | ||
3172 | { | ||
3173 | "x": "2017-03-01 00:00:00", | ||
3174 | "y": 49 | ||
3175 | }, | ||
3176 | { | ||
3177 | "x": "2017-04-01 00:00:00", | ||
3178 | "y": 46 | ||
3179 | }, | ||
3180 | { | ||
3181 | "x": "2017-05-01 00:00:00", | ||
3182 | "y": 48 | ||
3183 | }, | ||
3184 | { | ||
3185 | "x": "2017-06-01 00:00:00", | ||
3186 | "y": 41 | ||
3187 | }, | ||
3188 | { | ||
3189 | "x": "2017-07-01 00:00:00", | ||
3190 | "y": 48 | ||
3191 | }, | ||
3192 | { | ||
3193 | "x": "2017-08-01 00:00:00", | ||
3194 | "y": 62 | ||
3195 | }, | ||
3196 | { | ||
3197 | "x": "2017-09-01 00:00:00", | ||
3198 | "y": 54 | ||
3199 | }, | ||
3200 | { | ||
3201 | "x": "2017-10-01 00:00:00", | ||
3202 | "y": 56 | ||
3203 | }, | ||
3204 | { | ||
3205 | "x": "2017-11-01 00:00:00", | ||
3206 | "y": 59 | ||
3207 | }, | ||
3208 | { | ||
3209 | "x": "2017-12-01 00:00:00", | ||
3210 | "y": 62 | ||
3211 | }, | ||
3212 | { | ||
3213 | "x": "2018-03-01 00:00:00", | ||
3214 | "y": 50 | ||
3215 | }, | ||
3216 | { | ||
3217 | "x": "2018-04-01 00:00:00", | ||
3218 | "y": 41 | ||
3219 | }, | ||
3220 | { | ||
3221 | "x": "2018-05-01 00:00:00", | ||
3222 | "y": 61 | ||
3223 | }, | ||
3224 | { | ||
3225 | "x": "2018-06-01 00:00:00", | ||
3226 | "y": 43 | ||
3227 | }, | ||
3228 | { | ||
3229 | "x": "2018-07-01 00:00:00", | ||
3230 | "y": 35 | ||
3231 | }, | ||
3232 | { | ||
3233 | "x": "2018-08-01 00:00:00", | ||
3234 | "y": 37 | ||
3235 | } | ||
3236 | ], | ||
3237 | "name": "Exterieure", | ||
3238 | "unit": "%", | ||
3239 | "hide": false | ||
3240 | }, | ||
3241 | "Sejour_hygrometrie": { | ||
3242 | "data": [ | ||
3243 | { | ||
3244 | "x": "2012-06-01 00:00:00", | ||
3245 | "y": 60 | ||
3246 | }, | ||
3247 | { | ||
3248 | "x": "2012-07-01 00:00:00", | ||
3249 | "y": 57 | ||
3250 | }, | ||
3251 | { | ||
3252 | "x": "2012-08-01 00:00:00", | ||
3253 | "y": 54 | ||
3254 | }, | ||
3255 | { | ||
3256 | "x": "2012-09-01 00:00:00", | ||
3257 | "y": 52 | ||
3258 | }, | ||
3259 | { | ||
3260 | "x": "2012-10-01 00:00:00", | ||
3261 | "y": 55 | ||
3262 | }, | ||
3263 | { | ||
3264 | "x": "2012-11-01 00:00:00", | ||
3265 | "y": 63 | ||
3266 | }, | ||
3267 | { | ||
3268 | "x": "2012-12-01 00:00:00", | ||
3269 | "y": 61 | ||
3270 | }, | ||
3271 | { | ||
3272 | "x": "2013-01-01 00:00:00", | ||
3273 | "y": 45 | ||
3274 | }, | ||
3275 | { | ||
3276 | "x": "2013-02-01 00:00:00", | ||
3277 | "y": 41 | ||
3278 | }, | ||
3279 | { | ||
3280 | "x": "2013-03-01 00:00:00", | ||
3281 | "y": 43 | ||
3282 | }, | ||
3283 | { | ||
3284 | "x": "2013-04-01 00:00:00", | ||
3285 | "y": 45 | ||
3286 | }, | ||
3287 | { | ||
3288 | "x": "2013-05-01 00:00:00", | ||
3289 | "y": 52 | ||
3290 | }, | ||
3291 | { | ||
3292 | "x": "2013-06-01 00:00:00", | ||
3293 | "y": 57 | ||
3294 | }, | ||
3295 | { | ||
3296 | "x": "2013-07-01 00:00:00", | ||
3297 | "y": 60 | ||
3298 | }, | ||
3299 | { | ||
3300 | "x": "2013-08-01 00:00:00", | ||
3301 | "y": 58 | ||
3302 | }, | ||
3303 | { | ||
3304 | "x": "2013-09-01 00:00:00", | ||
3305 | "y": 56 | ||
3306 | }, | ||
3307 | { | ||
3308 | "x": "2013-10-01 00:00:00", | ||
3309 | "y": 60 | ||
3310 | }, | ||
3311 | { | ||
3312 | "x": "2013-11-01 00:00:00", | ||
3313 | "y": 48 | ||
3314 | }, | ||
3315 | { | ||
3316 | "x": "2013-12-01 00:00:00", | ||
3317 | "y": 44 | ||
3318 | }, | ||
3319 | { | ||
3320 | "x": "2014-01-01 00:00:00", | ||
3321 | "y": 51 | ||
3322 | }, | ||
3323 | { | ||
3324 | "x": "2014-02-01 00:00:00", | ||
3325 | "y": 46 | ||
3326 | }, | ||
3327 | { | ||
3328 | "x": "2014-03-01 00:00:00", | ||
3329 | "y": 44 | ||
3330 | }, | ||
3331 | { | ||
3332 | "x": "2014-04-01 00:00:00", | ||
3333 | "y": 45 | ||
3334 | }, | ||
3335 | { | ||
3336 | "x": "2014-05-01 00:00:00", | ||
3337 | "y": 49 | ||
3338 | }, | ||
3339 | { | ||
3340 | "x": "2014-06-01 00:00:00", | ||
3341 | "y": 61 | ||
3342 | }, | ||
3343 | { | ||
3344 | "x": "2014-10-01 00:00:00", | ||
3345 | "y": 54 | ||
3346 | }, | ||
3347 | { | ||
3348 | "x": "2014-11-01 00:00:00", | ||
3349 | "y": 52 | ||
3350 | }, | ||
3351 | { | ||
3352 | "x": "2014-12-01 00:00:00", | ||
3353 | "y": 46 | ||
3354 | }, | ||
3355 | { | ||
3356 | "x": "2015-01-01 00:00:00", | ||
3357 | "y": 46 | ||
3358 | }, | ||
3359 | { | ||
3360 | "x": "2015-02-01 00:00:00", | ||
3361 | "y": 41 | ||
3362 | }, | ||
3363 | { | ||
3364 | "x": "2015-03-01 00:00:00", | ||
3365 | "y": 45 | ||
3366 | }, | ||
3367 | { | ||
3368 | "x": "2015-04-01 00:00:00", | ||
3369 | "y": 44 | ||
3370 | }, | ||
3371 | { | ||
3372 | "x": "2015-05-01 00:00:00", | ||
3373 | "y": 47 | ||
3374 | }, | ||
3375 | { | ||
3376 | "x": "2015-06-01 00:00:00", | ||
3377 | "y": 54 | ||
3378 | }, | ||
3379 | { | ||
3380 | "x": "2015-07-01 00:00:00", | ||
3381 | "y": 53 | ||
3382 | }, | ||
3383 | { | ||
3384 | "x": "2015-08-01 00:00:00", | ||
3385 | "y": 55 | ||
3386 | }, | ||
3387 | { | ||
3388 | "x": "2015-09-01 00:00:00", | ||
3389 | "y": 49 | ||
3390 | }, | ||
3391 | { | ||
3392 | "x": "2015-10-01 00:00:00", | ||
3393 | "y": 54 | ||
3394 | }, | ||
3395 | { | ||
3396 | "x": "2015-11-01 00:00:00", | ||
3397 | "y": 55 | ||
3398 | }, | ||
3399 | { | ||
3400 | "x": "2015-12-01 00:00:00", | ||
3401 | "y": 59 | ||
3402 | }, | ||
3403 | { | ||
3404 | "x": "2016-01-01 00:00:00", | ||
3405 | "y": 63 | ||
3406 | }, | ||
3407 | { | ||
3408 | "x": "2016-02-01 00:00:00", | ||
3409 | "y": 60 | ||
3410 | }, | ||
3411 | { | ||
3412 | "x": "2016-03-01 00:00:00", | ||
3413 | "y": 52 | ||
3414 | }, | ||
3415 | { | ||
3416 | "x": "2016-04-01 00:00:00", | ||
3417 | "y": 50 | ||
3418 | }, | ||
3419 | { | ||
3420 | "x": "2016-05-01 00:00:00", | ||
3421 | "y": 48 | ||
3422 | }, | ||
3423 | { | ||
3424 | "x": "2016-06-01 00:00:00", | ||
3425 | "y": 57 | ||
3426 | }, | ||
3427 | { | ||
3428 | "x": "2016-07-01 00:00:00", | ||
3429 | "y": 55 | ||
3430 | }, | ||
3431 | { | ||
3432 | "x": "2016-08-01 00:00:00", | ||
3433 | "y": 49 | ||
3434 | }, | ||
3435 | { | ||
3436 | "x": "2016-09-01 00:00:00", | ||
3437 | "y": 51 | ||
3438 | }, | ||
3439 | { | ||
3440 | "x": "2017-03-01 00:00:00", | ||
3441 | "y": 51 | ||
3442 | }, | ||
3443 | { | ||
3444 | "x": "2017-04-01 00:00:00", | ||
3445 | "y": 47 | ||
3446 | }, | ||
3447 | { | ||
3448 | "x": "2017-05-01 00:00:00", | ||
3449 | "y": 54 | ||
3450 | }, | ||
3451 | { | ||
3452 | "x": "2017-06-01 00:00:00", | ||
3453 | "y": 57 | ||
3454 | }, | ||
3455 | { | ||
3456 | "x": "2017-07-01 00:00:00", | ||
3457 | "y": 57 | ||
3458 | }, | ||
3459 | { | ||
3460 | "x": "2017-08-01 00:00:00", | ||
3461 | "y": 57 | ||
3462 | }, | ||
3463 | { | ||
3464 | "x": "2017-09-01 00:00:00", | ||
3465 | "y": 52 | ||
3466 | }, | ||
3467 | { | ||
3468 | "x": "2017-10-01 00:00:00", | ||
3469 | "y": 50 | ||
3470 | }, | ||
3471 | { | ||
3472 | "x": "2017-11-01 00:00:00", | ||
3473 | "y": 56 | ||
3474 | }, | ||
3475 | { | ||
3476 | "x": "2017-12-01 00:00:00", | ||
3477 | "y": 47 | ||
3478 | }, | ||
3479 | { | ||
3480 | "x": "2018-01-01 00:00:00", | ||
3481 | "y": 50 | ||
3482 | }, | ||
3483 | { | ||
3484 | "x": "2018-02-01 00:00:00", | ||
3485 | "y": 41 | ||
3486 | }, | ||
3487 | { | ||
3488 | "x": "2018-03-01 00:00:00", | ||
3489 | "y": 41 | ||
3490 | }, | ||
3491 | { | ||
3492 | "x": "2018-04-01 00:00:00", | ||
3493 | "y": 46 | ||
3494 | }, | ||
3495 | { | ||
3496 | "x": "2018-05-01 00:00:00", | ||
3497 | "y": 56 | ||
3498 | }, | ||
3499 | { | ||
3500 | "x": "2018-06-01 00:00:00", | ||
3501 | "y": 58 | ||
3502 | }, | ||
3503 | { | ||
3504 | "x": "2018-07-01 00:00:00", | ||
3505 | "y": 54 | ||
3506 | }, | ||
3507 | { | ||
3508 | "x": "2018-08-01 00:00:00", | ||
3509 | "y": 48 | ||
3510 | }, | ||
3511 | { | ||
3512 | "x": "2019-03-01 00:00:00", | ||
3513 | "y": 36 | ||
3514 | }, | ||
3515 | { | ||
3516 | "x": "2019-04-01 00:00:00", | ||
3517 | "y": 39 | ||
3518 | }, | ||
3519 | { | ||
3520 | "x": "2019-05-01 00:00:00", | ||
3521 | "y": 46 | ||
3522 | }, | ||
3523 | { | ||
3524 | "x": "2019-06-01 00:00:00", | ||
3525 | "y": 54 | ||
3526 | }, | ||
3527 | { | ||
3528 | "x": "2019-07-01 00:00:00", | ||
3529 | "y": 49 | ||
3530 | }, | ||
3531 | { | ||
3532 | "x": "2019-08-01 00:00:00", | ||
3533 | "y": 45 | ||
3534 | }, | ||
3535 | { | ||
3536 | "x": "2020-03-01 00:00:00", | ||
3537 | "y": 45 | ||
3538 | } | ||
3539 | ], | ||
3540 | "name": "Sejour", | ||
3541 | "unit": "%", | ||
3542 | "hide": false | ||
3543 | }, | ||
3544 | "Soufflage_hygrometrie": { | ||
3545 | "data": [ | ||
3546 | { | ||
3547 | "x": "2012-06-01 00:00:00", | ||
3548 | "y": 64 | ||
3549 | }, | ||
3550 | { | ||
3551 | "x": "2012-07-01 00:00:00", | ||
3552 | "y": 59 | ||
3553 | }, | ||
3554 | { | ||
3555 | "x": "2012-08-01 00:00:00", | ||
3556 | "y": 58 | ||
3557 | }, | ||
3558 | { | ||
3559 | "x": "2012-09-01 00:00:00", | ||
3560 | "y": 60 | ||
3561 | }, | ||
3562 | { | ||
3563 | "x": "2012-10-01 00:00:00", | ||
3564 | "y": 71 | ||
3565 | }, | ||
3566 | { | ||
3567 | "x": "2012-11-01 00:00:00", | ||
3568 | "y": 84 | ||
3569 | }, | ||
3570 | { | ||
3571 | "x": "2012-12-01 00:00:00", | ||
3572 | "y": 66 | ||
3573 | }, | ||
3574 | { | ||
3575 | "x": "2013-01-01 00:00:00", | ||
3576 | "y": 40 | ||
3577 | }, | ||
3578 | { | ||
3579 | "x": "2013-02-01 00:00:00", | ||
3580 | "y": 41 | ||
3581 | }, | ||
3582 | { | ||
3583 | "x": "2013-03-01 00:00:00", | ||
3584 | "y": 38 | ||
3585 | }, | ||
3586 | { | ||
3587 | "x": "2013-04-01 00:00:00", | ||
3588 | "y": 39 | ||
3589 | }, | ||
3590 | { | ||
3591 | "x": "2013-05-01 00:00:00", | ||
3592 | "y": 43 | ||
3593 | }, | ||
3594 | { | ||
3595 | "x": "2013-06-01 00:00:00", | ||
3596 | "y": 50 | ||
3597 | }, | ||
3598 | { | ||
3599 | "x": "2013-07-01 00:00:00", | ||
3600 | "y": 57 | ||
3601 | }, | ||
3602 | { | ||
3603 | "x": "2013-08-01 00:00:00", | ||
3604 | "y": 58 | ||
3605 | }, | ||
3606 | { | ||
3607 | "x": "2013-09-01 00:00:00", | ||
3608 | "y": 55 | ||
3609 | }, | ||
3610 | { | ||
3611 | "x": "2013-10-01 00:00:00", | ||
3612 | "y": 57 | ||
3613 | }, | ||
3614 | { | ||
3615 | "x": "2013-11-01 00:00:00", | ||
3616 | "y": 47 | ||
3617 | }, | ||
3618 | { | ||
3619 | "x": "2013-12-01 00:00:00", | ||
3620 | "y": 40 | ||
3621 | }, | ||
3622 | { | ||
3623 | "x": "2014-01-01 00:00:00", | ||
3624 | "y": 48 | ||
3625 | }, | ||
3626 | { | ||
3627 | "x": "2014-02-01 00:00:00", | ||
3628 | "y": 40 | ||
3629 | }, | ||
3630 | { | ||
3631 | "x": "2014-03-01 00:00:00", | ||
3632 | "y": 37 | ||
3633 | }, | ||
3634 | { | ||
3635 | "x": "2014-04-01 00:00:00", | ||
3636 | "y": 45 | ||
3637 | }, | ||
3638 | { | ||
3639 | "x": "2014-11-01 00:00:00", | ||
3640 | "y": 47 | ||
3641 | }, | ||
3642 | { | ||
3643 | "x": "2014-12-01 00:00:00", | ||
3644 | "y": 82 | ||
3645 | }, | ||
3646 | { | ||
3647 | "x": "2015-01-01 00:00:00", | ||
3648 | "y": 84 | ||
3649 | }, | ||
3650 | { | ||
3651 | "x": "2015-02-01 00:00:00", | ||
3652 | "y": 78 | ||
3653 | }, | ||
3654 | { | ||
3655 | "x": "2015-03-01 00:00:00", | ||
3656 | "y": 72 | ||
3657 | }, | ||
3658 | { | ||
3659 | "x": "2015-04-01 00:00:00", | ||
3660 | "y": 54 | ||
3661 | }, | ||
3662 | { | ||
3663 | "x": "2015-05-01 00:00:00", | ||
3664 | "y": 75 | ||
3665 | }, | ||
3666 | { | ||
3667 | "x": "2015-06-01 00:00:00", | ||
3668 | "y": 72 | ||
3669 | }, | ||
3670 | { | ||
3671 | "x": "2015-07-01 00:00:00", | ||
3672 | "y": 60 | ||
3673 | }, | ||
3674 | { | ||
3675 | "x": "2015-08-01 00:00:00", | ||
3676 | "y": 61 | ||
3677 | }, | ||
3678 | { | ||
3679 | "x": "2015-09-01 00:00:00", | ||
3680 | "y": 61 | ||
3681 | }, | ||
3682 | { | ||
3683 | "x": "2015-10-01 00:00:00", | ||
3684 | "y": 80 | ||
3685 | }, | ||
3686 | { | ||
3687 | "x": "2015-11-01 00:00:00", | ||
3688 | "y": 88 | ||
3689 | }, | ||
3690 | { | ||
3691 | "x": "2015-12-01 00:00:00", | ||
3692 | "y": 90 | ||
3693 | }, | ||
3694 | { | ||
3695 | "x": "2016-01-01 00:00:00", | ||
3696 | "y": 96 | ||
3697 | }, | ||
3698 | { | ||
3699 | "x": "2016-02-01 00:00:00", | ||
3700 | "y": 97 | ||
3701 | }, | ||
3702 | { | ||
3703 | "x": "2017-03-01 00:00:00", | ||
3704 | "y": 68 | ||
3705 | }, | ||
3706 | { | ||
3707 | "x": "2017-04-01 00:00:00", | ||
3708 | "y": 64 | ||
3709 | }, | ||
3710 | { | ||
3711 | "x": "2017-05-01 00:00:00", | ||
3712 | "y": 71 | ||
3713 | }, | ||
3714 | { | ||
3715 | "x": "2017-06-01 00:00:00", | ||
3716 | "y": 73 | ||
3717 | }, | ||
3718 | { | ||
3719 | "x": "2017-07-01 00:00:00", | ||
3720 | "y": 74 | ||
3721 | }, | ||
3722 | { | ||
3723 | "x": "2017-08-01 00:00:00", | ||
3724 | "y": 76 | ||
3725 | }, | ||
3726 | { | ||
3727 | "x": "2017-09-01 00:00:00", | ||
3728 | "y": 72 | ||
3729 | }, | ||
3730 | { | ||
3731 | "x": "2017-10-01 00:00:00", | ||
3732 | "y": 72 | ||
3733 | }, | ||
3734 | { | ||
3735 | "x": "2017-11-01 00:00:00", | ||
3736 | "y": 82 | ||
3737 | }, | ||
3738 | { | ||
3739 | "x": "2017-12-01 00:00:00", | ||
3740 | "y": 67 | ||
3741 | }, | ||
3742 | { | ||
3743 | "x": "2018-01-01 00:00:00", | ||
3744 | "y": 72 | ||
3745 | }, | ||
3746 | { | ||
3747 | "x": "2018-02-01 00:00:00", | ||
3748 | "y": 57 | ||
3749 | }, | ||
3750 | { | ||
3751 | "x": "2018-03-01 00:00:00", | ||
3752 | "y": 59 | ||
3753 | } | ||
3754 | ], | ||
3755 | "name": "Soufflage", | ||
3756 | "unit": "%", | ||
3757 | "hide": true | ||
3758 | }, | ||
3759 | "Mezzanine_hygrometrie": { | ||
3760 | "data": [ | ||
3761 | { | ||
3762 | "x": "2012-06-01 00:00:00", | ||
3763 | "y": 59 | ||
3764 | }, | ||
3765 | { | ||
3766 | "x": "2012-07-01 00:00:00", | ||
3767 | "y": 56 | ||
3768 | }, | ||
3769 | { | ||
3770 | "x": "2012-08-01 00:00:00", | ||
3771 | "y": 52 | ||
3772 | }, | ||
3773 | { | ||
3774 | "x": "2012-09-01 00:00:00", | ||
3775 | "y": 52 | ||
3776 | }, | ||
3777 | { | ||
3778 | "x": "2012-10-01 00:00:00", | ||
3779 | "y": 56 | ||
3780 | }, | ||
3781 | { | ||
3782 | "x": "2012-11-01 00:00:00", | ||
3783 | "y": 64 | ||
3784 | }, | ||
3785 | { | ||
3786 | "x": "2012-12-01 00:00:00", | ||
3787 | "y": 64 | ||
3788 | }, | ||
3789 | { | ||
3790 | "x": "2013-01-01 00:00:00", | ||
3791 | "y": 49 | ||
3792 | }, | ||
3793 | { | ||
3794 | "x": "2013-02-01 00:00:00", | ||
3795 | "y": 43 | ||
3796 | }, | ||
3797 | { | ||
3798 | "x": "2013-03-01 00:00:00", | ||
3799 | "y": 45 | ||
3800 | }, | ||
3801 | { | ||
3802 | "x": "2013-04-01 00:00:00", | ||
3803 | "y": 46 | ||
3804 | }, | ||
3805 | { | ||
3806 | "x": "2013-05-01 00:00:00", | ||
3807 | "y": 53 | ||
3808 | }, | ||
3809 | { | ||
3810 | "x": "2013-06-01 00:00:00", | ||
3811 | "y": 57 | ||
3812 | }, | ||
3813 | { | ||
3814 | "x": "2013-07-01 00:00:00", | ||
3815 | "y": 58 | ||
3816 | }, | ||
3817 | { | ||
3818 | "x": "2013-08-01 00:00:00", | ||
3819 | "y": 57 | ||
3820 | }, | ||
3821 | { | ||
3822 | "x": "2013-09-01 00:00:00", | ||
3823 | "y": 57 | ||
3824 | }, | ||
3825 | { | ||
3826 | "x": "2013-10-01 00:00:00", | ||
3827 | "y": 61 | ||
3828 | }, | ||
3829 | { | ||
3830 | "x": "2013-11-01 00:00:00", | ||
3831 | "y": 51 | ||
3832 | }, | ||
3833 | { | ||
3834 | "x": "2013-12-01 00:00:00", | ||
3835 | "y": 45 | ||
3836 | }, | ||
3837 | { | ||
3838 | "x": "2014-01-01 00:00:00", | ||
3839 | "y": 54 | ||
3840 | }, | ||
3841 | { | ||
3842 | "x": "2014-02-01 00:00:00", | ||
3843 | "y": 48 | ||
3844 | }, | ||
3845 | { | ||
3846 | "x": "2014-03-01 00:00:00", | ||
3847 | "y": 45 | ||
3848 | }, | ||
3849 | { | ||
3850 | "x": "2014-04-01 00:00:00", | ||
3851 | "y": 46 | ||
3852 | }, | ||
3853 | { | ||
3854 | "x": "2014-05-01 00:00:00", | ||
3855 | "y": 50 | ||
3856 | }, | ||
3857 | { | ||
3858 | "x": "2014-06-01 00:00:00", | ||
3859 | "y": 60 | ||
3860 | }, | ||
3861 | { | ||
3862 | "x": "2015-09-01 00:00:00", | ||
3863 | "y": 52 | ||
3864 | }, | ||
3865 | { | ||
3866 | "x": "2015-10-01 00:00:00", | ||
3867 | "y": 55 | ||
3868 | }, | ||
3869 | { | ||
3870 | "x": "2015-11-01 00:00:00", | ||
3871 | "y": 57 | ||
3872 | }, | ||
3873 | { | ||
3874 | "x": "2015-12-01 00:00:00", | ||
3875 | "y": 60 | ||
3876 | }, | ||
3877 | { | ||
3878 | "x": "2016-01-01 00:00:00", | ||
3879 | "y": 66 | ||
3880 | }, | ||
3881 | { | ||
3882 | "x": "2016-02-01 00:00:00", | ||
3883 | "y": 65 | ||
3884 | }, | ||
3885 | { | ||
3886 | "x": "2016-03-01 00:00:00", | ||
3887 | "y": 55 | ||
3888 | }, | ||
3889 | { | ||
3890 | "x": "2016-04-01 00:00:00", | ||
3891 | "y": 51 | ||
3892 | }, | ||
3893 | { | ||
3894 | "x": "2016-05-01 00:00:00", | ||
3895 | "y": 50 | ||
3896 | }, | ||
3897 | { | ||
3898 | "x": "2016-06-01 00:00:00", | ||
3899 | "y": 58 | ||
3900 | }, | ||
3901 | { | ||
3902 | "x": "2016-07-01 00:00:00", | ||
3903 | "y": 55 | ||
3904 | }, | ||
3905 | { | ||
3906 | "x": "2016-08-01 00:00:00", | ||
3907 | "y": 49 | ||
3908 | }, | ||
3909 | { | ||
3910 | "x": "2016-09-01 00:00:00", | ||
3911 | "y": 52 | ||
3912 | }, | ||
3913 | { | ||
3914 | "x": "2017-03-01 00:00:00", | ||
3915 | "y": 54 | ||
3916 | }, | ||
3917 | { | ||
3918 | "x": "2017-04-01 00:00:00", | ||
3919 | "y": 50 | ||
3920 | }, | ||
3921 | { | ||
3922 | "x": "2017-05-01 00:00:00", | ||
3923 | "y": 55 | ||
3924 | }, | ||
3925 | { | ||
3926 | "x": "2017-06-01 00:00:00", | ||
3927 | "y": 55 | ||
3928 | }, | ||
3929 | { | ||
3930 | "x": "2017-07-01 00:00:00", | ||
3931 | "y": 57 | ||
3932 | }, | ||
3933 | { | ||
3934 | "x": "2017-08-01 00:00:00", | ||
3935 | "y": 56 | ||
3936 | }, | ||
3937 | { | ||
3938 | "x": "2017-09-01 00:00:00", | ||
3939 | "y": 54 | ||
3940 | }, | ||
3941 | { | ||
3942 | "x": "2019-03-01 00:00:00", | ||
3943 | "y": 39 | ||
3944 | }, | ||
3945 | { | ||
3946 | "x": "2019-04-01 00:00:00", | ||
3947 | "y": 40 | ||
3948 | }, | ||
3949 | { | ||
3950 | "x": "2019-05-01 00:00:00", | ||
3951 | "y": 48 | ||
3952 | }, | ||
3953 | { | ||
3954 | "x": "2019-06-01 00:00:00", | ||
3955 | "y": 53 | ||
3956 | }, | ||
3957 | { | ||
3958 | "x": "2019-07-01 00:00:00", | ||
3959 | "y": 48 | ||
3960 | }, | ||
3961 | { | ||
3962 | "x": "2019-08-01 00:00:00", | ||
3963 | "y": 46 | ||
3964 | } | ||
3965 | ], | ||
3966 | "name": "Mezzanine", | ||
3967 | "unit": "%", | ||
3968 | "hide": false | ||
3969 | }, | ||
3970 | "Extraction_hygrometrie": { | ||
3971 | "data": [ | ||
3972 | { | ||
3973 | "x": "2012-06-01 00:00:00", | ||
3974 | "y": 64 | ||
3975 | }, | ||
3976 | { | ||
3977 | "x": "2012-07-01 00:00:00", | ||
3978 | "y": 60 | ||
3979 | }, | ||
3980 | { | ||
3981 | "x": "2012-08-01 00:00:00", | ||
3982 | "y": 56 | ||
3983 | }, | ||
3984 | { | ||
3985 | "x": "2012-09-01 00:00:00", | ||
3986 | "y": 59 | ||
3987 | }, | ||
3988 | { | ||
3989 | "x": "2012-10-01 00:00:00", | ||
3990 | "y": 65 | ||
3991 | }, | ||
3992 | { | ||
3993 | "x": "2012-11-01 00:00:00", | ||
3994 | "y": 77 | ||
3995 | }, | ||
3996 | { | ||
3997 | "x": "2012-12-01 00:00:00", | ||
3998 | "y": 62 | ||
3999 | }, | ||
4000 | { | ||
4001 | "x": "2013-01-01 00:00:00", | ||
4002 | "y": 43 | ||
4003 | }, | ||
4004 | { | ||
4005 | "x": "2013-02-01 00:00:00", | ||
4006 | "y": 40 | ||
4007 | }, | ||
4008 | { | ||
4009 | "x": "2013-03-01 00:00:00", | ||
4010 | "y": 40 | ||
4011 | }, | ||
4012 | { | ||
4013 | "x": "2013-04-01 00:00:00", | ||
4014 | "y": 42 | ||
4015 | }, | ||
4016 | { | ||
4017 | "x": "2013-05-01 00:00:00", | ||
4018 | "y": 45 | ||
4019 | }, | ||
4020 | { | ||
4021 | "x": "2013-06-01 00:00:00", | ||
4022 | "y": 52 | ||
4023 | }, | ||
4024 | { | ||
4025 | "x": "2013-07-01 00:00:00", | ||
4026 | "y": 57 | ||
4027 | }, | ||
4028 | { | ||
4029 | "x": "2013-08-01 00:00:00", | ||
4030 | "y": 57 | ||
4031 | }, | ||
4032 | { | ||
4033 | "x": "2013-09-01 00:00:00", | ||
4034 | "y": 55 | ||
4035 | }, | ||
4036 | { | ||
4037 | "x": "2013-10-01 00:00:00", | ||
4038 | "y": 58 | ||
4039 | }, | ||
4040 | { | ||
4041 | "x": "2013-11-01 00:00:00", | ||
4042 | "y": 47 | ||
4043 | }, | ||
4044 | { | ||
4045 | "x": "2013-12-01 00:00:00", | ||
4046 | "y": 39 | ||
4047 | }, | ||
4048 | { | ||
4049 | "x": "2014-11-01 00:00:00", | ||
4050 | "y": 55 | ||
4051 | }, | ||
4052 | { | ||
4053 | "x": "2014-12-01 00:00:00", | ||
4054 | "y": 47 | ||
4055 | }, | ||
4056 | { | ||
4057 | "x": "2015-01-01 00:00:00", | ||
4058 | "y": 89 | ||
4059 | }, | ||
4060 | { | ||
4061 | "x": "2017-03-01 00:00:00", | ||
4062 | "y": 50 | ||
4063 | }, | ||
4064 | { | ||
4065 | "x": "2017-04-01 00:00:00", | ||
4066 | "y": 50 | ||
4067 | }, | ||
4068 | { | ||
4069 | "x": "2017-05-01 00:00:00", | ||
4070 | "y": 56 | ||
4071 | }, | ||
4072 | { | ||
4073 | "x": "2017-06-01 00:00:00", | ||
4074 | "y": 59 | ||
4075 | }, | ||
4076 | { | ||
4077 | "x": "2017-07-01 00:00:00", | ||
4078 | "y": 58 | ||
4079 | }, | ||
4080 | { | ||
4081 | "x": "2017-08-01 00:00:00", | ||
4082 | "y": 60 | ||
4083 | }, | ||
4084 | { | ||
4085 | "x": "2017-09-01 00:00:00", | ||
4086 | "y": 55 | ||
4087 | }, | ||
4088 | { | ||
4089 | "x": "2017-10-01 00:00:00", | ||
4090 | "y": 54 | ||
4091 | }, | ||
4092 | { | ||
4093 | "x": "2017-11-01 00:00:00", | ||
4094 | "y": 57 | ||
4095 | } | ||
4096 | ], | ||
4097 | "name": "Extraction", | ||
4098 | "unit": "%", | ||
4099 | "hide": true | ||
4100 | } | ||
4101 | } | ||
diff --git a/modules/private/websites/papa/maison_bbc_static/favicon.ico b/modules/private/websites/papa/maison_bbc_static/favicon.ico deleted file mode 100644 index 03990f9..0000000 --- a/modules/private/websites/papa/maison_bbc_static/favicon.ico +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/papa/maison_bbc_static/index.html b/modules/private/websites/papa/maison_bbc_static/index.html deleted file mode 100644 index 78c318c..0000000 --- a/modules/private/websites/papa/maison_bbc_static/index.html +++ /dev/null | |||
@@ -1,164 +0,0 @@ | |||
1 | <!doctype html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Pause</title> | ||
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
6 | <script src="https://assets.immae.eu/jquery/3.5.1/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> | ||
7 | <script src="https://assets.immae.eu/chart.js/2.9.3/Chart.bundle.min.js" integrity="sha256-TQq84xX6vkwR0Qs1qH5ADkP+MvH0W+9E7TdHJsoIQiM=" crossorigin="anonymous"></script> | ||
8 | <script src="https://assets.immae.eu/hammerjs/2.0.8/hammer.min.js" integrity="sha256-eVNjHw5UeU0jUqPPpZHAkU1z4U+QFBBY488WvueTm88=" crossorigin="anonymous"></script> | ||
9 | <script src="https://assets.immae.eu/chartjs-plugin-zoom/0.7.7/chartjs-plugin-zoom.min.js" integrity="sha256-6S7w9Wue7EBvlJh/Li/cPecjTNN+yBm/AoCePQA9Xi8=" crossorigin="anonymous"></script> | ||
10 | <style> | ||
11 | body { | ||
12 | padding-left: 5px; | ||
13 | padding-right: 5px; | ||
14 | text-align: center; | ||
15 | margin: auto; | ||
16 | font: 20px Helvetica, sans-serif; | ||
17 | color: #333; | ||
18 | } | ||
19 | h1 { | ||
20 | margin: 0px; | ||
21 | font-size: 40px; | ||
22 | } | ||
23 | article { | ||
24 | display: block; | ||
25 | max-width: 850px; | ||
26 | margin: 0 auto; | ||
27 | padding-top: 30px; | ||
28 | } | ||
29 | article + article { | ||
30 | border-top: 1px solid lightgrey; | ||
31 | } | ||
32 | article div { | ||
33 | text-align: center; | ||
34 | } | ||
35 | a { | ||
36 | color: #dc8100; | ||
37 | text-decoration: none; | ||
38 | } | ||
39 | a:hover { | ||
40 | color: #333; | ||
41 | } | ||
42 | button.selected { | ||
43 | background-color: lightgreen; | ||
44 | background-opacity: 40%; | ||
45 | } | ||
46 | img.banner { | ||
47 | max-width: 100%; | ||
48 | } | ||
49 | .button-row { | ||
50 | padding: 10px; | ||
51 | } | ||
52 | </style> | ||
53 | </head> | ||
54 | <body> | ||
55 | <article> | ||
56 | <h1>Site web en pause !</h1> | ||
57 | <div> | ||
58 | <img class="banner" src="/lamaison.png" /> | ||
59 | <p>Le site est actuellement en pause.</p> | ||
60 | </div> | ||
61 | <h1>Données historiques</h1> | ||
62 | <div class="button-row"> | ||
63 | <button class="chart-choice" data-type="kW" id="mean_consumption">Consommation moyenne</button> | ||
64 | <button class="chart-choice" data-type="kWh" id="total_consumption">Consommation totale</button> | ||
65 | <button class="chart-choice" data-type="%" id="hygrometrie">Hygrométrie</button> | ||
66 | <button class="chart-choice" data-type="°C" id="temperature">Température</button> | ||
67 | </div> | ||
68 | <canvas id="chart" width="400" height="400"></canvas> | ||
69 | </article> | ||
70 | <script> | ||
71 | $(".chart-choice").click(function() { | ||
72 | drawData($(this).data("type")); | ||
73 | $(".chart-choice").removeClass("selected"); | ||
74 | $(this).addClass("selected"); | ||
75 | }); | ||
76 | var allData = {}; | ||
77 | var myChart; | ||
78 | var colors = [ | ||
79 | "#DDDF0D", "#7798BF", "#55BF3B", "#DF5353", "#aaeeee", | ||
80 | "#ff0066", "#eeaaee", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee" | ||
81 | ]; | ||
82 | |||
83 | $.ajax({ | ||
84 | type: "GET", | ||
85 | url: "/data.json", | ||
86 | dataType: "json", | ||
87 | success: function(data) { | ||
88 | allData = data; | ||
89 | $(".chart-choice")[3].click(); | ||
90 | }, | ||
91 | }); | ||
92 | |||
93 | var getData = function(key, colorIndex) { | ||
94 | var d = allData[key]; | ||
95 | return { | ||
96 | borderColor: colors[colorIndex], | ||
97 | hidden: d.hide, | ||
98 | fill: false, | ||
99 | label: d.name + " (" + d.unit + ")", | ||
100 | data: d.data.map(function(value) { | ||
101 | return { | ||
102 | "x": new Date(value.x), | ||
103 | "y": Math.max(0,value.y), | ||
104 | }; | ||
105 | }), | ||
106 | }; | ||
107 | }; | ||
108 | |||
109 | var getDataByType = function(type) { | ||
110 | var colorIndex = 0; | ||
111 | return Object.keys(allData) | ||
112 | .filter(function (key) { return allData[key].unit === type; }) | ||
113 | .map(function (key) { return getData(key, colorIndex++); }); | ||
114 | }; | ||
115 | |||
116 | var drawData = function (type) { | ||
117 | $('#chart').replaceWith('<canvas id="chart" width="400" height="400"></canvas>'); | ||
118 | var ctx = document.getElementById('chart').getContext('2d'); | ||
119 | myChart = new Chart(ctx, { | ||
120 | type: 'line', | ||
121 | options: { | ||
122 | scales: { | ||
123 | xAxes: [ | ||
124 | { | ||
125 | type: "time", | ||
126 | time: { | ||
127 | displayFormats: { | ||
128 | 'millisecond': 'YYYY-MM', | ||
129 | 'second': 'YYYY-MM', | ||
130 | 'minute': 'YYYY-MM', | ||
131 | 'hour': 'YYYY-MM', | ||
132 | 'day': 'YYYY-MM', | ||
133 | 'week': 'YYYY-MM', | ||
134 | 'month': 'YYYY-MM', | ||
135 | 'quarter': 'YYYY-MM', | ||
136 | 'year': 'YYYY-MM', | ||
137 | } | ||
138 | } | ||
139 | } | ||
140 | ], | ||
141 | yAxes: [ | ||
142 | { | ||
143 | ticks: { | ||
144 | callback: function(value, index, values) { return value + " " + type; } | ||
145 | } | ||
146 | } | ||
147 | ], | ||
148 | }, | ||
149 | plugins: { | ||
150 | zoom: { | ||
151 | pan: { enabled: true, mode: "x" }, | ||
152 | zoom: { enabled: true, mode: "x" }, | ||
153 | } | ||
154 | }, | ||
155 | }, | ||
156 | data: { | ||
157 | datasets: getDataByType(type), | ||
158 | } | ||
159 | }); | ||
160 | } | ||
161 | </script> | ||
162 | </body> | ||
163 | </html> | ||
164 | |||
diff --git a/modules/private/websites/papa/maison_bbc_static/lamaison.png b/modules/private/websites/papa/maison_bbc_static/lamaison.png deleted file mode 100644 index dad243c..0000000 --- a/modules/private/websites/papa/maison_bbc_static/lamaison.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/papa/surveillance.nix b/modules/private/websites/papa/surveillance.nix deleted file mode 100644 index a8e5149..0000000 --- a/modules/private/websites/papa/surveillance.nix +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.papa.surveillance; | ||
4 | varDir = "/var/lib/ftp/papa"; | ||
5 | apacheUser = config.services.httpd.Prod.user; | ||
6 | in { | ||
7 | options.myServices.websites.papa.surveillance.enable = lib.mkEnableOption "enable Papa surveillance's website"; | ||
8 | |||
9 | config = lib.mkIf cfg.enable { | ||
10 | security.acme.certs."ftp".extraDomains."surveillance.maison.bbc.bouya.org" = null; | ||
11 | |||
12 | services.cron = { | ||
13 | systemCronJobs = let | ||
14 | script = pkgs.writeScript "cleanup-papa" '' | ||
15 | #!${pkgs.stdenv.shell} | ||
16 | d=$(date -d "7 days ago" +%Y%m%d) | ||
17 | for i in /var/lib/ftp/papa/*/20[0-9][0-9][0-9][0-9][0-9][0-9]; do | ||
18 | if [ "$d" -gt $(basename $i) ]; then | ||
19 | rm -rf "$i" | ||
20 | fi | ||
21 | done | ||
22 | ''; | ||
23 | in | ||
24 | [ | ||
25 | '' | ||
26 | 0 6 * * * ${apacheUser} ${script} | ||
27 | '' | ||
28 | ]; | ||
29 | }; | ||
30 | |||
31 | services.websites.env.production.vhostConfs.papa_surveillance = { | ||
32 | certName = "papa"; | ||
33 | certMainHost = "surveillance.maison.bbc.bouya.org"; | ||
34 | hosts = [ "surveillance.maison.bbc.bouya.org" ]; | ||
35 | root = varDir; | ||
36 | extraConfig = [ | ||
37 | '' | ||
38 | Use Apaxy "${varDir}" "title .duplicity-ignore" | ||
39 | <Directory ${varDir}> | ||
40 | Use LDAPConnect | ||
41 | Options Indexes | ||
42 | AllowOverride None | ||
43 | Require ldap-group cn=surveillance.maison.bbc.bouya.org,cn=httpd,ou=services,dc=immae,dc=eu | ||
44 | </Directory> | ||
45 | '' | ||
46 | ]; | ||
47 | }; | ||
48 | }; | ||
49 | } | ||
50 | |||
diff --git a/modules/private/websites/patrick_fodella/altermondia.nix b/modules/private/websites/patrick_fodella/altermondia.nix deleted file mode 100644 index 2a41aa3..0000000 --- a/modules/private/websites/patrick_fodella/altermondia.nix +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.patrick_fodella.altermondia; | ||
4 | varDir = "/var/lib/ftp/patrick_fodella/altermondia"; | ||
5 | apacheUser = config.services.httpd.Prod.user; | ||
6 | apacheGroup = config.services.httpd.Prod.group; | ||
7 | in { | ||
8 | options.myServices.websites.patrick_fodella.altermondia.enable = lib.mkEnableOption "enable Patrick Fodella Altermondia's website"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.webstats.sites = [ { name = "altermondia.org"; } ]; | ||
12 | |||
13 | system.activationScripts.patrick_fodella_altermondia = { | ||
14 | deps = [ "httpd" ]; | ||
15 | text = '' | ||
16 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/patrick_fodella_altermondia | ||
17 | ''; | ||
18 | }; | ||
19 | systemd.services.phpfpm-patrick_fodella_altermondia.after = lib.mkAfter [ "mysql.service" ]; | ||
20 | systemd.services.phpfpm-patrick_fodella_altermondia.wants = [ "mysql.service" ]; | ||
21 | services.phpfpm.pools.patrick_fodella_altermondia = { | ||
22 | user = apacheUser; | ||
23 | group = apacheGroup; | ||
24 | settings = { | ||
25 | "listen.owner" = apacheUser; | ||
26 | "listen.group" = apacheGroup; | ||
27 | |||
28 | "pm" = "ondemand"; | ||
29 | "pm.max_children" = "5"; | ||
30 | "pm.process_idle_timeout" = "60"; | ||
31 | |||
32 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/patrick_fodella_altermondia:${varDir}:/tmp"; | ||
33 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/patrick_fodella_altermondia"; | ||
34 | }; | ||
35 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
36 | disable_functions = "mail" | ||
37 | ''; | ||
38 | phpPackage = pkgs.php72; | ||
39 | }; | ||
40 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
41 | services.websites.env.production.vhostConfs.patrick_fodella_altermondia = { | ||
42 | certName = "patrick_fodella"; | ||
43 | addToCerts = true; | ||
44 | hosts = ["altermondia.org" "www.altermondia.org" ]; | ||
45 | root = varDir; | ||
46 | extraConfig = [ | ||
47 | '' | ||
48 | Use Stats altermondia.org | ||
49 | |||
50 | RewriteEngine on | ||
51 | RewriteCond "%{HTTP_HOST}" "!^altermondia\.org$" [NC] | ||
52 | RewriteRule ^(.+)$ https://altermondia.org$1 [R=302,L] | ||
53 | |||
54 | <FilesMatch "\.php$"> | ||
55 | SetHandler "proxy:unix:${config.services.phpfpm.pools.patrick_fodella_altermondia.socket}|fcgi://localhost" | ||
56 | </FilesMatch> | ||
57 | |||
58 | <Location /xmlrpc.php> | ||
59 | AllowOverride None | ||
60 | Require all denied | ||
61 | </Location> | ||
62 | <Directory ${varDir}> | ||
63 | DirectoryIndex index.php index.htm index.html | ||
64 | Options Indexes FollowSymLinks MultiViews Includes | ||
65 | AllowOverride all | ||
66 | Require all granted | ||
67 | </Directory> | ||
68 | '' | ||
69 | ]; | ||
70 | }; | ||
71 | }; | ||
72 | } | ||
73 | |||
diff --git a/modules/private/websites/patrick_fodella/ecolyeu.nix b/modules/private/websites/patrick_fodella/ecolyeu.nix deleted file mode 100644 index 00dab76..0000000 --- a/modules/private/websites/patrick_fodella/ecolyeu.nix +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.patrick_fodella.ecolyeu; | ||
4 | varDir = "/var/lib/ftp/patrick_fodella/ecolyeu_pessicart"; | ||
5 | apacheUser = config.services.httpd.Prod.user; | ||
6 | apacheGroup = config.services.httpd.Prod.group; | ||
7 | in { | ||
8 | options.myServices.websites.patrick_fodella.ecolyeu.enable = lib.mkEnableOption "enable Patrick Fodella Ecolyeu's website"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.webstats.sites = [ { name = "ecolyeu-pessicart-nice.fr"; } ]; | ||
12 | |||
13 | system.activationScripts.patrick_fodella_ecolyeu = { | ||
14 | deps = [ "httpd" ]; | ||
15 | text = '' | ||
16 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/patrick_fodella_ecolyeu | ||
17 | ''; | ||
18 | }; | ||
19 | systemd.services.phpfpm-patrick_fodella_ecolyeu.after = lib.mkAfter [ "mysql.service" ]; | ||
20 | systemd.services.phpfpm-patrick_fodella_ecolyeu.wants = [ "mysql.service" ]; | ||
21 | services.phpfpm.pools.patrick_fodella_ecolyeu = { | ||
22 | user = apacheUser; | ||
23 | group = apacheGroup; | ||
24 | settings = { | ||
25 | "listen.owner" = apacheUser; | ||
26 | "listen.group" = apacheGroup; | ||
27 | |||
28 | "pm" = "ondemand"; | ||
29 | "pm.max_children" = "5"; | ||
30 | "pm.process_idle_timeout" = "60"; | ||
31 | |||
32 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/patrick_fodella_ecolyeu:${varDir}:/tmp"; | ||
33 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/patrick_fodella_ecolyeu"; | ||
34 | }; | ||
35 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
36 | disable_functions = "mail" | ||
37 | ''; | ||
38 | phpPackage = pkgs.php72; | ||
39 | }; | ||
40 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
41 | services.websites.env.production.vhostConfs.patrick_fodella_ecolyeu = { | ||
42 | certName = "patrick_fodella"; | ||
43 | certMainHost = "ecolyeu-pessicart-nice.fr"; | ||
44 | hosts = ["ecolyeu-pessicart-nice.fr" "www.ecolyeu-pessicart-nice.fr" ]; | ||
45 | root = varDir; | ||
46 | extraConfig = [ | ||
47 | '' | ||
48 | Use Stats ecolyeu-pessicart-nice.fr | ||
49 | |||
50 | RewriteEngine on | ||
51 | RewriteCond "%{HTTP_HOST}" "!^www\.ecolyeu-pessicart-nice\.fr$" [NC] | ||
52 | RewriteRule ^(.+)$ https://www.ecolyeu-pessicart-nice.fr$1 [R=302,L] | ||
53 | |||
54 | <FilesMatch "\.php$"> | ||
55 | SetHandler "proxy:unix:${config.services.phpfpm.pools.patrick_fodella_ecolyeu.socket}|fcgi://localhost" | ||
56 | </FilesMatch> | ||
57 | |||
58 | <Location /xmlrpc.php> | ||
59 | AllowOverride None | ||
60 | Require all denied | ||
61 | </Location> | ||
62 | <Directory ${varDir}> | ||
63 | DirectoryIndex index.php index.htm index.html | ||
64 | Options Indexes FollowSymLinks MultiViews Includes | ||
65 | AllowOverride all | ||
66 | Require all granted | ||
67 | </Directory> | ||
68 | '' | ||
69 | ]; | ||
70 | }; | ||
71 | }; | ||
72 | } | ||
diff --git a/modules/private/websites/piedsjaloux/app/default.nix b/modules/private/websites/piedsjaloux/app/default.nix deleted file mode 100644 index 4525a18..0000000 --- a/modules/private/websites/piedsjaloux/app/default.nix +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | { environment, varDir, secretsPath | ||
2 | , composerEnv, fetchurl, fetchgit, sources }: | ||
3 | let | ||
4 | app = composerEnv.buildPackage ( | ||
5 | import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // | ||
6 | rec { | ||
7 | version = sources.websites-piedsjaloux-app.version; | ||
8 | pname = "piedsjaloux"; | ||
9 | name = "${pname}-${version}"; | ||
10 | src = sources.websites-piedsjaloux-app; | ||
11 | noDev = (environment == "prod"); | ||
12 | preInstall = '' | ||
13 | export SYMFONY_ENV="${environment}" | ||
14 | ''; | ||
15 | # /!\ miniatures and data need to be in the same physical dir due to a | ||
16 | # bug in leapt.im (searches for data/../miniatures) | ||
17 | postInstall = '' | ||
18 | cd $out | ||
19 | rm app/config/parameters.yml | ||
20 | ln -sf ${secretsPath} app/config/parameters.yml | ||
21 | rm -rf var/{logs,cache,data,miniatures,tmp} | ||
22 | ln -sf ${varDir}/{logs,cache,data,miniatures,tmp} var/ | ||
23 | ''; | ||
24 | passthru = { | ||
25 | inherit varDir environment secretsPath; | ||
26 | webRoot = "${app}/web"; | ||
27 | }; | ||
28 | }); | ||
29 | in app | ||
diff --git a/modules/private/websites/piedsjaloux/app/php-packages.nix b/modules/private/websites/piedsjaloux/app/php-packages.nix deleted file mode 100644 index 7b99936..0000000 --- a/modules/private/websites/piedsjaloux/app/php-packages.nix +++ /dev/null | |||
@@ -1,1009 +0,0 @@ | |||
1 | # Generated with composer2nix and adapted to return only the list of | ||
2 | # packages | ||
3 | { composerEnv, fetchurl, fetchgit ? null }: | ||
4 | { | ||
5 | packages = { | ||
6 | "behat/transliterator" = { | ||
7 | targetDir = ""; | ||
8 | src = composerEnv.buildZipPackage { | ||
9 | name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c"; | ||
10 | src = fetchurl { | ||
11 | url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c; | ||
12 | sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0"; | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
16 | "components/bootstrap" = { | ||
17 | targetDir = ""; | ||
18 | src = composerEnv.buildZipPackage { | ||
19 | name = "components-bootstrap-5d60b2efd3159e1a9e203901849b3493c5aac61f"; | ||
20 | src = fetchurl { | ||
21 | url = https://api.github.com/repos/components/bootstrap/zipball/5d60b2efd3159e1a9e203901849b3493c5aac61f; | ||
22 | sha256 = "0jdyxl86dr2lf8az1vby84i7kdn1qcqkp8fy60rs18gav0aqp4fg"; | ||
23 | }; | ||
24 | }; | ||
25 | }; | ||
26 | "components/jquery" = { | ||
27 | targetDir = ""; | ||
28 | src = composerEnv.buildZipPackage { | ||
29 | name = "components-jquery-459648cda77875519c5da3ae1dd0ed5d170aa649"; | ||
30 | src = fetchurl { | ||
31 | url = https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649; | ||
32 | sha256 = "04jv8yifhwx0cpkw3y3ng0bs2dv77pzrdd640p59rjxwba6r1lbb"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | "components/jqueryui" = { | ||
37 | targetDir = ""; | ||
38 | src = composerEnv.buildZipPackage { | ||
39 | name = "components-jqueryui-c34f8dbf3ba57b3784b93f26119f436c0e8288e1"; | ||
40 | src = fetchurl { | ||
41 | url = https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1; | ||
42 | sha256 = "00nkg6z8g6l3jysyzsfmfxhxqcdsd3jfqib28j8kn2frzx508xv9"; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | "composer/ca-bundle" = { | ||
47 | targetDir = ""; | ||
48 | src = composerEnv.buildZipPackage { | ||
49 | name = "composer-ca-bundle-8afa52cd417f4ec417b4bfe86b68106538a87660"; | ||
50 | src = fetchurl { | ||
51 | url = https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660; | ||
52 | sha256 = "18b0gq29frjf4yhl4sl3i3zbz6zr3qjgsjb8cjdhz65vpb50581p"; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
56 | "container-interop/container-interop" = { | ||
57 | targetDir = ""; | ||
58 | src = composerEnv.buildZipPackage { | ||
59 | name = "container-interop-container-interop-79cbf1341c22ec75643d841642dd5d6acd83bdb8"; | ||
60 | src = fetchurl { | ||
61 | url = https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8; | ||
62 | sha256 = "1pxm461g5flcq50yabr01nw8w17n3g7klpman9ps3im4z0604m52"; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | "dmishh/settings-bundle" = { | ||
67 | targetDir = ""; | ||
68 | src = composerEnv.buildZipPackage { | ||
69 | name = "dmishh-settings-bundle-0ee48b015691694a8dcbd3ee654d33386e7bf478"; | ||
70 | src = fetchurl { | ||
71 | url = https://api.github.com/repos/dmishh/SettingsBundle/zipball/0ee48b015691694a8dcbd3ee654d33386e7bf478; | ||
72 | sha256 = "0m2fw5shvnkqlz0nm27ggpmkipfh377y1hjsw343zv1nn72nxfqf"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | "doctrine/annotations" = { | ||
77 | targetDir = ""; | ||
78 | src = composerEnv.buildZipPackage { | ||
79 | name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"; | ||
80 | src = fetchurl { | ||
81 | url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5; | ||
82 | sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | "doctrine/cache" = { | ||
87 | targetDir = ""; | ||
88 | src = composerEnv.buildZipPackage { | ||
89 | name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57"; | ||
90 | src = fetchurl { | ||
91 | url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57; | ||
92 | sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i"; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | "doctrine/collections" = { | ||
97 | targetDir = ""; | ||
98 | src = composerEnv.buildZipPackage { | ||
99 | name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf"; | ||
100 | src = fetchurl { | ||
101 | url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf; | ||
102 | sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis"; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
106 | "doctrine/common" = { | ||
107 | targetDir = ""; | ||
108 | src = composerEnv.buildZipPackage { | ||
109 | name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d"; | ||
110 | src = fetchurl { | ||
111 | url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d; | ||
112 | sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na"; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | "doctrine/dbal" = { | ||
117 | targetDir = ""; | ||
118 | src = composerEnv.buildZipPackage { | ||
119 | name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9"; | ||
120 | src = fetchurl { | ||
121 | url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9; | ||
122 | sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj"; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | "doctrine/doctrine-bundle" = { | ||
127 | targetDir = ""; | ||
128 | src = composerEnv.buildZipPackage { | ||
129 | name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d"; | ||
130 | src = fetchurl { | ||
131 | url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d; | ||
132 | sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3"; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | "doctrine/doctrine-cache-bundle" = { | ||
137 | targetDir = ""; | ||
138 | src = composerEnv.buildZipPackage { | ||
139 | name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927"; | ||
140 | src = fetchurl { | ||
141 | url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927; | ||
142 | sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa"; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | "doctrine/doctrine-migrations-bundle" = { | ||
147 | targetDir = ""; | ||
148 | src = composerEnv.buildZipPackage { | ||
149 | name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce"; | ||
150 | src = fetchurl { | ||
151 | url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce; | ||
152 | sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn"; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | "doctrine/event-manager" = { | ||
157 | targetDir = ""; | ||
158 | src = composerEnv.buildZipPackage { | ||
159 | name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3"; | ||
160 | src = fetchurl { | ||
161 | url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3; | ||
162 | sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88"; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | "doctrine/inflector" = { | ||
167 | targetDir = ""; | ||
168 | src = composerEnv.buildZipPackage { | ||
169 | name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a"; | ||
170 | src = fetchurl { | ||
171 | url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a; | ||
172 | sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | "doctrine/instantiator" = { | ||
177 | targetDir = ""; | ||
178 | src = composerEnv.buildZipPackage { | ||
179 | name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"; | ||
180 | src = fetchurl { | ||
181 | url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda; | ||
182 | sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy"; | ||
183 | }; | ||
184 | }; | ||
185 | }; | ||
186 | "doctrine/lexer" = { | ||
187 | targetDir = ""; | ||
188 | src = composerEnv.buildZipPackage { | ||
189 | name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c"; | ||
190 | src = fetchurl { | ||
191 | url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c; | ||
192 | sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74"; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | "doctrine/migrations" = { | ||
197 | targetDir = ""; | ||
198 | src = composerEnv.buildZipPackage { | ||
199 | name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6"; | ||
200 | src = fetchurl { | ||
201 | url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6; | ||
202 | sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld"; | ||
203 | }; | ||
204 | }; | ||
205 | }; | ||
206 | "doctrine/orm" = { | ||
207 | targetDir = ""; | ||
208 | src = composerEnv.buildZipPackage { | ||
209 | name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8"; | ||
210 | src = fetchurl { | ||
211 | url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8; | ||
212 | sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | "doctrine/persistence" = { | ||
217 | targetDir = ""; | ||
218 | src = composerEnv.buildZipPackage { | ||
219 | name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38"; | ||
220 | src = fetchurl { | ||
221 | url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38; | ||
222 | sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7"; | ||
223 | }; | ||
224 | }; | ||
225 | }; | ||
226 | "doctrine/reflection" = { | ||
227 | targetDir = ""; | ||
228 | src = composerEnv.buildZipPackage { | ||
229 | name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6"; | ||
230 | src = fetchurl { | ||
231 | url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6; | ||
232 | sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy"; | ||
233 | }; | ||
234 | }; | ||
235 | }; | ||
236 | "eko/feedbundle" = { | ||
237 | targetDir = ""; | ||
238 | src = composerEnv.buildZipPackage { | ||
239 | name = "eko-feedbundle-d4e626616d9ccf6527212d3bdda15f9af3838e4f"; | ||
240 | src = fetchurl { | ||
241 | url = https://api.github.com/repos/eko/FeedBundle/zipball/d4e626616d9ccf6527212d3bdda15f9af3838e4f; | ||
242 | sha256 = "145f4mq2bpsdayaiqmgz1asmjx2is4v327h2ny2wp03knnkjvnfq"; | ||
243 | }; | ||
244 | }; | ||
245 | }; | ||
246 | "fig/link-util" = { | ||
247 | targetDir = ""; | ||
248 | src = composerEnv.buildZipPackage { | ||
249 | name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac"; | ||
250 | src = fetchurl { | ||
251 | url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac; | ||
252 | sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64"; | ||
253 | }; | ||
254 | }; | ||
255 | }; | ||
256 | "gedmo/doctrine-extensions" = { | ||
257 | targetDir = ""; | ||
258 | src = composerEnv.buildZipPackage { | ||
259 | name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27"; | ||
260 | src = fetchurl { | ||
261 | url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27; | ||
262 | sha256 = "1i33xy9s18rncc1fllwi2qi7hrxj8g762fvgl9np7xndxa7kclyb"; | ||
263 | }; | ||
264 | }; | ||
265 | }; | ||
266 | "gregwar/captcha" = { | ||
267 | targetDir = ""; | ||
268 | src = composerEnv.buildZipPackage { | ||
269 | name = "gregwar-captcha-cf953dd79748406e0292cea8c565399681e4d345"; | ||
270 | src = fetchurl { | ||
271 | url = https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345; | ||
272 | sha256 = "153m7bkhs3drxk0jfbq67a8vr1m13g7isc4ck44k5hyfzpcazb5i"; | ||
273 | }; | ||
274 | }; | ||
275 | }; | ||
276 | "gregwar/captcha-bundle" = { | ||
277 | targetDir = ""; | ||
278 | src = composerEnv.buildZipPackage { | ||
279 | name = "gregwar-captcha-bundle-c2d5468556890dd25e0b53bd345fc205562c86f7"; | ||
280 | src = fetchurl { | ||
281 | url = https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7; | ||
282 | sha256 = "04wcvqq457h6v7mzmrar946swd9akk27fmfig4qj8hpxzj250cgk"; | ||
283 | }; | ||
284 | }; | ||
285 | }; | ||
286 | "helios-ag/fm-bbcode-bundle" = { | ||
287 | targetDir = ""; | ||
288 | src = composerEnv.buildZipPackage { | ||
289 | name = "helios-ag-fm-bbcode-bundle-d88ff5ca6c0ab71ec094d5a7d56b0bc8bc100363"; | ||
290 | src = fetchurl { | ||
291 | url = https://api.github.com/repos/helios-ag/FMBbCodeBundle/zipball/d88ff5ca6c0ab71ec094d5a7d56b0bc8bc100363; | ||
292 | sha256 = "13g9ddd2p3nf1vrbkf6l00qdqz89rq6d8l20p68dmiy7mb6kpynl"; | ||
293 | }; | ||
294 | }; | ||
295 | }; | ||
296 | "immae/piedsjaloux-ckeditor-component" = { | ||
297 | targetDir = ""; | ||
298 | src = fetchgit { | ||
299 | name = "immae-piedsjaloux-ckeditor-component-9946db9daaa76448d0e43247472cdedd2a5ea22a"; | ||
300 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/piedsjaloux-ckeditor-component.git"; | ||
301 | rev = "9946db9daaa76448d0e43247472cdedd2a5ea22a"; | ||
302 | sha256 = "183rgl23li3bqsynfmvv2s7jvlmqf6a5pskgrcxlaxcrr0d09n8c"; | ||
303 | }; | ||
304 | }; | ||
305 | "incenteev/composer-parameter-handler" = { | ||
306 | targetDir = ""; | ||
307 | src = composerEnv.buildZipPackage { | ||
308 | name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550"; | ||
309 | src = fetchurl { | ||
310 | url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550; | ||
311 | sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm"; | ||
312 | }; | ||
313 | }; | ||
314 | }; | ||
315 | "jdorn/sql-formatter" = { | ||
316 | targetDir = ""; | ||
317 | src = composerEnv.buildZipPackage { | ||
318 | name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc"; | ||
319 | src = fetchurl { | ||
320 | url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc; | ||
321 | sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi"; | ||
322 | }; | ||
323 | }; | ||
324 | }; | ||
325 | "kriswallsmith/assetic" = { | ||
326 | targetDir = ""; | ||
327 | src = composerEnv.buildZipPackage { | ||
328 | name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"; | ||
329 | src = fetchurl { | ||
330 | url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1; | ||
331 | sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8"; | ||
332 | }; | ||
333 | }; | ||
334 | }; | ||
335 | "leapt/im-bundle" = { | ||
336 | targetDir = ""; | ||
337 | src = composerEnv.buildZipPackage { | ||
338 | name = "leapt-im-bundle-83442778d118f6edb537b93f9746c3a97e56c3d1"; | ||
339 | src = fetchurl { | ||
340 | url = https://api.github.com/repos/leapt/im-bundle/zipball/83442778d118f6edb537b93f9746c3a97e56c3d1; | ||
341 | sha256 = "1gm4ih3v1j0xjm7mrpspd3yacdwvbqgag22cyqmix0hc9hw3pc6a"; | ||
342 | }; | ||
343 | }; | ||
344 | }; | ||
345 | "luxifer/doctrine-functions" = { | ||
346 | targetDir = ""; | ||
347 | src = composerEnv.buildZipPackage { | ||
348 | name = "luxifer-doctrine-functions-e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c"; | ||
349 | src = fetchurl { | ||
350 | url = https://api.github.com/repos/luxifer/doctrine-functions/zipball/e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c; | ||
351 | sha256 = "1sw4826nvs5q0y2na9m26rbxfiaw0kfqwhky7x7apicgx5adqfa9"; | ||
352 | }; | ||
353 | }; | ||
354 | }; | ||
355 | "mjohnson/decoda" = { | ||
356 | targetDir = ""; | ||
357 | src = composerEnv.buildZipPackage { | ||
358 | name = "mjohnson-decoda-8cd0928b78a4bf5ade48b80c934370fc1f5f84a1"; | ||
359 | src = fetchurl { | ||
360 | url = https://api.github.com/repos/milesj/decoda/zipball/8cd0928b78a4bf5ade48b80c934370fc1f5f84a1; | ||
361 | sha256 = "0wcxz9yirz4zir06xvnlchqgppmyasymak06gn46jn6v6c9dsykc"; | ||
362 | }; | ||
363 | }; | ||
364 | }; | ||
365 | "monolog/monolog" = { | ||
366 | targetDir = ""; | ||
367 | src = composerEnv.buildZipPackage { | ||
368 | name = "monolog-monolog-bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"; | ||
369 | src = fetchurl { | ||
370 | url = https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266; | ||
371 | sha256 = "0h3nnxjf2bdh7nmpqnpij99lqv6bw13r2bx83d8vn5zvblwg5png"; | ||
372 | }; | ||
373 | }; | ||
374 | }; | ||
375 | "ocramius/package-versions" = { | ||
376 | targetDir = ""; | ||
377 | needsModifyRights = true; | ||
378 | src = composerEnv.buildZipPackage { | ||
379 | name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f"; | ||
380 | src = fetchurl { | ||
381 | url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f; | ||
382 | sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881"; | ||
383 | }; | ||
384 | }; | ||
385 | }; | ||
386 | "ocramius/proxy-manager" = { | ||
387 | targetDir = ""; | ||
388 | src = composerEnv.buildZipPackage { | ||
389 | name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1"; | ||
390 | src = fetchurl { | ||
391 | url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1; | ||
392 | sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn"; | ||
393 | }; | ||
394 | }; | ||
395 | }; | ||
396 | "paragonie/random_compat" = { | ||
397 | targetDir = ""; | ||
398 | src = composerEnv.buildZipPackage { | ||
399 | name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"; | ||
400 | src = fetchurl { | ||
401 | url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95; | ||
402 | sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09"; | ||
403 | }; | ||
404 | }; | ||
405 | }; | ||
406 | "psr/cache" = { | ||
407 | targetDir = ""; | ||
408 | src = composerEnv.buildZipPackage { | ||
409 | name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8"; | ||
410 | src = fetchurl { | ||
411 | url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8; | ||
412 | sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz"; | ||
413 | }; | ||
414 | }; | ||
415 | }; | ||
416 | "psr/container" = { | ||
417 | targetDir = ""; | ||
418 | src = composerEnv.buildZipPackage { | ||
419 | name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f"; | ||
420 | src = fetchurl { | ||
421 | url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f; | ||
422 | sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j"; | ||
423 | }; | ||
424 | }; | ||
425 | }; | ||
426 | "psr/link" = { | ||
427 | targetDir = ""; | ||
428 | src = composerEnv.buildZipPackage { | ||
429 | name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562"; | ||
430 | src = fetchurl { | ||
431 | url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562; | ||
432 | sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13"; | ||
433 | }; | ||
434 | }; | ||
435 | }; | ||
436 | "psr/log" = { | ||
437 | targetDir = ""; | ||
438 | src = composerEnv.buildZipPackage { | ||
439 | name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"; | ||
440 | src = fetchurl { | ||
441 | url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd; | ||
442 | sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d"; | ||
443 | }; | ||
444 | }; | ||
445 | }; | ||
446 | "psr/simple-cache" = { | ||
447 | targetDir = ""; | ||
448 | src = composerEnv.buildZipPackage { | ||
449 | name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"; | ||
450 | src = fetchurl { | ||
451 | url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b; | ||
452 | sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw"; | ||
453 | }; | ||
454 | }; | ||
455 | }; | ||
456 | "robloach/component-installer" = { | ||
457 | targetDir = ""; | ||
458 | src = composerEnv.buildZipPackage { | ||
459 | name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7"; | ||
460 | src = fetchurl { | ||
461 | url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7; | ||
462 | sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9"; | ||
463 | }; | ||
464 | }; | ||
465 | }; | ||
466 | "sensio/distribution-bundle" = { | ||
467 | targetDir = ""; | ||
468 | src = composerEnv.buildZipPackage { | ||
469 | name = "sensio-distribution-bundle-59eac70f15f97ee945924948a6f5e2f6f86b7a4b"; | ||
470 | src = fetchurl { | ||
471 | url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b; | ||
472 | sha256 = "05mj4c0ahwg6l2wipyqfyyjjp1m2vvl7ymp61nvwv7zhvqacvljs"; | ||
473 | }; | ||
474 | }; | ||
475 | }; | ||
476 | "sensio/framework-extra-bundle" = { | ||
477 | targetDir = ""; | ||
478 | src = composerEnv.buildZipPackage { | ||
479 | name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a"; | ||
480 | src = fetchurl { | ||
481 | url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a; | ||
482 | sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck"; | ||
483 | }; | ||
484 | }; | ||
485 | }; | ||
486 | "sensiolabs/security-checker" = { | ||
487 | targetDir = ""; | ||
488 | src = composerEnv.buildZipPackage { | ||
489 | name = "sensiolabs-security-checker-46be3f58adac13084497961e10eed9a7fb4d44d1"; | ||
490 | src = fetchurl { | ||
491 | url = https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1; | ||
492 | sha256 = "1caqf3hdfsajj9nb8fpinvs6apv90g1srwxcyxdnr6a8d6g0p6qi"; | ||
493 | }; | ||
494 | }; | ||
495 | }; | ||
496 | "swiftmailer/swiftmailer" = { | ||
497 | targetDir = ""; | ||
498 | src = composerEnv.buildZipPackage { | ||
499 | name = "swiftmailer-swiftmailer-181b89f18a90f8925ef805f950d47a7190e9b950"; | ||
500 | src = fetchurl { | ||
501 | url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950; | ||
502 | sha256 = "0hkmawv3bhbqdavy4wxqhzajg5zqd7chsi8w27y2zdi5r35az75d"; | ||
503 | }; | ||
504 | }; | ||
505 | }; | ||
506 | "symfony/assetic-bundle" = { | ||
507 | targetDir = ""; | ||
508 | src = composerEnv.buildZipPackage { | ||
509 | name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c"; | ||
510 | src = fetchurl { | ||
511 | url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c; | ||
512 | sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc"; | ||
513 | }; | ||
514 | }; | ||
515 | }; | ||
516 | "symfony/monolog-bundle" = { | ||
517 | targetDir = ""; | ||
518 | src = composerEnv.buildZipPackage { | ||
519 | name = "symfony-monolog-bundle-572e143afc03419a75ab002c80a2fd99299195ff"; | ||
520 | src = fetchurl { | ||
521 | url = https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff; | ||
522 | sha256 = "0g8icydnwfbqcbc56pqyc8bv1vp31331w0r75r3hqh225p2j1nd7"; | ||
523 | }; | ||
524 | }; | ||
525 | }; | ||
526 | "symfony/polyfill-apcu" = { | ||
527 | targetDir = ""; | ||
528 | src = composerEnv.buildZipPackage { | ||
529 | name = "symfony-polyfill-apcu-19e1b73bf255265ad0b568f81766ae2a3266d8d2"; | ||
530 | src = fetchurl { | ||
531 | url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2; | ||
532 | sha256 = "0jg33c81kwkpxk0b18jkslz9jkbkxl5k48h6m5b33dm63p1fj05r"; | ||
533 | }; | ||
534 | }; | ||
535 | }; | ||
536 | "symfony/polyfill-ctype" = { | ||
537 | targetDir = ""; | ||
538 | src = composerEnv.buildZipPackage { | ||
539 | name = "symfony-polyfill-ctype-e3d826245268269cd66f8326bd8bc066687b4a19"; | ||
540 | src = fetchurl { | ||
541 | url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19; | ||
542 | sha256 = "16md0qmy5jvvl7lc6n6r5hxjdr5i30vl6n9rpkm4b11rh2nqh7mh"; | ||
543 | }; | ||
544 | }; | ||
545 | }; | ||
546 | "symfony/polyfill-intl-icu" = { | ||
547 | targetDir = ""; | ||
548 | src = composerEnv.buildZipPackage { | ||
549 | name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644"; | ||
550 | src = fetchurl { | ||
551 | url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644; | ||
552 | sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq"; | ||
553 | }; | ||
554 | }; | ||
555 | }; | ||
556 | "symfony/polyfill-mbstring" = { | ||
557 | targetDir = ""; | ||
558 | src = composerEnv.buildZipPackage { | ||
559 | name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494"; | ||
560 | src = fetchurl { | ||
561 | url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494; | ||
562 | sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi"; | ||
563 | }; | ||
564 | }; | ||
565 | }; | ||
566 | "symfony/polyfill-php56" = { | ||
567 | targetDir = ""; | ||
568 | src = composerEnv.buildZipPackage { | ||
569 | name = "symfony-polyfill-php56-ff208829fe1aa48ab9af356992bb7199fed551af"; | ||
570 | src = fetchurl { | ||
571 | url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af; | ||
572 | sha256 = "0vmpiwakc7hpbr6jwpk7cqcy41ybgwl6jkn3q8c4ryxynknn5hfk"; | ||
573 | }; | ||
574 | }; | ||
575 | }; | ||
576 | "symfony/polyfill-php70" = { | ||
577 | targetDir = ""; | ||
578 | src = composerEnv.buildZipPackage { | ||
579 | name = "symfony-polyfill-php70-6b88000cdd431cd2e940caa2cb569201f3f84224"; | ||
580 | src = fetchurl { | ||
581 | url = https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224; | ||
582 | sha256 = "08h77r1i2q4pwdd0yk3pfhqqgk0z7gwmkzmvykx9bfv1z7a0h8ik"; | ||
583 | }; | ||
584 | }; | ||
585 | }; | ||
586 | "symfony/polyfill-util" = { | ||
587 | targetDir = ""; | ||
588 | src = composerEnv.buildZipPackage { | ||
589 | name = "symfony-polyfill-util-3b58903eae668d348a7126f999b0da0f2f93611c"; | ||
590 | src = fetchurl { | ||
591 | url = https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c; | ||
592 | sha256 = "00bb5mgljk6d54nyvd4gmc7mbzfr4b4q7h3rxmv8rzq613wcjp3i"; | ||
593 | }; | ||
594 | }; | ||
595 | }; | ||
596 | "symfony/swiftmailer-bundle" = { | ||
597 | targetDir = ""; | ||
598 | src = composerEnv.buildZipPackage { | ||
599 | name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec"; | ||
600 | src = fetchurl { | ||
601 | url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec; | ||
602 | sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01"; | ||
603 | }; | ||
604 | }; | ||
605 | }; | ||
606 | "symfony/symfony" = { | ||
607 | targetDir = ""; | ||
608 | src = composerEnv.buildZipPackage { | ||
609 | name = "symfony-symfony-f6b8ddc362b1cf3fb06548693c3adbb736092412"; | ||
610 | src = fetchurl { | ||
611 | url = https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412; | ||
612 | sha256 = "0ip7k5xf34w4p1zvv2nkv4nyik3asidk3zlgzyc1v57429z0f28q"; | ||
613 | }; | ||
614 | }; | ||
615 | }; | ||
616 | "twig/extensions" = { | ||
617 | targetDir = ""; | ||
618 | src = composerEnv.buildZipPackage { | ||
619 | name = "twig-extensions-57873c8b0c1be51caa47df2cdb824490beb16202"; | ||
620 | src = fetchurl { | ||
621 | url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202; | ||
622 | sha256 = "1sjajjd6vnczvdrl9b8zhzr06l5dflzqiwg9d33d92q8gli4j7jn"; | ||
623 | }; | ||
624 | }; | ||
625 | }; | ||
626 | "twig/twig" = { | ||
627 | targetDir = ""; | ||
628 | src = composerEnv.buildZipPackage { | ||
629 | name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1"; | ||
630 | src = fetchurl { | ||
631 | url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1; | ||
632 | sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n"; | ||
633 | }; | ||
634 | }; | ||
635 | }; | ||
636 | "zendframework/zend-code" = { | ||
637 | targetDir = ""; | ||
638 | src = composerEnv.buildZipPackage { | ||
639 | name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb"; | ||
640 | src = fetchurl { | ||
641 | url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb; | ||
642 | sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1"; | ||
643 | }; | ||
644 | }; | ||
645 | }; | ||
646 | "zendframework/zend-escaper" = { | ||
647 | targetDir = ""; | ||
648 | src = composerEnv.buildZipPackage { | ||
649 | name = "zendframework-zend-escaper-31d8aafae982f9568287cb4dce987e6aff8fd074"; | ||
650 | src = fetchurl { | ||
651 | url = https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074; | ||
652 | sha256 = "16gwqh9zpclc3fmf89cf738mxfh36ar3wdf9i0wvby0g0nhknkd7"; | ||
653 | }; | ||
654 | }; | ||
655 | }; | ||
656 | "zendframework/zend-eventmanager" = { | ||
657 | targetDir = ""; | ||
658 | src = composerEnv.buildZipPackage { | ||
659 | name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd"; | ||
660 | src = fetchurl { | ||
661 | url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd; | ||
662 | sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n"; | ||
663 | }; | ||
664 | }; | ||
665 | }; | ||
666 | "zendframework/zend-feed" = { | ||
667 | targetDir = ""; | ||
668 | src = composerEnv.buildZipPackage { | ||
669 | name = "zendframework-zend-feed-6641f4cf3f4586c63f83fd70b6d19966025c8888"; | ||
670 | src = fetchurl { | ||
671 | url = https://api.github.com/repos/zendframework/zend-feed/zipball/6641f4cf3f4586c63f83fd70b6d19966025c8888; | ||
672 | sha256 = "0wl2pf4cq0snlp3gbl2ia662i48yils464qlfqf7gdmbn1ryzcpi"; | ||
673 | }; | ||
674 | }; | ||
675 | }; | ||
676 | "zendframework/zend-http" = { | ||
677 | targetDir = ""; | ||
678 | src = composerEnv.buildZipPackage { | ||
679 | name = "zendframework-zend-http-2c8aed3d25522618573194e7cc51351f8cd4a45b"; | ||
680 | src = fetchurl { | ||
681 | url = https://api.github.com/repos/zendframework/zend-http/zipball/2c8aed3d25522618573194e7cc51351f8cd4a45b; | ||
682 | sha256 = "1vy6b24ihwv1g08hjnw4pd7c5171g866jnlr3j6fg0xqv79s4dn9"; | ||
683 | }; | ||
684 | }; | ||
685 | }; | ||
686 | "zendframework/zend-loader" = { | ||
687 | targetDir = ""; | ||
688 | src = composerEnv.buildZipPackage { | ||
689 | name = "zendframework-zend-loader-78f11749ea340f6ca316bca5958eef80b38f9b6c"; | ||
690 | src = fetchurl { | ||
691 | url = https://api.github.com/repos/zendframework/zend-loader/zipball/78f11749ea340f6ca316bca5958eef80b38f9b6c; | ||
692 | sha256 = "056zp0xchc4ckijg969im5him3j4cji6hsy26fiaycwprniaqdmg"; | ||
693 | }; | ||
694 | }; | ||
695 | }; | ||
696 | "zendframework/zend-servicemanager" = { | ||
697 | targetDir = ""; | ||
698 | src = composerEnv.buildZipPackage { | ||
699 | name = "zendframework-zend-servicemanager-a1ed6140d0d3ee803fec96582593ed024950067b"; | ||
700 | src = fetchurl { | ||
701 | url = https://api.github.com/repos/zendframework/zend-servicemanager/zipball/a1ed6140d0d3ee803fec96582593ed024950067b; | ||
702 | sha256 = "0s3aplkilrd8b18xh55h9m1yvnp9b6vnlgby4gqhqv8npnxxqir9"; | ||
703 | }; | ||
704 | }; | ||
705 | }; | ||
706 | "zendframework/zend-stdlib" = { | ||
707 | targetDir = ""; | ||
708 | src = composerEnv.buildZipPackage { | ||
709 | name = "zendframework-zend-stdlib-66536006722aff9e62d1b331025089b7ec71c065"; | ||
710 | src = fetchurl { | ||
711 | url = https://api.github.com/repos/zendframework/zend-stdlib/zipball/66536006722aff9e62d1b331025089b7ec71c065; | ||
712 | sha256 = "0cl0lcgqb5aja6iijp0wrclxra57imwsmhkfpahdl2bsgs1inf2f"; | ||
713 | }; | ||
714 | }; | ||
715 | }; | ||
716 | "zendframework/zend-uri" = { | ||
717 | targetDir = ""; | ||
718 | src = composerEnv.buildZipPackage { | ||
719 | name = "zendframework-zend-uri-3b6463645c6766f78ce537c70cb4fdabee1e725f"; | ||
720 | src = fetchurl { | ||
721 | url = https://api.github.com/repos/zendframework/zend-uri/zipball/3b6463645c6766f78ce537c70cb4fdabee1e725f; | ||
722 | sha256 = "0zkb88y9qbgshm8ys5yjxhz6a7fhxl7waygwn37pqsbvz74mbbvp"; | ||
723 | }; | ||
724 | }; | ||
725 | }; | ||
726 | "zendframework/zend-validator" = { | ||
727 | targetDir = ""; | ||
728 | src = composerEnv.buildZipPackage { | ||
729 | name = "zendframework-zend-validator-f0789b4c4c099afdd2ecc58cc209a26c64bd4f17"; | ||
730 | src = fetchurl { | ||
731 | url = https://api.github.com/repos/zendframework/zend-validator/zipball/f0789b4c4c099afdd2ecc58cc209a26c64bd4f17; | ||
732 | sha256 = "1lwxbr3jlldll4ccw5cn2ny1cbzh279mnfz7m1djqc8qnw16c8jl"; | ||
733 | }; | ||
734 | }; | ||
735 | }; | ||
736 | }; | ||
737 | devPackages = { | ||
738 | "doctrine/data-fixtures" = { | ||
739 | targetDir = ""; | ||
740 | src = composerEnv.buildZipPackage { | ||
741 | name = "doctrine-data-fixtures-3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a"; | ||
742 | src = fetchurl { | ||
743 | url = https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a; | ||
744 | sha256 = "0wbxhy7hq17laqgnq9x9ygysv0n1kn7s4x3v89pk7iy622pil3sm"; | ||
745 | }; | ||
746 | }; | ||
747 | }; | ||
748 | "doctrine/doctrine-fixtures-bundle" = { | ||
749 | targetDir = ""; | ||
750 | src = composerEnv.buildZipPackage { | ||
751 | name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273"; | ||
752 | src = fetchurl { | ||
753 | url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273; | ||
754 | sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf"; | ||
755 | }; | ||
756 | }; | ||
757 | }; | ||
758 | "fzaninotto/faker" = { | ||
759 | targetDir = ""; | ||
760 | src = composerEnv.buildZipPackage { | ||
761 | name = "fzaninotto-faker-d0190b156bcca848d401fb80f31f504f37141c8d"; | ||
762 | src = fetchurl { | ||
763 | url = https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d; | ||
764 | sha256 = "1x7xrxw14x7b0iq7sxi9ynswk8ljga62i77ch7xip4dwgq1dypvi"; | ||
765 | }; | ||
766 | }; | ||
767 | }; | ||
768 | "league/factory-muffin" = { | ||
769 | targetDir = ""; | ||
770 | src = composerEnv.buildZipPackage { | ||
771 | name = "league-factory-muffin-316ed2bac70178567f995d877b831804c9c58d5a"; | ||
772 | src = fetchurl { | ||
773 | url = https://api.github.com/repos/thephpleague/factory-muffin/zipball/316ed2bac70178567f995d877b831804c9c58d5a; | ||
774 | sha256 = "1fxh0hsqifmnhgkwyd460x3w9wn74369lmak3f1m24mn2asiynxq"; | ||
775 | }; | ||
776 | }; | ||
777 | }; | ||
778 | "league/factory-muffin-faker" = { | ||
779 | targetDir = ""; | ||
780 | src = composerEnv.buildZipPackage { | ||
781 | name = "league-factory-muffin-faker-30dbd11bb6be03b47e52bd60006ae198d20ab426"; | ||
782 | src = fetchurl { | ||
783 | url = https://api.github.com/repos/thephpleague/factory-muffin-faker/zipball/30dbd11bb6be03b47e52bd60006ae198d20ab426; | ||
784 | sha256 = "0dsimjdnsmzdd4vwjzw1gz1bb4zlhmv66g3fc9k4nj5bqch6mny1"; | ||
785 | }; | ||
786 | }; | ||
787 | }; | ||
788 | "mikey179/vfsStream" = { | ||
789 | targetDir = ""; | ||
790 | src = composerEnv.buildZipPackage { | ||
791 | name = "mikey179-vfsStream-d5fec95f541d4d71c4823bb5e30cf9b9e5b96145"; | ||
792 | src = fetchurl { | ||
793 | url = https://github.com/bovigo/vfsStream/archive/v1.6.5.zip; | ||
794 | sha256 = "16vi7ci8nxq5hxnzzjmmia73gdm55qcwn006c6hgdwa3i58dnr4l"; | ||
795 | }; | ||
796 | }; | ||
797 | }; | ||
798 | "phpdocumentor/reflection-common" = { | ||
799 | targetDir = ""; | ||
800 | src = composerEnv.buildZipPackage { | ||
801 | name = "phpdocumentor-reflection-common-21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"; | ||
802 | src = fetchurl { | ||
803 | url = https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6; | ||
804 | sha256 = "1yaf1zg9lnkfnq2ndpviv0hg5bza9vjvv5l4wgcn25lx1p8a94w2"; | ||
805 | }; | ||
806 | }; | ||
807 | }; | ||
808 | "phpdocumentor/reflection-docblock" = { | ||
809 | targetDir = ""; | ||
810 | src = composerEnv.buildZipPackage { | ||
811 | name = "phpdocumentor-reflection-docblock-94fd0001232e47129dd3504189fa1c7225010d08"; | ||
812 | src = fetchurl { | ||
813 | url = https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08; | ||
814 | sha256 = "03zvxqb5n9ddvysj8mjdwf59h7sagj5x5z15nhs7mqpcky1w388x"; | ||
815 | }; | ||
816 | }; | ||
817 | }; | ||
818 | "phpdocumentor/type-resolver" = { | ||
819 | targetDir = ""; | ||
820 | src = composerEnv.buildZipPackage { | ||
821 | name = "phpdocumentor-type-resolver-9c977708995954784726e25d0cd1dddf4e65b0f7"; | ||
822 | src = fetchurl { | ||
823 | url = https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7; | ||
824 | sha256 = "0h888r2iy2290yp9i3fij8wd5b7960yi7yn1rwh26x1xxd83n2mb"; | ||
825 | }; | ||
826 | }; | ||
827 | }; | ||
828 | "phpspec/prophecy" = { | ||
829 | targetDir = ""; | ||
830 | src = composerEnv.buildZipPackage { | ||
831 | name = "phpspec-prophecy-4ba436b55987b4bf311cb7c6ba82aa528aac0a06"; | ||
832 | src = fetchurl { | ||
833 | url = https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06; | ||
834 | sha256 = "0sz9fg8r4yvpgrhsh6qaic3p89pafdj8bdf4izbcccq6mdhclxn6"; | ||
835 | }; | ||
836 | }; | ||
837 | }; | ||
838 | "phpunit/php-code-coverage" = { | ||
839 | targetDir = ""; | ||
840 | src = composerEnv.buildZipPackage { | ||
841 | name = "phpunit-php-code-coverage-eabf68b476ac7d0f73793aada060f1c1a9bf8979"; | ||
842 | src = fetchurl { | ||
843 | url = https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979; | ||
844 | sha256 = "0xfkf2kaqrid0ajr8qfh3qnpiqqddl0cmmdy6hd7l9y7ziy6qz8d"; | ||
845 | }; | ||
846 | }; | ||
847 | }; | ||
848 | "phpunit/php-file-iterator" = { | ||
849 | targetDir = ""; | ||
850 | src = composerEnv.buildZipPackage { | ||
851 | name = "phpunit-php-file-iterator-730b01bc3e867237eaac355e06a36b85dd93a8b4"; | ||
852 | src = fetchurl { | ||
853 | url = https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4; | ||
854 | sha256 = "0kbg907g9hrx7pv8v0wnf4ifqywdgvigq6y6z00lyhgd0b8is060"; | ||
855 | }; | ||
856 | }; | ||
857 | }; | ||
858 | "phpunit/php-text-template" = { | ||
859 | targetDir = ""; | ||
860 | src = composerEnv.buildZipPackage { | ||
861 | name = "phpunit-php-text-template-31f8b717e51d9a2afca6c9f046f5d69fc27c8686"; | ||
862 | src = fetchurl { | ||
863 | url = https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686; | ||
864 | sha256 = "1y03m38qqvsbvyakd72v4dram81dw3swyn5jpss153i5nmqr4p76"; | ||
865 | }; | ||
866 | }; | ||
867 | }; | ||
868 | "phpunit/php-timer" = { | ||
869 | targetDir = ""; | ||
870 | src = composerEnv.buildZipPackage { | ||
871 | name = "phpunit-php-timer-3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"; | ||
872 | src = fetchurl { | ||
873 | url = https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f; | ||
874 | sha256 = "1j04r0hqzrv6m1jk5nb92k2nnana72nscqpfk3rgv3fzrrv69ljr"; | ||
875 | }; | ||
876 | }; | ||
877 | }; | ||
878 | "phpunit/php-token-stream" = { | ||
879 | targetDir = ""; | ||
880 | src = composerEnv.buildZipPackage { | ||
881 | name = "phpunit-php-token-stream-1ce90ba27c42e4e44e6d8458241466380b51fa16"; | ||
882 | src = fetchurl { | ||
883 | url = https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16; | ||
884 | sha256 = "0j1v83m268cddhyzi8qvqfzhpz12hrm3dyw6skyqvljdp7l9x6lk"; | ||
885 | }; | ||
886 | }; | ||
887 | }; | ||
888 | "phpunit/phpunit" = { | ||
889 | targetDir = ""; | ||
890 | src = composerEnv.buildZipPackage { | ||
891 | name = "phpunit-phpunit-46023de9a91eec7dfb06cc56cb4e260017298517"; | ||
892 | src = fetchurl { | ||
893 | url = https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517; | ||
894 | sha256 = "0mxhgcmc575hw3n7czindgqiha8jhdi4p19h883vf15fg6xf5iv6"; | ||
895 | }; | ||
896 | }; | ||
897 | }; | ||
898 | "phpunit/phpunit-mock-objects" = { | ||
899 | targetDir = ""; | ||
900 | src = composerEnv.buildZipPackage { | ||
901 | name = "phpunit-phpunit-mock-objects-ac8e7a3db35738d56ee9a76e78a4e03d97628983"; | ||
902 | src = fetchurl { | ||
903 | url = https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983; | ||
904 | sha256 = "0s7nyyafdqw2hp7wsd2mxnjxpk26630vv3wii6hcdb0q8xy8r78i"; | ||
905 | }; | ||
906 | }; | ||
907 | }; | ||
908 | "sebastian/comparator" = { | ||
909 | targetDir = ""; | ||
910 | src = composerEnv.buildZipPackage { | ||
911 | name = "sebastian-comparator-2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"; | ||
912 | src = fetchurl { | ||
913 | url = https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be; | ||
914 | sha256 = "0ymarxgnr8b3iy0w18h5z13iiv0ja17vjryryzfcwlqqhlc6w7iq"; | ||
915 | }; | ||
916 | }; | ||
917 | }; | ||
918 | "sebastian/diff" = { | ||
919 | targetDir = ""; | ||
920 | src = composerEnv.buildZipPackage { | ||
921 | name = "sebastian-diff-7f066a26a962dbe58ddea9f72a4e82874a3975a4"; | ||
922 | src = fetchurl { | ||
923 | url = https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4; | ||
924 | sha256 = "1ppx21vjj79z6d584ryq451k7kvdc511awmqjkj9g4vxj1s1h3j6"; | ||
925 | }; | ||
926 | }; | ||
927 | }; | ||
928 | "sebastian/environment" = { | ||
929 | targetDir = ""; | ||
930 | src = composerEnv.buildZipPackage { | ||
931 | name = "sebastian-environment-be2c607e43ce4c89ecd60e75c6a85c126e754aea"; | ||
932 | src = fetchurl { | ||
933 | url = https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea; | ||
934 | sha256 = "0gzgnk847kf18krq4ybbi2knzj7i0kdghsdlj6qynzzrlf7idij0"; | ||
935 | }; | ||
936 | }; | ||
937 | }; | ||
938 | "sebastian/exporter" = { | ||
939 | targetDir = ""; | ||
940 | src = composerEnv.buildZipPackage { | ||
941 | name = "sebastian-exporter-42c4c2eec485ee3e159ec9884f95b431287edde4"; | ||
942 | src = fetchurl { | ||
943 | url = https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4; | ||
944 | sha256 = "1p5mc4lqwxn79v06jjlgqxynblywcxw2mkhbf6r4jlz0bsrqafxn"; | ||
945 | }; | ||
946 | }; | ||
947 | }; | ||
948 | "sebastian/global-state" = { | ||
949 | targetDir = ""; | ||
950 | src = composerEnv.buildZipPackage { | ||
951 | name = "sebastian-global-state-bc37d50fea7d017d3d340f230811c9f1d7280af4"; | ||
952 | src = fetchurl { | ||
953 | url = https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4; | ||
954 | sha256 = "0y1x16mf9q38s7rlc7k2s6sxn2ccxmyk1q5zgh24hr4yp035f0pb"; | ||
955 | }; | ||
956 | }; | ||
957 | }; | ||
958 | "sebastian/recursion-context" = { | ||
959 | targetDir = ""; | ||
960 | src = composerEnv.buildZipPackage { | ||
961 | name = "sebastian-recursion-context-b19cc3298482a335a95f3016d2f8a6950f0fbcd7"; | ||
962 | src = fetchurl { | ||
963 | url = https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7; | ||
964 | sha256 = "1i9xdv55nkg1yy5q4lmpq1jsjif69hjrwmr1zha6b5qjf6ivlvjm"; | ||
965 | }; | ||
966 | }; | ||
967 | }; | ||
968 | "sebastian/version" = { | ||
969 | targetDir = ""; | ||
970 | src = composerEnv.buildZipPackage { | ||
971 | name = "sebastian-version-58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"; | ||
972 | src = fetchurl { | ||
973 | url = https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6; | ||
974 | sha256 = "1s71b6ss29pcsm0120myriwnzla1kpj13f3f739c7k1wfm69h4wz"; | ||
975 | }; | ||
976 | }; | ||
977 | }; | ||
978 | "sensio/generator-bundle" = { | ||
979 | targetDir = ""; | ||
980 | src = composerEnv.buildZipPackage { | ||
981 | name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65"; | ||
982 | src = fetchurl { | ||
983 | url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65; | ||
984 | sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3"; | ||
985 | }; | ||
986 | }; | ||
987 | }; | ||
988 | "symfony/phpunit-bridge" = { | ||
989 | targetDir = ""; | ||
990 | src = composerEnv.buildZipPackage { | ||
991 | name = "symfony-phpunit-bridge-2155067dfc73e0e77dbc26f236af17e4df552de5"; | ||
992 | src = fetchurl { | ||
993 | url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5; | ||
994 | sha256 = "1fhqyhvns69pkv086d1sp918bakqq9pk9d16nzck2s4pfdf097pj"; | ||
995 | }; | ||
996 | }; | ||
997 | }; | ||
998 | "webmozart/assert" = { | ||
999 | targetDir = ""; | ||
1000 | src = composerEnv.buildZipPackage { | ||
1001 | name = "webmozart-assert-83e253c8e0be5b0257b881e1827274667c5c17a9"; | ||
1002 | src = fetchurl { | ||
1003 | url = https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9; | ||
1004 | sha256 = "04w7rrjy43k93376an7xhnxqn2ibbw5fra7rqky7j1dl1f0hkn6d"; | ||
1005 | }; | ||
1006 | }; | ||
1007 | }; | ||
1008 | }; | ||
1009 | } | ||
diff --git a/modules/private/websites/piedsjaloux/integration.nix b/modules/private/websites/piedsjaloux/integration.nix deleted file mode 100644 index 3502964..0000000 --- a/modules/private/websites/piedsjaloux/integration.nix +++ /dev/null | |||
@@ -1,135 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.piedsjaloux.integration; | ||
4 | webRoot = "/var/lib/ftp/immae/piedsjaloux/web"; | ||
5 | cfg = config.myServices.websites.piedsjaloux.integration; | ||
6 | pcfg = config.services.phpApplication; | ||
7 | texlive = pkgs.texlive.combine { inherit (pkgs.texlive) attachfile preprint scheme-small; }; | ||
8 | in { | ||
9 | options.myServices.websites.piedsjaloux.integration.enable = lib.mkEnableOption "enable PiedsJaloux's website in integration"; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.phpApplication.apps.piedsjaloux_integration = { | ||
13 | websiteEnv = "integration"; | ||
14 | httpdUser = config.services.httpd.Inte.user; | ||
15 | httpdGroup = config.services.httpd.Inte.group; | ||
16 | inherit webRoot; | ||
17 | varDir = "/var/lib/ftp/immae/piedsjaloux_var"; | ||
18 | varDirPaths = { | ||
19 | "tmp" = "0700"; | ||
20 | }; | ||
21 | app = "/var/lib/ftp/immae/piedsjaloux"; | ||
22 | serviceDeps = [ "mysql.service" ]; | ||
23 | preStartActions = [ | ||
24 | "./bin/console --env=dev cache:clear --no-warmup" | ||
25 | ]; | ||
26 | phpOpenbasedir = [ "/tmp" ]; | ||
27 | phpPool = { | ||
28 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
29 | "php_admin_value[post_max_size]" = "20M"; | ||
30 | #"php_admin_flag[log_errors]" = "on"; | ||
31 | "pm" = "ondemand"; | ||
32 | "pm.max_children" = "5"; | ||
33 | "pm.process_idle_timeout" = "60"; | ||
34 | }; | ||
35 | phpEnv = { | ||
36 | PATH = lib.makeBinPath [ | ||
37 | pkgs.apg pkgs.unzip | ||
38 | # below ones don't need to be in the PATH but they’re used in | ||
39 | # secrets | ||
40 | pkgs.imagemagick texlive | ||
41 | ]; | ||
42 | SYMFONY_DEBUG_MODE = "\"yes\""; | ||
43 | }; | ||
44 | phpWatchFiles = [ | ||
45 | config.secrets.fullPaths."websites/piedsjaloux/integration" | ||
46 | ]; | ||
47 | phpPackage = pkgs.php72; | ||
48 | }; | ||
49 | |||
50 | secrets.keys."websites/piedsjaloux/integration" = { | ||
51 | user = config.services.httpd.Inte.user; | ||
52 | group = config.services.httpd.Inte.group; | ||
53 | permissions = "0400"; | ||
54 | text = '' | ||
55 | # This file is auto-generated during the composer install | ||
56 | parameters: | ||
57 | database_host: ${secrets.mysql.host} | ||
58 | database_port: ${secrets.mysql.port} | ||
59 | database_name: ${secrets.mysql.database} | ||
60 | database_user: ${secrets.mysql.user} | ||
61 | database_password: ${secrets.mysql.password} | ||
62 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
63 | mailer_transport: smtp | ||
64 | mailer_host: 127.0.0.1 | ||
65 | mailer_user: null | ||
66 | mailer_password: null | ||
67 | secret: ${secrets.secret} | ||
68 | pdflatex: "${texlive}/bin/pdflatex" | ||
69 | leapt_im: | ||
70 | binary_path: ${pkgs.imagemagick}/bin | ||
71 | ''; | ||
72 | }; | ||
73 | |||
74 | services.websites.env.integration.vhostConfs.piedsjaloux_integration = { | ||
75 | certName = "integration"; | ||
76 | addToCerts = true; | ||
77 | hosts = [ "test.pj.immae.dev" ]; | ||
78 | root = webRoot; | ||
79 | extraConfig = [ | ||
80 | '' | ||
81 | <FilesMatch "\.php$"> | ||
82 | SetHandler "proxy:unix:${pcfg.phpListenPaths.piedsjaloux_integration}|fcgi://localhost" | ||
83 | </FilesMatch> | ||
84 | |||
85 | <Location /> | ||
86 | Use LDAPConnect | ||
87 | Require ldap-group cn=pj.immae.dev,cn=httpd,ou=services,dc=immae,dc=eu | ||
88 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://piedsjaloux.fr\"></html>" | ||
89 | </Location> | ||
90 | |||
91 | <Directory ${webRoot}> | ||
92 | Options Indexes FollowSymLinks MultiViews Includes | ||
93 | AllowOverride None | ||
94 | Require all granted | ||
95 | |||
96 | DirectoryIndex app_dev.php | ||
97 | |||
98 | <IfModule mod_negotiation.c> | ||
99 | Options -MultiViews | ||
100 | </IfModule> | ||
101 | |||
102 | <IfModule mod_rewrite.c> | ||
103 | RewriteEngine On | ||
104 | |||
105 | RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ | ||
106 | RewriteRule ^(.*) - [E=BASE:%1] | ||
107 | |||
108 | # Maintenance script | ||
109 | RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f | ||
110 | RewriteCond %{SCRIPT_FILENAME} !maintenance.php | ||
111 | RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L] | ||
112 | ErrorDocument 503 /maintenance.php | ||
113 | |||
114 | # Sets the HTTP_AUTHORIZATION header removed by Apache | ||
115 | RewriteCond %{HTTP:Authorization} . | ||
116 | RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | ||
117 | |||
118 | RewriteCond %{ENV:REDIRECT_STATUS} ^$ | ||
119 | RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] | ||
120 | |||
121 | # If the requested filename exists, simply serve it. | ||
122 | # We only want to let Apache serve files and not directories. | ||
123 | RewriteCond %{REQUEST_FILENAME} -f | ||
124 | RewriteRule ^ - [L] | ||
125 | |||
126 | # Rewrite all other queries to the front controller. | ||
127 | RewriteRule ^ %{ENV:BASE}/app_dev.php [L] | ||
128 | </IfModule> | ||
129 | |||
130 | </Directory> | ||
131 | '' | ||
132 | ]; | ||
133 | }; | ||
134 | }; | ||
135 | } | ||
diff --git a/modules/private/websites/piedsjaloux/production.nix b/modules/private/websites/piedsjaloux/production.nix deleted file mode 100644 index 422c7f0..0000000 --- a/modules/private/websites/piedsjaloux/production.nix +++ /dev/null | |||
@@ -1,106 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.piedsjaloux.production; | ||
4 | app = pkgs.callPackage ./app { | ||
5 | composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; | ||
6 | environment = secrets.environment; | ||
7 | varDir = "/var/lib/piedsjaloux_production"; | ||
8 | secretsPath = config.secrets.fullPaths."websites/piedsjaloux/production"; | ||
9 | }; | ||
10 | cfg = config.myServices.websites.piedsjaloux.production; | ||
11 | pcfg = config.services.phpApplication; | ||
12 | texlive = pkgs.texlive.combine { inherit (pkgs.texlive) attachfile preprint scheme-small; }; | ||
13 | in { | ||
14 | options.myServices.websites.piedsjaloux.production.enable = lib.mkEnableOption "enable PiedsJaloux's website in production"; | ||
15 | |||
16 | config = lib.mkIf cfg.enable { | ||
17 | services.webstats.sites = [ { name = "piedsjaloux.fr"; } ]; | ||
18 | services.phpApplication.apps.piedsjaloux_production = { | ||
19 | websiteEnv = "production"; | ||
20 | httpdUser = config.services.httpd.Prod.user; | ||
21 | httpdGroup = config.services.httpd.Prod.group; | ||
22 | inherit (app) webRoot varDir; | ||
23 | varDirPaths = { | ||
24 | "tmp" = "0700"; | ||
25 | }; | ||
26 | inherit app; | ||
27 | serviceDeps = [ "mysql.service" ]; | ||
28 | preStartActions = [ | ||
29 | "./bin/console --env=${app.environment} cache:clear --no-warmup" | ||
30 | ]; | ||
31 | phpOpenbasedir = [ "/tmp" ]; | ||
32 | phpPool = { | ||
33 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
34 | "php_admin_value[post_max_size]" = "20M"; | ||
35 | #"php_admin_flag[log_errors]" = "on"; | ||
36 | "pm" = "dynamic"; | ||
37 | "pm.max_children" = "20"; | ||
38 | "pm.start_servers" = "2"; | ||
39 | "pm.min_spare_servers" = "1"; | ||
40 | "pm.max_spare_servers" = "3"; | ||
41 | }; | ||
42 | phpEnv = { | ||
43 | PATH = lib.makeBinPath [ | ||
44 | pkgs.apg pkgs.unzip | ||
45 | # below ones don't need to be in the PATH but they’re used in | ||
46 | # secrets | ||
47 | pkgs.imagemagick texlive | ||
48 | ]; | ||
49 | }; | ||
50 | phpWatchFiles = [ | ||
51 | app.secretsPath | ||
52 | ]; | ||
53 | phpPackage = pkgs.php72; | ||
54 | }; | ||
55 | |||
56 | secrets.keys."websites/piedsjaloux/production" = { | ||
57 | user = config.services.httpd.Prod.user; | ||
58 | group = config.services.httpd.Prod.group; | ||
59 | permissions = "0400"; | ||
60 | text = '' | ||
61 | # This file is auto-generated during the composer install | ||
62 | parameters: | ||
63 | database_host: ${secrets.mysql.host} | ||
64 | database_port: ${secrets.mysql.port} | ||
65 | database_name: ${secrets.mysql.database} | ||
66 | database_user: ${secrets.mysql.user} | ||
67 | database_password: ${secrets.mysql.password} | ||
68 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
69 | mailer_transport: smtp | ||
70 | mailer_host: 127.0.0.1 | ||
71 | mailer_user: null | ||
72 | mailer_password: null | ||
73 | secret: ${secrets.secret} | ||
74 | pdflatex: "${texlive}/bin/pdflatex" | ||
75 | leapt_im: | ||
76 | binary_path: ${pkgs.imagemagick}/bin | ||
77 | ''; | ||
78 | }; | ||
79 | |||
80 | services.websites.env.production.vhostConfs.piedsjaloux_production = { | ||
81 | certName = "piedsjaloux"; | ||
82 | certMainHost = "piedsjaloux.fr"; | ||
83 | hosts = [ "piedsjaloux.fr" "www.piedsjaloux.fr" ]; | ||
84 | root = app.webRoot; | ||
85 | extraConfig = [ | ||
86 | '' | ||
87 | RewriteEngine on | ||
88 | RewriteCond "%{HTTP_HOST}" "!^www.piedsjaloux\.fr$" [NC] | ||
89 | RewriteRule ^(.+)$ https://www.piedsjaloux.fr$1 [R=302,L] | ||
90 | |||
91 | <FilesMatch "\.php$"> | ||
92 | SetHandler "proxy:unix:${pcfg.phpListenPaths.piedsjaloux_production}|fcgi://localhost" | ||
93 | </FilesMatch> | ||
94 | |||
95 | Use Stats piedsjaloux.fr | ||
96 | |||
97 | <Directory ${app.webRoot}> | ||
98 | Options Indexes FollowSymLinks MultiViews Includes | ||
99 | AllowOverride All | ||
100 | Require all granted | ||
101 | </Directory> | ||
102 | '' | ||
103 | ]; | ||
104 | }; | ||
105 | }; | ||
106 | } | ||
diff --git a/modules/private/websites/ressourcerie_banon/cloud.nix b/modules/private/websites/ressourcerie_banon/cloud.nix deleted file mode 100644 index 5179218..0000000 --- a/modules/private/websites/ressourcerie_banon/cloud.nix +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.ressourcerie_banon.cloud; | ||
4 | nextcloud = config.myServices.tools.cloud.farm.package; | ||
5 | in { | ||
6 | options.myServices.websites.ressourcerie_banon.cloud.enable = lib.mkEnableOption "enable Ressourcerie Banon’s cloud"; | ||
7 | |||
8 | config = lib.mkIf cfg.enable { | ||
9 | myServices.tools.cloud.farm.instances = [ "ressourcerie_banon" ]; | ||
10 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
11 | services.websites.env.production.vhostConfs.ressourcerie_banon_cloud = { | ||
12 | certName = "ressourcerie_banon"; | ||
13 | addToCerts = true; | ||
14 | hosts = ["cloud.le-garage-autonome.org"]; | ||
15 | root = nextcloud; | ||
16 | extraConfig = [ config.myServices.tools.cloud.farm.vhosts.ressourcerie_banon ]; | ||
17 | }; | ||
18 | }; | ||
19 | } | ||
20 | |||
diff --git a/modules/private/websites/ressourcerie_banon/cryptpad.nix b/modules/private/websites/ressourcerie_banon/cryptpad.nix deleted file mode 100644 index 7aea728..0000000 --- a/modules/private/websites/ressourcerie_banon/cryptpad.nix +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.ressourcerie_banon.cryptpad; | ||
4 | envCfg = config.myEnv.tools.cryptpad.ressourcerie_banon; | ||
5 | port = envCfg.port; | ||
6 | configFile = pkgs.writeText "config.js" '' | ||
7 | // ${pkgs.cryptpad}/lib/node_modules/cryptpad/config/config.example.js | ||
8 | module.exports = { | ||
9 | httpUnsafeOrigin: 'https://${domain}', | ||
10 | httpPort: ${toString port}, | ||
11 | adminEmail: '${envCfg.email}', | ||
12 | filePath: './datastore/', | ||
13 | archivePath: './data/archive', | ||
14 | pinPath: './data/pins', | ||
15 | taskPath: './data/tasks', | ||
16 | blockPath: './block', | ||
17 | blobPath: './blob', | ||
18 | blobStagingPath: './data/blobstage', | ||
19 | decreePath: './data/decrees', | ||
20 | logPath: './data/logs', | ||
21 | logToStdout: false, | ||
22 | logLevel: 'info', | ||
23 | logFeedback: false, | ||
24 | verbose: false, | ||
25 | inactiveTime: false, | ||
26 | adminKeys: ${builtins.toJSON envCfg.admins}, | ||
27 | }; | ||
28 | ''; | ||
29 | domain = "pad.le-garage-autonome.org"; | ||
30 | in { | ||
31 | options.myServices.websites.ressourcerie_banon.cryptpad.enable = lib.mkEnableOption "Enable Ressourcerie Banon’s cryptpad"; | ||
32 | |||
33 | config = lib.mkIf cfg.enable { | ||
34 | myServices.tools.cryptpad.farm.hosts.ressourcerie_banon = { | ||
35 | inherit domain port; | ||
36 | config = configFile; | ||
37 | }; | ||
38 | services.websites.env.production.modules = [ "proxy_wstunnel" ]; | ||
39 | services.websites.env.production.vhostConfs.ressourcerie_banon_cryptpad = { | ||
40 | certName = "ressourcerie_banon"; | ||
41 | addToCerts = true; | ||
42 | hosts = [domain]; | ||
43 | root = config.myServices.tools.cryptpad.farm.vhostRoots.ressourcerie_banon; | ||
44 | extraConfig = [ | ||
45 | config.myServices.tools.cryptpad.farm.vhosts.ressourcerie_banon | ||
46 | ]; | ||
47 | }; | ||
48 | }; | ||
49 | } | ||
diff --git a/modules/private/websites/ressourcerie_banon/production.nix b/modules/private/websites/ressourcerie_banon/production.nix deleted file mode 100644 index fa00d92..0000000 --- a/modules/private/websites/ressourcerie_banon/production.nix +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.ressourcerie_banon.production; | ||
4 | varDir = "/var/lib/ftp/ressourcerie_banon"; | ||
5 | apacheUser = config.services.httpd.Prod.user; | ||
6 | apacheGroup = config.services.httpd.Prod.group; | ||
7 | in { | ||
8 | options.myServices.websites.ressourcerie_banon.production.enable = lib.mkEnableOption "enable Ressourcerie Banon's website"; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.webstats.sites = [ { name = "ressourcerie-banon.org"; } ]; | ||
12 | |||
13 | system.activationScripts.ressourcerie_banon = { | ||
14 | deps = [ "httpd" ]; | ||
15 | text = '' | ||
16 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/ressourcerie_banon | ||
17 | ''; | ||
18 | }; | ||
19 | systemd.services.phpfpm-ressourcerie_banon.after = lib.mkAfter [ "mysql.service" ]; | ||
20 | systemd.services.phpfpm-ressourcerie_banon.wants = [ "mysql.service" ]; | ||
21 | services.phpfpm.pools.ressourcerie_banon = { | ||
22 | user = apacheUser; | ||
23 | group = apacheGroup; | ||
24 | settings = { | ||
25 | "listen.owner" = apacheUser; | ||
26 | "listen.group" = apacheGroup; | ||
27 | |||
28 | "pm" = "ondemand"; | ||
29 | "pm.max_children" = "5"; | ||
30 | "pm.process_idle_timeout" = "60"; | ||
31 | |||
32 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/ressourcerie_banon:${varDir}:/tmp"; | ||
33 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/ressourcerie_banon"; | ||
34 | }; | ||
35 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
36 | disable_functions = "mail" | ||
37 | ''; | ||
38 | phpPackage = pkgs.php72; | ||
39 | }; | ||
40 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
41 | services.websites.env.production.vhostConfs.ressourcerie_banon = { | ||
42 | certName = "ressourcerie_banon"; | ||
43 | certMainHost = "ressourcerie-banon.org"; | ||
44 | hosts = ["ressourcerie-banon.org" "www.ressourcerie-banon.org" "ressourcerie-sault.org" "www.ressourcerie-sault.org" "le-garage-autonome.org" | ||
45 | "www.le-garage-autonome.org"]; | ||
46 | root = varDir; | ||
47 | extraConfig = [ | ||
48 | '' | ||
49 | Use Stats ressourcerie-banon.org | ||
50 | |||
51 | RewriteEngine on | ||
52 | RewriteCond "%{HTTP_HOST}" "!^ressourcerie-banon\.org$" [NC] | ||
53 | RewriteRule ^(.+)$ https://ressourcerie-banon.org$1 [R=302,L] | ||
54 | |||
55 | <FilesMatch "\.php$"> | ||
56 | SetHandler "proxy:unix:${config.services.phpfpm.pools.ressourcerie_banon.socket}|fcgi://localhost" | ||
57 | </FilesMatch> | ||
58 | |||
59 | <Directory ${varDir}> | ||
60 | DirectoryIndex index.php index.htm index.html | ||
61 | Options Indexes FollowSymLinks MultiViews Includes | ||
62 | AllowOverride all | ||
63 | Require all granted | ||
64 | </Directory> | ||
65 | '' | ||
66 | ]; | ||
67 | }; | ||
68 | }; | ||
69 | } | ||
70 | |||
diff --git a/modules/private/websites/richie/production.nix b/modules/private/websites/richie/production.nix deleted file mode 100644 index a548cff..0000000 --- a/modules/private/websites/richie/production.nix +++ /dev/null | |||
@@ -1,106 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.richie.production; | ||
4 | vardir = "/var/lib/richie_production"; | ||
5 | richieSrc = pkgs.stdenv.mkDerivation rec { | ||
6 | version = pkgs.sources.websites-richie-app.version; | ||
7 | pname = "richie"; | ||
8 | name = "${pname}-${version}"; | ||
9 | src = pkgs.sources.websites-richie-app; | ||
10 | phases = "installPhase"; | ||
11 | installPhase = '' | ||
12 | cp -a $src $out | ||
13 | chmod -R u+w $out | ||
14 | ln -sf ${vardir}/files $out/ | ||
15 | ln -sf ${vardir}/drapeaux $out/images/ | ||
16 | ln -sf ${vardir}/photos $out/ | ||
17 | sed -i "s@localedef --list-archive@localedef --list-archive /run/current-system/sw/lib/locale/locale-archive@" $out/admin/parametres.php | ||
18 | ''; | ||
19 | }; | ||
20 | secretPath = config.secrets.fullPaths."websites/richie/production"; | ||
21 | apacheUser = config.services.httpd.Prod.user; | ||
22 | apacheGroup = config.services.httpd.Prod.group; | ||
23 | in | ||
24 | { | ||
25 | options.myServices.websites.richie.production.enable = lib.mkEnableOption "enable Richie's website"; | ||
26 | config = lib.mkIf cfg.enable { | ||
27 | services.webstats.sites = [ { name = "europe-richie.org"; } ]; | ||
28 | |||
29 | secrets.keys."websites/richie/production" = { | ||
30 | user = apacheUser; | ||
31 | group = apacheGroup; | ||
32 | permissions = "0400"; | ||
33 | text = with config.myEnv.websites.richie; '' | ||
34 | <?php | ||
35 | |||
36 | $hote_sql = '${mysql.host}'; | ||
37 | $login_sql = '${mysql.user}'; | ||
38 | $bdd_sql = '${mysql.database}'; | ||
39 | $mdp_sql = '${mysql.password}'; | ||
40 | |||
41 | $db = mysqli_connect($hote_sql,$login_sql,$mdp_sql); | ||
42 | unset($mdp_sql); | ||
43 | |||
44 | $smtp_mailer->Auth('${smtp_mailer.user}', '${smtp_mailer.password}'); | ||
45 | ?> | ||
46 | ''; | ||
47 | }; | ||
48 | system.activationScripts.richie_production = { | ||
49 | deps = [ "httpd" ]; | ||
50 | text = '' | ||
51 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/richie_production | ||
52 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${vardir} | ||
53 | ''; | ||
54 | }; | ||
55 | services.phpfpm.pools.richie_production = { | ||
56 | user = apacheUser; | ||
57 | group = apacheGroup; | ||
58 | settings = { | ||
59 | "listen.owner" = apacheUser; | ||
60 | "listen.group" = apacheGroup; | ||
61 | |||
62 | "pm" = "ondemand"; | ||
63 | "pm.max_children" = "5"; | ||
64 | "pm.process_idle_timeout" = "60"; | ||
65 | |||
66 | "php_admin_value[open_basedir]" = "${vardir}:/var/lib/php/sessions/richie_production:${secretPath}:${richieSrc}:/tmp"; | ||
67 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/richie_production"; | ||
68 | }; | ||
69 | phpEnv = { | ||
70 | PATH = "/run/current-system/sw/bin:${lib.makeBinPath [ pkgs.imagemagick ]}"; | ||
71 | BDD_CONNECT = secretPath; | ||
72 | }; | ||
73 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
74 | date.timezone = 'Europe/Paris' | ||
75 | ''; | ||
76 | phpPackage = pkgs.php72; | ||
77 | }; | ||
78 | services.websites.env.production.modules = [ "proxy_fcgi" ]; | ||
79 | services.websites.env.production.vhostConfs.richie_production = { | ||
80 | certName = "richie"; | ||
81 | addToCerts = true; | ||
82 | certMainHost = "europe-richie.org"; | ||
83 | hosts = [ "europe-richie.org" "www.europe-richie.org" ]; | ||
84 | root = richieSrc; | ||
85 | extraConfig = [ | ||
86 | '' | ||
87 | Use Stats europe-richie.org | ||
88 | ErrorDocument 404 /404.html | ||
89 | <LocationMatch "^/files/.*/admin/"> | ||
90 | Require all denied | ||
91 | </LocationMatch> | ||
92 | <Directory ${richieSrc}> | ||
93 | DirectoryIndex index.php index.htm index.html | ||
94 | Options Indexes FollowSymLinks MultiViews Includes | ||
95 | AllowOverride None | ||
96 | Require all granted | ||
97 | |||
98 | <FilesMatch "\.php$"> | ||
99 | SetHandler "proxy:unix:${config.services.phpfpm.pools.richie_production.socket}|fcgi://localhost" | ||
100 | </FilesMatch> | ||
101 | </Directory> | ||
102 | '' | ||
103 | ]; | ||
104 | }; | ||
105 | }; | ||
106 | } | ||
diff --git a/modules/private/websites/syden/peertube.nix b/modules/private/websites/syden/peertube.nix deleted file mode 100644 index 64d4a5d..0000000 --- a/modules/private/websites/syden/peertube.nix +++ /dev/null | |||
@@ -1,132 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | scfg = config.myServices.websites.syden.peertube; | ||
4 | name = "peertube"; | ||
5 | dataDir = "/var/lib/syden_peertube"; | ||
6 | package = (pkgs.mylibs.flakeCompat ../../../../flakes/private/peertube).packages.x86_64-linux.peertube_syden; | ||
7 | env = config.myEnv.tools.syden_peertube; | ||
8 | in | ||
9 | { | ||
10 | options.myServices.websites.syden.peertube.enable = lib.mkEnableOption "enable Syden's website"; | ||
11 | |||
12 | config = lib.mkIf scfg.enable { | ||
13 | users.users.peertube = { | ||
14 | uid = config.ids.uids.peertube; | ||
15 | group = "peertube"; | ||
16 | description = "Peertube user"; | ||
17 | useDefaultShell = true; | ||
18 | extraGroups = [ "keys" ]; | ||
19 | }; | ||
20 | users.groups.peertube.gid = config.ids.gids.peertube; | ||
21 | |||
22 | secrets.keys."websites/syden/peertube" = { | ||
23 | user = "peertube"; | ||
24 | group = "peertube"; | ||
25 | permissions = "0640"; | ||
26 | text = '' | ||
27 | listen: | ||
28 | hostname: 'localhost' | ||
29 | port: ${toString env.listenPort} | ||
30 | webserver: | ||
31 | https: true | ||
32 | hostname: 'record-links.immae.eu' | ||
33 | port: 443 | ||
34 | database: | ||
35 | hostname: '${env.postgresql.socket}' | ||
36 | port: 5432 | ||
37 | suffix: '_syden' | ||
38 | username: '${env.postgresql.user}' | ||
39 | password: '${env.postgresql.password}' | ||
40 | pool: | ||
41 | max: 5 | ||
42 | redis: | ||
43 | socket: '${env.redis.socket}' | ||
44 | auth: null | ||
45 | db: ${env.redis.db} | ||
46 | smtp: | ||
47 | transport: sendmail | ||
48 | sendmail: '/run/wrappers/bin/sendmail' | ||
49 | from_address: 'peertube@tools.immae.eu' | ||
50 | storage: | ||
51 | tmp: '${dataDir}/storage/tmp/' | ||
52 | avatars: '${dataDir}/storage/avatars/' | ||
53 | videos: '${dataDir}/storage/videos/' | ||
54 | streaming_playlists: '${dataDir}/storage/streaming-playlists/' | ||
55 | redundancy: '${dataDir}/storage/videos/' | ||
56 | logs: '${dataDir}/storage/logs/' | ||
57 | previews: '${dataDir}/storage/previews/' | ||
58 | thumbnails: '${dataDir}/storage/thumbnails/' | ||
59 | torrents: '${dataDir}/storage/torrents/' | ||
60 | captions: '${dataDir}/storage/captions/' | ||
61 | cache: '${dataDir}/storage/cache/' | ||
62 | plugins: '${dataDir}/storage/plugins/' | ||
63 | client_overrides: '${dataDir}/storage/client-overrides/' | ||
64 | ''; | ||
65 | }; | ||
66 | |||
67 | services.filesWatcher.syden_peertube = { | ||
68 | restart = true; | ||
69 | paths = [ config.secrets.fullPaths."websites/syden/peertube" ]; | ||
70 | }; | ||
71 | |||
72 | systemd.services.syden_peertube = { | ||
73 | description = "Peertube"; | ||
74 | wantedBy = [ "multi-user.target" ]; | ||
75 | after = [ "network.target" "postgresql.service" ]; | ||
76 | wants = [ "postgresql.service" ]; | ||
77 | |||
78 | environment.NODE_CONFIG_DIR = "${dataDir}/config"; | ||
79 | environment.NODE_ENV = "production"; | ||
80 | environment.HOME = package; | ||
81 | |||
82 | path = [ pkgs.nodejs pkgs.bashInteractive pkgs.ffmpeg pkgs.openssl ]; | ||
83 | |||
84 | script = '' | ||
85 | install -m 0750 -d ${dataDir}/config | ||
86 | ln -sf ${config.secrets.fullPaths."websites/syden/peertube"} ${dataDir}/config/production.yaml | ||
87 | ln -sf ${package}/config/default.yaml ${dataDir}/config/default.yaml | ||
88 | exec npm run start | ||
89 | ''; | ||
90 | |||
91 | serviceConfig = { | ||
92 | User = "peertube"; | ||
93 | Group = "peertube"; | ||
94 | WorkingDirectory = package; | ||
95 | StateDirectory = "syden_peertube"; | ||
96 | StateDirectoryMode = 0750; | ||
97 | PrivateTmp = true; | ||
98 | ProtectHome = true; | ||
99 | ProtectControlGroups = true; | ||
100 | Restart = "always"; | ||
101 | Type = "simple"; | ||
102 | TimeoutSec = 60; | ||
103 | }; | ||
104 | |||
105 | unitConfig.RequiresMountsFor = dataDir; | ||
106 | }; | ||
107 | |||
108 | services.websites.env.production.vhostConfs.syden_peertube = { | ||
109 | certName = "syden"; | ||
110 | addToCerts = true; | ||
111 | certMainHost = "record-links.immae.eu"; | ||
112 | hosts = [ "record-links.immae.eu" ]; | ||
113 | root = null; | ||
114 | extraConfig = [ '' | ||
115 | RewriteEngine On | ||
116 | |||
117 | RewriteCond %{REQUEST_URI} ^/socket.io [NC] | ||
118 | RewriteCond %{QUERY_STRING} transport=websocket [NC] | ||
119 | RewriteRule /(.*) ws://localhost:${toString env.listenPort}/$1 [P,NE,QSA,L] | ||
120 | |||
121 | RewriteCond %{REQUEST_URI} ^/tracker/socket [NC] | ||
122 | RewriteRule /(.*) ws://localhost:${toString env.listenPort}/$1 [P,NE,QSA,L] | ||
123 | |||
124 | ProxyPass / http://localhost:${toString env.listenPort}/ | ||
125 | ProxyPassReverse / http://localhost:${toString env.listenPort}/ | ||
126 | |||
127 | ProxyPreserveHost On | ||
128 | RequestHeader set X-Real-IP %{REMOTE_ADDR}s | ||
129 | '' ]; | ||
130 | }; | ||
131 | }; | ||
132 | } | ||
diff --git a/modules/private/websites/telio_tortay/production.nix b/modules/private/websites/telio_tortay/production.nix deleted file mode 100644 index 16eca74..0000000 --- a/modules/private/websites/telio_tortay/production.nix +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | adminer = pkgs.callPackage ../commons/adminer.nix { inherit config; }; | ||
4 | cfg = config.myServices.websites.telio_tortay.production; | ||
5 | varDir = "/var/lib/ftp/telio_tortay"; | ||
6 | env = config.myEnv.websites.telio_tortay; | ||
7 | apacheUser = config.services.httpd.Prod.user; | ||
8 | apacheGroup = config.services.httpd.Prod.group; | ||
9 | in { | ||
10 | options.myServices.websites.telio_tortay.production.enable = lib.mkEnableOption "enable Telio Tortay's website"; | ||
11 | |||
12 | config = lib.mkIf cfg.enable { | ||
13 | services.webstats.sites = [ { name = "telio-tortay.immae.eu"; } ]; | ||
14 | |||
15 | security.acme.certs."ftp".extraDomains."telio-tortay.immae.eu" = null; | ||
16 | |||
17 | system.activationScripts.telio_tortay = { | ||
18 | deps = [ "httpd" ]; | ||
19 | text = '' | ||
20 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/ftp/telio_tortay/logs | ||
21 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/php/sessions/telio_tortay | ||
22 | ''; | ||
23 | }; | ||
24 | systemd.services.phpfpm-telio_tortay.after = lib.mkAfter [ "mysql.service" ]; | ||
25 | systemd.services.phpfpm-telio_tortay.wants = [ "mysql.service" ]; | ||
26 | services.phpfpm.pools.telio_tortay = { | ||
27 | user = apacheUser; | ||
28 | group = apacheGroup; | ||
29 | settings = { | ||
30 | "listen.owner" = apacheUser; | ||
31 | "listen.group" = apacheGroup; | ||
32 | |||
33 | "pm" = "ondemand"; | ||
34 | "pm.max_children" = "5"; | ||
35 | "pm.process_idle_timeout" = "60"; | ||
36 | |||
37 | "php_admin_value[open_basedir]" = "/var/lib/php/sessions/telio_tortay:${varDir}:/tmp"; | ||
38 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/telio_tortay"; | ||
39 | }; | ||
40 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
41 | disable_functions = "mail" | ||
42 | ''; | ||
43 | phpPackage = pkgs.php72; | ||
44 | }; | ||
45 | services.websites.env.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ]; | ||
46 | services.websites.env.production.vhostConfs.telio_tortay = { | ||
47 | certName = "telio_tortay"; | ||
48 | certMainHost = "telio-tortay.immae.eu"; | ||
49 | hosts = ["telio-tortay.immae.eu" "realistesmedia.fr" "www.realistesmedia.fr" ]; | ||
50 | root = varDir; | ||
51 | extraConfig = [ | ||
52 | (adminer.apache.vhostConf null) | ||
53 | '' | ||
54 | Use Stats telio-tortay.immae.eu | ||
55 | ServerAdmin ${env.server_admin} | ||
56 | ErrorLog "${varDir}/logs/error_log" | ||
57 | CustomLog "${varDir}/logs/access_log" combined | ||
58 | |||
59 | <FilesMatch "\.php$"> | ||
60 | SetHandler "proxy:unix:${config.services.phpfpm.pools.telio_tortay.socket}|fcgi://localhost" | ||
61 | </FilesMatch> | ||
62 | |||
63 | <Location /xmlrpc.php> | ||
64 | AllowOverride None | ||
65 | Require all denied | ||
66 | </Location> | ||
67 | <Directory ${varDir}/logs> | ||
68 | AllowOverride None | ||
69 | Require all denied | ||
70 | </Directory> | ||
71 | <Directory ${varDir}> | ||
72 | DirectoryIndex index.php index.htm index.html | ||
73 | Options Indexes FollowSymLinks MultiViews Includes | ||
74 | AllowOverride all | ||
75 | Require all granted | ||
76 | </Directory> | ||
77 | '' | ||
78 | ]; | ||
79 | }; | ||
80 | }; | ||
81 | } | ||
diff --git a/modules/private/websites/tools/assets/default.nix b/modules/private/websites/tools/assets/default.nix deleted file mode 100644 index 0eb476d..0000000 --- a/modules/private/websites/tools/assets/default.nix +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.tools.assets; | ||
4 | assets_urls = lib.mapAttrs (k: v: pkgs.fetchurl v) config.myEnv.tools.assets; | ||
5 | assets = pkgs.runCommand "assets" {} ('' | ||
6 | mkdir -p $out | ||
7 | cp -a ${./static}/* $out/ | ||
8 | '' + builtins.concatStringsSep "\n" | ||
9 | (lib.mapAttrsToList (k: v: '' | ||
10 | install -D -m644 -T ${v} $out/${k} | ||
11 | '') assets_urls)); | ||
12 | in | ||
13 | { | ||
14 | options.myServices.websites.tools.assets = { | ||
15 | enable = lib.mkEnableOption "Enable assets website"; | ||
16 | }; | ||
17 | config = lib.mkIf cfg.enable { | ||
18 | services.websites.env.tools.vhostConfs.assets = { | ||
19 | certName = "eldiron"; | ||
20 | addToCerts = true; | ||
21 | hosts = [ "assets.immae.eu" ]; | ||
22 | root = assets; | ||
23 | extraConfig = [ | ||
24 | '' | ||
25 | Use Apaxy "${assets}" "title" | ||
26 | <Directory "${assets}"> | ||
27 | Options Indexes FollowSymlinks | ||
28 | AllowOverride None | ||
29 | Require all granted | ||
30 | Header always set Last-Modified "Tue, 01 Jan 2020 00:00:00 GMT" | ||
31 | Header always set Cache-Control "public, max-age=31536000, immutable" | ||
32 | Header always set Access-Control-Allow-Origin "*" | ||
33 | Header always set Access-Control-Expose-Headers "*" | ||
34 | </Directory> | ||
35 | '' | ||
36 | ]; | ||
37 | }; | ||
38 | }; | ||
39 | } | ||
diff --git a/modules/private/websites/tools/assets/static/favicon.png b/modules/private/websites/tools/assets/static/favicon.png deleted file mode 100644 index 1caf5a4..0000000 --- a/modules/private/websites/tools/assets/static/favicon.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/logger.png b/modules/private/websites/tools/assets/static/logger.png deleted file mode 100644 index d9579fb..0000000 --- a/modules/private/websites/tools/assets/static/logger.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/logger.txt b/modules/private/websites/tools/assets/static/logger.txt deleted file mode 100644 index 50dccc6..0000000 --- a/modules/private/websites/tools/assets/static/logger.txt +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | Downloaded from https://commons.wikimedia.org/wiki/File:Ghost2.svg | ||
2 | Licence Creative Commons Attribution-Share Alike 4.0 International | ||
3 | https://creativecommons.org/licenses/by-sa/4.0/deed.en | ||
diff --git a/modules/private/websites/tools/assets/static/logo.jpg b/modules/private/websites/tools/assets/static/logo.jpg deleted file mode 100644 index a89172d..0000000 --- a/modules/private/websites/tools/assets/static/logo.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/logo.txt b/modules/private/websites/tools/assets/static/logo.txt deleted file mode 100644 index 327e62a..0000000 --- a/modules/private/websites/tools/assets/static/logo.txt +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | size: 2 | ||
2 | dpi: 72 | ||
3 | background: white | ||
4 | plot_type: fullcolor | ||
5 | center: "whole" | ||
6 | whitespace: 0.5 | ||
7 | format: jpg | ||
diff --git a/modules/private/websites/tools/assets/static/logo_big.jpg b/modules/private/websites/tools/assets/static/logo_big.jpg deleted file mode 100644 index 45448f2..0000000 --- a/modules/private/websites/tools/assets/static/logo_big.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/logo_big.txt b/modules/private/websites/tools/assets/static/logo_big.txt deleted file mode 100644 index ce92c09..0000000 --- a/modules/private/websites/tools/assets/static/logo_big.txt +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | size: 4 | ||
2 | dpi: 72 | ||
3 | background: white | ||
4 | plot_type: fullcolor | ||
5 | center: "whole" | ||
6 | whitespace: 0.5 | ||
7 | format: jpg | ||
diff --git a/modules/private/websites/tools/assets/static/logo_center.jpg b/modules/private/websites/tools/assets/static/logo_center.jpg deleted file mode 100644 index 6b177e0..0000000 --- a/modules/private/websites/tools/assets/static/logo_center.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/logo_center.txt b/modules/private/websites/tools/assets/static/logo_center.txt deleted file mode 100644 index 60a8f1c..0000000 --- a/modules/private/websites/tools/assets/static/logo_center.txt +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | size: 4 | ||
2 | dpi: 72 | ||
3 | background: white | ||
4 | plot_type: fullcolor | ||
5 | center: "center" | ||
6 | whitespace: 0.5 | ||
7 | format: jpg | ||
8 | |||
diff --git a/modules/private/websites/tools/assets/static/monitoring.png b/modules/private/websites/tools/assets/static/monitoring.png deleted file mode 100644 index 0024fee..0000000 --- a/modules/private/websites/tools/assets/static/monitoring.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/monitoring.txt b/modules/private/websites/tools/assets/static/monitoring.txt deleted file mode 100644 index 9f3e13a..0000000 --- a/modules/private/websites/tools/assets/static/monitoring.txt +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | Downloaded from https://commons.wikimedia.org/wiki/File:Magnifying_Glass2.svg | ||
2 | Licence Creative Commons CC0 1.0 Universal Public Domain Dedication | ||
3 | https://creativecommons.org/publicdomain/zero/1.0/deed.en | ||
diff --git a/modules/private/websites/tools/assets/static/photos/ct.jpg b/modules/private/websites/tools/assets/static/photos/ct.jpg deleted file mode 100644 index ab7876b..0000000 --- a/modules/private/websites/tools/assets/static/photos/ct.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/photos/fretlink.jpg b/modules/private/websites/tools/assets/static/photos/fretlink.jpg deleted file mode 100644 index c941e1d..0000000 --- a/modules/private/websites/tools/assets/static/photos/fretlink.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/assets/static/photos/raton.jpg b/modules/private/websites/tools/assets/static/photos/raton.jpg deleted file mode 100644 index a859e1c..0000000 --- a/modules/private/websites/tools/assets/static/photos/raton.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/cloud/default.nix b/modules/private/websites/tools/cloud/default.nix deleted file mode 100644 index 44163de..0000000 --- a/modules/private/websites/tools/cloud/default.nix +++ /dev/null | |||
@@ -1,184 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | nextcloud = pkgs.webapps.nextcloud.withApps (a: [ | ||
4 | a.apporder a.audioplayer a.bookmarks a.calendar a.carnet a.contacts | ||
5 | a.cookbook a.deck a.extract a.files_markdown a.files_readmemd | ||
6 | a.flowupload a.gpxedit a.gpxpod a.keeweb a.maps a.metadata a.music | ||
7 | a.notes a.ocsms a.passman a.polls a.spreed a.tasks | ||
8 | ]); | ||
9 | env = config.myEnv.tools.nextcloud; | ||
10 | varDir = "/var/lib/nextcloud"; | ||
11 | cfg = config.myServices.websites.tools.cloud; | ||
12 | phpFpm = rec { | ||
13 | basedir = builtins.concatStringsSep ":" ([ nextcloud varDir ] ++ nextcloud.apps); | ||
14 | pool = { | ||
15 | "listen.owner" = "wwwrun"; | ||
16 | "listen.group" = "wwwrun"; | ||
17 | "pm" = "ondemand"; | ||
18 | "pm.max_children" = "60"; | ||
19 | "pm.process_idle_timeout" = "60"; | ||
20 | |||
21 | "php_admin_value[output_buffering]" = "0"; | ||
22 | "php_admin_value[max_execution_time]" = "1800"; | ||
23 | "php_admin_value[zend_extension]" = "opcache"; | ||
24 | #already enabled by default? | ||
25 | #"php_value[opcache.enable]" = "1"; | ||
26 | "php_value[opcache.enable_cli]" = "1"; | ||
27 | "php_value[opcache.interned_strings_buffer]" = "8"; | ||
28 | "php_value[opcache.max_accelerated_files]" = "10000"; | ||
29 | "php_value[opcache.memory_consumption]" = "128"; | ||
30 | "php_value[opcache.save_comments]" = "1"; | ||
31 | "php_value[opcache.revalidate_freq]" = "1"; | ||
32 | "php_admin_value[memory_limit]" = "512M"; | ||
33 | |||
34 | "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${basedir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp"; | ||
35 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
36 | }; | ||
37 | }; | ||
38 | in { | ||
39 | options.myServices.websites.tools.cloud = { | ||
40 | enable = lib.mkEnableOption "enable cloud website"; | ||
41 | }; | ||
42 | |||
43 | config = lib.mkIf cfg.enable { | ||
44 | services.websites.env.tools.modules = [ "proxy_fcgi" ]; | ||
45 | |||
46 | services.websites.env.tools.vhostConfs.cloud = { | ||
47 | certName = "eldiron"; | ||
48 | addToCerts = true; | ||
49 | hosts = ["cloud.immae.eu" ]; | ||
50 | root = nextcloud; | ||
51 | extraConfig = [ | ||
52 | '' | ||
53 | SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 | ||
54 | <Directory ${nextcloud}> | ||
55 | AcceptPathInfo On | ||
56 | DirectoryIndex index.php | ||
57 | Options FollowSymlinks | ||
58 | Require all granted | ||
59 | AllowOverride all | ||
60 | |||
61 | <IfModule mod_headers.c> | ||
62 | Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" | ||
63 | </IfModule> | ||
64 | <FilesMatch "\.php$"> | ||
65 | CGIPassAuth on | ||
66 | SetHandler "proxy:unix:${config.services.phpfpm.pools.nextcloud.socket}|fcgi://localhost" | ||
67 | </FilesMatch> | ||
68 | |||
69 | </Directory> | ||
70 | '' | ||
71 | ]; | ||
72 | }; | ||
73 | |||
74 | secrets.keys."webapps/tools-nextcloud" = { | ||
75 | user = "wwwrun"; | ||
76 | group = "wwwrun"; | ||
77 | permissions = "0600"; | ||
78 | # This file is not actually included, see activationScript below | ||
79 | text = '' | ||
80 | <?php | ||
81 | include('${nextcloud}/version.php'); | ||
82 | $CONFIG = array ( | ||
83 | // FIXME: change this value when nextcloud starts getting slow | ||
84 | 'instanceid' => '${env.instance_id}', | ||
85 | 'datadirectory' => '/var/lib/nextcloud/', | ||
86 | 'passwordsalt' => '${env.password_salt}', | ||
87 | 'debug' => false, | ||
88 | 'dbtype' => 'pgsql', | ||
89 | 'version' => implode($OC_Version, '.'), | ||
90 | 'dbname' => '${env.postgresql.database}', | ||
91 | 'dbhost' => '${env.postgresql.socket}', | ||
92 | 'dbtableprefix' => 'oc_', | ||
93 | 'dbuser' => '${env.postgresql.user}', | ||
94 | 'dbpassword' => '${env.postgresql.password}', | ||
95 | 'installed' => true, | ||
96 | 'maxZipInputSize' => 0, | ||
97 | 'allowZipDownload' => true, | ||
98 | 'forcessl' => true, | ||
99 | 'theme' => ${"''"}, | ||
100 | 'maintenance' => false, | ||
101 | 'trusted_domains' => | ||
102 | array ( | ||
103 | 0 => 'cloud.immae.eu', | ||
104 | ), | ||
105 | 'secret' => '${env.secret}', | ||
106 | 'appstoreenabled' => false, | ||
107 | 'appstore.experimental.enabled' => true, | ||
108 | 'loglevel' => 2, | ||
109 | 'trashbin_retention_obligation' => 'auto', | ||
110 | 'htaccess.RewriteBase' => '/', | ||
111 | 'mail_smtpmode' => 'sendmail', | ||
112 | 'mail_smtphost' => '127.0.0.1', | ||
113 | 'mail_smtpname' => ''', | ||
114 | 'mail_smtppassword' => ''', | ||
115 | 'mail_from_address' => 'nextcloud', | ||
116 | 'mail_smtpauth' => false, | ||
117 | 'mail_domain' => 'tools.immae.eu', | ||
118 | 'memcache.local' => '\\OC\\Memcache\\APCu', | ||
119 | 'memcache.locking' => '\\OC\\Memcache\\Redis', | ||
120 | 'filelocking.enabled' => true, | ||
121 | 'redis' => | ||
122 | array ( | ||
123 | 'host' => '${env.redis.socket}', | ||
124 | 'port' => 0, | ||
125 | 'dbindex' => ${env.redis.db}, | ||
126 | ), | ||
127 | 'overwrite.cli.url' => 'https://cloud.immae.eu', | ||
128 | 'ldapIgnoreNamingRules' => false, | ||
129 | 'ldapProviderFactory' => '\\OCA\\User_LDAP\\LDAPProviderFactory', | ||
130 | 'has_rebuilt_cache' => true, | ||
131 | ); | ||
132 | ''; | ||
133 | }; | ||
134 | users.users.root.packages = let | ||
135 | occ = pkgs.writeScriptBin "nextcloud-occ" '' | ||
136 | #! ${pkgs.stdenv.shell} | ||
137 | cd ${nextcloud} | ||
138 | NEXTCLOUD_CONFIG_DIR="${nextcloud}/config" \ | ||
139 | exec \ | ||
140 | sudo -E -u wwwrun ${pkgs.php74}/bin/php \ | ||
141 | -c ${pkgs.php74}/etc/php.ini \ | ||
142 | occ $* | ||
143 | ''; | ||
144 | in [ occ ]; | ||
145 | |||
146 | system.activationScripts.nextcloud = { | ||
147 | deps = [ "secrets" ]; | ||
148 | text = let | ||
149 | confs = lib.attrsets.mapAttrs (n: v: pkgs.writeText "${n}.json" (builtins.toJSON v)) nextcloud.otherConfig; | ||
150 | in | ||
151 | '' | ||
152 | install -m 0755 -o wwwrun -g wwwrun -d ${varDir} | ||
153 | install -m 0750 -o wwwrun -g wwwrun -d ${varDir}/phpSessions | ||
154 | ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: v: | ||
155 | "install -D -m 0644 -o wwwrun -g wwwrun -T ${v} ${varDir}/config/${n}.json" | ||
156 | ) confs)} | ||
157 | #install -D -m 0600 -o wwwrun -g wwwrun -T ${config.secrets.fullPaths."webapps/tools-nextcloud"} ${varDir}/config/config.php | ||
158 | ''; | ||
159 | }; | ||
160 | |||
161 | services.phpfpm.pools.nextcloud = { | ||
162 | user = "wwwrun"; | ||
163 | group = "wwwrun"; | ||
164 | settings = phpFpm.pool; | ||
165 | phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache ]); | ||
166 | }; | ||
167 | |||
168 | services.cron = { | ||
169 | enable = true; | ||
170 | systemCronJobs = let | ||
171 | script = pkgs.writeScriptBin "nextcloud-cron" '' | ||
172 | #! ${pkgs.stdenv.shell} | ||
173 | export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive | ||
174 | export PATH=/run/wrappers/bin:$PATH | ||
175 | ${pkgs.php74}/bin/php -d memory_limit=2048M -f ${nextcloud}/cron.php | ||
176 | ''; | ||
177 | in [ | ||
178 | '' | ||
179 | */15 * * * * wwwrun ${script}/bin/nextcloud-cron | ||
180 | '' | ||
181 | ]; | ||
182 | }; | ||
183 | }; | ||
184 | } | ||
diff --git a/modules/private/websites/tools/cloud/farm.nix b/modules/private/websites/tools/cloud/farm.nix deleted file mode 100644 index 7be774c..0000000 --- a/modules/private/websites/tools/cloud/farm.nix +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.tools.cloud.farm; | ||
4 | apacheUser = config.services.httpd.Prod.user; | ||
5 | apacheGroup = config.services.httpd.Prod.group; | ||
6 | nextcloud = (pkgs.webapps.nextcloud.override { varDir = null; }).withApps (a: [ | ||
7 | a.apporder a.audioplayer a.bookmarks a.calendar a.carnet a.contacts | ||
8 | a.cookbook a.deck a.extract a.files_markdown a.files_readmemd | ||
9 | a.flowupload a.gpxedit a.gpxpod a.impersonate a.keeweb a.maps | ||
10 | a.metadata a.music a.notes a.ocsms a.passman a.polls a.spreed | ||
11 | a.tasks | ||
12 | ]); | ||
13 | toVardir = name: "/var/lib/nextcloud_farm/${name}"; | ||
14 | varDirs = map toVardir cfg.instances; | ||
15 | phpBaseDir = builtins.concatStringsSep ":" ([ nextcloud ] ++ varDirs ++ nextcloud.apps); | ||
16 | toVhost = name: '' | ||
17 | SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 | ||
18 | SetEnv NEXTCLOUD_CONFIG_DIR "${toVardir name}" | ||
19 | <Directory ${nextcloud}> | ||
20 | AcceptPathInfo On | ||
21 | DirectoryIndex index.php | ||
22 | Options FollowSymlinks | ||
23 | Require all granted | ||
24 | AllowOverride all | ||
25 | |||
26 | <IfModule mod_headers.c> | ||
27 | Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" | ||
28 | </IfModule> | ||
29 | <FilesMatch "\.php$"> | ||
30 | CGIPassAuth on | ||
31 | SetHandler "proxy:unix:${config.services.phpfpm.pools.nextcloud_farm.socket}|fcgi://localhost" | ||
32 | </FilesMatch> | ||
33 | |||
34 | </Directory> | ||
35 | ''; | ||
36 | in | ||
37 | { | ||
38 | options.myServices.tools.cloud.farm = { | ||
39 | instances = lib.mkOption { | ||
40 | description = "Instances names for the nextcloud Farm"; | ||
41 | default = []; | ||
42 | type = lib.types.listOf lib.types.str; | ||
43 | }; | ||
44 | vhosts = lib.mkOption { | ||
45 | description = "Instance vhosts configs"; | ||
46 | readOnly = true; | ||
47 | type = lib.types.attrsOf lib.types.str; | ||
48 | default = lib.genAttrs cfg.instances toVhost; | ||
49 | }; | ||
50 | package = lib.mkOption { | ||
51 | description = "Nextcloud derivation"; | ||
52 | readOnly = true; | ||
53 | type = lib.types.package; | ||
54 | default = nextcloud; | ||
55 | }; | ||
56 | }; | ||
57 | |||
58 | config = lib.mkIf (builtins.length cfg.instances > 0) { | ||
59 | system.activationScripts.cloud_farm_vardirs = { | ||
60 | deps = [ "httpd" ]; | ||
61 | text = '' | ||
62 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${builtins.concatStringsSep " " varDirs} | ||
63 | install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d /var/lib/nextcloud_farm/phpSessions | ||
64 | ''; | ||
65 | }; | ||
66 | systemd.services.phpfpm-nextcloud_farm.after = lib.mkAfter [ "postgresql.service" ]; | ||
67 | systemd.services.phpfpm-nextcloud_farm.wants = [ "postgresql.service" ]; | ||
68 | services.phpfpm.pools.nextcloud_farm = { | ||
69 | user = apacheUser; | ||
70 | group = apacheGroup; | ||
71 | settings = { | ||
72 | "listen.owner" = apacheUser; | ||
73 | "listen.group" = apacheGroup; | ||
74 | "pm" = "ondemand"; | ||
75 | "pm.max_children" = "60"; | ||
76 | "pm.process_idle_timeout" = "60"; | ||
77 | |||
78 | "php_admin_value[output_buffering]" = "0"; | ||
79 | "php_admin_value[max_execution_time]" = "1800"; | ||
80 | "php_admin_value[zend_extension]" = "opcache"; | ||
81 | #already enabled by default? | ||
82 | #"php_value[opcache.enable]" = "1"; | ||
83 | "php_value[opcache.enable_cli]" = "1"; | ||
84 | "php_value[opcache.interned_strings_buffer]" = "8"; | ||
85 | "php_value[opcache.max_accelerated_files]" = "10000"; | ||
86 | "php_value[opcache.memory_consumption]" = "128"; | ||
87 | "php_value[opcache.save_comments]" = "1"; | ||
88 | "php_value[opcache.revalidate_freq]" = "1"; | ||
89 | "php_admin_value[memory_limit]" = "512M"; | ||
90 | |||
91 | "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${phpBaseDir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp"; | ||
92 | "php_admin_value[session.save_path]" = "/var/lib/nextcloud_farm/phpSessions"; | ||
93 | }; | ||
94 | phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache ]); | ||
95 | }; | ||
96 | users.users.root.packages = let | ||
97 | toOcc = name: pkgs.writeScriptBin "nextcloud-occ-${name}" '' | ||
98 | #! ${pkgs.stdenv.shell} | ||
99 | cd ${nextcloud} | ||
100 | NEXTCLOUD_CONFIG_DIR="${toVardir name}" \ | ||
101 | exec \ | ||
102 | sudo -E -u wwwrun ${pkgs.php74}/bin/php \ | ||
103 | -c ${pkgs.php74}/etc/php.ini \ | ||
104 | occ $* | ||
105 | ''; | ||
106 | in map toOcc cfg.instances; | ||
107 | services.cron = { | ||
108 | enable = true; | ||
109 | systemCronJobs = let | ||
110 | toScript = name: pkgs.writeScriptBin "nextcloud-cron" '' | ||
111 | #! ${pkgs.stdenv.shell} | ||
112 | export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive | ||
113 | export PATH=/run/wrappers/bin:$PATH | ||
114 | export NEXTCLOUD_CONFIG_DIR="${toVardir name}" | ||
115 | ${pkgs.php74}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php | ||
116 | ''; | ||
117 | toLine = name: '' | ||
118 | */15 * * * * wwwrun ${toScript name}/bin/nextcloud-cron | ||
119 | ''; | ||
120 | in map toLine cfg.instances; | ||
121 | }; | ||
122 | }; | ||
123 | } | ||
diff --git a/modules/private/websites/tools/commento/default.nix b/modules/private/websites/tools/commento/default.nix deleted file mode 100644 index c36255b..0000000 --- a/modules/private/websites/tools/commento/default.nix +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.tools.commento; | ||
4 | env = config.myEnv.tools.commento; | ||
5 | webPort = "${host}:${port}"; | ||
6 | port = toString env.listenPort; | ||
7 | host = "localhost"; | ||
8 | postgresql_url = "postgres://${env.postgresql.user}:${env.postgresql.password}@localhost:${env.postgresql.port}/${env.postgresql.database}?sslmode=disable"; | ||
9 | in | ||
10 | { | ||
11 | options.myServices.websites.tools.commento = { | ||
12 | enable = lib.mkEnableOption "Enable commento website"; | ||
13 | }; | ||
14 | config = lib.mkIf cfg.enable { | ||
15 | secrets.keys = { | ||
16 | "commento/env" = { | ||
17 | permissions = "0400"; | ||
18 | text = '' | ||
19 | COMMENTO_ORIGIN=https://commento.immae.eu/ | ||
20 | COMMENTO_PORT=${port} | ||
21 | COMMENTO_POSTGRES=${postgresql_url} | ||
22 | COMMENTO_FORBID_NEW_OWNERS=true | ||
23 | COMMENTO_BIND_ADDRESS=${host} | ||
24 | COMMENTO_GZIP_STATIC=true | ||
25 | COMMENTO_SMTP_HOST=${env.smtp.host} | ||
26 | COMMENTO_SMTP_PORT=${env.smtp.port} | ||
27 | COMMENTO_SMTP_USERNAME=${env.smtp.email} | ||
28 | COMMENTO_SMTP_PASSWORD=${env.smtp.password} | ||
29 | COMMENTO_SMTP_FROM_ADDRESS=${env.smtp.email} | ||
30 | ''; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | services.websites.env.tools.vhostConfs.commento = { | ||
35 | certName = "eldiron"; | ||
36 | addToCerts = true; | ||
37 | hosts = [ "commento.immae.eu" ]; | ||
38 | root = null; | ||
39 | extraConfig = [ | ||
40 | '' | ||
41 | ProxyPass / http://${webPort}/ | ||
42 | ProxyPassReverse / http://${webPort}/ | ||
43 | ProxyPreserveHost On | ||
44 | '' | ||
45 | ]; | ||
46 | }; | ||
47 | systemd.services.commento = { | ||
48 | description = "Commento"; | ||
49 | wantedBy = [ "multi-user.target" ]; | ||
50 | requires = ["postgresql.service"]; | ||
51 | after = ["network.target" "postgresql.service"]; | ||
52 | serviceConfig = { | ||
53 | User = "wwwrun"; | ||
54 | ExecStart = "${pkgs.commento}/commento"; | ||
55 | EnvironmentFile = config.secrets.fullPaths."commento/env"; | ||
56 | }; | ||
57 | }; | ||
58 | }; | ||
59 | } | ||
diff --git a/modules/private/websites/tools/cryptpad/default.nix b/modules/private/websites/tools/cryptpad/default.nix deleted file mode 100644 index 69b9877..0000000 --- a/modules/private/websites/tools/cryptpad/default.nix +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | { config, pkgs, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.tools.cryptpad; | ||
4 | envCfg = config.myEnv.tools.cryptpad.immaeEu; | ||
5 | domain = "cryptpad.immae.eu"; | ||
6 | port = envCfg.port; | ||
7 | configFile = pkgs.writeText "config.js" '' | ||
8 | // ${pkgs.cryptpad}/lib/node_modules/cryptpad/config/config.example.js | ||
9 | module.exports = { | ||
10 | httpUnsafeOrigin: 'https://${domain}', | ||
11 | httpPort: ${toString port}, | ||
12 | adminEmail: '${envCfg.email}', | ||
13 | filePath: './datastore/', | ||
14 | archivePath: './data/archive', | ||
15 | pinPath: './data/pins', | ||
16 | taskPath: './data/tasks', | ||
17 | blockPath: './block', | ||
18 | blobPath: './blob', | ||
19 | blobStagingPath: './data/blobstage', | ||
20 | decreePath: './data/decrees', | ||
21 | logPath: './data/logs', | ||
22 | logToStdout: false, | ||
23 | logLevel: 'info', | ||
24 | logFeedback: false, | ||
25 | verbose: false, | ||
26 | inactiveTime: false, | ||
27 | maxUploadSize: 100 * 1024 * 1024, | ||
28 | adminKeys: ${builtins.toJSON envCfg.admins}, | ||
29 | }; | ||
30 | ''; | ||
31 | in | ||
32 | { | ||
33 | options.myServices.websites.tools.cryptpad.enable = lib.mkEnableOption "Enable Cryptpad"; | ||
34 | config = lib.mkIf cfg.enable { | ||
35 | myServices.tools.cryptpad.farm.hosts.immaeEu = { | ||
36 | inherit domain port; | ||
37 | config = configFile; | ||
38 | }; | ||
39 | services.websites.env.tools.modules = [ "proxy_wstunnel" ]; | ||
40 | services.websites.env.tools.vhostConfs.cryptpad = { | ||
41 | certName = "eldiron"; | ||
42 | addToCerts = true; | ||
43 | hosts = [domain]; | ||
44 | root = config.myServices.tools.cryptpad.farm.vhostRoots.immaeEu; | ||
45 | extraConfig = [ | ||
46 | config.myServices.tools.cryptpad.farm.vhosts.immaeEu | ||
47 | ]; | ||
48 | }; | ||
49 | }; | ||
50 | } | ||
diff --git a/modules/private/websites/tools/cryptpad/farm.nix b/modules/private/websites/tools/cryptpad/farm.nix deleted file mode 100644 index b35f348..0000000 --- a/modules/private/websites/tools/cryptpad/farm.nix +++ /dev/null | |||
@@ -1,180 +0,0 @@ | |||
1 | { pkgs, config, lib, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.tools.cryptpad.farm; | ||
4 | toService = name: | ||
5 | let | ||
6 | inherit (cfg.hosts.${name}) package config; | ||
7 | in { | ||
8 | description = "Cryptpad ${name} Service"; | ||
9 | wantedBy = [ "multi-user.target" ]; | ||
10 | after = [ "networking.target" ]; | ||
11 | serviceConfig = { | ||
12 | User = "cryptpad"; | ||
13 | Group = "cryptpad"; | ||
14 | Environment = [ | ||
15 | "CRYPTPAD_CONFIG=${config}" | ||
16 | "HOME=%S/cryptpad/${name}" | ||
17 | ]; | ||
18 | ExecStart = "${package}/bin/cryptpad"; | ||
19 | PrivateTmp = true; | ||
20 | Restart = "always"; | ||
21 | StateDirectory = "cryptpad/${name}"; | ||
22 | WorkingDirectory = "%S/cryptpad/${name}"; | ||
23 | }; | ||
24 | }; | ||
25 | toVhostRoot = name: "${cfg.hosts.${name}.package}/lib/node_modules/cryptpad"; | ||
26 | toVhost = name: | ||
27 | let | ||
28 | inherit (cfg.hosts.${name}) package domain port; | ||
29 | api_domain = domain; | ||
30 | files_domain = domain; | ||
31 | in '' | ||
32 | RewriteEngine On | ||
33 | |||
34 | Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" | ||
35 | Header set X-XSS-Protection "1; mode=block" | ||
36 | Header set X-Content-Type-Options "nosniff" | ||
37 | Header set Access-Control-Allow-Origin "*" | ||
38 | Header set Permissions-Policy "interest-cohort=()" | ||
39 | |||
40 | Header set Cross-Origin-Resource-Policy "cross-origin" | ||
41 | <If "%{REQUEST_URI} =~ m#^/(sheet|presentation|doc)/.*$#"> | ||
42 | Header set Cross-Origin-Opener-Policy "same-origin" | ||
43 | </If> | ||
44 | Header set Cross-Origin-Embedder-Policy "require-corp" | ||
45 | |||
46 | ErrorDocument 404 /customize.dist/404.html | ||
47 | |||
48 | <If "%{QUERY_STRING} =~ m#ver=.*?#"> | ||
49 | Header set Cache-Control "max-age=31536000" | ||
50 | </If> | ||
51 | <If "%{REQUEST_URI} =~ m#^/.*(\/|\.html)$#"> | ||
52 | Header set Cache-Control "no-cache" | ||
53 | </If> | ||
54 | |||
55 | SetEnv styleSrc "'unsafe-inline' 'self' ${domain}" | ||
56 | SetEnv connectSrc "'self' https://${domain} ${domain} https://${api_domain} blob: wss://${api_domain} ${api_domain} ${files_domain}" | ||
57 | SetEnv fontSrc "'self' data: ${domain}" | ||
58 | SetEnv imgSrc "'self' data: * blob: ${domain}" | ||
59 | SetEnv frameSrc "'self' blob:" | ||
60 | SetEnv mediaSrc "'self' data: * blob: ${domain}" | ||
61 | SetEnv childSrc "https://${domain}" | ||
62 | SetEnv workerSrc "https://${domain}" | ||
63 | SetEnv scriptSrc "'self' 'unsafe-eval' 'unsafe-inline' resource: ${domain}" | ||
64 | |||
65 | Header set Content-Security-Policy "default-src 'none'; child-src %{childSrc}e; worker-src %{workerSrc}e; media-src %{mediaSrc}e; style-src %{styleSrc}e; script-src %{scriptSrc}e; connect-src %{connectSrc}e; font-src %{fontSrc}e; img-src %{imgSrc}e; frame-src %{frameSrc}e;" | ||
66 | |||
67 | RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] | ||
68 | RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] | ||
69 | RewriteRule .* ws://localhost:${toString port}%{REQUEST_URI} [P,NE,QSA,L] | ||
70 | |||
71 | RewriteRule ^/customize/(.*)$ /customize.dist/$1 [L] | ||
72 | |||
73 | ProxyPassMatch "^/(api/(config|broadcast).*)$" "http://localhost:${toString port}/$1" | ||
74 | ProxyPassReverse /api http://localhost:${toString port}/api | ||
75 | ProxyPreserveHost On | ||
76 | RequestHeader set X-Real-IP %{REMOTE_ADDR}s | ||
77 | |||
78 | Alias /blob /var/lib/cryptpad/${name}/blob | ||
79 | <Directory /var/lib/cryptpad/${name}/blob> | ||
80 | Require all granted | ||
81 | AllowOverride None | ||
82 | </Directory> | ||
83 | Alias /block /var/lib/cryptpad/${name}/block | ||
84 | <Directory /var/lib/cryptpad/${name}/block> | ||
85 | Require all granted | ||
86 | AllowOverride None | ||
87 | </Directory> | ||
88 | <LocationMatch /blob/> | ||
89 | Header set Cache-Control "max-age=31536000" | ||
90 | Header set Access-Control-Allow-Origin "*" | ||
91 | Header set Access-Control-Allow-Methods "GET, POST, OPTIONS" | ||
92 | Header set Access-Control-Allow-Headers "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length" | ||
93 | Header set Access-Control-Expose-Headers "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length" | ||
94 | |||
95 | RewriteCond %{REQUEST_METHOD} OPTIONS | ||
96 | RewriteRule ^(.*)$ $1 [R=204,L] | ||
97 | </LocationMatch> | ||
98 | |||
99 | <LocationMatch /block/> | ||
100 | Header set Cache-Control "max-age=0" | ||
101 | </locationMatch> | ||
102 | |||
103 | RewriteRule ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard|file|media|profile|contacts|todo|filepicker|debug|kanban|sheet|support|admin|notifications|teams|calendar|presentation|doc)$ $1/ [R=302,L] | ||
104 | |||
105 | RewriteCond %{DOCUMENT_ROOT}/www/%{REQUEST_URI} -f | ||
106 | RewriteRule (.*) /www/$1 [L] | ||
107 | |||
108 | RewriteCond %{DOCUMENT_ROOT}/www/%{REQUEST_URI}/index.html -f | ||
109 | RewriteRule (.*) /www/$1/index.html [L] | ||
110 | |||
111 | RewriteCond %{DOCUMENT_ROOT}/customize.dist/%{REQUEST_URI} -f | ||
112 | RewriteRule (.*) /customize.dist/$1 [L] | ||
113 | |||
114 | <Directory ${package}/lib/node_modules/cryptpad/www> | ||
115 | AllowOverride None | ||
116 | Require all granted | ||
117 | DirectoryIndex index.html | ||
118 | </Directory> | ||
119 | <Directory ${package}/lib/node_modules/cryptpad/customize.dist> | ||
120 | AllowOverride None | ||
121 | Require all granted | ||
122 | DirectoryIndex index.html | ||
123 | </Directory> | ||
124 | ''; | ||
125 | in | ||
126 | { | ||
127 | options.myServices.tools.cryptpad.farm = { | ||
128 | hosts = lib.mkOption { | ||
129 | default = {}; | ||
130 | description = "Hosts to install"; | ||
131 | type = lib.types.attrsOf (lib.types.submodule { | ||
132 | options = { | ||
133 | port = lib.mkOption { | ||
134 | type = lib.types.port; | ||
135 | }; | ||
136 | package = lib.mkOption { | ||
137 | type = lib.types.package; | ||
138 | description = "Cryptpad package to use"; | ||
139 | default = pkgs.cryptpad; | ||
140 | }; | ||
141 | domain = lib.mkOption { | ||
142 | type = lib.types.str; | ||
143 | description = "Domain for main host"; | ||
144 | }; | ||
145 | config = lib.mkOption { | ||
146 | type = lib.types.path; | ||
147 | description = "Path to configuration"; | ||
148 | }; | ||
149 | }; | ||
150 | }); | ||
151 | }; | ||
152 | vhosts = lib.mkOption { | ||
153 | description = "Instance vhosts configs"; | ||
154 | readOnly = true; | ||
155 | type = lib.types.attrsOf lib.types.str; | ||
156 | default = lib.genAttrs (builtins.attrNames cfg.hosts) toVhost; | ||
157 | }; | ||
158 | vhostRoots = lib.mkOption { | ||
159 | description = "Instance vhosts document roots"; | ||
160 | readOnly = true; | ||
161 | type = lib.types.attrsOf lib.types.path; | ||
162 | default = lib.genAttrs (builtins.attrNames cfg.hosts) toVhostRoot; | ||
163 | }; | ||
164 | }; | ||
165 | config = { | ||
166 | users.users = lib.optionalAttrs (cfg.hosts != {}) { | ||
167 | cryptpad = { | ||
168 | uid = config.ids.uids.cryptpad; | ||
169 | group = "cryptpad"; | ||
170 | description = "Cryptpad user"; | ||
171 | }; | ||
172 | }; | ||
173 | users.groups = lib.optionalAttrs (cfg.hosts != {}) { | ||
174 | cryptpad = { | ||
175 | gid = config.ids.gids.cryptpad; | ||
176 | }; | ||
177 | }; | ||
178 | systemd.services = lib.listToAttrs (map (n: lib.nameValuePair "cryptpad-${n}" (toService n)) (builtins.attrNames cfg.hosts)); | ||
179 | }; | ||
180 | } | ||
diff --git a/modules/private/websites/tools/dav/davical.nix b/modules/private/websites/tools/dav/davical.nix deleted file mode 100644 index bc5ecf6..0000000 --- a/modules/private/websites/tools/dav/davical.nix +++ /dev/null | |||
@@ -1,133 +0,0 @@ | |||
1 | { stdenv, fetchurl, gettext, writeText, env, awl, davical, config }: | ||
2 | rec { | ||
3 | activationScript = { | ||
4 | deps = [ "httpd" ]; | ||
5 | text = '' | ||
6 | install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/davical | ||
7 | ''; | ||
8 | }; | ||
9 | keys."webapps/dav-davical" = { | ||
10 | user = apache.user; | ||
11 | group = apache.group; | ||
12 | permissions = "0400"; | ||
13 | text = '' | ||
14 | <?php | ||
15 | $c->pg_connect[] = "dbname=${env.postgresql.database} user=${env.postgresql.user} host=${env.postgresql.socket} password=${env.postgresql.password}"; | ||
16 | |||
17 | $c->readonly_webdav_collections = false; | ||
18 | |||
19 | $c->admin_email ='davical@tools.immae.eu'; | ||
20 | |||
21 | $c->restrict_setup_to_admin = true; | ||
22 | |||
23 | $c->collections_always_exist = false; | ||
24 | |||
25 | $c->external_refresh = 60; | ||
26 | |||
27 | $c->enable_scheduling = true; | ||
28 | |||
29 | $c->iMIP = (object) array("send_email" => true); | ||
30 | |||
31 | $c->authenticate_hook['optional'] = false; | ||
32 | $c->authenticate_hook['call'] = 'LDAP_check'; | ||
33 | $c->authenticate_hook['config'] = array( | ||
34 | 'host' => '${env.ldap.host}', | ||
35 | 'port' => '389', | ||
36 | 'startTLS' => 'yes', | ||
37 | 'bindDN'=> '${env.ldap.dn}', | ||
38 | 'passDN'=> '${env.ldap.password}', | ||
39 | 'protocolVersion' => '3', | ||
40 | 'baseDNUsers'=> array('ou=users,${env.ldap.base}', 'ou=group_users,${env.ldap.base}'), | ||
41 | 'filterUsers' => '${env.ldap.filter}', | ||
42 | 'baseDNGroups' => 'ou=groups,${env.ldap.base}', | ||
43 | 'filterGroups' => 'memberOf=cn=groups,${env.ldap.dn}', | ||
44 | 'mapping_field' => array( | ||
45 | "username" => "uid", | ||
46 | "fullname" => "cn", | ||
47 | "email" => "mail", | ||
48 | "modified" => "modifyTimestamp", | ||
49 | ), | ||
50 | 'format_updated'=> array('Y' => array(0,4),'m' => array(4,2),'d'=> array(6,2),'H' => array(8,2),'M'=>array(10,2),'S' => array(12,2)), | ||
51 | /** used to set default value for all users, will be overcharged by ldap if defined also in mapping_field **/ | ||
52 | // 'default_value' => array("date_format_type" => "E","locale" => "fr_FR"), | ||
53 | 'group_mapping_field' => array( | ||
54 | "username" => "cn", | ||
55 | "updated" => "modifyTimestamp", | ||
56 | "fullname" => "givenName", | ||
57 | "displayname" => "givenName", | ||
58 | "members" => "memberUid", | ||
59 | "email" => "mail", | ||
60 | ), | ||
61 | ); | ||
62 | |||
63 | $c->do_not_sync_from_ldap = array('admin' => true); | ||
64 | include('drivers_ldap.php'); | ||
65 | ''; | ||
66 | }; | ||
67 | webapp = davical.override { davical_config = config.secrets.fullPaths."webapps/dav-davical"; }; | ||
68 | webRoot = "${webapp}/htdocs"; | ||
69 | apache = rec { | ||
70 | user = "wwwrun"; | ||
71 | group = "wwwrun"; | ||
72 | modules = [ "proxy_fcgi" ]; | ||
73 | root = webRoot; | ||
74 | vhostConf = socket: '' | ||
75 | Alias /davical "${root}" | ||
76 | Alias /caldav.php "${root}/caldav.php" | ||
77 | <Directory "${root}"> | ||
78 | DirectoryIndex index.php index.html | ||
79 | AcceptPathInfo On | ||
80 | AllowOverride None | ||
81 | Require all granted | ||
82 | |||
83 | <FilesMatch "\.php$"> | ||
84 | CGIPassAuth on | ||
85 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
86 | </FilesMatch> | ||
87 | |||
88 | RewriteEngine On | ||
89 | <IfModule mod_headers.c> | ||
90 | Header unset Access-Control-Allow-Origin | ||
91 | Header unset Access-Control-Allow-Methods | ||
92 | Header unset Access-Control-Allow-Headers | ||
93 | Header unset Access-Control-Allow-Credentials | ||
94 | Header unset Access-Control-Expose-Headers | ||
95 | |||
96 | Header always set Access-Control-Allow-Origin "*" | ||
97 | Header always set Access-Control-Allow-Methods "GET,POST,OPTIONS,PROPFIND,PROPPATCH,REPORT,PUT,MOVE,DELETE,LOCK,UNLOCK" | ||
98 | Header always set Access-Control-Allow-Headers "User-Agent,Authorization,Content-type,Depth,If-match,If-None-Match,Lock-Token,Timeout,Destination,Overwrite,Prefer,X-client,X-Requested-With" | ||
99 | Header always set Access-Control-Allow-Credentials false | ||
100 | Header always set Access-Control-Expose-Headers "Etag,Preference-Applied" | ||
101 | |||
102 | RewriteCond %{HTTP:Access-Control-Request-Method} !^$ | ||
103 | RewriteCond %{REQUEST_METHOD} OPTIONS | ||
104 | RewriteRule ^(.*)$ $1 [R=200,L] | ||
105 | </IfModule> | ||
106 | </Directory> | ||
107 | ''; | ||
108 | }; | ||
109 | phpFpm = rec { | ||
110 | serviceDeps = [ "postgresql.service" "openldap.service" ]; | ||
111 | basedir = builtins.concatStringsSep ":" [ webapp config.secrets.fullPaths."webapps/dav-davical" awl ]; | ||
112 | pool = { | ||
113 | "listen.owner" = apache.user; | ||
114 | "listen.group" = apache.group; | ||
115 | "pm" = "dynamic"; | ||
116 | "pm.max_children" = "60"; | ||
117 | "pm.start_servers" = "2"; | ||
118 | "pm.min_spare_servers" = "1"; | ||
119 | "pm.max_spare_servers" = "10"; | ||
120 | |||
121 | # Needed to avoid clashes in browser cookies (same domain) | ||
122 | "php_value[session.name]" = "DavicalPHPSESSID"; | ||
123 | "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/davical"; | ||
124 | "php_admin_value[include_path]" = "${awl}/inc:${webapp}/inc"; | ||
125 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/davical"; | ||
126 | "php_flag[magic_quotes_gpc]" = "Off"; | ||
127 | "php_flag[register_globals]" = "Off"; | ||
128 | "php_admin_value[error_reporting]" = "E_ALL & ~E_NOTICE"; | ||
129 | "php_admin_value[default_charset]" = "utf-8"; | ||
130 | "php_flag[magic_quotes_runtime]" = "Off"; | ||
131 | }; | ||
132 | }; | ||
133 | } | ||
diff --git a/modules/private/websites/tools/dav/default.nix b/modules/private/websites/tools/dav/default.nix deleted file mode 100644 index b3aa03d..0000000 --- a/modules/private/websites/tools/dav/default.nix +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | infcloud = rec { | ||
4 | root = pkgs.webapps.infcloud; | ||
5 | vhostConf = '' | ||
6 | Alias /carddavmate ${root} | ||
7 | Alias /caldavzap ${root} | ||
8 | Alias /infcloud ${root} | ||
9 | <Directory ${root}> | ||
10 | AllowOverride All | ||
11 | Options FollowSymlinks | ||
12 | Require all granted | ||
13 | DirectoryIndex index.html | ||
14 | </Directory> | ||
15 | ''; | ||
16 | }; | ||
17 | davical = pkgs.callPackage ./davical.nix { | ||
18 | env = config.myEnv.tools.davical; | ||
19 | inherit (pkgs.webapps) davical awl; | ||
20 | inherit config; | ||
21 | }; | ||
22 | |||
23 | cfg = config.myServices.websites.tools.dav; | ||
24 | in { | ||
25 | options.myServices.websites.tools.dav = { | ||
26 | enable = lib.mkEnableOption "enable dav website"; | ||
27 | }; | ||
28 | |||
29 | config = lib.mkIf cfg.enable { | ||
30 | system.activationScripts.davical = davical.activationScript; | ||
31 | secrets.keys = davical.keys; | ||
32 | services.websites.env.tools.modules = davical.apache.modules; | ||
33 | |||
34 | services.websites.env.tools.vhostConfs.dav = { | ||
35 | certName = "eldiron"; | ||
36 | addToCerts = true; | ||
37 | hosts = ["dav.immae.eu" ]; | ||
38 | root = ./www; | ||
39 | extraConfig = [ | ||
40 | infcloud.vhostConf | ||
41 | (davical.apache.vhostConf config.services.phpfpm.pools.davical.socket) | ||
42 | ]; | ||
43 | }; | ||
44 | |||
45 | services.phpfpm.pools = { | ||
46 | davical = { | ||
47 | user = config.services.httpd.Tools.user; | ||
48 | group = config.services.httpd.Tools.group; | ||
49 | settings = davical.phpFpm.pool; | ||
50 | phpPackage = pkgs.php72; | ||
51 | }; | ||
52 | }; | ||
53 | }; | ||
54 | } | ||
55 | |||
diff --git a/modules/private/websites/tools/dav/www/index.html b/modules/private/websites/tools/dav/www/index.html deleted file mode 100644 index 91c25ba..0000000 --- a/modules/private/websites/tools/dav/www/index.html +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | <!doctype html> | ||
2 | <html lang="fr"> | ||
3 | <head> | ||
4 | <meta charset="UTF-8"> | ||
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
6 | <title>Dav configuration</title> | ||
7 | <style type="text/css"> | ||
8 | body { | ||
9 | padding-top: 1em; | ||
10 | padding-left: 5px; | ||
11 | padding-right: 5px; | ||
12 | text-align: left; | ||
13 | margin: auto; | ||
14 | font: 20px Helvetica, sans-serif; | ||
15 | color: #333; | ||
16 | height: 100%; | ||
17 | min-height: 100%; | ||
18 | } | ||
19 | span.code { | ||
20 | font-family: monospace; | ||
21 | } | ||
22 | </style> | ||
23 | </head> | ||
24 | <body> | ||
25 | <p> | ||
26 | Dav configuration: | ||
27 | <ul> | ||
28 | <li>Server: <span class="code">https://dav.immae.eu/caldav.php</span> | ||
29 | </li> | ||
30 | </ul> | ||
31 | </p> | ||
32 | <p>Clients: | ||
33 | <ul> | ||
34 | <li><a href="/infcloud">Infcloud (calendar, address book, todo lists)</a></li> | ||
35 | <li><a href="/carddavmate">Carddavmate (address book)</a></li> | ||
36 | <li><a href="/caldavzap">Caldavzap (calendar, todo lists)</a></li> | ||
37 | <li><a href="/davical">Davical (Manage dav account)</a></li> | ||
38 | </ul> | ||
39 | </p> | ||
40 | </body> | ||
41 | </html> | ||
42 | |||
diff --git a/modules/private/websites/tools/db/default.nix b/modules/private/websites/tools/db/default.nix deleted file mode 100644 index fc8d989..0000000 --- a/modules/private/websites/tools/db/default.nix +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | adminer = pkgs.callPackage ../../commons/adminer.nix { inherit config; }; | ||
4 | |||
5 | cfg = config.myServices.websites.tools.db; | ||
6 | in { | ||
7 | options.myServices.websites.tools.db = { | ||
8 | enable = lib.mkEnableOption "enable database's website"; | ||
9 | }; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.websites.env.tools.modules = adminer.apache.modules; | ||
13 | services.websites.env.tools.vhostConfs.db-1 = { | ||
14 | certName = "eldiron"; | ||
15 | addToCerts = true; | ||
16 | hosts = ["db-1.immae.eu" ]; | ||
17 | root = null; | ||
18 | extraConfig = [ (adminer.apache.vhostConf null) ]; | ||
19 | }; | ||
20 | }; | ||
21 | } | ||
diff --git a/modules/private/websites/tools/diaspora/default.nix b/modules/private/websites/tools/diaspora/default.nix deleted file mode 100644 index 3a115ed..0000000 --- a/modules/private/websites/tools/diaspora/default.nix +++ /dev/null | |||
@@ -1,185 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | env = config.myEnv.tools.diaspora; | ||
4 | root = "${dcfg.workdir}/public/"; | ||
5 | cfg = config.myServices.websites.tools.diaspora; | ||
6 | dcfg = config.services.diaspora; | ||
7 | in { | ||
8 | options.myServices.websites.tools.diaspora = { | ||
9 | enable = lib.mkEnableOption "enable diaspora's website"; | ||
10 | }; | ||
11 | |||
12 | config = lib.mkIf cfg.enable { | ||
13 | users.users.diaspora.extraGroups = [ "keys" ]; | ||
14 | |||
15 | secrets.keys = { | ||
16 | "webapps/diaspora" = { | ||
17 | isDir = true; | ||
18 | user = "diaspora"; | ||
19 | group = "diaspora"; | ||
20 | permissions = "0500"; | ||
21 | }; | ||
22 | "webapps/diaspora/diaspora.yml" = { | ||
23 | user = "diaspora"; | ||
24 | group = "diaspora"; | ||
25 | permissions = "0400"; | ||
26 | text = '' | ||
27 | configuration: | ||
28 | environment: | ||
29 | url: "https://diaspora.immae.eu/" | ||
30 | certificate_authorities: '${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt' | ||
31 | redis: 'redis://${env.redis.host}:${env.redis.port}/${env.redis.db}' | ||
32 | sidekiq: | ||
33 | s3: | ||
34 | assets: | ||
35 | logging: | ||
36 | logrotate: | ||
37 | debug: | ||
38 | server: | ||
39 | listen: '${dcfg.sockets.rails}' | ||
40 | rails_environment: 'production' | ||
41 | chat: | ||
42 | server: | ||
43 | bosh: | ||
44 | log: | ||
45 | map: | ||
46 | mapbox: | ||
47 | privacy: | ||
48 | piwik: | ||
49 | statistics: | ||
50 | camo: | ||
51 | settings: | ||
52 | enable_registrations: false | ||
53 | welcome_message: | ||
54 | invitations: | ||
55 | open: false | ||
56 | paypal_donations: | ||
57 | community_spotlight: | ||
58 | captcha: | ||
59 | enable: false | ||
60 | terms: | ||
61 | maintenance: | ||
62 | remove_old_users: | ||
63 | default_metas: | ||
64 | csp: | ||
65 | services: | ||
66 | twitter: | ||
67 | tumblr: | ||
68 | wordpress: | ||
69 | mail: | ||
70 | enable: true | ||
71 | sender_address: 'diaspora@tools.immae.eu' | ||
72 | method: 'sendmail' | ||
73 | smtp: | ||
74 | sendmail: | ||
75 | location: '/run/wrappers/bin/sendmail' | ||
76 | admins: | ||
77 | account: "ismael" | ||
78 | podmin_email: 'diaspora@tools.immae.eu' | ||
79 | relay: | ||
80 | outbound: | ||
81 | inbound: | ||
82 | ldap: | ||
83 | enable: true | ||
84 | host: ${env.ldap.host} | ||
85 | port: 636 | ||
86 | only_ldap: true | ||
87 | mail_attribute: mail | ||
88 | skip_email_confirmation: true | ||
89 | use_bind_dn: true | ||
90 | bind_dn: "${env.ldap.dn}" | ||
91 | bind_pw: "${env.ldap.password}" | ||
92 | search_base: "${env.ldap.base}" | ||
93 | search_filter: "${env.ldap.filter}" | ||
94 | production: | ||
95 | environment: | ||
96 | development: | ||
97 | environment: | ||
98 | ''; | ||
99 | }; | ||
100 | "webapps/diaspora/database.yml" = { | ||
101 | user = "diaspora"; | ||
102 | group = "diaspora"; | ||
103 | permissions = "0400"; | ||
104 | text = '' | ||
105 | postgresql: &postgresql | ||
106 | adapter: postgresql | ||
107 | host: "${env.postgresql.socket}" | ||
108 | port: "${env.postgresql.port}" | ||
109 | username: "${env.postgresql.user}" | ||
110 | password: "${env.postgresql.password}" | ||
111 | encoding: unicode | ||
112 | common: &common | ||
113 | <<: *postgresql | ||
114 | combined: &combined | ||
115 | <<: *common | ||
116 | development: | ||
117 | <<: *combined | ||
118 | database: diaspora_development | ||
119 | production: | ||
120 | <<: *combined | ||
121 | database: ${env.postgresql.database} | ||
122 | test: | ||
123 | <<: *combined | ||
124 | database: "diaspora_test" | ||
125 | integration1: | ||
126 | <<: *combined | ||
127 | database: diaspora_integration1 | ||
128 | integration2: | ||
129 | <<: *combined | ||
130 | database: diaspora_integration2 | ||
131 | ''; | ||
132 | }; | ||
133 | "webapps/diaspora/secret_token.rb" = { | ||
134 | user = "diaspora"; | ||
135 | group = "diaspora"; | ||
136 | permissions = "0400"; | ||
137 | text = '' | ||
138 | Diaspora::Application.config.secret_key_base = '${env.secret_token}' | ||
139 | ''; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | services.diaspora = { | ||
144 | enable = true; | ||
145 | package = pkgs.webapps.diaspora.override { ldap = true; }; | ||
146 | dataDir = "/var/lib/diaspora_immae"; | ||
147 | adminEmail = "diaspora@tools.immae.eu"; | ||
148 | configDir = config.secrets.fullPaths."webapps/diaspora"; | ||
149 | }; | ||
150 | |||
151 | services.filesWatcher.diaspora = { | ||
152 | restart = true; | ||
153 | paths = [ dcfg.configDir ]; | ||
154 | }; | ||
155 | |||
156 | services.websites.env.tools.modules = [ | ||
157 | "headers" "proxy" "proxy_http" | ||
158 | ]; | ||
159 | services.websites.env.tools.vhostConfs.diaspora = { | ||
160 | certName = "eldiron"; | ||
161 | addToCerts = true; | ||
162 | hosts = [ "diaspora.immae.eu" ]; | ||
163 | root = root; | ||
164 | extraConfig = [ '' | ||
165 | RewriteEngine On | ||
166 | RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f | ||
167 | RewriteRule ^/(.*)$ unix://${dcfg.sockets.rails}|http://diaspora.immae.eu/%{REQUEST_URI} [P,NE,QSA,L] | ||
168 | |||
169 | ProxyRequests Off | ||
170 | ProxyVia On | ||
171 | ProxyPreserveHost On | ||
172 | RequestHeader set X_FORWARDED_PROTO https | ||
173 | |||
174 | <Proxy *> | ||
175 | Require all granted | ||
176 | </Proxy> | ||
177 | |||
178 | <Directory ${root}> | ||
179 | Require all granted | ||
180 | Options -MultiViews | ||
181 | </Directory> | ||
182 | '' ]; | ||
183 | }; | ||
184 | }; | ||
185 | } | ||
diff --git a/modules/private/websites/tools/ether/default.nix b/modules/private/websites/tools/ether/default.nix deleted file mode 100644 index 0539095..0000000 --- a/modules/private/websites/tools/ether/default.nix +++ /dev/null | |||
@@ -1,216 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | env = config.myEnv.tools.etherpad-lite; | ||
4 | cfg = config.myServices.websites.tools.etherpad-lite; | ||
5 | # Make sure we’re not rebuilding whole libreoffice just because of a | ||
6 | # dependency | ||
7 | libreoffice = (import <nixpkgs> { overlays = []; }).libreoffice-fresh; | ||
8 | ecfg = config.services.etherpad-lite; | ||
9 | in { | ||
10 | options.myServices.websites.tools.etherpad-lite = { | ||
11 | enable = lib.mkEnableOption "enable etherpad's website"; | ||
12 | }; | ||
13 | |||
14 | config = lib.mkIf cfg.enable { | ||
15 | secrets.keys = { | ||
16 | "webapps/tools-etherpad-apikey" = { | ||
17 | permissions = "0400"; | ||
18 | text = env.api_key; | ||
19 | }; | ||
20 | "webapps/tools-etherpad-sessionkey" = { | ||
21 | permissions = "0400"; | ||
22 | text = env.session_key; | ||
23 | }; | ||
24 | "webapps/tools-etherpad" = { | ||
25 | permissions = "0400"; | ||
26 | text = '' | ||
27 | { | ||
28 | "title": "Etherpad", | ||
29 | "favicon": "favicon.ico", | ||
30 | "skinName": "colibris", | ||
31 | "skinVariants": "dark-toolbar light-background super-light-editor full-width-editor", | ||
32 | |||
33 | "ip": "", | ||
34 | "port" : "${ecfg.sockets.node}", | ||
35 | "showSettingsInAdminPage" : false, | ||
36 | "dbType" : "postgres", | ||
37 | "dbSettings" : { | ||
38 | "user" : "${env.postgresql.user}", | ||
39 | "host" : "${env.postgresql.socket}", | ||
40 | "password": "${env.postgresql.password}", | ||
41 | "database": "${env.postgresql.database}", | ||
42 | "charset" : "utf8mb4" | ||
43 | }, | ||
44 | |||
45 | "defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n", | ||
46 | "padOptions": { | ||
47 | "noColors": false, | ||
48 | "showControls": true, | ||
49 | "showChat": true, | ||
50 | "showLineNumbers": true, | ||
51 | "useMonospaceFont": false, | ||
52 | "userName": false, | ||
53 | "userColor": false, | ||
54 | "rtl": false, | ||
55 | "alwaysShowChat": false, | ||
56 | "chatAndUsers": false, | ||
57 | "lang": "fr" | ||
58 | }, | ||
59 | |||
60 | "suppressErrorsInPadText" : false, | ||
61 | "requireSession" : false, | ||
62 | "editOnly" : false, | ||
63 | "sessionNoPassword" : false, | ||
64 | "minify" : true, | ||
65 | "maxAge" : 21600, | ||
66 | "abiword" : null, | ||
67 | "soffice" : "${libreoffice}/bin/soffice", | ||
68 | "tidyHtml" : "", | ||
69 | "allowUnknownFileEnds" : true, | ||
70 | "requireAuthentication" : false, | ||
71 | "requireAuthorization" : false, | ||
72 | "trustProxy" : false, | ||
73 | "disableIPlogging" : false, | ||
74 | "automaticReconnectionTimeout" : 0, | ||
75 | "scrollWhenFocusLineIsOutOfViewport": { | ||
76 | "percentage": { | ||
77 | "editionAboveViewport": 0, | ||
78 | "editionBelowViewport": 0 | ||
79 | }, | ||
80 | "duration": 0, | ||
81 | "scrollWhenCaretIsInTheLastLineOfViewport": false, | ||
82 | "percentageToScrollWhenUserPressesArrowUp": 0 | ||
83 | }, | ||
84 | "users": { | ||
85 | "admin": { | ||
86 | "password": "${env.adminPassword}", | ||
87 | "is_admin": true | ||
88 | }, | ||
89 | "ldapauth": { | ||
90 | "hash": "invalid", | ||
91 | "url": "ldaps://${env.ldap.host}", | ||
92 | "accountBase": "${env.ldap.base}", | ||
93 | "accountPattern": "${env.ldap.filter}", | ||
94 | "displayNameAttribute": "cn", | ||
95 | "searchDN": "${env.ldap.dn}", | ||
96 | "searchPWD": "${env.ldap.password}", | ||
97 | "groupSearchBase": "${env.ldap.base}", | ||
98 | "groupAttribute": "member", | ||
99 | "groupAttributeIsDN": true, | ||
100 | "searchScope": "sub", | ||
101 | "groupSearch": "${env.ldap.group_filter}", | ||
102 | "anonymousReadonly": false | ||
103 | } | ||
104 | }, | ||
105 | "ep_mypads": { | ||
106 | "warning": "This hash is stored in database, changing anything here will not have any consequence", | ||
107 | "ldap": { | ||
108 | "url": "ldaps://${env.ldap.host}", | ||
109 | "bindDN": "${env.ldap.dn}", | ||
110 | "bindCredentials": "${env.ldap.password}", | ||
111 | "searchBase": "${env.ldap.base}", | ||
112 | "searchFilter": "${env.ldap.filter}", | ||
113 | "properties": { | ||
114 | "login": "uid", | ||
115 | "email": "mail", | ||
116 | "firstname": "givenName", | ||
117 | "lastname": "sn" | ||
118 | }, | ||
119 | "defaultLang": "fr" | ||
120 | } | ||
121 | }, | ||
122 | "ep_comments_page": { | ||
123 | "displayCommentAsIcon": true, | ||
124 | "highlightSelectedText": true | ||
125 | }, | ||
126 | "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"], | ||
127 | "loadTest": false, | ||
128 | "indentationOnNewLine": false, | ||
129 | "toolbar": { | ||
130 | "left": [ | ||
131 | ["bold", "italic", "underline", "strikethrough"], | ||
132 | ["orderedlist", "unorderedlist", "indent", "outdent"], | ||
133 | ["undo", "redo"], | ||
134 | ["clearauthorship"] | ||
135 | ], | ||
136 | "right": [ | ||
137 | ["importexport", "timeslider", "savedrevision"], | ||
138 | ["settings", "embed"], | ||
139 | ["showusers"] | ||
140 | ], | ||
141 | "timeslider": [ | ||
142 | ["timeslider_export", "timeslider_returnToPad"] | ||
143 | ] | ||
144 | }, | ||
145 | "loglevel": "INFO", | ||
146 | "logconfig" : { "appenders": [ { "type": "console" } ] } | ||
147 | } | ||
148 | ''; | ||
149 | }; | ||
150 | }; | ||
151 | services.etherpad-lite = { | ||
152 | enable = true; | ||
153 | package = pkgs.webapps.etherpad-lite.withModules (p: [ | ||
154 | p.ep_align p.ep_bookmark p.ep_colors p.ep_comments_page | ||
155 | p.ep_cursortrace p.ep_delete_empty_pads p.ep_embedmedia | ||
156 | p.ep_font_size p.ep_headings2 p.ep_immae_buttons p.ep_ldapauth | ||
157 | p.ep_line_height p.ep_markdown p.ep_mypads p.ep_page_view | ||
158 | p.ep_previewimages p.ep_ruler p.ep_scrollto | ||
159 | p.ep_set_title_on_pad p.ep_subscript_and_superscript | ||
160 | p.ep_timesliderdiff | ||
161 | ]); | ||
162 | modules = []; | ||
163 | sessionKeyFile = config.secrets.fullPaths."webapps/tools-etherpad-sessionkey"; | ||
164 | apiKeyFile = config.secrets.fullPaths."webapps/tools-etherpad-apikey"; | ||
165 | configFile = config.secrets.fullPaths."webapps/tools-etherpad"; | ||
166 | }; | ||
167 | |||
168 | systemd.services.etherpad-lite.serviceConfig.SupplementaryGroups = "keys"; | ||
169 | # Needed so that they get in the closure | ||
170 | systemd.services.etherpad-lite.path = [ libreoffice pkgs.html-tidy ]; | ||
171 | |||
172 | services.filesWatcher.etherpad-lite = { | ||
173 | restart = true; | ||
174 | paths = [ ecfg.sessionKeyFile ecfg.apiKeyFile ecfg.configFile ]; | ||
175 | }; | ||
176 | |||
177 | services.websites.env.tools.modules = [ | ||
178 | "headers" "proxy" "proxy_http" "proxy_wstunnel" | ||
179 | ]; | ||
180 | services.websites.env.tools.vhostConfs.etherpad-lite = { | ||
181 | certName = "eldiron"; | ||
182 | addToCerts = true; | ||
183 | hosts = [ "ether.immae.eu" ]; | ||
184 | root = null; | ||
185 | extraConfig = [ '' | ||
186 | Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;" | ||
187 | RequestHeader set X-Forwarded-Proto "https" | ||
188 | |||
189 | RewriteEngine On | ||
190 | |||
191 | RewriteMap redirects "txt:${pkgs.writeText "redirects.txt" config.myEnv.tools.etherpad-lite.redirects}" | ||
192 | RewriteCond %{QUERY_STRING} "!noredirect" | ||
193 | RewriteCond %{REQUEST_URI} "^(.*)$" | ||
194 | RewriteCond ''${redirects:$1|Unknown} "!Unknown" | ||
195 | RewriteRule "^(.*)$" ''${redirects:$1} [L,NE,R=301,QSD] | ||
196 | |||
197 | RewriteCond %{REQUEST_URI} ^/socket.io [NC] | ||
198 | RewriteCond %{QUERY_STRING} transport=websocket [NC] | ||
199 | RewriteRule /(.*) unix://${ecfg.sockets.node}|ws://ether.immae.eu/$1 [P,NE,QSA,L] | ||
200 | |||
201 | <IfModule mod_proxy.c> | ||
202 | ProxyVia On | ||
203 | ProxyRequests Off | ||
204 | ProxyPreserveHost On | ||
205 | ProxyPass / unix://${ecfg.sockets.node}|http://ether.immae.eu/ | ||
206 | ProxyPassReverse / unix://${ecfg.sockets.node}|http://ether.immae.eu/ | ||
207 | <Proxy *> | ||
208 | Options FollowSymLinks MultiViews | ||
209 | AllowOverride None | ||
210 | Require all granted | ||
211 | </Proxy> | ||
212 | </IfModule> | ||
213 | '' ]; | ||
214 | }; | ||
215 | }; | ||
216 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/codenames.patch b/modules/private/websites/tools/games/codenames/codenames.patch deleted file mode 100644 index 9faf069..0000000 --- a/modules/private/websites/tools/games/codenames/codenames.patch +++ /dev/null | |||
@@ -1,8306 +0,0 @@ | |||
1 | diff --git a/elm.json b/elm.json | ||
2 | index a0d276b..1b73a46 100644 | ||
3 | --- a/elm.json | ||
4 | +++ b/elm.json | ||
5 | @@ -3,7 +3,7 @@ | ||
6 | "source-directories": [ | ||
7 | "src" | ||
8 | ], | ||
9 | - "elm-version": "0.19.0", | ||
10 | + "elm-version": "0.19.1", | ||
11 | "dependencies": { | ||
12 | "direct": { | ||
13 | "elm/browser": "1.0.1", | ||
14 | @@ -15,12 +15,11 @@ | ||
15 | "perzanko/elm-loading": "2.0.4" | ||
16 | }, | ||
17 | "indirect": { | ||
18 | - "Skinney/murmur3": "2.0.8", | ||
19 | "elm/bytes": "1.0.8", | ||
20 | "elm/file": "1.0.5", | ||
21 | "elm/time": "1.0.0", | ||
22 | "elm/virtual-dom": "1.0.2", | ||
23 | - "rtfeldman/elm-css": "16.0.1", | ||
24 | + "rtfeldman/elm-css": "16.1.0", | ||
25 | "rtfeldman/elm-hex": "1.0.0" | ||
26 | } | ||
27 | }, | ||
28 | @@ -32,4 +31,4 @@ | ||
29 | "elm/random": "1.0.0" | ||
30 | } | ||
31 | } | ||
32 | -} | ||
33 | \ No newline at end of file | ||
34 | +} | ||
35 | diff --git a/package-lock.json b/package-lock.json | ||
36 | index 778b061..05a22ab 100644 | ||
37 | --- a/package-lock.json | ||
38 | +++ b/package-lock.json | ||
39 | @@ -4,196 +4,7963 @@ | ||
40 | "lockfileVersion": 1, | ||
41 | "requires": true, | ||
42 | "dependencies": { | ||
43 | + "@babel/code-frame": { | ||
44 | + "version": "7.0.0", | ||
45 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", | ||
46 | + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", | ||
47 | + "dev": true, | ||
48 | + "requires": { | ||
49 | + "@babel/highlight": "^7.0.0" | ||
50 | + } | ||
51 | + }, | ||
52 | + "@babel/core": { | ||
53 | + "version": "7.3.4", | ||
54 | + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", | ||
55 | + "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", | ||
56 | + "dev": true, | ||
57 | + "requires": { | ||
58 | + "@babel/code-frame": "^7.0.0", | ||
59 | + "@babel/generator": "^7.3.4", | ||
60 | + "@babel/helpers": "^7.2.0", | ||
61 | + "@babel/parser": "^7.3.4", | ||
62 | + "@babel/template": "^7.2.2", | ||
63 | + "@babel/traverse": "^7.3.4", | ||
64 | + "@babel/types": "^7.3.4", | ||
65 | + "convert-source-map": "^1.1.0", | ||
66 | + "debug": "^4.1.0", | ||
67 | + "json5": "^2.1.0", | ||
68 | + "lodash": "^4.17.11", | ||
69 | + "resolve": "^1.3.2", | ||
70 | + "semver": "^5.4.1", | ||
71 | + "source-map": "^0.5.0" | ||
72 | + }, | ||
73 | + "dependencies": { | ||
74 | + "json5": { | ||
75 | + "version": "2.1.3", | ||
76 | + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", | ||
77 | + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", | ||
78 | + "dev": true, | ||
79 | + "requires": { | ||
80 | + "minimist": "^1.2.5" | ||
81 | + } | ||
82 | + }, | ||
83 | + "source-map": { | ||
84 | + "version": "0.5.7", | ||
85 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
86 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
87 | + "dev": true | ||
88 | + } | ||
89 | + } | ||
90 | + }, | ||
91 | + "@babel/generator": { | ||
92 | + "version": "7.3.4", | ||
93 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", | ||
94 | + "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==", | ||
95 | + "dev": true, | ||
96 | + "requires": { | ||
97 | + "@babel/types": "^7.3.4", | ||
98 | + "jsesc": "^2.5.1", | ||
99 | + "lodash": "^4.17.11", | ||
100 | + "source-map": "^0.5.0", | ||
101 | + "trim-right": "^1.0.1" | ||
102 | + }, | ||
103 | + "dependencies": { | ||
104 | + "source-map": { | ||
105 | + "version": "0.5.7", | ||
106 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
107 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
108 | + "dev": true | ||
109 | + } | ||
110 | + } | ||
111 | + }, | ||
112 | + "@babel/helper-annotate-as-pure": { | ||
113 | + "version": "7.8.3", | ||
114 | + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", | ||
115 | + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", | ||
116 | + "dev": true, | ||
117 | + "requires": { | ||
118 | + "@babel/types": "^7.8.3" | ||
119 | + }, | ||
120 | + "dependencies": { | ||
121 | + "@babel/types": { | ||
122 | + "version": "7.9.5", | ||
123 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
124 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
125 | + "dev": true, | ||
126 | + "requires": { | ||
127 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
128 | + "lodash": "^4.17.13", | ||
129 | + "to-fast-properties": "^2.0.0" | ||
130 | + } | ||
131 | + } | ||
132 | + } | ||
133 | + }, | ||
134 | + "@babel/helper-builder-binary-assignment-operator-visitor": { | ||
135 | + "version": "7.8.3", | ||
136 | + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", | ||
137 | + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", | ||
138 | + "dev": true, | ||
139 | + "requires": { | ||
140 | + "@babel/helper-explode-assignable-expression": "^7.8.3", | ||
141 | + "@babel/types": "^7.8.3" | ||
142 | + }, | ||
143 | + "dependencies": { | ||
144 | + "@babel/types": { | ||
145 | + "version": "7.9.5", | ||
146 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
147 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
148 | + "dev": true, | ||
149 | + "requires": { | ||
150 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
151 | + "lodash": "^4.17.13", | ||
152 | + "to-fast-properties": "^2.0.0" | ||
153 | + } | ||
154 | + } | ||
155 | + } | ||
156 | + }, | ||
157 | + "@babel/helper-builder-react-jsx": { | ||
158 | + "version": "7.9.0", | ||
159 | + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", | ||
160 | + "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", | ||
161 | + "dev": true, | ||
162 | + "requires": { | ||
163 | + "@babel/helper-annotate-as-pure": "^7.8.3", | ||
164 | + "@babel/types": "^7.9.0" | ||
165 | + }, | ||
166 | + "dependencies": { | ||
167 | + "@babel/types": { | ||
168 | + "version": "7.9.5", | ||
169 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
170 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
171 | + "dev": true, | ||
172 | + "requires": { | ||
173 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
174 | + "lodash": "^4.17.13", | ||
175 | + "to-fast-properties": "^2.0.0" | ||
176 | + } | ||
177 | + } | ||
178 | + } | ||
179 | + }, | ||
180 | + "@babel/helper-create-regexp-features-plugin": { | ||
181 | + "version": "7.8.8", | ||
182 | + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", | ||
183 | + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", | ||
184 | + "dev": true, | ||
185 | + "requires": { | ||
186 | + "@babel/helper-annotate-as-pure": "^7.8.3", | ||
187 | + "@babel/helper-regex": "^7.8.3", | ||
188 | + "regexpu-core": "^4.7.0" | ||
189 | + } | ||
190 | + }, | ||
191 | + "@babel/helper-define-map": { | ||
192 | + "version": "7.8.3", | ||
193 | + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", | ||
194 | + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", | ||
195 | + "dev": true, | ||
196 | + "requires": { | ||
197 | + "@babel/helper-function-name": "^7.8.3", | ||
198 | + "@babel/types": "^7.8.3", | ||
199 | + "lodash": "^4.17.13" | ||
200 | + }, | ||
201 | + "dependencies": { | ||
202 | + "@babel/types": { | ||
203 | + "version": "7.9.5", | ||
204 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
205 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
206 | + "dev": true, | ||
207 | + "requires": { | ||
208 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
209 | + "lodash": "^4.17.13", | ||
210 | + "to-fast-properties": "^2.0.0" | ||
211 | + } | ||
212 | + } | ||
213 | + } | ||
214 | + }, | ||
215 | + "@babel/helper-explode-assignable-expression": { | ||
216 | + "version": "7.8.3", | ||
217 | + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", | ||
218 | + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", | ||
219 | + "dev": true, | ||
220 | + "requires": { | ||
221 | + "@babel/traverse": "^7.8.3", | ||
222 | + "@babel/types": "^7.8.3" | ||
223 | + }, | ||
224 | + "dependencies": { | ||
225 | + "@babel/code-frame": { | ||
226 | + "version": "7.8.3", | ||
227 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
228 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
229 | + "dev": true, | ||
230 | + "requires": { | ||
231 | + "@babel/highlight": "^7.8.3" | ||
232 | + } | ||
233 | + }, | ||
234 | + "@babel/generator": { | ||
235 | + "version": "7.9.5", | ||
236 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", | ||
237 | + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", | ||
238 | + "dev": true, | ||
239 | + "requires": { | ||
240 | + "@babel/types": "^7.9.5", | ||
241 | + "jsesc": "^2.5.1", | ||
242 | + "lodash": "^4.17.13", | ||
243 | + "source-map": "^0.5.0" | ||
244 | + } | ||
245 | + }, | ||
246 | + "@babel/parser": { | ||
247 | + "version": "7.9.4", | ||
248 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
249 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
250 | + "dev": true | ||
251 | + }, | ||
252 | + "@babel/traverse": { | ||
253 | + "version": "7.9.5", | ||
254 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", | ||
255 | + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", | ||
256 | + "dev": true, | ||
257 | + "requires": { | ||
258 | + "@babel/code-frame": "^7.8.3", | ||
259 | + "@babel/generator": "^7.9.5", | ||
260 | + "@babel/helper-function-name": "^7.9.5", | ||
261 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
262 | + "@babel/parser": "^7.9.0", | ||
263 | + "@babel/types": "^7.9.5", | ||
264 | + "debug": "^4.1.0", | ||
265 | + "globals": "^11.1.0", | ||
266 | + "lodash": "^4.17.13" | ||
267 | + } | ||
268 | + }, | ||
269 | + "@babel/types": { | ||
270 | + "version": "7.9.5", | ||
271 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
272 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
273 | + "dev": true, | ||
274 | + "requires": { | ||
275 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
276 | + "lodash": "^4.17.13", | ||
277 | + "to-fast-properties": "^2.0.0" | ||
278 | + } | ||
279 | + }, | ||
280 | + "source-map": { | ||
281 | + "version": "0.5.7", | ||
282 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
283 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
284 | + "dev": true | ||
285 | + } | ||
286 | + } | ||
287 | + }, | ||
288 | + "@babel/helper-function-name": { | ||
289 | + "version": "7.9.5", | ||
290 | + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", | ||
291 | + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", | ||
292 | + "dev": true, | ||
293 | + "requires": { | ||
294 | + "@babel/helper-get-function-arity": "^7.8.3", | ||
295 | + "@babel/template": "^7.8.3", | ||
296 | + "@babel/types": "^7.9.5" | ||
297 | + }, | ||
298 | + "dependencies": { | ||
299 | + "@babel/code-frame": { | ||
300 | + "version": "7.8.3", | ||
301 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
302 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
303 | + "dev": true, | ||
304 | + "requires": { | ||
305 | + "@babel/highlight": "^7.8.3" | ||
306 | + } | ||
307 | + }, | ||
308 | + "@babel/parser": { | ||
309 | + "version": "7.9.4", | ||
310 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
311 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
312 | + "dev": true | ||
313 | + }, | ||
314 | + "@babel/template": { | ||
315 | + "version": "7.8.6", | ||
316 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
317 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
318 | + "dev": true, | ||
319 | + "requires": { | ||
320 | + "@babel/code-frame": "^7.8.3", | ||
321 | + "@babel/parser": "^7.8.6", | ||
322 | + "@babel/types": "^7.8.6" | ||
323 | + } | ||
324 | + }, | ||
325 | + "@babel/types": { | ||
326 | + "version": "7.9.5", | ||
327 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
328 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
329 | + "dev": true, | ||
330 | + "requires": { | ||
331 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
332 | + "lodash": "^4.17.13", | ||
333 | + "to-fast-properties": "^2.0.0" | ||
334 | + } | ||
335 | + } | ||
336 | + } | ||
337 | + }, | ||
338 | + "@babel/helper-get-function-arity": { | ||
339 | + "version": "7.8.3", | ||
340 | + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", | ||
341 | + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", | ||
342 | + "dev": true, | ||
343 | + "requires": { | ||
344 | + "@babel/types": "^7.8.3" | ||
345 | + }, | ||
346 | + "dependencies": { | ||
347 | + "@babel/types": { | ||
348 | + "version": "7.9.5", | ||
349 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
350 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
351 | + "dev": true, | ||
352 | + "requires": { | ||
353 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
354 | + "lodash": "^4.17.13", | ||
355 | + "to-fast-properties": "^2.0.0" | ||
356 | + } | ||
357 | + } | ||
358 | + } | ||
359 | + }, | ||
360 | + "@babel/helper-hoist-variables": { | ||
361 | + "version": "7.8.3", | ||
362 | + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", | ||
363 | + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", | ||
364 | + "dev": true, | ||
365 | + "requires": { | ||
366 | + "@babel/types": "^7.8.3" | ||
367 | + }, | ||
368 | + "dependencies": { | ||
369 | + "@babel/types": { | ||
370 | + "version": "7.9.5", | ||
371 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
372 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
373 | + "dev": true, | ||
374 | + "requires": { | ||
375 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
376 | + "lodash": "^4.17.13", | ||
377 | + "to-fast-properties": "^2.0.0" | ||
378 | + } | ||
379 | + } | ||
380 | + } | ||
381 | + }, | ||
382 | + "@babel/helper-member-expression-to-functions": { | ||
383 | + "version": "7.8.3", | ||
384 | + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", | ||
385 | + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", | ||
386 | + "dev": true, | ||
387 | + "requires": { | ||
388 | + "@babel/types": "^7.8.3" | ||
389 | + }, | ||
390 | + "dependencies": { | ||
391 | + "@babel/types": { | ||
392 | + "version": "7.9.5", | ||
393 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
394 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
395 | + "dev": true, | ||
396 | + "requires": { | ||
397 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
398 | + "lodash": "^4.17.13", | ||
399 | + "to-fast-properties": "^2.0.0" | ||
400 | + } | ||
401 | + } | ||
402 | + } | ||
403 | + }, | ||
404 | + "@babel/helper-module-imports": { | ||
405 | + "version": "7.8.3", | ||
406 | + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", | ||
407 | + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", | ||
408 | + "dev": true, | ||
409 | + "requires": { | ||
410 | + "@babel/types": "^7.8.3" | ||
411 | + }, | ||
412 | + "dependencies": { | ||
413 | + "@babel/types": { | ||
414 | + "version": "7.9.5", | ||
415 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
416 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
417 | + "dev": true, | ||
418 | + "requires": { | ||
419 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
420 | + "lodash": "^4.17.13", | ||
421 | + "to-fast-properties": "^2.0.0" | ||
422 | + } | ||
423 | + } | ||
424 | + } | ||
425 | + }, | ||
426 | + "@babel/helper-module-transforms": { | ||
427 | + "version": "7.9.0", | ||
428 | + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", | ||
429 | + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", | ||
430 | + "dev": true, | ||
431 | + "requires": { | ||
432 | + "@babel/helper-module-imports": "^7.8.3", | ||
433 | + "@babel/helper-replace-supers": "^7.8.6", | ||
434 | + "@babel/helper-simple-access": "^7.8.3", | ||
435 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
436 | + "@babel/template": "^7.8.6", | ||
437 | + "@babel/types": "^7.9.0", | ||
438 | + "lodash": "^4.17.13" | ||
439 | + }, | ||
440 | + "dependencies": { | ||
441 | + "@babel/code-frame": { | ||
442 | + "version": "7.8.3", | ||
443 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
444 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
445 | + "dev": true, | ||
446 | + "requires": { | ||
447 | + "@babel/highlight": "^7.8.3" | ||
448 | + } | ||
449 | + }, | ||
450 | + "@babel/parser": { | ||
451 | + "version": "7.9.4", | ||
452 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
453 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
454 | + "dev": true | ||
455 | + }, | ||
456 | + "@babel/template": { | ||
457 | + "version": "7.8.6", | ||
458 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
459 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
460 | + "dev": true, | ||
461 | + "requires": { | ||
462 | + "@babel/code-frame": "^7.8.3", | ||
463 | + "@babel/parser": "^7.8.6", | ||
464 | + "@babel/types": "^7.8.6" | ||
465 | + } | ||
466 | + }, | ||
467 | + "@babel/types": { | ||
468 | + "version": "7.9.5", | ||
469 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
470 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
471 | + "dev": true, | ||
472 | + "requires": { | ||
473 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
474 | + "lodash": "^4.17.13", | ||
475 | + "to-fast-properties": "^2.0.0" | ||
476 | + } | ||
477 | + } | ||
478 | + } | ||
479 | + }, | ||
480 | + "@babel/helper-optimise-call-expression": { | ||
481 | + "version": "7.8.3", | ||
482 | + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", | ||
483 | + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", | ||
484 | + "dev": true, | ||
485 | + "requires": { | ||
486 | + "@babel/types": "^7.8.3" | ||
487 | + }, | ||
488 | + "dependencies": { | ||
489 | + "@babel/types": { | ||
490 | + "version": "7.9.5", | ||
491 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
492 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
493 | + "dev": true, | ||
494 | + "requires": { | ||
495 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
496 | + "lodash": "^4.17.13", | ||
497 | + "to-fast-properties": "^2.0.0" | ||
498 | + } | ||
499 | + } | ||
500 | + } | ||
501 | + }, | ||
502 | + "@babel/helper-plugin-utils": { | ||
503 | + "version": "7.8.3", | ||
504 | + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", | ||
505 | + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", | ||
506 | + "dev": true | ||
507 | + }, | ||
508 | + "@babel/helper-regex": { | ||
509 | + "version": "7.8.3", | ||
510 | + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", | ||
511 | + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", | ||
512 | + "dev": true, | ||
513 | + "requires": { | ||
514 | + "lodash": "^4.17.13" | ||
515 | + } | ||
516 | + }, | ||
517 | + "@babel/helper-remap-async-to-generator": { | ||
518 | + "version": "7.8.3", | ||
519 | + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", | ||
520 | + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", | ||
521 | + "dev": true, | ||
522 | + "requires": { | ||
523 | + "@babel/helper-annotate-as-pure": "^7.8.3", | ||
524 | + "@babel/helper-wrap-function": "^7.8.3", | ||
525 | + "@babel/template": "^7.8.3", | ||
526 | + "@babel/traverse": "^7.8.3", | ||
527 | + "@babel/types": "^7.8.3" | ||
528 | + }, | ||
529 | + "dependencies": { | ||
530 | + "@babel/code-frame": { | ||
531 | + "version": "7.8.3", | ||
532 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
533 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
534 | + "dev": true, | ||
535 | + "requires": { | ||
536 | + "@babel/highlight": "^7.8.3" | ||
537 | + } | ||
538 | + }, | ||
539 | + "@babel/generator": { | ||
540 | + "version": "7.9.5", | ||
541 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", | ||
542 | + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", | ||
543 | + "dev": true, | ||
544 | + "requires": { | ||
545 | + "@babel/types": "^7.9.5", | ||
546 | + "jsesc": "^2.5.1", | ||
547 | + "lodash": "^4.17.13", | ||
548 | + "source-map": "^0.5.0" | ||
549 | + } | ||
550 | + }, | ||
551 | + "@babel/parser": { | ||
552 | + "version": "7.9.4", | ||
553 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
554 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
555 | + "dev": true | ||
556 | + }, | ||
557 | + "@babel/template": { | ||
558 | + "version": "7.8.6", | ||
559 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
560 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
561 | + "dev": true, | ||
562 | + "requires": { | ||
563 | + "@babel/code-frame": "^7.8.3", | ||
564 | + "@babel/parser": "^7.8.6", | ||
565 | + "@babel/types": "^7.8.6" | ||
566 | + } | ||
567 | + }, | ||
568 | + "@babel/traverse": { | ||
569 | + "version": "7.9.5", | ||
570 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", | ||
571 | + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", | ||
572 | + "dev": true, | ||
573 | + "requires": { | ||
574 | + "@babel/code-frame": "^7.8.3", | ||
575 | + "@babel/generator": "^7.9.5", | ||
576 | + "@babel/helper-function-name": "^7.9.5", | ||
577 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
578 | + "@babel/parser": "^7.9.0", | ||
579 | + "@babel/types": "^7.9.5", | ||
580 | + "debug": "^4.1.0", | ||
581 | + "globals": "^11.1.0", | ||
582 | + "lodash": "^4.17.13" | ||
583 | + } | ||
584 | + }, | ||
585 | + "@babel/types": { | ||
586 | + "version": "7.9.5", | ||
587 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
588 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
589 | + "dev": true, | ||
590 | + "requires": { | ||
591 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
592 | + "lodash": "^4.17.13", | ||
593 | + "to-fast-properties": "^2.0.0" | ||
594 | + } | ||
595 | + }, | ||
596 | + "source-map": { | ||
597 | + "version": "0.5.7", | ||
598 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
599 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
600 | + "dev": true | ||
601 | + } | ||
602 | + } | ||
603 | + }, | ||
604 | + "@babel/helper-replace-supers": { | ||
605 | + "version": "7.8.6", | ||
606 | + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", | ||
607 | + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", | ||
608 | + "dev": true, | ||
609 | + "requires": { | ||
610 | + "@babel/helper-member-expression-to-functions": "^7.8.3", | ||
611 | + "@babel/helper-optimise-call-expression": "^7.8.3", | ||
612 | + "@babel/traverse": "^7.8.6", | ||
613 | + "@babel/types": "^7.8.6" | ||
614 | + }, | ||
615 | + "dependencies": { | ||
616 | + "@babel/code-frame": { | ||
617 | + "version": "7.8.3", | ||
618 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
619 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
620 | + "dev": true, | ||
621 | + "requires": { | ||
622 | + "@babel/highlight": "^7.8.3" | ||
623 | + } | ||
624 | + }, | ||
625 | + "@babel/generator": { | ||
626 | + "version": "7.9.5", | ||
627 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", | ||
628 | + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", | ||
629 | + "dev": true, | ||
630 | + "requires": { | ||
631 | + "@babel/types": "^7.9.5", | ||
632 | + "jsesc": "^2.5.1", | ||
633 | + "lodash": "^4.17.13", | ||
634 | + "source-map": "^0.5.0" | ||
635 | + } | ||
636 | + }, | ||
637 | + "@babel/parser": { | ||
638 | + "version": "7.9.4", | ||
639 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
640 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
641 | + "dev": true | ||
642 | + }, | ||
643 | + "@babel/traverse": { | ||
644 | + "version": "7.9.5", | ||
645 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", | ||
646 | + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", | ||
647 | + "dev": true, | ||
648 | + "requires": { | ||
649 | + "@babel/code-frame": "^7.8.3", | ||
650 | + "@babel/generator": "^7.9.5", | ||
651 | + "@babel/helper-function-name": "^7.9.5", | ||
652 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
653 | + "@babel/parser": "^7.9.0", | ||
654 | + "@babel/types": "^7.9.5", | ||
655 | + "debug": "^4.1.0", | ||
656 | + "globals": "^11.1.0", | ||
657 | + "lodash": "^4.17.13" | ||
658 | + } | ||
659 | + }, | ||
660 | + "@babel/types": { | ||
661 | + "version": "7.9.5", | ||
662 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
663 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
664 | + "dev": true, | ||
665 | + "requires": { | ||
666 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
667 | + "lodash": "^4.17.13", | ||
668 | + "to-fast-properties": "^2.0.0" | ||
669 | + } | ||
670 | + }, | ||
671 | + "source-map": { | ||
672 | + "version": "0.5.7", | ||
673 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
674 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
675 | + "dev": true | ||
676 | + } | ||
677 | + } | ||
678 | + }, | ||
679 | + "@babel/helper-simple-access": { | ||
680 | + "version": "7.8.3", | ||
681 | + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", | ||
682 | + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", | ||
683 | + "dev": true, | ||
684 | + "requires": { | ||
685 | + "@babel/template": "^7.8.3", | ||
686 | + "@babel/types": "^7.8.3" | ||
687 | + }, | ||
688 | + "dependencies": { | ||
689 | + "@babel/code-frame": { | ||
690 | + "version": "7.8.3", | ||
691 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
692 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
693 | + "dev": true, | ||
694 | + "requires": { | ||
695 | + "@babel/highlight": "^7.8.3" | ||
696 | + } | ||
697 | + }, | ||
698 | + "@babel/parser": { | ||
699 | + "version": "7.9.4", | ||
700 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
701 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
702 | + "dev": true | ||
703 | + }, | ||
704 | + "@babel/template": { | ||
705 | + "version": "7.8.6", | ||
706 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
707 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
708 | + "dev": true, | ||
709 | + "requires": { | ||
710 | + "@babel/code-frame": "^7.8.3", | ||
711 | + "@babel/parser": "^7.8.6", | ||
712 | + "@babel/types": "^7.8.6" | ||
713 | + } | ||
714 | + }, | ||
715 | + "@babel/types": { | ||
716 | + "version": "7.9.5", | ||
717 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
718 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
719 | + "dev": true, | ||
720 | + "requires": { | ||
721 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
722 | + "lodash": "^4.17.13", | ||
723 | + "to-fast-properties": "^2.0.0" | ||
724 | + } | ||
725 | + } | ||
726 | + } | ||
727 | + }, | ||
728 | + "@babel/helper-split-export-declaration": { | ||
729 | + "version": "7.8.3", | ||
730 | + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", | ||
731 | + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", | ||
732 | + "dev": true, | ||
733 | + "requires": { | ||
734 | + "@babel/types": "^7.8.3" | ||
735 | + }, | ||
736 | + "dependencies": { | ||
737 | + "@babel/types": { | ||
738 | + "version": "7.9.5", | ||
739 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
740 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
741 | + "dev": true, | ||
742 | + "requires": { | ||
743 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
744 | + "lodash": "^4.17.13", | ||
745 | + "to-fast-properties": "^2.0.0" | ||
746 | + } | ||
747 | + } | ||
748 | + } | ||
749 | + }, | ||
750 | + "@babel/helper-validator-identifier": { | ||
751 | + "version": "7.9.5", | ||
752 | + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", | ||
753 | + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", | ||
754 | + "dev": true | ||
755 | + }, | ||
756 | + "@babel/helper-wrap-function": { | ||
757 | + "version": "7.8.3", | ||
758 | + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", | ||
759 | + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", | ||
760 | + "dev": true, | ||
761 | + "requires": { | ||
762 | + "@babel/helper-function-name": "^7.8.3", | ||
763 | + "@babel/template": "^7.8.3", | ||
764 | + "@babel/traverse": "^7.8.3", | ||
765 | + "@babel/types": "^7.8.3" | ||
766 | + }, | ||
767 | + "dependencies": { | ||
768 | + "@babel/code-frame": { | ||
769 | + "version": "7.8.3", | ||
770 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
771 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
772 | + "dev": true, | ||
773 | + "requires": { | ||
774 | + "@babel/highlight": "^7.8.3" | ||
775 | + } | ||
776 | + }, | ||
777 | + "@babel/generator": { | ||
778 | + "version": "7.9.5", | ||
779 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", | ||
780 | + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", | ||
781 | + "dev": true, | ||
782 | + "requires": { | ||
783 | + "@babel/types": "^7.9.5", | ||
784 | + "jsesc": "^2.5.1", | ||
785 | + "lodash": "^4.17.13", | ||
786 | + "source-map": "^0.5.0" | ||
787 | + } | ||
788 | + }, | ||
789 | + "@babel/parser": { | ||
790 | + "version": "7.9.4", | ||
791 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
792 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
793 | + "dev": true | ||
794 | + }, | ||
795 | + "@babel/template": { | ||
796 | + "version": "7.8.6", | ||
797 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
798 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
799 | + "dev": true, | ||
800 | + "requires": { | ||
801 | + "@babel/code-frame": "^7.8.3", | ||
802 | + "@babel/parser": "^7.8.6", | ||
803 | + "@babel/types": "^7.8.6" | ||
804 | + } | ||
805 | + }, | ||
806 | + "@babel/traverse": { | ||
807 | + "version": "7.9.5", | ||
808 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", | ||
809 | + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", | ||
810 | + "dev": true, | ||
811 | + "requires": { | ||
812 | + "@babel/code-frame": "^7.8.3", | ||
813 | + "@babel/generator": "^7.9.5", | ||
814 | + "@babel/helper-function-name": "^7.9.5", | ||
815 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
816 | + "@babel/parser": "^7.9.0", | ||
817 | + "@babel/types": "^7.9.5", | ||
818 | + "debug": "^4.1.0", | ||
819 | + "globals": "^11.1.0", | ||
820 | + "lodash": "^4.17.13" | ||
821 | + } | ||
822 | + }, | ||
823 | + "@babel/types": { | ||
824 | + "version": "7.9.5", | ||
825 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
826 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
827 | + "dev": true, | ||
828 | + "requires": { | ||
829 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
830 | + "lodash": "^4.17.13", | ||
831 | + "to-fast-properties": "^2.0.0" | ||
832 | + } | ||
833 | + }, | ||
834 | + "source-map": { | ||
835 | + "version": "0.5.7", | ||
836 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
837 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
838 | + "dev": true | ||
839 | + } | ||
840 | + } | ||
841 | + }, | ||
842 | + "@babel/helpers": { | ||
843 | + "version": "7.9.2", | ||
844 | + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", | ||
845 | + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", | ||
846 | + "dev": true, | ||
847 | + "requires": { | ||
848 | + "@babel/template": "^7.8.3", | ||
849 | + "@babel/traverse": "^7.9.0", | ||
850 | + "@babel/types": "^7.9.0" | ||
851 | + }, | ||
852 | + "dependencies": { | ||
853 | + "@babel/code-frame": { | ||
854 | + "version": "7.8.3", | ||
855 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
856 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
857 | + "dev": true, | ||
858 | + "requires": { | ||
859 | + "@babel/highlight": "^7.8.3" | ||
860 | + } | ||
861 | + }, | ||
862 | + "@babel/generator": { | ||
863 | + "version": "7.9.5", | ||
864 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", | ||
865 | + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", | ||
866 | + "dev": true, | ||
867 | + "requires": { | ||
868 | + "@babel/types": "^7.9.5", | ||
869 | + "jsesc": "^2.5.1", | ||
870 | + "lodash": "^4.17.13", | ||
871 | + "source-map": "^0.5.0" | ||
872 | + } | ||
873 | + }, | ||
874 | + "@babel/parser": { | ||
875 | + "version": "7.9.4", | ||
876 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", | ||
877 | + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", | ||
878 | + "dev": true | ||
879 | + }, | ||
880 | + "@babel/template": { | ||
881 | + "version": "7.8.6", | ||
882 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
883 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
884 | + "dev": true, | ||
885 | + "requires": { | ||
886 | + "@babel/code-frame": "^7.8.3", | ||
887 | + "@babel/parser": "^7.8.6", | ||
888 | + "@babel/types": "^7.8.6" | ||
889 | + } | ||
890 | + }, | ||
891 | + "@babel/traverse": { | ||
892 | + "version": "7.9.5", | ||
893 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", | ||
894 | + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", | ||
895 | + "dev": true, | ||
896 | + "requires": { | ||
897 | + "@babel/code-frame": "^7.8.3", | ||
898 | + "@babel/generator": "^7.9.5", | ||
899 | + "@babel/helper-function-name": "^7.9.5", | ||
900 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
901 | + "@babel/parser": "^7.9.0", | ||
902 | + "@babel/types": "^7.9.5", | ||
903 | + "debug": "^4.1.0", | ||
904 | + "globals": "^11.1.0", | ||
905 | + "lodash": "^4.17.13" | ||
906 | + } | ||
907 | + }, | ||
908 | + "@babel/types": { | ||
909 | + "version": "7.9.5", | ||
910 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", | ||
911 | + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", | ||
912 | + "dev": true, | ||
913 | + "requires": { | ||
914 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
915 | + "lodash": "^4.17.13", | ||
916 | + "to-fast-properties": "^2.0.0" | ||
917 | + } | ||
918 | + }, | ||
919 | + "source-map": { | ||
920 | + "version": "0.5.7", | ||
921 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
922 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
923 | + "dev": true | ||
924 | + } | ||
925 | + } | ||
926 | + }, | ||
927 | + "@babel/highlight": { | ||
928 | + "version": "7.9.0", | ||
929 | + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", | ||
930 | + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", | ||
931 | + "dev": true, | ||
932 | + "requires": { | ||
933 | + "@babel/helper-validator-identifier": "^7.9.0", | ||
934 | + "chalk": "^2.0.0", | ||
935 | + "js-tokens": "^4.0.0" | ||
936 | + } | ||
937 | + }, | ||
938 | + "@babel/parser": { | ||
939 | + "version": "7.3.4", | ||
940 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", | ||
941 | + "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==", | ||
942 | + "dev": true | ||
943 | + }, | ||
944 | + "@babel/plugin-proposal-async-generator-functions": { | ||
945 | + "version": "7.8.3", | ||
946 | + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", | ||
947 | + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", | ||
948 | + "dev": true, | ||
949 | + "requires": { | ||
950 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
951 | + "@babel/helper-remap-async-to-generator": "^7.8.3", | ||
952 | + "@babel/plugin-syntax-async-generators": "^7.8.0" | ||
953 | + } | ||
954 | + }, | ||
955 | + "@babel/plugin-proposal-json-strings": { | ||
956 | + "version": "7.8.3", | ||
957 | + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", | ||
958 | + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", | ||
959 | + "dev": true, | ||
960 | + "requires": { | ||
961 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
962 | + "@babel/plugin-syntax-json-strings": "^7.8.0" | ||
963 | + } | ||
964 | + }, | ||
965 | + "@babel/plugin-proposal-object-rest-spread": { | ||
966 | + "version": "7.9.5", | ||
967 | + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz", | ||
968 | + "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==", | ||
969 | + "dev": true, | ||
970 | + "requires": { | ||
971 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
972 | + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", | ||
973 | + "@babel/plugin-transform-parameters": "^7.9.5" | ||
974 | + } | ||
975 | + }, | ||
976 | + "@babel/plugin-proposal-optional-catch-binding": { | ||
977 | + "version": "7.8.3", | ||
978 | + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", | ||
979 | + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", | ||
980 | + "dev": true, | ||
981 | + "requires": { | ||
982 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
983 | + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" | ||
984 | + } | ||
985 | + }, | ||
986 | + "@babel/plugin-proposal-unicode-property-regex": { | ||
987 | + "version": "7.8.8", | ||
988 | + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", | ||
989 | + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", | ||
990 | + "dev": true, | ||
991 | + "requires": { | ||
992 | + "@babel/helper-create-regexp-features-plugin": "^7.8.8", | ||
993 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
994 | + } | ||
995 | + }, | ||
996 | + "@babel/plugin-syntax-async-generators": { | ||
997 | + "version": "7.8.4", | ||
998 | + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", | ||
999 | + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", | ||
1000 | + "dev": true, | ||
1001 | + "requires": { | ||
1002 | + "@babel/helper-plugin-utils": "^7.8.0" | ||
1003 | + } | ||
1004 | + }, | ||
1005 | + "@babel/plugin-syntax-flow": { | ||
1006 | + "version": "7.8.3", | ||
1007 | + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", | ||
1008 | + "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", | ||
1009 | + "dev": true, | ||
1010 | + "requires": { | ||
1011 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1012 | + } | ||
1013 | + }, | ||
1014 | + "@babel/plugin-syntax-json-strings": { | ||
1015 | + "version": "7.8.3", | ||
1016 | + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", | ||
1017 | + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", | ||
1018 | + "dev": true, | ||
1019 | + "requires": { | ||
1020 | + "@babel/helper-plugin-utils": "^7.8.0" | ||
1021 | + } | ||
1022 | + }, | ||
1023 | + "@babel/plugin-syntax-jsx": { | ||
1024 | + "version": "7.8.3", | ||
1025 | + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", | ||
1026 | + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", | ||
1027 | + "dev": true, | ||
1028 | + "requires": { | ||
1029 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1030 | + } | ||
1031 | + }, | ||
1032 | + "@babel/plugin-syntax-object-rest-spread": { | ||
1033 | + "version": "7.8.3", | ||
1034 | + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", | ||
1035 | + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", | ||
1036 | + "dev": true, | ||
1037 | + "requires": { | ||
1038 | + "@babel/helper-plugin-utils": "^7.8.0" | ||
1039 | + } | ||
1040 | + }, | ||
1041 | + "@babel/plugin-syntax-optional-catch-binding": { | ||
1042 | + "version": "7.8.3", | ||
1043 | + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", | ||
1044 | + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", | ||
1045 | + "dev": true, | ||
1046 | + "requires": { | ||
1047 | + "@babel/helper-plugin-utils": "^7.8.0" | ||
1048 | + } | ||
1049 | + }, | ||
1050 | + "@babel/plugin-transform-arrow-functions": { | ||
1051 | + "version": "7.8.3", | ||
1052 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", | ||
1053 | + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", | ||
1054 | + "dev": true, | ||
1055 | + "requires": { | ||
1056 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1057 | + } | ||
1058 | + }, | ||
1059 | + "@babel/plugin-transform-async-to-generator": { | ||
1060 | + "version": "7.8.3", | ||
1061 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", | ||
1062 | + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", | ||
1063 | + "dev": true, | ||
1064 | + "requires": { | ||
1065 | + "@babel/helper-module-imports": "^7.8.3", | ||
1066 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1067 | + "@babel/helper-remap-async-to-generator": "^7.8.3" | ||
1068 | + } | ||
1069 | + }, | ||
1070 | + "@babel/plugin-transform-block-scoped-functions": { | ||
1071 | + "version": "7.8.3", | ||
1072 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", | ||
1073 | + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", | ||
1074 | + "dev": true, | ||
1075 | + "requires": { | ||
1076 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1077 | + } | ||
1078 | + }, | ||
1079 | + "@babel/plugin-transform-block-scoping": { | ||
1080 | + "version": "7.8.3", | ||
1081 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", | ||
1082 | + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", | ||
1083 | + "dev": true, | ||
1084 | + "requires": { | ||
1085 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1086 | + "lodash": "^4.17.13" | ||
1087 | + } | ||
1088 | + }, | ||
1089 | + "@babel/plugin-transform-classes": { | ||
1090 | + "version": "7.9.5", | ||
1091 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", | ||
1092 | + "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", | ||
1093 | + "dev": true, | ||
1094 | + "requires": { | ||
1095 | + "@babel/helper-annotate-as-pure": "^7.8.3", | ||
1096 | + "@babel/helper-define-map": "^7.8.3", | ||
1097 | + "@babel/helper-function-name": "^7.9.5", | ||
1098 | + "@babel/helper-optimise-call-expression": "^7.8.3", | ||
1099 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1100 | + "@babel/helper-replace-supers": "^7.8.6", | ||
1101 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
1102 | + "globals": "^11.1.0" | ||
1103 | + } | ||
1104 | + }, | ||
1105 | + "@babel/plugin-transform-computed-properties": { | ||
1106 | + "version": "7.8.3", | ||
1107 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", | ||
1108 | + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", | ||
1109 | + "dev": true, | ||
1110 | + "requires": { | ||
1111 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1112 | + } | ||
1113 | + }, | ||
1114 | + "@babel/plugin-transform-destructuring": { | ||
1115 | + "version": "7.9.5", | ||
1116 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", | ||
1117 | + "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", | ||
1118 | + "dev": true, | ||
1119 | + "requires": { | ||
1120 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1121 | + } | ||
1122 | + }, | ||
1123 | + "@babel/plugin-transform-dotall-regex": { | ||
1124 | + "version": "7.8.3", | ||
1125 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", | ||
1126 | + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", | ||
1127 | + "dev": true, | ||
1128 | + "requires": { | ||
1129 | + "@babel/helper-create-regexp-features-plugin": "^7.8.3", | ||
1130 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1131 | + } | ||
1132 | + }, | ||
1133 | + "@babel/plugin-transform-duplicate-keys": { | ||
1134 | + "version": "7.8.3", | ||
1135 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", | ||
1136 | + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", | ||
1137 | + "dev": true, | ||
1138 | + "requires": { | ||
1139 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1140 | + } | ||
1141 | + }, | ||
1142 | + "@babel/plugin-transform-exponentiation-operator": { | ||
1143 | + "version": "7.8.3", | ||
1144 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", | ||
1145 | + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", | ||
1146 | + "dev": true, | ||
1147 | + "requires": { | ||
1148 | + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", | ||
1149 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1150 | + } | ||
1151 | + }, | ||
1152 | + "@babel/plugin-transform-flow-strip-types": { | ||
1153 | + "version": "7.3.4", | ||
1154 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz", | ||
1155 | + "integrity": "sha512-PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA==", | ||
1156 | + "dev": true, | ||
1157 | + "requires": { | ||
1158 | + "@babel/helper-plugin-utils": "^7.0.0", | ||
1159 | + "@babel/plugin-syntax-flow": "^7.2.0" | ||
1160 | + } | ||
1161 | + }, | ||
1162 | + "@babel/plugin-transform-for-of": { | ||
1163 | + "version": "7.9.0", | ||
1164 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", | ||
1165 | + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", | ||
1166 | + "dev": true, | ||
1167 | + "requires": { | ||
1168 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1169 | + } | ||
1170 | + }, | ||
1171 | + "@babel/plugin-transform-function-name": { | ||
1172 | + "version": "7.8.3", | ||
1173 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", | ||
1174 | + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", | ||
1175 | + "dev": true, | ||
1176 | + "requires": { | ||
1177 | + "@babel/helper-function-name": "^7.8.3", | ||
1178 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1179 | + } | ||
1180 | + }, | ||
1181 | + "@babel/plugin-transform-literals": { | ||
1182 | + "version": "7.8.3", | ||
1183 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", | ||
1184 | + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", | ||
1185 | + "dev": true, | ||
1186 | + "requires": { | ||
1187 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1188 | + } | ||
1189 | + }, | ||
1190 | + "@babel/plugin-transform-modules-amd": { | ||
1191 | + "version": "7.9.0", | ||
1192 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", | ||
1193 | + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", | ||
1194 | + "dev": true, | ||
1195 | + "requires": { | ||
1196 | + "@babel/helper-module-transforms": "^7.9.0", | ||
1197 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1198 | + "babel-plugin-dynamic-import-node": "^2.3.0" | ||
1199 | + } | ||
1200 | + }, | ||
1201 | + "@babel/plugin-transform-modules-commonjs": { | ||
1202 | + "version": "7.2.0", | ||
1203 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", | ||
1204 | + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", | ||
1205 | + "dev": true, | ||
1206 | + "requires": { | ||
1207 | + "@babel/helper-module-transforms": "^7.1.0", | ||
1208 | + "@babel/helper-plugin-utils": "^7.0.0", | ||
1209 | + "@babel/helper-simple-access": "^7.1.0" | ||
1210 | + } | ||
1211 | + }, | ||
1212 | + "@babel/plugin-transform-modules-systemjs": { | ||
1213 | + "version": "7.9.0", | ||
1214 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", | ||
1215 | + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", | ||
1216 | + "dev": true, | ||
1217 | + "requires": { | ||
1218 | + "@babel/helper-hoist-variables": "^7.8.3", | ||
1219 | + "@babel/helper-module-transforms": "^7.9.0", | ||
1220 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1221 | + "babel-plugin-dynamic-import-node": "^2.3.0" | ||
1222 | + } | ||
1223 | + }, | ||
1224 | + "@babel/plugin-transform-modules-umd": { | ||
1225 | + "version": "7.9.0", | ||
1226 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", | ||
1227 | + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", | ||
1228 | + "dev": true, | ||
1229 | + "requires": { | ||
1230 | + "@babel/helper-module-transforms": "^7.9.0", | ||
1231 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1232 | + } | ||
1233 | + }, | ||
1234 | + "@babel/plugin-transform-named-capturing-groups-regex": { | ||
1235 | + "version": "7.8.3", | ||
1236 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", | ||
1237 | + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", | ||
1238 | + "dev": true, | ||
1239 | + "requires": { | ||
1240 | + "@babel/helper-create-regexp-features-plugin": "^7.8.3" | ||
1241 | + } | ||
1242 | + }, | ||
1243 | + "@babel/plugin-transform-new-target": { | ||
1244 | + "version": "7.8.3", | ||
1245 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", | ||
1246 | + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", | ||
1247 | + "dev": true, | ||
1248 | + "requires": { | ||
1249 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1250 | + } | ||
1251 | + }, | ||
1252 | + "@babel/plugin-transform-object-super": { | ||
1253 | + "version": "7.8.3", | ||
1254 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", | ||
1255 | + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", | ||
1256 | + "dev": true, | ||
1257 | + "requires": { | ||
1258 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1259 | + "@babel/helper-replace-supers": "^7.8.3" | ||
1260 | + } | ||
1261 | + }, | ||
1262 | + "@babel/plugin-transform-parameters": { | ||
1263 | + "version": "7.9.5", | ||
1264 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", | ||
1265 | + "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", | ||
1266 | + "dev": true, | ||
1267 | + "requires": { | ||
1268 | + "@babel/helper-get-function-arity": "^7.8.3", | ||
1269 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1270 | + } | ||
1271 | + }, | ||
1272 | + "@babel/plugin-transform-react-jsx": { | ||
1273 | + "version": "7.3.0", | ||
1274 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", | ||
1275 | + "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", | ||
1276 | + "dev": true, | ||
1277 | + "requires": { | ||
1278 | + "@babel/helper-builder-react-jsx": "^7.3.0", | ||
1279 | + "@babel/helper-plugin-utils": "^7.0.0", | ||
1280 | + "@babel/plugin-syntax-jsx": "^7.2.0" | ||
1281 | + } | ||
1282 | + }, | ||
1283 | + "@babel/plugin-transform-regenerator": { | ||
1284 | + "version": "7.8.7", | ||
1285 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", | ||
1286 | + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", | ||
1287 | + "dev": true, | ||
1288 | + "requires": { | ||
1289 | + "regenerator-transform": "^0.14.2" | ||
1290 | + } | ||
1291 | + }, | ||
1292 | + "@babel/plugin-transform-shorthand-properties": { | ||
1293 | + "version": "7.8.3", | ||
1294 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", | ||
1295 | + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", | ||
1296 | + "dev": true, | ||
1297 | + "requires": { | ||
1298 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1299 | + } | ||
1300 | + }, | ||
1301 | + "@babel/plugin-transform-spread": { | ||
1302 | + "version": "7.8.3", | ||
1303 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", | ||
1304 | + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", | ||
1305 | + "dev": true, | ||
1306 | + "requires": { | ||
1307 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1308 | + } | ||
1309 | + }, | ||
1310 | + "@babel/plugin-transform-sticky-regex": { | ||
1311 | + "version": "7.8.3", | ||
1312 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", | ||
1313 | + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", | ||
1314 | + "dev": true, | ||
1315 | + "requires": { | ||
1316 | + "@babel/helper-plugin-utils": "^7.8.3", | ||
1317 | + "@babel/helper-regex": "^7.8.3" | ||
1318 | + } | ||
1319 | + }, | ||
1320 | + "@babel/plugin-transform-template-literals": { | ||
1321 | + "version": "7.8.3", | ||
1322 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", | ||
1323 | + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", | ||
1324 | + "dev": true, | ||
1325 | + "requires": { | ||
1326 | + "@babel/helper-annotate-as-pure": "^7.8.3", | ||
1327 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1328 | + } | ||
1329 | + }, | ||
1330 | + "@babel/plugin-transform-typeof-symbol": { | ||
1331 | + "version": "7.8.4", | ||
1332 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", | ||
1333 | + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", | ||
1334 | + "dev": true, | ||
1335 | + "requires": { | ||
1336 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1337 | + } | ||
1338 | + }, | ||
1339 | + "@babel/plugin-transform-unicode-regex": { | ||
1340 | + "version": "7.8.3", | ||
1341 | + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", | ||
1342 | + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", | ||
1343 | + "dev": true, | ||
1344 | + "requires": { | ||
1345 | + "@babel/helper-create-regexp-features-plugin": "^7.8.3", | ||
1346 | + "@babel/helper-plugin-utils": "^7.8.3" | ||
1347 | + } | ||
1348 | + }, | ||
1349 | + "@babel/preset-env": { | ||
1350 | + "version": "7.3.4", | ||
1351 | + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", | ||
1352 | + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", | ||
1353 | + "dev": true, | ||
1354 | + "requires": { | ||
1355 | + "@babel/helper-module-imports": "^7.0.0", | ||
1356 | + "@babel/helper-plugin-utils": "^7.0.0", | ||
1357 | + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", | ||
1358 | + "@babel/plugin-proposal-json-strings": "^7.2.0", | ||
1359 | + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", | ||
1360 | + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", | ||
1361 | + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", | ||
1362 | + "@babel/plugin-syntax-async-generators": "^7.2.0", | ||
1363 | + "@babel/plugin-syntax-json-strings": "^7.2.0", | ||
1364 | + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", | ||
1365 | + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", | ||
1366 | + "@babel/plugin-transform-arrow-functions": "^7.2.0", | ||
1367 | + "@babel/plugin-transform-async-to-generator": "^7.3.4", | ||
1368 | + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", | ||
1369 | + "@babel/plugin-transform-block-scoping": "^7.3.4", | ||
1370 | + "@babel/plugin-transform-classes": "^7.3.4", | ||
1371 | + "@babel/plugin-transform-computed-properties": "^7.2.0", | ||
1372 | + "@babel/plugin-transform-destructuring": "^7.2.0", | ||
1373 | + "@babel/plugin-transform-dotall-regex": "^7.2.0", | ||
1374 | + "@babel/plugin-transform-duplicate-keys": "^7.2.0", | ||
1375 | + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", | ||
1376 | + "@babel/plugin-transform-for-of": "^7.2.0", | ||
1377 | + "@babel/plugin-transform-function-name": "^7.2.0", | ||
1378 | + "@babel/plugin-transform-literals": "^7.2.0", | ||
1379 | + "@babel/plugin-transform-modules-amd": "^7.2.0", | ||
1380 | + "@babel/plugin-transform-modules-commonjs": "^7.2.0", | ||
1381 | + "@babel/plugin-transform-modules-systemjs": "^7.3.4", | ||
1382 | + "@babel/plugin-transform-modules-umd": "^7.2.0", | ||
1383 | + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", | ||
1384 | + "@babel/plugin-transform-new-target": "^7.0.0", | ||
1385 | + "@babel/plugin-transform-object-super": "^7.2.0", | ||
1386 | + "@babel/plugin-transform-parameters": "^7.2.0", | ||
1387 | + "@babel/plugin-transform-regenerator": "^7.3.4", | ||
1388 | + "@babel/plugin-transform-shorthand-properties": "^7.2.0", | ||
1389 | + "@babel/plugin-transform-spread": "^7.2.0", | ||
1390 | + "@babel/plugin-transform-sticky-regex": "^7.2.0", | ||
1391 | + "@babel/plugin-transform-template-literals": "^7.2.0", | ||
1392 | + "@babel/plugin-transform-typeof-symbol": "^7.2.0", | ||
1393 | + "@babel/plugin-transform-unicode-regex": "^7.2.0", | ||
1394 | + "browserslist": "^4.3.4", | ||
1395 | + "invariant": "^2.2.2", | ||
1396 | + "js-levenshtein": "^1.1.3", | ||
1397 | + "semver": "^5.3.0" | ||
1398 | + } | ||
1399 | + }, | ||
1400 | + "@babel/runtime": { | ||
1401 | + "version": "7.3.4", | ||
1402 | + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", | ||
1403 | + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", | ||
1404 | + "dev": true, | ||
1405 | + "requires": { | ||
1406 | + "regenerator-runtime": "^0.12.0" | ||
1407 | + }, | ||
1408 | + "dependencies": { | ||
1409 | + "regenerator-runtime": { | ||
1410 | + "version": "0.12.1", | ||
1411 | + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", | ||
1412 | + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", | ||
1413 | + "dev": true | ||
1414 | + } | ||
1415 | + } | ||
1416 | + }, | ||
1417 | + "@babel/template": { | ||
1418 | + "version": "7.2.2", | ||
1419 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", | ||
1420 | + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", | ||
1421 | + "dev": true, | ||
1422 | + "requires": { | ||
1423 | + "@babel/code-frame": "^7.0.0", | ||
1424 | + "@babel/parser": "^7.2.2", | ||
1425 | + "@babel/types": "^7.2.2" | ||
1426 | + } | ||
1427 | + }, | ||
1428 | + "@babel/traverse": { | ||
1429 | + "version": "7.3.4", | ||
1430 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", | ||
1431 | + "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==", | ||
1432 | + "dev": true, | ||
1433 | + "requires": { | ||
1434 | + "@babel/code-frame": "^7.0.0", | ||
1435 | + "@babel/generator": "^7.3.4", | ||
1436 | + "@babel/helper-function-name": "^7.1.0", | ||
1437 | + "@babel/helper-split-export-declaration": "^7.0.0", | ||
1438 | + "@babel/parser": "^7.3.4", | ||
1439 | + "@babel/types": "^7.3.4", | ||
1440 | + "debug": "^4.1.0", | ||
1441 | + "globals": "^11.1.0", | ||
1442 | + "lodash": "^4.17.11" | ||
1443 | + } | ||
1444 | + }, | ||
1445 | + "@babel/types": { | ||
1446 | + "version": "7.3.4", | ||
1447 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", | ||
1448 | + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", | ||
1449 | + "dev": true, | ||
1450 | + "requires": { | ||
1451 | + "esutils": "^2.0.2", | ||
1452 | + "lodash": "^4.17.11", | ||
1453 | + "to-fast-properties": "^2.0.0" | ||
1454 | + } | ||
1455 | + }, | ||
1456 | + "@iarna/toml": { | ||
1457 | + "version": "2.2.5", | ||
1458 | + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", | ||
1459 | + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", | ||
1460 | + "dev": true | ||
1461 | + }, | ||
1462 | + "@mrmlnc/readdir-enhanced": { | ||
1463 | + "version": "2.2.1", | ||
1464 | + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", | ||
1465 | + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", | ||
1466 | + "dev": true, | ||
1467 | + "requires": { | ||
1468 | + "call-me-maybe": "^1.0.1", | ||
1469 | + "glob-to-regexp": "^0.3.0" | ||
1470 | + } | ||
1471 | + }, | ||
1472 | + "@nodelib/fs.stat": { | ||
1473 | + "version": "1.1.3", | ||
1474 | + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", | ||
1475 | + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", | ||
1476 | + "dev": true | ||
1477 | + }, | ||
1478 | + "@parcel/fs": { | ||
1479 | + "version": "1.11.0", | ||
1480 | + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz", | ||
1481 | + "integrity": "sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==", | ||
1482 | + "dev": true, | ||
1483 | + "requires": { | ||
1484 | + "@parcel/utils": "^1.11.0", | ||
1485 | + "mkdirp": "^0.5.1", | ||
1486 | + "rimraf": "^2.6.2" | ||
1487 | + } | ||
1488 | + }, | ||
1489 | + "@parcel/logger": { | ||
1490 | + "version": "1.11.1", | ||
1491 | + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.1.tgz", | ||
1492 | + "integrity": "sha512-9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==", | ||
1493 | + "dev": true, | ||
1494 | + "requires": { | ||
1495 | + "@parcel/workers": "^1.11.0", | ||
1496 | + "chalk": "^2.1.0", | ||
1497 | + "grapheme-breaker": "^0.3.2", | ||
1498 | + "ora": "^2.1.0", | ||
1499 | + "strip-ansi": "^4.0.0" | ||
1500 | + } | ||
1501 | + }, | ||
1502 | + "@parcel/utils": { | ||
1503 | + "version": "1.11.0", | ||
1504 | + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz", | ||
1505 | + "integrity": "sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==", | ||
1506 | + "dev": true | ||
1507 | + }, | ||
1508 | + "@parcel/watcher": { | ||
1509 | + "version": "1.12.1", | ||
1510 | + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.1.tgz", | ||
1511 | + "integrity": "sha512-od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA==", | ||
1512 | + "dev": true, | ||
1513 | + "requires": { | ||
1514 | + "@parcel/utils": "^1.11.0", | ||
1515 | + "chokidar": "^2.1.5" | ||
1516 | + } | ||
1517 | + }, | ||
1518 | + "@parcel/workers": { | ||
1519 | + "version": "1.11.0", | ||
1520 | + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz", | ||
1521 | + "integrity": "sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==", | ||
1522 | + "dev": true, | ||
1523 | + "requires": { | ||
1524 | + "@parcel/utils": "^1.11.0", | ||
1525 | + "physical-cpu-count": "^2.0.0" | ||
1526 | + } | ||
1527 | + }, | ||
1528 | + "@types/q": { | ||
1529 | + "version": "1.5.2", | ||
1530 | + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", | ||
1531 | + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", | ||
1532 | + "dev": true | ||
1533 | + }, | ||
1534 | + "abab": { | ||
1535 | + "version": "2.0.3", | ||
1536 | + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", | ||
1537 | + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", | ||
1538 | + "dev": true | ||
1539 | + }, | ||
1540 | + "abbrev": { | ||
1541 | + "version": "1.1.1", | ||
1542 | + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", | ||
1543 | + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", | ||
1544 | + "dev": true | ||
1545 | + }, | ||
1546 | + "acorn": { | ||
1547 | + "version": "7.1.1", | ||
1548 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", | ||
1549 | + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", | ||
1550 | + "dev": true | ||
1551 | + }, | ||
1552 | + "acorn-globals": { | ||
1553 | + "version": "4.3.4", | ||
1554 | + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", | ||
1555 | + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", | ||
1556 | + "dev": true, | ||
1557 | + "requires": { | ||
1558 | + "acorn": "^6.0.1", | ||
1559 | + "acorn-walk": "^6.0.1" | ||
1560 | + }, | ||
1561 | + "dependencies": { | ||
1562 | + "acorn": { | ||
1563 | + "version": "6.4.1", | ||
1564 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", | ||
1565 | + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", | ||
1566 | + "dev": true | ||
1567 | + } | ||
1568 | + } | ||
1569 | + }, | ||
1570 | + "acorn-walk": { | ||
1571 | + "version": "6.2.0", | ||
1572 | + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", | ||
1573 | + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", | ||
1574 | + "dev": true | ||
1575 | + }, | ||
1576 | + "ajv": { | ||
1577 | + "version": "6.12.2", | ||
1578 | + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", | ||
1579 | + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", | ||
1580 | + "requires": { | ||
1581 | + "fast-deep-equal": "^3.1.1", | ||
1582 | + "fast-json-stable-stringify": "^2.0.0", | ||
1583 | + "json-schema-traverse": "^0.4.1", | ||
1584 | + "uri-js": "^4.2.2" | ||
1585 | + } | ||
1586 | + }, | ||
1587 | + "alphanum-sort": { | ||
1588 | + "version": "1.0.2", | ||
1589 | + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", | ||
1590 | + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", | ||
1591 | + "dev": true | ||
1592 | + }, | ||
1593 | + "ansi-regex": { | ||
1594 | + "version": "3.0.0", | ||
1595 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", | ||
1596 | + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", | ||
1597 | + "dev": true | ||
1598 | + }, | ||
1599 | + "ansi-styles": { | ||
1600 | + "version": "3.2.1", | ||
1601 | + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", | ||
1602 | + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", | ||
1603 | + "dev": true, | ||
1604 | + "requires": { | ||
1605 | + "color-convert": "^1.9.0" | ||
1606 | + } | ||
1607 | + }, | ||
1608 | + "ansi-to-html": { | ||
1609 | + "version": "0.6.14", | ||
1610 | + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", | ||
1611 | + "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", | ||
1612 | + "dev": true, | ||
1613 | + "requires": { | ||
1614 | + "entities": "^1.1.2" | ||
1615 | + }, | ||
1616 | + "dependencies": { | ||
1617 | + "entities": { | ||
1618 | + "version": "1.1.2", | ||
1619 | + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | ||
1620 | + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", | ||
1621 | + "dev": true | ||
1622 | + } | ||
1623 | + } | ||
1624 | + }, | ||
1625 | + "anymatch": { | ||
1626 | + "version": "2.0.0", | ||
1627 | + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", | ||
1628 | + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", | ||
1629 | + "dev": true, | ||
1630 | + "requires": { | ||
1631 | + "micromatch": "^3.1.4", | ||
1632 | + "normalize-path": "^2.1.1" | ||
1633 | + }, | ||
1634 | + "dependencies": { | ||
1635 | + "normalize-path": { | ||
1636 | + "version": "2.1.1", | ||
1637 | + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", | ||
1638 | + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", | ||
1639 | + "dev": true, | ||
1640 | + "requires": { | ||
1641 | + "remove-trailing-separator": "^1.0.1" | ||
1642 | + } | ||
1643 | + } | ||
1644 | + } | ||
1645 | + }, | ||
1646 | + "argparse": { | ||
1647 | + "version": "1.0.10", | ||
1648 | + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", | ||
1649 | + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", | ||
1650 | + "dev": true, | ||
1651 | + "requires": { | ||
1652 | + "sprintf-js": "~1.0.2" | ||
1653 | + } | ||
1654 | + }, | ||
1655 | + "arr-diff": { | ||
1656 | + "version": "4.0.0", | ||
1657 | + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", | ||
1658 | + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", | ||
1659 | + "dev": true | ||
1660 | + }, | ||
1661 | + "arr-flatten": { | ||
1662 | + "version": "1.1.0", | ||
1663 | + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", | ||
1664 | + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", | ||
1665 | + "dev": true | ||
1666 | + }, | ||
1667 | + "arr-union": { | ||
1668 | + "version": "3.1.0", | ||
1669 | + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", | ||
1670 | + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", | ||
1671 | + "dev": true | ||
1672 | + }, | ||
1673 | + "array-equal": { | ||
1674 | + "version": "1.0.0", | ||
1675 | + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", | ||
1676 | + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", | ||
1677 | + "dev": true | ||
1678 | + }, | ||
1679 | + "array-unique": { | ||
1680 | + "version": "0.3.2", | ||
1681 | + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", | ||
1682 | + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", | ||
1683 | + "dev": true | ||
1684 | + }, | ||
1685 | + "asn1": { | ||
1686 | + "version": "0.2.4", | ||
1687 | + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", | ||
1688 | + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", | ||
1689 | + "requires": { | ||
1690 | + "safer-buffer": "~2.1.0" | ||
1691 | + } | ||
1692 | + }, | ||
1693 | + "asn1.js": { | ||
1694 | + "version": "4.10.1", | ||
1695 | + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", | ||
1696 | + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", | ||
1697 | + "dev": true, | ||
1698 | + "requires": { | ||
1699 | + "bn.js": "^4.0.0", | ||
1700 | + "inherits": "^2.0.1", | ||
1701 | + "minimalistic-assert": "^1.0.0" | ||
1702 | + } | ||
1703 | + }, | ||
1704 | + "assert": { | ||
1705 | + "version": "1.5.0", | ||
1706 | + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", | ||
1707 | + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", | ||
1708 | + "dev": true, | ||
1709 | + "requires": { | ||
1710 | + "object-assign": "^4.1.1", | ||
1711 | + "util": "0.10.3" | ||
1712 | + }, | ||
1713 | + "dependencies": { | ||
1714 | + "inherits": { | ||
1715 | + "version": "2.0.1", | ||
1716 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", | ||
1717 | + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", | ||
1718 | + "dev": true | ||
1719 | + }, | ||
1720 | + "util": { | ||
1721 | + "version": "0.10.3", | ||
1722 | + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", | ||
1723 | + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", | ||
1724 | + "dev": true, | ||
1725 | + "requires": { | ||
1726 | + "inherits": "2.0.1" | ||
1727 | + } | ||
1728 | + } | ||
1729 | + } | ||
1730 | + }, | ||
1731 | + "assert-plus": { | ||
1732 | + "version": "1.0.0", | ||
1733 | + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
1734 | + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" | ||
1735 | + }, | ||
1736 | + "assign-symbols": { | ||
1737 | + "version": "1.0.0", | ||
1738 | + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", | ||
1739 | + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", | ||
1740 | + "dev": true | ||
1741 | + }, | ||
1742 | + "async-each": { | ||
1743 | + "version": "1.0.3", | ||
1744 | + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", | ||
1745 | + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", | ||
1746 | + "dev": true | ||
1747 | + }, | ||
1748 | + "async-limiter": { | ||
1749 | + "version": "1.0.1", | ||
1750 | + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", | ||
1751 | + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", | ||
1752 | + "dev": true | ||
1753 | + }, | ||
1754 | + "asynckit": { | ||
1755 | + "version": "0.4.0", | ||
1756 | + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||
1757 | + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" | ||
1758 | + }, | ||
1759 | + "atob": { | ||
1760 | + "version": "2.1.2", | ||
1761 | + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", | ||
1762 | + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", | ||
1763 | + "dev": true | ||
1764 | + }, | ||
1765 | + "aws-sign2": { | ||
1766 | + "version": "0.7.0", | ||
1767 | + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", | ||
1768 | + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" | ||
1769 | + }, | ||
1770 | + "aws4": { | ||
1771 | + "version": "1.9.1", | ||
1772 | + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", | ||
1773 | + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" | ||
1774 | + }, | ||
1775 | + "babel-plugin-dynamic-import-node": { | ||
1776 | + "version": "2.3.3", | ||
1777 | + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", | ||
1778 | + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", | ||
1779 | + "dev": true, | ||
1780 | + "requires": { | ||
1781 | + "object.assign": "^4.1.0" | ||
1782 | + } | ||
1783 | + }, | ||
1784 | + "babel-runtime": { | ||
1785 | + "version": "6.26.0", | ||
1786 | + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", | ||
1787 | + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", | ||
1788 | + "dev": true, | ||
1789 | + "requires": { | ||
1790 | + "core-js": "^2.4.0", | ||
1791 | + "regenerator-runtime": "^0.11.0" | ||
1792 | + }, | ||
1793 | + "dependencies": { | ||
1794 | + "regenerator-runtime": { | ||
1795 | + "version": "0.11.1", | ||
1796 | + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", | ||
1797 | + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", | ||
1798 | + "dev": true | ||
1799 | + } | ||
1800 | + } | ||
1801 | + }, | ||
1802 | + "babel-types": { | ||
1803 | + "version": "6.26.0", | ||
1804 | + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", | ||
1805 | + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", | ||
1806 | + "dev": true, | ||
1807 | + "requires": { | ||
1808 | + "babel-runtime": "^6.26.0", | ||
1809 | + "esutils": "^2.0.2", | ||
1810 | + "lodash": "^4.17.4", | ||
1811 | + "to-fast-properties": "^1.0.3" | ||
1812 | + }, | ||
1813 | + "dependencies": { | ||
1814 | + "to-fast-properties": { | ||
1815 | + "version": "1.0.3", | ||
1816 | + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", | ||
1817 | + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", | ||
1818 | + "dev": true | ||
1819 | + } | ||
1820 | + } | ||
1821 | + }, | ||
1822 | + "babylon-walk": { | ||
1823 | + "version": "1.0.2", | ||
1824 | + "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz", | ||
1825 | + "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=", | ||
1826 | + "dev": true, | ||
1827 | + "requires": { | ||
1828 | + "babel-runtime": "^6.11.6", | ||
1829 | + "babel-types": "^6.15.0", | ||
1830 | + "lodash.clone": "^4.5.0" | ||
1831 | + } | ||
1832 | + }, | ||
1833 | "balanced-match": { | ||
1834 | "version": "1.0.0", | ||
1835 | - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||
1836 | - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", | ||
1837 | + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||
1838 | + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", | ||
1839 | + "dev": true | ||
1840 | + }, | ||
1841 | + "base": { | ||
1842 | + "version": "0.11.2", | ||
1843 | + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", | ||
1844 | + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", | ||
1845 | + "dev": true, | ||
1846 | + "requires": { | ||
1847 | + "cache-base": "^1.0.1", | ||
1848 | + "class-utils": "^0.3.5", | ||
1849 | + "component-emitter": "^1.2.1", | ||
1850 | + "define-property": "^1.0.0", | ||
1851 | + "isobject": "^3.0.1", | ||
1852 | + "mixin-deep": "^1.2.0", | ||
1853 | + "pascalcase": "^0.1.1" | ||
1854 | + }, | ||
1855 | + "dependencies": { | ||
1856 | + "define-property": { | ||
1857 | + "version": "1.0.0", | ||
1858 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | ||
1859 | + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", | ||
1860 | + "dev": true, | ||
1861 | + "requires": { | ||
1862 | + "is-descriptor": "^1.0.0" | ||
1863 | + } | ||
1864 | + }, | ||
1865 | + "is-accessor-descriptor": { | ||
1866 | + "version": "1.0.0", | ||
1867 | + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", | ||
1868 | + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", | ||
1869 | + "dev": true, | ||
1870 | + "requires": { | ||
1871 | + "kind-of": "^6.0.0" | ||
1872 | + } | ||
1873 | + }, | ||
1874 | + "is-data-descriptor": { | ||
1875 | + "version": "1.0.0", | ||
1876 | + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", | ||
1877 | + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", | ||
1878 | + "dev": true, | ||
1879 | + "requires": { | ||
1880 | + "kind-of": "^6.0.0" | ||
1881 | + } | ||
1882 | + }, | ||
1883 | + "is-descriptor": { | ||
1884 | + "version": "1.0.2", | ||
1885 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", | ||
1886 | + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", | ||
1887 | + "dev": true, | ||
1888 | + "requires": { | ||
1889 | + "is-accessor-descriptor": "^1.0.0", | ||
1890 | + "is-data-descriptor": "^1.0.0", | ||
1891 | + "kind-of": "^6.0.2" | ||
1892 | + } | ||
1893 | + } | ||
1894 | + } | ||
1895 | + }, | ||
1896 | + "base64-js": { | ||
1897 | + "version": "1.3.1", | ||
1898 | + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", | ||
1899 | + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", | ||
1900 | + "dev": true | ||
1901 | + }, | ||
1902 | + "bcrypt-pbkdf": { | ||
1903 | + "version": "1.0.2", | ||
1904 | + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", | ||
1905 | + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", | ||
1906 | + "requires": { | ||
1907 | + "tweetnacl": "^0.14.3" | ||
1908 | + } | ||
1909 | + }, | ||
1910 | + "binary-extensions": { | ||
1911 | + "version": "1.13.1", | ||
1912 | + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", | ||
1913 | + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", | ||
1914 | + "dev": true | ||
1915 | + }, | ||
1916 | + "bindings": { | ||
1917 | + "version": "1.5.0", | ||
1918 | + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", | ||
1919 | + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", | ||
1920 | + "dev": true, | ||
1921 | + "requires": { | ||
1922 | + "file-uri-to-path": "1.0.0" | ||
1923 | + } | ||
1924 | + }, | ||
1925 | + "bn.js": { | ||
1926 | + "version": "4.11.8", | ||
1927 | + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", | ||
1928 | + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", | ||
1929 | + "dev": true | ||
1930 | + }, | ||
1931 | + "boolbase": { | ||
1932 | + "version": "1.0.0", | ||
1933 | + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", | ||
1934 | + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", | ||
1935 | + "dev": true | ||
1936 | + }, | ||
1937 | + "brace-expansion": { | ||
1938 | + "version": "1.1.11", | ||
1939 | + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||
1940 | + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||
1941 | + "dev": true, | ||
1942 | + "requires": { | ||
1943 | + "balanced-match": "^1.0.0", | ||
1944 | + "concat-map": "0.0.1" | ||
1945 | + } | ||
1946 | + }, | ||
1947 | + "braces": { | ||
1948 | + "version": "2.3.2", | ||
1949 | + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", | ||
1950 | + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", | ||
1951 | + "dev": true, | ||
1952 | + "requires": { | ||
1953 | + "arr-flatten": "^1.1.0", | ||
1954 | + "array-unique": "^0.3.2", | ||
1955 | + "extend-shallow": "^2.0.1", | ||
1956 | + "fill-range": "^4.0.0", | ||
1957 | + "isobject": "^3.0.1", | ||
1958 | + "repeat-element": "^1.1.2", | ||
1959 | + "snapdragon": "^0.8.1", | ||
1960 | + "snapdragon-node": "^2.0.1", | ||
1961 | + "split-string": "^3.0.2", | ||
1962 | + "to-regex": "^3.0.1" | ||
1963 | + }, | ||
1964 | + "dependencies": { | ||
1965 | + "extend-shallow": { | ||
1966 | + "version": "2.0.1", | ||
1967 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||
1968 | + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||
1969 | + "dev": true, | ||
1970 | + "requires": { | ||
1971 | + "is-extendable": "^0.1.0" | ||
1972 | + } | ||
1973 | + } | ||
1974 | + } | ||
1975 | + }, | ||
1976 | + "brfs": { | ||
1977 | + "version": "1.6.1", | ||
1978 | + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", | ||
1979 | + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", | ||
1980 | + "dev": true, | ||
1981 | + "requires": { | ||
1982 | + "quote-stream": "^1.0.1", | ||
1983 | + "resolve": "^1.1.5", | ||
1984 | + "static-module": "^2.2.0", | ||
1985 | + "through2": "^2.0.0" | ||
1986 | + } | ||
1987 | + }, | ||
1988 | + "brorand": { | ||
1989 | + "version": "1.1.0", | ||
1990 | + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", | ||
1991 | + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", | ||
1992 | + "dev": true | ||
1993 | + }, | ||
1994 | + "browser-process-hrtime": { | ||
1995 | + "version": "1.0.0", | ||
1996 | + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", | ||
1997 | + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", | ||
1998 | + "dev": true | ||
1999 | + }, | ||
2000 | + "browserify-aes": { | ||
2001 | + "version": "1.2.0", | ||
2002 | + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", | ||
2003 | + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", | ||
2004 | + "dev": true, | ||
2005 | + "requires": { | ||
2006 | + "buffer-xor": "^1.0.3", | ||
2007 | + "cipher-base": "^1.0.0", | ||
2008 | + "create-hash": "^1.1.0", | ||
2009 | + "evp_bytestokey": "^1.0.3", | ||
2010 | + "inherits": "^2.0.1", | ||
2011 | + "safe-buffer": "^5.0.1" | ||
2012 | + } | ||
2013 | + }, | ||
2014 | + "browserify-cipher": { | ||
2015 | + "version": "1.0.1", | ||
2016 | + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", | ||
2017 | + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", | ||
2018 | + "dev": true, | ||
2019 | + "requires": { | ||
2020 | + "browserify-aes": "^1.0.4", | ||
2021 | + "browserify-des": "^1.0.0", | ||
2022 | + "evp_bytestokey": "^1.0.0" | ||
2023 | + } | ||
2024 | + }, | ||
2025 | + "browserify-des": { | ||
2026 | + "version": "1.0.2", | ||
2027 | + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", | ||
2028 | + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", | ||
2029 | + "dev": true, | ||
2030 | + "requires": { | ||
2031 | + "cipher-base": "^1.0.1", | ||
2032 | + "des.js": "^1.0.0", | ||
2033 | + "inherits": "^2.0.1", | ||
2034 | + "safe-buffer": "^5.1.2" | ||
2035 | + } | ||
2036 | + }, | ||
2037 | + "browserify-rsa": { | ||
2038 | + "version": "4.0.1", | ||
2039 | + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", | ||
2040 | + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", | ||
2041 | + "dev": true, | ||
2042 | + "requires": { | ||
2043 | + "bn.js": "^4.1.0", | ||
2044 | + "randombytes": "^2.0.1" | ||
2045 | + } | ||
2046 | + }, | ||
2047 | + "browserify-sign": { | ||
2048 | + "version": "4.0.4", | ||
2049 | + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", | ||
2050 | + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", | ||
2051 | + "dev": true, | ||
2052 | + "requires": { | ||
2053 | + "bn.js": "^4.1.1", | ||
2054 | + "browserify-rsa": "^4.0.0", | ||
2055 | + "create-hash": "^1.1.0", | ||
2056 | + "create-hmac": "^1.1.2", | ||
2057 | + "elliptic": "^6.0.0", | ||
2058 | + "inherits": "^2.0.1", | ||
2059 | + "parse-asn1": "^5.0.0" | ||
2060 | + } | ||
2061 | + }, | ||
2062 | + "browserify-zlib": { | ||
2063 | + "version": "0.2.0", | ||
2064 | + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", | ||
2065 | + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", | ||
2066 | + "dev": true, | ||
2067 | + "requires": { | ||
2068 | + "pako": "~1.0.5" | ||
2069 | + }, | ||
2070 | + "dependencies": { | ||
2071 | + "pako": { | ||
2072 | + "version": "1.0.11", | ||
2073 | + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", | ||
2074 | + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", | ||
2075 | + "dev": true | ||
2076 | + } | ||
2077 | + } | ||
2078 | + }, | ||
2079 | + "browserslist": { | ||
2080 | + "version": "4.12.0", | ||
2081 | + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", | ||
2082 | + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", | ||
2083 | + "dev": true, | ||
2084 | + "requires": { | ||
2085 | + "caniuse-lite": "^1.0.30001043", | ||
2086 | + "electron-to-chromium": "^1.3.413", | ||
2087 | + "node-releases": "^1.1.53", | ||
2088 | + "pkg-up": "^2.0.0" | ||
2089 | + } | ||
2090 | + }, | ||
2091 | + "buffer": { | ||
2092 | + "version": "4.9.2", | ||
2093 | + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", | ||
2094 | + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", | ||
2095 | + "dev": true, | ||
2096 | + "requires": { | ||
2097 | + "base64-js": "^1.0.2", | ||
2098 | + "ieee754": "^1.1.4", | ||
2099 | + "isarray": "^1.0.0" | ||
2100 | + } | ||
2101 | + }, | ||
2102 | + "buffer-equal": { | ||
2103 | + "version": "0.0.1", | ||
2104 | + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", | ||
2105 | + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", | ||
2106 | + "dev": true | ||
2107 | + }, | ||
2108 | + "buffer-from": { | ||
2109 | + "version": "1.1.1", | ||
2110 | + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | ||
2111 | + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", | ||
2112 | + "dev": true | ||
2113 | + }, | ||
2114 | + "buffer-xor": { | ||
2115 | + "version": "1.0.3", | ||
2116 | + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", | ||
2117 | + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", | ||
2118 | + "dev": true | ||
2119 | + }, | ||
2120 | + "builtin-status-codes": { | ||
2121 | + "version": "3.0.0", | ||
2122 | + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", | ||
2123 | + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", | ||
2124 | + "dev": true | ||
2125 | + }, | ||
2126 | + "cache-base": { | ||
2127 | + "version": "1.0.1", | ||
2128 | + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", | ||
2129 | + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", | ||
2130 | + "dev": true, | ||
2131 | + "requires": { | ||
2132 | + "collection-visit": "^1.0.0", | ||
2133 | + "component-emitter": "^1.2.1", | ||
2134 | + "get-value": "^2.0.6", | ||
2135 | + "has-value": "^1.0.0", | ||
2136 | + "isobject": "^3.0.1", | ||
2137 | + "set-value": "^2.0.0", | ||
2138 | + "to-object-path": "^0.3.0", | ||
2139 | + "union-value": "^1.0.0", | ||
2140 | + "unset-value": "^1.0.0" | ||
2141 | + } | ||
2142 | + }, | ||
2143 | + "call-me-maybe": { | ||
2144 | + "version": "1.0.1", | ||
2145 | + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", | ||
2146 | + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", | ||
2147 | + "dev": true | ||
2148 | + }, | ||
2149 | + "caller-callsite": { | ||
2150 | + "version": "2.0.0", | ||
2151 | + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", | ||
2152 | + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", | ||
2153 | + "dev": true, | ||
2154 | + "requires": { | ||
2155 | + "callsites": "^2.0.0" | ||
2156 | + } | ||
2157 | + }, | ||
2158 | + "caller-path": { | ||
2159 | + "version": "2.0.0", | ||
2160 | + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", | ||
2161 | + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", | ||
2162 | + "dev": true, | ||
2163 | + "requires": { | ||
2164 | + "caller-callsite": "^2.0.0" | ||
2165 | + } | ||
2166 | + }, | ||
2167 | + "callsites": { | ||
2168 | + "version": "2.0.0", | ||
2169 | + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", | ||
2170 | + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", | ||
2171 | + "dev": true | ||
2172 | + }, | ||
2173 | + "camelcase": { | ||
2174 | + "version": "5.3.1", | ||
2175 | + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", | ||
2176 | + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", | ||
2177 | + "dev": true | ||
2178 | + }, | ||
2179 | + "caniuse-api": { | ||
2180 | + "version": "3.0.0", | ||
2181 | + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", | ||
2182 | + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", | ||
2183 | + "dev": true, | ||
2184 | + "requires": { | ||
2185 | + "browserslist": "^4.0.0", | ||
2186 | + "caniuse-lite": "^1.0.0", | ||
2187 | + "lodash.memoize": "^4.1.2", | ||
2188 | + "lodash.uniq": "^4.5.0" | ||
2189 | + } | ||
2190 | + }, | ||
2191 | + "caniuse-lite": { | ||
2192 | + "version": "1.0.30001048", | ||
2193 | + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz", | ||
2194 | + "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==", | ||
2195 | + "dev": true | ||
2196 | + }, | ||
2197 | + "caseless": { | ||
2198 | + "version": "0.12.0", | ||
2199 | + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | ||
2200 | + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" | ||
2201 | + }, | ||
2202 | + "chalk": { | ||
2203 | + "version": "2.4.2", | ||
2204 | + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | ||
2205 | + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", | ||
2206 | + "dev": true, | ||
2207 | + "requires": { | ||
2208 | + "ansi-styles": "^3.2.1", | ||
2209 | + "escape-string-regexp": "^1.0.5", | ||
2210 | + "supports-color": "^5.3.0" | ||
2211 | + }, | ||
2212 | + "dependencies": { | ||
2213 | + "supports-color": { | ||
2214 | + "version": "5.5.0", | ||
2215 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
2216 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
2217 | + "dev": true, | ||
2218 | + "requires": { | ||
2219 | + "has-flag": "^3.0.0" | ||
2220 | + } | ||
2221 | + } | ||
2222 | + } | ||
2223 | + }, | ||
2224 | + "chokidar": { | ||
2225 | + "version": "2.1.8", | ||
2226 | + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", | ||
2227 | + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", | ||
2228 | + "dev": true, | ||
2229 | + "requires": { | ||
2230 | + "anymatch": "^2.0.0", | ||
2231 | + "async-each": "^1.0.1", | ||
2232 | + "braces": "^2.3.2", | ||
2233 | + "fsevents": "^1.2.7", | ||
2234 | + "glob-parent": "^3.1.0", | ||
2235 | + "inherits": "^2.0.3", | ||
2236 | + "is-binary-path": "^1.0.0", | ||
2237 | + "is-glob": "^4.0.0", | ||
2238 | + "normalize-path": "^3.0.0", | ||
2239 | + "path-is-absolute": "^1.0.0", | ||
2240 | + "readdirp": "^2.2.1", | ||
2241 | + "upath": "^1.1.1" | ||
2242 | + }, | ||
2243 | + "dependencies": { | ||
2244 | + "fsevents": { | ||
2245 | + "version": "1.2.12", | ||
2246 | + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", | ||
2247 | + "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", | ||
2248 | + "dev": true, | ||
2249 | + "optional": true, | ||
2250 | + "requires": { | ||
2251 | + "bindings": "^1.5.0", | ||
2252 | + "nan": "^2.12.1", | ||
2253 | + "node-pre-gyp": "*" | ||
2254 | + }, | ||
2255 | + "dependencies": { | ||
2256 | + "abbrev": { | ||
2257 | + "version": "1.1.1", | ||
2258 | + "bundled": true, | ||
2259 | + "dev": true, | ||
2260 | + "optional": true | ||
2261 | + }, | ||
2262 | + "ansi-regex": { | ||
2263 | + "version": "2.1.1", | ||
2264 | + "bundled": true, | ||
2265 | + "dev": true, | ||
2266 | + "optional": true | ||
2267 | + }, | ||
2268 | + "aproba": { | ||
2269 | + "version": "1.2.0", | ||
2270 | + "bundled": true, | ||
2271 | + "dev": true, | ||
2272 | + "optional": true | ||
2273 | + }, | ||
2274 | + "are-we-there-yet": { | ||
2275 | + "version": "1.1.5", | ||
2276 | + "bundled": true, | ||
2277 | + "dev": true, | ||
2278 | + "optional": true, | ||
2279 | + "requires": { | ||
2280 | + "delegates": "^1.0.0", | ||
2281 | + "readable-stream": "^2.0.6" | ||
2282 | + } | ||
2283 | + }, | ||
2284 | + "balanced-match": { | ||
2285 | + "version": "1.0.0", | ||
2286 | + "bundled": true, | ||
2287 | + "dev": true, | ||
2288 | + "optional": true | ||
2289 | + }, | ||
2290 | + "brace-expansion": { | ||
2291 | + "version": "1.1.11", | ||
2292 | + "bundled": true, | ||
2293 | + "dev": true, | ||
2294 | + "optional": true, | ||
2295 | + "requires": { | ||
2296 | + "balanced-match": "^1.0.0", | ||
2297 | + "concat-map": "0.0.1" | ||
2298 | + } | ||
2299 | + }, | ||
2300 | + "chownr": { | ||
2301 | + "version": "1.1.4", | ||
2302 | + "bundled": true, | ||
2303 | + "dev": true, | ||
2304 | + "optional": true | ||
2305 | + }, | ||
2306 | + "code-point-at": { | ||
2307 | + "version": "1.1.0", | ||
2308 | + "bundled": true, | ||
2309 | + "dev": true, | ||
2310 | + "optional": true | ||
2311 | + }, | ||
2312 | + "concat-map": { | ||
2313 | + "version": "0.0.1", | ||
2314 | + "bundled": true, | ||
2315 | + "dev": true, | ||
2316 | + "optional": true | ||
2317 | + }, | ||
2318 | + "console-control-strings": { | ||
2319 | + "version": "1.1.0", | ||
2320 | + "bundled": true, | ||
2321 | + "dev": true, | ||
2322 | + "optional": true | ||
2323 | + }, | ||
2324 | + "core-util-is": { | ||
2325 | + "version": "1.0.2", | ||
2326 | + "bundled": true, | ||
2327 | + "dev": true, | ||
2328 | + "optional": true | ||
2329 | + }, | ||
2330 | + "debug": { | ||
2331 | + "version": "3.2.6", | ||
2332 | + "bundled": true, | ||
2333 | + "dev": true, | ||
2334 | + "optional": true, | ||
2335 | + "requires": { | ||
2336 | + "ms": "^2.1.1" | ||
2337 | + } | ||
2338 | + }, | ||
2339 | + "deep-extend": { | ||
2340 | + "version": "0.6.0", | ||
2341 | + "bundled": true, | ||
2342 | + "dev": true, | ||
2343 | + "optional": true | ||
2344 | + }, | ||
2345 | + "delegates": { | ||
2346 | + "version": "1.0.0", | ||
2347 | + "bundled": true, | ||
2348 | + "dev": true, | ||
2349 | + "optional": true | ||
2350 | + }, | ||
2351 | + "detect-libc": { | ||
2352 | + "version": "1.0.3", | ||
2353 | + "bundled": true, | ||
2354 | + "dev": true, | ||
2355 | + "optional": true | ||
2356 | + }, | ||
2357 | + "fs-minipass": { | ||
2358 | + "version": "1.2.7", | ||
2359 | + "bundled": true, | ||
2360 | + "dev": true, | ||
2361 | + "optional": true, | ||
2362 | + "requires": { | ||
2363 | + "minipass": "^2.6.0" | ||
2364 | + } | ||
2365 | + }, | ||
2366 | + "fs.realpath": { | ||
2367 | + "version": "1.0.0", | ||
2368 | + "bundled": true, | ||
2369 | + "dev": true, | ||
2370 | + "optional": true | ||
2371 | + }, | ||
2372 | + "gauge": { | ||
2373 | + "version": "2.7.4", | ||
2374 | + "bundled": true, | ||
2375 | + "dev": true, | ||
2376 | + "optional": true, | ||
2377 | + "requires": { | ||
2378 | + "aproba": "^1.0.3", | ||
2379 | + "console-control-strings": "^1.0.0", | ||
2380 | + "has-unicode": "^2.0.0", | ||
2381 | + "object-assign": "^4.1.0", | ||
2382 | + "signal-exit": "^3.0.0", | ||
2383 | + "string-width": "^1.0.1", | ||
2384 | + "strip-ansi": "^3.0.1", | ||
2385 | + "wide-align": "^1.1.0" | ||
2386 | + } | ||
2387 | + }, | ||
2388 | + "glob": { | ||
2389 | + "version": "7.1.6", | ||
2390 | + "bundled": true, | ||
2391 | + "dev": true, | ||
2392 | + "optional": true, | ||
2393 | + "requires": { | ||
2394 | + "fs.realpath": "^1.0.0", | ||
2395 | + "inflight": "^1.0.4", | ||
2396 | + "inherits": "2", | ||
2397 | + "minimatch": "^3.0.4", | ||
2398 | + "once": "^1.3.0", | ||
2399 | + "path-is-absolute": "^1.0.0" | ||
2400 | + } | ||
2401 | + }, | ||
2402 | + "has-unicode": { | ||
2403 | + "version": "2.0.1", | ||
2404 | + "bundled": true, | ||
2405 | + "dev": true, | ||
2406 | + "optional": true | ||
2407 | + }, | ||
2408 | + "iconv-lite": { | ||
2409 | + "version": "0.4.24", | ||
2410 | + "bundled": true, | ||
2411 | + "dev": true, | ||
2412 | + "optional": true, | ||
2413 | + "requires": { | ||
2414 | + "safer-buffer": ">= 2.1.2 < 3" | ||
2415 | + } | ||
2416 | + }, | ||
2417 | + "ignore-walk": { | ||
2418 | + "version": "3.0.3", | ||
2419 | + "bundled": true, | ||
2420 | + "dev": true, | ||
2421 | + "optional": true, | ||
2422 | + "requires": { | ||
2423 | + "minimatch": "^3.0.4" | ||
2424 | + } | ||
2425 | + }, | ||
2426 | + "inflight": { | ||
2427 | + "version": "1.0.6", | ||
2428 | + "bundled": true, | ||
2429 | + "dev": true, | ||
2430 | + "optional": true, | ||
2431 | + "requires": { | ||
2432 | + "once": "^1.3.0", | ||
2433 | + "wrappy": "1" | ||
2434 | + } | ||
2435 | + }, | ||
2436 | + "inherits": { | ||
2437 | + "version": "2.0.4", | ||
2438 | + "bundled": true, | ||
2439 | + "dev": true, | ||
2440 | + "optional": true | ||
2441 | + }, | ||
2442 | + "ini": { | ||
2443 | + "version": "1.3.5", | ||
2444 | + "bundled": true, | ||
2445 | + "dev": true, | ||
2446 | + "optional": true | ||
2447 | + }, | ||
2448 | + "is-fullwidth-code-point": { | ||
2449 | + "version": "1.0.0", | ||
2450 | + "bundled": true, | ||
2451 | + "dev": true, | ||
2452 | + "optional": true, | ||
2453 | + "requires": { | ||
2454 | + "number-is-nan": "^1.0.0" | ||
2455 | + } | ||
2456 | + }, | ||
2457 | + "isarray": { | ||
2458 | + "version": "1.0.0", | ||
2459 | + "bundled": true, | ||
2460 | + "dev": true, | ||
2461 | + "optional": true | ||
2462 | + }, | ||
2463 | + "minimatch": { | ||
2464 | + "version": "3.0.4", | ||
2465 | + "bundled": true, | ||
2466 | + "dev": true, | ||
2467 | + "optional": true, | ||
2468 | + "requires": { | ||
2469 | + "brace-expansion": "^1.1.7" | ||
2470 | + } | ||
2471 | + }, | ||
2472 | + "minimist": { | ||
2473 | + "version": "1.2.5", | ||
2474 | + "bundled": true, | ||
2475 | + "dev": true, | ||
2476 | + "optional": true | ||
2477 | + }, | ||
2478 | + "minipass": { | ||
2479 | + "version": "2.9.0", | ||
2480 | + "bundled": true, | ||
2481 | + "dev": true, | ||
2482 | + "optional": true, | ||
2483 | + "requires": { | ||
2484 | + "safe-buffer": "^5.1.2", | ||
2485 | + "yallist": "^3.0.0" | ||
2486 | + } | ||
2487 | + }, | ||
2488 | + "minizlib": { | ||
2489 | + "version": "1.3.3", | ||
2490 | + "bundled": true, | ||
2491 | + "dev": true, | ||
2492 | + "optional": true, | ||
2493 | + "requires": { | ||
2494 | + "minipass": "^2.9.0" | ||
2495 | + } | ||
2496 | + }, | ||
2497 | + "mkdirp": { | ||
2498 | + "version": "0.5.3", | ||
2499 | + "bundled": true, | ||
2500 | + "dev": true, | ||
2501 | + "optional": true, | ||
2502 | + "requires": { | ||
2503 | + "minimist": "^1.2.5" | ||
2504 | + } | ||
2505 | + }, | ||
2506 | + "ms": { | ||
2507 | + "version": "2.1.2", | ||
2508 | + "bundled": true, | ||
2509 | + "dev": true, | ||
2510 | + "optional": true | ||
2511 | + }, | ||
2512 | + "needle": { | ||
2513 | + "version": "2.3.3", | ||
2514 | + "bundled": true, | ||
2515 | + "dev": true, | ||
2516 | + "optional": true, | ||
2517 | + "requires": { | ||
2518 | + "debug": "^3.2.6", | ||
2519 | + "iconv-lite": "^0.4.4", | ||
2520 | + "sax": "^1.2.4" | ||
2521 | + } | ||
2522 | + }, | ||
2523 | + "node-pre-gyp": { | ||
2524 | + "version": "0.14.0", | ||
2525 | + "bundled": true, | ||
2526 | + "dev": true, | ||
2527 | + "optional": true, | ||
2528 | + "requires": { | ||
2529 | + "detect-libc": "^1.0.2", | ||
2530 | + "mkdirp": "^0.5.1", | ||
2531 | + "needle": "^2.2.1", | ||
2532 | + "nopt": "^4.0.1", | ||
2533 | + "npm-packlist": "^1.1.6", | ||
2534 | + "npmlog": "^4.0.2", | ||
2535 | + "rc": "^1.2.7", | ||
2536 | + "rimraf": "^2.6.1", | ||
2537 | + "semver": "^5.3.0", | ||
2538 | + "tar": "^4.4.2" | ||
2539 | + } | ||
2540 | + }, | ||
2541 | + "nopt": { | ||
2542 | + "version": "4.0.3", | ||
2543 | + "bundled": true, | ||
2544 | + "dev": true, | ||
2545 | + "optional": true, | ||
2546 | + "requires": { | ||
2547 | + "abbrev": "1", | ||
2548 | + "osenv": "^0.1.4" | ||
2549 | + } | ||
2550 | + }, | ||
2551 | + "npm-bundled": { | ||
2552 | + "version": "1.1.1", | ||
2553 | + "bundled": true, | ||
2554 | + "dev": true, | ||
2555 | + "optional": true, | ||
2556 | + "requires": { | ||
2557 | + "npm-normalize-package-bin": "^1.0.1" | ||
2558 | + } | ||
2559 | + }, | ||
2560 | + "npm-normalize-package-bin": { | ||
2561 | + "version": "1.0.1", | ||
2562 | + "bundled": true, | ||
2563 | + "dev": true, | ||
2564 | + "optional": true | ||
2565 | + }, | ||
2566 | + "npm-packlist": { | ||
2567 | + "version": "1.4.8", | ||
2568 | + "bundled": true, | ||
2569 | + "dev": true, | ||
2570 | + "optional": true, | ||
2571 | + "requires": { | ||
2572 | + "ignore-walk": "^3.0.1", | ||
2573 | + "npm-bundled": "^1.0.1", | ||
2574 | + "npm-normalize-package-bin": "^1.0.1" | ||
2575 | + } | ||
2576 | + }, | ||
2577 | + "npmlog": { | ||
2578 | + "version": "4.1.2", | ||
2579 | + "bundled": true, | ||
2580 | + "dev": true, | ||
2581 | + "optional": true, | ||
2582 | + "requires": { | ||
2583 | + "are-we-there-yet": "~1.1.2", | ||
2584 | + "console-control-strings": "~1.1.0", | ||
2585 | + "gauge": "~2.7.3", | ||
2586 | + "set-blocking": "~2.0.0" | ||
2587 | + } | ||
2588 | + }, | ||
2589 | + "number-is-nan": { | ||
2590 | + "version": "1.0.1", | ||
2591 | + "bundled": true, | ||
2592 | + "dev": true, | ||
2593 | + "optional": true | ||
2594 | + }, | ||
2595 | + "object-assign": { | ||
2596 | + "version": "4.1.1", | ||
2597 | + "bundled": true, | ||
2598 | + "dev": true, | ||
2599 | + "optional": true | ||
2600 | + }, | ||
2601 | + "once": { | ||
2602 | + "version": "1.4.0", | ||
2603 | + "bundled": true, | ||
2604 | + "dev": true, | ||
2605 | + "optional": true, | ||
2606 | + "requires": { | ||
2607 | + "wrappy": "1" | ||
2608 | + } | ||
2609 | + }, | ||
2610 | + "os-homedir": { | ||
2611 | + "version": "1.0.2", | ||
2612 | + "bundled": true, | ||
2613 | + "dev": true, | ||
2614 | + "optional": true | ||
2615 | + }, | ||
2616 | + "os-tmpdir": { | ||
2617 | + "version": "1.0.2", | ||
2618 | + "bundled": true, | ||
2619 | + "dev": true, | ||
2620 | + "optional": true | ||
2621 | + }, | ||
2622 | + "osenv": { | ||
2623 | + "version": "0.1.5", | ||
2624 | + "bundled": true, | ||
2625 | + "dev": true, | ||
2626 | + "optional": true, | ||
2627 | + "requires": { | ||
2628 | + "os-homedir": "^1.0.0", | ||
2629 | + "os-tmpdir": "^1.0.0" | ||
2630 | + } | ||
2631 | + }, | ||
2632 | + "path-is-absolute": { | ||
2633 | + "version": "1.0.1", | ||
2634 | + "bundled": true, | ||
2635 | + "dev": true, | ||
2636 | + "optional": true | ||
2637 | + }, | ||
2638 | + "process-nextick-args": { | ||
2639 | + "version": "2.0.1", | ||
2640 | + "bundled": true, | ||
2641 | + "dev": true, | ||
2642 | + "optional": true | ||
2643 | + }, | ||
2644 | + "rc": { | ||
2645 | + "version": "1.2.8", | ||
2646 | + "bundled": true, | ||
2647 | + "dev": true, | ||
2648 | + "optional": true, | ||
2649 | + "requires": { | ||
2650 | + "deep-extend": "^0.6.0", | ||
2651 | + "ini": "~1.3.0", | ||
2652 | + "minimist": "^1.2.0", | ||
2653 | + "strip-json-comments": "~2.0.1" | ||
2654 | + } | ||
2655 | + }, | ||
2656 | + "readable-stream": { | ||
2657 | + "version": "2.3.7", | ||
2658 | + "bundled": true, | ||
2659 | + "dev": true, | ||
2660 | + "optional": true, | ||
2661 | + "requires": { | ||
2662 | + "core-util-is": "~1.0.0", | ||
2663 | + "inherits": "~2.0.3", | ||
2664 | + "isarray": "~1.0.0", | ||
2665 | + "process-nextick-args": "~2.0.0", | ||
2666 | + "safe-buffer": "~5.1.1", | ||
2667 | + "string_decoder": "~1.1.1", | ||
2668 | + "util-deprecate": "~1.0.1" | ||
2669 | + } | ||
2670 | + }, | ||
2671 | + "rimraf": { | ||
2672 | + "version": "2.7.1", | ||
2673 | + "bundled": true, | ||
2674 | + "dev": true, | ||
2675 | + "optional": true, | ||
2676 | + "requires": { | ||
2677 | + "glob": "^7.1.3" | ||
2678 | + } | ||
2679 | + }, | ||
2680 | + "safe-buffer": { | ||
2681 | + "version": "5.1.2", | ||
2682 | + "bundled": true, | ||
2683 | + "dev": true, | ||
2684 | + "optional": true | ||
2685 | + }, | ||
2686 | + "safer-buffer": { | ||
2687 | + "version": "2.1.2", | ||
2688 | + "bundled": true, | ||
2689 | + "dev": true, | ||
2690 | + "optional": true | ||
2691 | + }, | ||
2692 | + "sax": { | ||
2693 | + "version": "1.2.4", | ||
2694 | + "bundled": true, | ||
2695 | + "dev": true, | ||
2696 | + "optional": true | ||
2697 | + }, | ||
2698 | + "semver": { | ||
2699 | + "version": "5.7.1", | ||
2700 | + "bundled": true, | ||
2701 | + "dev": true, | ||
2702 | + "optional": true | ||
2703 | + }, | ||
2704 | + "set-blocking": { | ||
2705 | + "version": "2.0.0", | ||
2706 | + "bundled": true, | ||
2707 | + "dev": true, | ||
2708 | + "optional": true | ||
2709 | + }, | ||
2710 | + "signal-exit": { | ||
2711 | + "version": "3.0.2", | ||
2712 | + "bundled": true, | ||
2713 | + "dev": true, | ||
2714 | + "optional": true | ||
2715 | + }, | ||
2716 | + "string-width": { | ||
2717 | + "version": "1.0.2", | ||
2718 | + "bundled": true, | ||
2719 | + "dev": true, | ||
2720 | + "optional": true, | ||
2721 | + "requires": { | ||
2722 | + "code-point-at": "^1.0.0", | ||
2723 | + "is-fullwidth-code-point": "^1.0.0", | ||
2724 | + "strip-ansi": "^3.0.0" | ||
2725 | + } | ||
2726 | + }, | ||
2727 | + "string_decoder": { | ||
2728 | + "version": "1.1.1", | ||
2729 | + "bundled": true, | ||
2730 | + "dev": true, | ||
2731 | + "optional": true, | ||
2732 | + "requires": { | ||
2733 | + "safe-buffer": "~5.1.0" | ||
2734 | + } | ||
2735 | + }, | ||
2736 | + "strip-ansi": { | ||
2737 | + "version": "3.0.1", | ||
2738 | + "bundled": true, | ||
2739 | + "dev": true, | ||
2740 | + "optional": true, | ||
2741 | + "requires": { | ||
2742 | + "ansi-regex": "^2.0.0" | ||
2743 | + } | ||
2744 | + }, | ||
2745 | + "strip-json-comments": { | ||
2746 | + "version": "2.0.1", | ||
2747 | + "bundled": true, | ||
2748 | + "dev": true, | ||
2749 | + "optional": true | ||
2750 | + }, | ||
2751 | + "tar": { | ||
2752 | + "version": "4.4.13", | ||
2753 | + "bundled": true, | ||
2754 | + "dev": true, | ||
2755 | + "optional": true, | ||
2756 | + "requires": { | ||
2757 | + "chownr": "^1.1.1", | ||
2758 | + "fs-minipass": "^1.2.5", | ||
2759 | + "minipass": "^2.8.6", | ||
2760 | + "minizlib": "^1.2.1", | ||
2761 | + "mkdirp": "^0.5.0", | ||
2762 | + "safe-buffer": "^5.1.2", | ||
2763 | + "yallist": "^3.0.3" | ||
2764 | + } | ||
2765 | + }, | ||
2766 | + "util-deprecate": { | ||
2767 | + "version": "1.0.2", | ||
2768 | + "bundled": true, | ||
2769 | + "dev": true, | ||
2770 | + "optional": true | ||
2771 | + }, | ||
2772 | + "wide-align": { | ||
2773 | + "version": "1.1.3", | ||
2774 | + "bundled": true, | ||
2775 | + "dev": true, | ||
2776 | + "optional": true, | ||
2777 | + "requires": { | ||
2778 | + "string-width": "^1.0.2 || 2" | ||
2779 | + } | ||
2780 | + }, | ||
2781 | + "wrappy": { | ||
2782 | + "version": "1.0.2", | ||
2783 | + "bundled": true, | ||
2784 | + "dev": true, | ||
2785 | + "optional": true | ||
2786 | + }, | ||
2787 | + "yallist": { | ||
2788 | + "version": "3.1.1", | ||
2789 | + "bundled": true, | ||
2790 | + "dev": true, | ||
2791 | + "optional": true | ||
2792 | + } | ||
2793 | + } | ||
2794 | + } | ||
2795 | + } | ||
2796 | + }, | ||
2797 | + "cipher-base": { | ||
2798 | + "version": "1.0.4", | ||
2799 | + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", | ||
2800 | + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", | ||
2801 | + "dev": true, | ||
2802 | + "requires": { | ||
2803 | + "inherits": "^2.0.1", | ||
2804 | + "safe-buffer": "^5.0.1" | ||
2805 | + } | ||
2806 | + }, | ||
2807 | + "class-utils": { | ||
2808 | + "version": "0.3.6", | ||
2809 | + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", | ||
2810 | + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", | ||
2811 | + "dev": true, | ||
2812 | + "requires": { | ||
2813 | + "arr-union": "^3.1.0", | ||
2814 | + "define-property": "^0.2.5", | ||
2815 | + "isobject": "^3.0.0", | ||
2816 | + "static-extend": "^0.1.1" | ||
2817 | + }, | ||
2818 | + "dependencies": { | ||
2819 | + "define-property": { | ||
2820 | + "version": "0.2.5", | ||
2821 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | ||
2822 | + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", | ||
2823 | + "dev": true, | ||
2824 | + "requires": { | ||
2825 | + "is-descriptor": "^0.1.0" | ||
2826 | + } | ||
2827 | + } | ||
2828 | + } | ||
2829 | + }, | ||
2830 | + "cli-cursor": { | ||
2831 | + "version": "2.1.0", | ||
2832 | + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", | ||
2833 | + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", | ||
2834 | + "dev": true, | ||
2835 | + "requires": { | ||
2836 | + "restore-cursor": "^2.0.0" | ||
2837 | + } | ||
2838 | + }, | ||
2839 | + "cli-spinners": { | ||
2840 | + "version": "1.3.1", | ||
2841 | + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", | ||
2842 | + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", | ||
2843 | + "dev": true | ||
2844 | + }, | ||
2845 | + "cliui": { | ||
2846 | + "version": "5.0.0", | ||
2847 | + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", | ||
2848 | + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", | ||
2849 | + "dev": true, | ||
2850 | + "requires": { | ||
2851 | + "string-width": "^3.1.0", | ||
2852 | + "strip-ansi": "^5.2.0", | ||
2853 | + "wrap-ansi": "^5.1.0" | ||
2854 | + }, | ||
2855 | + "dependencies": { | ||
2856 | + "ansi-regex": { | ||
2857 | + "version": "4.1.0", | ||
2858 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
2859 | + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
2860 | + "dev": true | ||
2861 | + }, | ||
2862 | + "strip-ansi": { | ||
2863 | + "version": "5.2.0", | ||
2864 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
2865 | + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
2866 | + "dev": true, | ||
2867 | + "requires": { | ||
2868 | + "ansi-regex": "^4.1.0" | ||
2869 | + } | ||
2870 | + } | ||
2871 | + } | ||
2872 | + }, | ||
2873 | + "clone": { | ||
2874 | + "version": "2.1.2", | ||
2875 | + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", | ||
2876 | + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", | ||
2877 | + "dev": true | ||
2878 | + }, | ||
2879 | + "clones": { | ||
2880 | + "version": "1.2.0", | ||
2881 | + "resolved": "https://registry.npmjs.org/clones/-/clones-1.2.0.tgz", | ||
2882 | + "integrity": "sha512-FXDYw4TjR8wgPZYui2LeTqWh1BLpfQ8lB6upMtlpDF6WlOOxghmTTxWyngdKTgozqBgKnHbTVwTE+hOHqAykuQ==", | ||
2883 | + "dev": true | ||
2884 | + }, | ||
2885 | + "coa": { | ||
2886 | + "version": "2.0.2", | ||
2887 | + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", | ||
2888 | + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", | ||
2889 | + "dev": true, | ||
2890 | + "requires": { | ||
2891 | + "@types/q": "^1.5.1", | ||
2892 | + "chalk": "^2.4.1", | ||
2893 | + "q": "^1.1.2" | ||
2894 | + } | ||
2895 | + }, | ||
2896 | + "collection-visit": { | ||
2897 | + "version": "1.0.0", | ||
2898 | + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", | ||
2899 | + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", | ||
2900 | + "dev": true, | ||
2901 | + "requires": { | ||
2902 | + "map-visit": "^1.0.0", | ||
2903 | + "object-visit": "^1.0.0" | ||
2904 | + } | ||
2905 | + }, | ||
2906 | + "color": { | ||
2907 | + "version": "3.1.2", | ||
2908 | + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", | ||
2909 | + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", | ||
2910 | + "dev": true, | ||
2911 | + "requires": { | ||
2912 | + "color-convert": "^1.9.1", | ||
2913 | + "color-string": "^1.5.2" | ||
2914 | + } | ||
2915 | + }, | ||
2916 | + "color-convert": { | ||
2917 | + "version": "1.9.3", | ||
2918 | + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | ||
2919 | + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", | ||
2920 | + "dev": true, | ||
2921 | + "requires": { | ||
2922 | + "color-name": "1.1.3" | ||
2923 | + } | ||
2924 | + }, | ||
2925 | + "color-name": { | ||
2926 | + "version": "1.1.3", | ||
2927 | + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", | ||
2928 | + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", | ||
2929 | + "dev": true | ||
2930 | + }, | ||
2931 | + "color-string": { | ||
2932 | + "version": "1.5.3", | ||
2933 | + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", | ||
2934 | + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", | ||
2935 | + "dev": true, | ||
2936 | + "requires": { | ||
2937 | + "color-name": "^1.0.0", | ||
2938 | + "simple-swizzle": "^0.2.2" | ||
2939 | + } | ||
2940 | + }, | ||
2941 | + "combined-stream": { | ||
2942 | + "version": "1.0.8", | ||
2943 | + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", | ||
2944 | + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", | ||
2945 | + "requires": { | ||
2946 | + "delayed-stream": "~1.0.0" | ||
2947 | + } | ||
2948 | + }, | ||
2949 | + "command-exists": { | ||
2950 | + "version": "1.2.9", | ||
2951 | + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", | ||
2952 | + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", | ||
2953 | + "dev": true | ||
2954 | + }, | ||
2955 | + "commander": { | ||
2956 | + "version": "2.20.3", | ||
2957 | + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", | ||
2958 | + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", | ||
2959 | + "dev": true | ||
2960 | + }, | ||
2961 | + "component-emitter": { | ||
2962 | + "version": "1.3.0", | ||
2963 | + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", | ||
2964 | + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", | ||
2965 | + "dev": true | ||
2966 | + }, | ||
2967 | + "concat-map": { | ||
2968 | + "version": "0.0.1", | ||
2969 | + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||
2970 | + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", | ||
2971 | + "dev": true | ||
2972 | + }, | ||
2973 | + "concat-stream": { | ||
2974 | + "version": "1.6.2", | ||
2975 | + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", | ||
2976 | + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", | ||
2977 | + "dev": true, | ||
2978 | + "requires": { | ||
2979 | + "buffer-from": "^1.0.0", | ||
2980 | + "inherits": "^2.0.3", | ||
2981 | + "readable-stream": "^2.2.2", | ||
2982 | + "typedarray": "^0.0.6" | ||
2983 | + } | ||
2984 | + }, | ||
2985 | + "config-chain": { | ||
2986 | + "version": "1.1.12", | ||
2987 | + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", | ||
2988 | + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", | ||
2989 | + "dev": true, | ||
2990 | + "requires": { | ||
2991 | + "ini": "^1.3.4", | ||
2992 | + "proto-list": "~1.2.1" | ||
2993 | + } | ||
2994 | + }, | ||
2995 | + "console-browserify": { | ||
2996 | + "version": "1.2.0", | ||
2997 | + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", | ||
2998 | + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", | ||
2999 | + "dev": true | ||
3000 | + }, | ||
3001 | + "constants-browserify": { | ||
3002 | + "version": "1.0.0", | ||
3003 | + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", | ||
3004 | + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", | ||
3005 | + "dev": true | ||
3006 | + }, | ||
3007 | + "convert-source-map": { | ||
3008 | + "version": "1.7.0", | ||
3009 | + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", | ||
3010 | + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", | ||
3011 | + "dev": true, | ||
3012 | + "requires": { | ||
3013 | + "safe-buffer": "~5.1.1" | ||
3014 | + } | ||
3015 | + }, | ||
3016 | + "copy-descriptor": { | ||
3017 | + "version": "0.1.1", | ||
3018 | + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", | ||
3019 | + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", | ||
3020 | + "dev": true | ||
3021 | + }, | ||
3022 | + "core-js": { | ||
3023 | + "version": "2.6.11", | ||
3024 | + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", | ||
3025 | + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", | ||
3026 | + "dev": true | ||
3027 | + }, | ||
3028 | + "core-util-is": { | ||
3029 | + "version": "1.0.2", | ||
3030 | + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||
3031 | + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||
3032 | + }, | ||
3033 | + "cosmiconfig": { | ||
3034 | + "version": "5.2.1", | ||
3035 | + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", | ||
3036 | + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", | ||
3037 | + "dev": true, | ||
3038 | + "requires": { | ||
3039 | + "import-fresh": "^2.0.0", | ||
3040 | + "is-directory": "^0.3.1", | ||
3041 | + "js-yaml": "^3.13.1", | ||
3042 | + "parse-json": "^4.0.0" | ||
3043 | + } | ||
3044 | + }, | ||
3045 | + "create-ecdh": { | ||
3046 | + "version": "4.0.3", | ||
3047 | + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", | ||
3048 | + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", | ||
3049 | + "dev": true, | ||
3050 | + "requires": { | ||
3051 | + "bn.js": "^4.1.0", | ||
3052 | + "elliptic": "^6.0.0" | ||
3053 | + } | ||
3054 | + }, | ||
3055 | + "create-hash": { | ||
3056 | + "version": "1.2.0", | ||
3057 | + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", | ||
3058 | + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", | ||
3059 | + "dev": true, | ||
3060 | + "requires": { | ||
3061 | + "cipher-base": "^1.0.1", | ||
3062 | + "inherits": "^2.0.1", | ||
3063 | + "md5.js": "^1.3.4", | ||
3064 | + "ripemd160": "^2.0.1", | ||
3065 | + "sha.js": "^2.4.0" | ||
3066 | + } | ||
3067 | + }, | ||
3068 | + "create-hmac": { | ||
3069 | + "version": "1.1.7", | ||
3070 | + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", | ||
3071 | + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", | ||
3072 | + "dev": true, | ||
3073 | + "requires": { | ||
3074 | + "cipher-base": "^1.0.3", | ||
3075 | + "create-hash": "^1.1.0", | ||
3076 | + "inherits": "^2.0.1", | ||
3077 | + "ripemd160": "^2.0.0", | ||
3078 | + "safe-buffer": "^5.0.1", | ||
3079 | + "sha.js": "^2.4.8" | ||
3080 | + } | ||
3081 | + }, | ||
3082 | + "cross-spawn": { | ||
3083 | + "version": "6.0.5", | ||
3084 | + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", | ||
3085 | + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", | ||
3086 | + "dev": true, | ||
3087 | + "requires": { | ||
3088 | + "nice-try": "^1.0.4", | ||
3089 | + "path-key": "^2.0.1", | ||
3090 | + "semver": "^5.5.0", | ||
3091 | + "shebang-command": "^1.2.0", | ||
3092 | + "which": "^1.2.9" | ||
3093 | + } | ||
3094 | + }, | ||
3095 | + "crypto-browserify": { | ||
3096 | + "version": "3.12.0", | ||
3097 | + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", | ||
3098 | + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", | ||
3099 | + "dev": true, | ||
3100 | + "requires": { | ||
3101 | + "browserify-cipher": "^1.0.0", | ||
3102 | + "browserify-sign": "^4.0.0", | ||
3103 | + "create-ecdh": "^4.0.0", | ||
3104 | + "create-hash": "^1.1.0", | ||
3105 | + "create-hmac": "^1.1.0", | ||
3106 | + "diffie-hellman": "^5.0.0", | ||
3107 | + "inherits": "^2.0.1", | ||
3108 | + "pbkdf2": "^3.0.3", | ||
3109 | + "public-encrypt": "^4.0.0", | ||
3110 | + "randombytes": "^2.0.0", | ||
3111 | + "randomfill": "^1.0.3" | ||
3112 | + } | ||
3113 | + }, | ||
3114 | + "css-color-names": { | ||
3115 | + "version": "0.0.4", | ||
3116 | + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", | ||
3117 | + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", | ||
3118 | + "dev": true | ||
3119 | + }, | ||
3120 | + "css-declaration-sorter": { | ||
3121 | + "version": "4.0.1", | ||
3122 | + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", | ||
3123 | + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", | ||
3124 | + "dev": true, | ||
3125 | + "requires": { | ||
3126 | + "postcss": "^7.0.1", | ||
3127 | + "timsort": "^0.3.0" | ||
3128 | + } | ||
3129 | + }, | ||
3130 | + "css-modules-loader-core": { | ||
3131 | + "version": "1.1.0", | ||
3132 | + "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", | ||
3133 | + "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", | ||
3134 | + "dev": true, | ||
3135 | + "requires": { | ||
3136 | + "icss-replace-symbols": "1.1.0", | ||
3137 | + "postcss": "6.0.1", | ||
3138 | + "postcss-modules-extract-imports": "1.1.0", | ||
3139 | + "postcss-modules-local-by-default": "1.2.0", | ||
3140 | + "postcss-modules-scope": "1.1.0", | ||
3141 | + "postcss-modules-values": "1.3.0" | ||
3142 | + }, | ||
3143 | + "dependencies": { | ||
3144 | + "ansi-regex": { | ||
3145 | + "version": "2.1.1", | ||
3146 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | ||
3147 | + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", | ||
3148 | + "dev": true | ||
3149 | + }, | ||
3150 | + "ansi-styles": { | ||
3151 | + "version": "2.2.1", | ||
3152 | + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", | ||
3153 | + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", | ||
3154 | + "dev": true | ||
3155 | + }, | ||
3156 | + "chalk": { | ||
3157 | + "version": "1.1.3", | ||
3158 | + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", | ||
3159 | + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", | ||
3160 | + "dev": true, | ||
3161 | + "requires": { | ||
3162 | + "ansi-styles": "^2.2.1", | ||
3163 | + "escape-string-regexp": "^1.0.2", | ||
3164 | + "has-ansi": "^2.0.0", | ||
3165 | + "strip-ansi": "^3.0.0", | ||
3166 | + "supports-color": "^2.0.0" | ||
3167 | + }, | ||
3168 | + "dependencies": { | ||
3169 | + "supports-color": { | ||
3170 | + "version": "2.0.0", | ||
3171 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", | ||
3172 | + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", | ||
3173 | + "dev": true | ||
3174 | + } | ||
3175 | + } | ||
3176 | + }, | ||
3177 | + "has-flag": { | ||
3178 | + "version": "1.0.0", | ||
3179 | + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", | ||
3180 | + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", | ||
3181 | + "dev": true | ||
3182 | + }, | ||
3183 | + "postcss": { | ||
3184 | + "version": "6.0.1", | ||
3185 | + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", | ||
3186 | + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", | ||
3187 | + "dev": true, | ||
3188 | + "requires": { | ||
3189 | + "chalk": "^1.1.3", | ||
3190 | + "source-map": "^0.5.6", | ||
3191 | + "supports-color": "^3.2.3" | ||
3192 | + } | ||
3193 | + }, | ||
3194 | + "source-map": { | ||
3195 | + "version": "0.5.7", | ||
3196 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
3197 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
3198 | + "dev": true | ||
3199 | + }, | ||
3200 | + "strip-ansi": { | ||
3201 | + "version": "3.0.1", | ||
3202 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | ||
3203 | + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | ||
3204 | + "dev": true, | ||
3205 | + "requires": { | ||
3206 | + "ansi-regex": "^2.0.0" | ||
3207 | + } | ||
3208 | + }, | ||
3209 | + "supports-color": { | ||
3210 | + "version": "3.2.3", | ||
3211 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", | ||
3212 | + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", | ||
3213 | + "dev": true, | ||
3214 | + "requires": { | ||
3215 | + "has-flag": "^1.0.0" | ||
3216 | + } | ||
3217 | + } | ||
3218 | + } | ||
3219 | + }, | ||
3220 | + "css-select": { | ||
3221 | + "version": "2.1.0", | ||
3222 | + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", | ||
3223 | + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", | ||
3224 | + "dev": true, | ||
3225 | + "requires": { | ||
3226 | + "boolbase": "^1.0.0", | ||
3227 | + "css-what": "^3.2.1", | ||
3228 | + "domutils": "^1.7.0", | ||
3229 | + "nth-check": "^1.0.2" | ||
3230 | + } | ||
3231 | + }, | ||
3232 | + "css-select-base-adapter": { | ||
3233 | + "version": "0.1.1", | ||
3234 | + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", | ||
3235 | + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", | ||
3236 | + "dev": true | ||
3237 | + }, | ||
3238 | + "css-selector-tokenizer": { | ||
3239 | + "version": "0.7.2", | ||
3240 | + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", | ||
3241 | + "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", | ||
3242 | + "dev": true, | ||
3243 | + "requires": { | ||
3244 | + "cssesc": "^3.0.0", | ||
3245 | + "fastparse": "^1.1.2", | ||
3246 | + "regexpu-core": "^4.6.0" | ||
3247 | + } | ||
3248 | + }, | ||
3249 | + "css-tree": { | ||
3250 | + "version": "1.0.0-alpha.37", | ||
3251 | + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", | ||
3252 | + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", | ||
3253 | + "dev": true, | ||
3254 | + "requires": { | ||
3255 | + "mdn-data": "2.0.4", | ||
3256 | + "source-map": "^0.6.1" | ||
3257 | + } | ||
3258 | + }, | ||
3259 | + "css-what": { | ||
3260 | + "version": "3.2.1", | ||
3261 | + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", | ||
3262 | + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", | ||
3263 | + "dev": true | ||
3264 | + }, | ||
3265 | + "cssesc": { | ||
3266 | + "version": "3.0.0", | ||
3267 | + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", | ||
3268 | + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", | ||
3269 | + "dev": true | ||
3270 | + }, | ||
3271 | + "cssnano": { | ||
3272 | + "version": "4.1.10", | ||
3273 | + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", | ||
3274 | + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", | ||
3275 | + "dev": true, | ||
3276 | + "requires": { | ||
3277 | + "cosmiconfig": "^5.0.0", | ||
3278 | + "cssnano-preset-default": "^4.0.7", | ||
3279 | + "is-resolvable": "^1.0.0", | ||
3280 | + "postcss": "^7.0.0" | ||
3281 | + } | ||
3282 | + }, | ||
3283 | + "cssnano-preset-default": { | ||
3284 | + "version": "4.0.7", | ||
3285 | + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", | ||
3286 | + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", | ||
3287 | + "dev": true, | ||
3288 | + "requires": { | ||
3289 | + "css-declaration-sorter": "^4.0.1", | ||
3290 | + "cssnano-util-raw-cache": "^4.0.1", | ||
3291 | + "postcss": "^7.0.0", | ||
3292 | + "postcss-calc": "^7.0.1", | ||
3293 | + "postcss-colormin": "^4.0.3", | ||
3294 | + "postcss-convert-values": "^4.0.1", | ||
3295 | + "postcss-discard-comments": "^4.0.2", | ||
3296 | + "postcss-discard-duplicates": "^4.0.2", | ||
3297 | + "postcss-discard-empty": "^4.0.1", | ||
3298 | + "postcss-discard-overridden": "^4.0.1", | ||
3299 | + "postcss-merge-longhand": "^4.0.11", | ||
3300 | + "postcss-merge-rules": "^4.0.3", | ||
3301 | + "postcss-minify-font-values": "^4.0.2", | ||
3302 | + "postcss-minify-gradients": "^4.0.2", | ||
3303 | + "postcss-minify-params": "^4.0.2", | ||
3304 | + "postcss-minify-selectors": "^4.0.2", | ||
3305 | + "postcss-normalize-charset": "^4.0.1", | ||
3306 | + "postcss-normalize-display-values": "^4.0.2", | ||
3307 | + "postcss-normalize-positions": "^4.0.2", | ||
3308 | + "postcss-normalize-repeat-style": "^4.0.2", | ||
3309 | + "postcss-normalize-string": "^4.0.2", | ||
3310 | + "postcss-normalize-timing-functions": "^4.0.2", | ||
3311 | + "postcss-normalize-unicode": "^4.0.1", | ||
3312 | + "postcss-normalize-url": "^4.0.1", | ||
3313 | + "postcss-normalize-whitespace": "^4.0.2", | ||
3314 | + "postcss-ordered-values": "^4.1.2", | ||
3315 | + "postcss-reduce-initial": "^4.0.3", | ||
3316 | + "postcss-reduce-transforms": "^4.0.2", | ||
3317 | + "postcss-svgo": "^4.0.2", | ||
3318 | + "postcss-unique-selectors": "^4.0.1" | ||
3319 | + } | ||
3320 | + }, | ||
3321 | + "cssnano-util-get-arguments": { | ||
3322 | + "version": "4.0.0", | ||
3323 | + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", | ||
3324 | + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", | ||
3325 | + "dev": true | ||
3326 | + }, | ||
3327 | + "cssnano-util-get-match": { | ||
3328 | + "version": "4.0.0", | ||
3329 | + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", | ||
3330 | + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", | ||
3331 | + "dev": true | ||
3332 | + }, | ||
3333 | + "cssnano-util-raw-cache": { | ||
3334 | + "version": "4.0.1", | ||
3335 | + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", | ||
3336 | + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", | ||
3337 | + "dev": true, | ||
3338 | + "requires": { | ||
3339 | + "postcss": "^7.0.0" | ||
3340 | + } | ||
3341 | + }, | ||
3342 | + "cssnano-util-same-parent": { | ||
3343 | + "version": "4.0.1", | ||
3344 | + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", | ||
3345 | + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", | ||
3346 | + "dev": true | ||
3347 | + }, | ||
3348 | + "csso": { | ||
3349 | + "version": "4.0.3", | ||
3350 | + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", | ||
3351 | + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", | ||
3352 | + "dev": true, | ||
3353 | + "requires": { | ||
3354 | + "css-tree": "1.0.0-alpha.39" | ||
3355 | + }, | ||
3356 | + "dependencies": { | ||
3357 | + "css-tree": { | ||
3358 | + "version": "1.0.0-alpha.39", | ||
3359 | + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", | ||
3360 | + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", | ||
3361 | + "dev": true, | ||
3362 | + "requires": { | ||
3363 | + "mdn-data": "2.0.6", | ||
3364 | + "source-map": "^0.6.1" | ||
3365 | + } | ||
3366 | + }, | ||
3367 | + "mdn-data": { | ||
3368 | + "version": "2.0.6", | ||
3369 | + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", | ||
3370 | + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", | ||
3371 | + "dev": true | ||
3372 | + } | ||
3373 | + } | ||
3374 | + }, | ||
3375 | + "cssom": { | ||
3376 | + "version": "0.3.8", | ||
3377 | + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", | ||
3378 | + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", | ||
3379 | + "dev": true | ||
3380 | + }, | ||
3381 | + "cssstyle": { | ||
3382 | + "version": "1.4.0", | ||
3383 | + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", | ||
3384 | + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", | ||
3385 | + "dev": true, | ||
3386 | + "requires": { | ||
3387 | + "cssom": "0.3.x" | ||
3388 | + } | ||
3389 | + }, | ||
3390 | + "dashdash": { | ||
3391 | + "version": "1.14.1", | ||
3392 | + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||
3393 | + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", | ||
3394 | + "requires": { | ||
3395 | + "assert-plus": "^1.0.0" | ||
3396 | + } | ||
3397 | + }, | ||
3398 | + "data-urls": { | ||
3399 | + "version": "1.1.0", | ||
3400 | + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", | ||
3401 | + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", | ||
3402 | + "dev": true, | ||
3403 | + "requires": { | ||
3404 | + "abab": "^2.0.0", | ||
3405 | + "whatwg-mimetype": "^2.2.0", | ||
3406 | + "whatwg-url": "^7.0.0" | ||
3407 | + } | ||
3408 | + }, | ||
3409 | + "deasync": { | ||
3410 | + "version": "0.1.19", | ||
3411 | + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.19.tgz", | ||
3412 | + "integrity": "sha512-oh3MRktfnPlLysCPpBpKZZzb4cUC/p0aA3SyRGp15lN30juJBTo/CiD0d4fR+f1kBtUQoJj1NE9RPNWQ7BQ9Mg==", | ||
3413 | + "dev": true, | ||
3414 | + "requires": { | ||
3415 | + "bindings": "^1.5.0", | ||
3416 | + "node-addon-api": "^1.7.1" | ||
3417 | + } | ||
3418 | + }, | ||
3419 | + "debug": { | ||
3420 | + "version": "4.1.1", | ||
3421 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | ||
3422 | + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | ||
3423 | + "dev": true, | ||
3424 | + "requires": { | ||
3425 | + "ms": "^2.1.1" | ||
3426 | + } | ||
3427 | + }, | ||
3428 | + "decamelize": { | ||
3429 | + "version": "1.2.0", | ||
3430 | + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", | ||
3431 | + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", | ||
3432 | + "dev": true | ||
3433 | + }, | ||
3434 | + "decode-uri-component": { | ||
3435 | + "version": "0.2.0", | ||
3436 | + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", | ||
3437 | + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", | ||
3438 | + "dev": true | ||
3439 | + }, | ||
3440 | + "deep-is": { | ||
3441 | + "version": "0.1.3", | ||
3442 | + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", | ||
3443 | + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", | ||
3444 | + "dev": true | ||
3445 | + }, | ||
3446 | + "defaults": { | ||
3447 | + "version": "1.0.3", | ||
3448 | + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", | ||
3449 | + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", | ||
3450 | + "dev": true, | ||
3451 | + "requires": { | ||
3452 | + "clone": "^1.0.2" | ||
3453 | + }, | ||
3454 | + "dependencies": { | ||
3455 | + "clone": { | ||
3456 | + "version": "1.0.4", | ||
3457 | + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", | ||
3458 | + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", | ||
3459 | + "dev": true | ||
3460 | + } | ||
3461 | + } | ||
3462 | + }, | ||
3463 | + "define-properties": { | ||
3464 | + "version": "1.1.3", | ||
3465 | + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", | ||
3466 | + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", | ||
3467 | + "dev": true, | ||
3468 | + "requires": { | ||
3469 | + "object-keys": "^1.0.12" | ||
3470 | + } | ||
3471 | + }, | ||
3472 | + "define-property": { | ||
3473 | + "version": "2.0.2", | ||
3474 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", | ||
3475 | + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", | ||
3476 | + "dev": true, | ||
3477 | + "requires": { | ||
3478 | + "is-descriptor": "^1.0.2", | ||
3479 | + "isobject": "^3.0.1" | ||
3480 | + }, | ||
3481 | + "dependencies": { | ||
3482 | + "is-accessor-descriptor": { | ||
3483 | + "version": "1.0.0", | ||
3484 | + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", | ||
3485 | + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", | ||
3486 | + "dev": true, | ||
3487 | + "requires": { | ||
3488 | + "kind-of": "^6.0.0" | ||
3489 | + } | ||
3490 | + }, | ||
3491 | + "is-data-descriptor": { | ||
3492 | + "version": "1.0.0", | ||
3493 | + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", | ||
3494 | + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", | ||
3495 | + "dev": true, | ||
3496 | + "requires": { | ||
3497 | + "kind-of": "^6.0.0" | ||
3498 | + } | ||
3499 | + }, | ||
3500 | + "is-descriptor": { | ||
3501 | + "version": "1.0.2", | ||
3502 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", | ||
3503 | + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", | ||
3504 | + "dev": true, | ||
3505 | + "requires": { | ||
3506 | + "is-accessor-descriptor": "^1.0.0", | ||
3507 | + "is-data-descriptor": "^1.0.0", | ||
3508 | + "kind-of": "^6.0.2" | ||
3509 | + } | ||
3510 | + } | ||
3511 | + } | ||
3512 | + }, | ||
3513 | + "delayed-stream": { | ||
3514 | + "version": "1.0.0", | ||
3515 | + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||
3516 | + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||
3517 | + }, | ||
3518 | + "depd": { | ||
3519 | + "version": "1.1.2", | ||
3520 | + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", | ||
3521 | + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", | ||
3522 | + "dev": true | ||
3523 | + }, | ||
3524 | + "des.js": { | ||
3525 | + "version": "1.0.1", | ||
3526 | + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", | ||
3527 | + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", | ||
3528 | + "dev": true, | ||
3529 | + "requires": { | ||
3530 | + "inherits": "^2.0.1", | ||
3531 | + "minimalistic-assert": "^1.0.0" | ||
3532 | + } | ||
3533 | + }, | ||
3534 | + "destroy": { | ||
3535 | + "version": "1.0.4", | ||
3536 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", | ||
3537 | + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", | ||
3538 | + "dev": true | ||
3539 | + }, | ||
3540 | + "diffie-hellman": { | ||
3541 | + "version": "5.0.3", | ||
3542 | + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", | ||
3543 | + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", | ||
3544 | + "dev": true, | ||
3545 | + "requires": { | ||
3546 | + "bn.js": "^4.1.0", | ||
3547 | + "miller-rabin": "^4.0.0", | ||
3548 | + "randombytes": "^2.0.0" | ||
3549 | + } | ||
3550 | + }, | ||
3551 | + "dom-serializer": { | ||
3552 | + "version": "0.2.2", | ||
3553 | + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", | ||
3554 | + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", | ||
3555 | + "dev": true, | ||
3556 | + "requires": { | ||
3557 | + "domelementtype": "^2.0.1", | ||
3558 | + "entities": "^2.0.0" | ||
3559 | + }, | ||
3560 | + "dependencies": { | ||
3561 | + "domelementtype": { | ||
3562 | + "version": "2.0.1", | ||
3563 | + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", | ||
3564 | + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", | ||
3565 | + "dev": true | ||
3566 | + } | ||
3567 | + } | ||
3568 | + }, | ||
3569 | + "domain-browser": { | ||
3570 | + "version": "1.2.0", | ||
3571 | + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", | ||
3572 | + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", | ||
3573 | + "dev": true | ||
3574 | + }, | ||
3575 | + "domelementtype": { | ||
3576 | + "version": "1.3.1", | ||
3577 | + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", | ||
3578 | + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", | ||
3579 | + "dev": true | ||
3580 | + }, | ||
3581 | + "domexception": { | ||
3582 | + "version": "1.0.1", | ||
3583 | + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", | ||
3584 | + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", | ||
3585 | + "dev": true, | ||
3586 | + "requires": { | ||
3587 | + "webidl-conversions": "^4.0.2" | ||
3588 | + } | ||
3589 | + }, | ||
3590 | + "domhandler": { | ||
3591 | + "version": "2.4.2", | ||
3592 | + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", | ||
3593 | + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", | ||
3594 | + "dev": true, | ||
3595 | + "requires": { | ||
3596 | + "domelementtype": "1" | ||
3597 | + } | ||
3598 | + }, | ||
3599 | + "domutils": { | ||
3600 | + "version": "1.7.0", | ||
3601 | + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", | ||
3602 | + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", | ||
3603 | + "dev": true, | ||
3604 | + "requires": { | ||
3605 | + "dom-serializer": "0", | ||
3606 | + "domelementtype": "1" | ||
3607 | + } | ||
3608 | + }, | ||
3609 | + "dot-prop": { | ||
3610 | + "version": "5.2.0", | ||
3611 | + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", | ||
3612 | + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", | ||
3613 | + "dev": true, | ||
3614 | + "requires": { | ||
3615 | + "is-obj": "^2.0.0" | ||
3616 | + } | ||
3617 | + }, | ||
3618 | + "dotenv": { | ||
3619 | + "version": "5.0.1", | ||
3620 | + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", | ||
3621 | + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", | ||
3622 | + "dev": true | ||
3623 | + }, | ||
3624 | + "dotenv-expand": { | ||
3625 | + "version": "4.2.0", | ||
3626 | + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", | ||
3627 | + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", | ||
3628 | + "dev": true | ||
3629 | + }, | ||
3630 | + "duplexer2": { | ||
3631 | + "version": "0.1.4", | ||
3632 | + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", | ||
3633 | + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", | ||
3634 | + "dev": true, | ||
3635 | + "requires": { | ||
3636 | + "readable-stream": "^2.0.2" | ||
3637 | + } | ||
3638 | + }, | ||
3639 | + "ecc-jsbn": { | ||
3640 | + "version": "0.1.2", | ||
3641 | + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", | ||
3642 | + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", | ||
3643 | + "requires": { | ||
3644 | + "jsbn": "~0.1.0", | ||
3645 | + "safer-buffer": "^2.1.0" | ||
3646 | + } | ||
3647 | + }, | ||
3648 | + "editorconfig": { | ||
3649 | + "version": "0.15.3", | ||
3650 | + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", | ||
3651 | + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", | ||
3652 | + "dev": true, | ||
3653 | + "requires": { | ||
3654 | + "commander": "^2.19.0", | ||
3655 | + "lru-cache": "^4.1.5", | ||
3656 | + "semver": "^5.6.0", | ||
3657 | + "sigmund": "^1.0.1" | ||
3658 | + } | ||
3659 | + }, | ||
3660 | + "ee-first": { | ||
3661 | + "version": "1.1.1", | ||
3662 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | ||
3663 | + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", | ||
3664 | + "dev": true | ||
3665 | + }, | ||
3666 | + "electron-to-chromium": { | ||
3667 | + "version": "1.3.418", | ||
3668 | + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz", | ||
3669 | + "integrity": "sha512-i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug==", | ||
3670 | + "dev": true | ||
3671 | + }, | ||
3672 | + "elliptic": { | ||
3673 | + "version": "6.5.2", | ||
3674 | + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", | ||
3675 | + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", | ||
3676 | + "dev": true, | ||
3677 | + "requires": { | ||
3678 | + "bn.js": "^4.4.0", | ||
3679 | + "brorand": "^1.0.1", | ||
3680 | + "hash.js": "^1.0.0", | ||
3681 | + "hmac-drbg": "^1.0.0", | ||
3682 | + "inherits": "^2.0.1", | ||
3683 | + "minimalistic-assert": "^1.0.0", | ||
3684 | + "minimalistic-crypto-utils": "^1.0.0" | ||
3685 | + } | ||
3686 | + }, | ||
3687 | + "elm-hot": { | ||
3688 | + "version": "1.1.1", | ||
3689 | + "resolved": "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz", | ||
3690 | + "integrity": "sha512-ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA==", | ||
3691 | + "dev": true | ||
3692 | + }, | ||
3693 | + "emoji-regex": { | ||
3694 | + "version": "7.0.3", | ||
3695 | + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
3696 | + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
3697 | + "dev": true | ||
3698 | + }, | ||
3699 | + "encodeurl": { | ||
3700 | + "version": "1.0.2", | ||
3701 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ||
3702 | + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", | ||
3703 | + "dev": true | ||
3704 | + }, | ||
3705 | + "entities": { | ||
3706 | + "version": "2.0.0", | ||
3707 | + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", | ||
3708 | + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", | ||
3709 | + "dev": true | ||
3710 | + }, | ||
3711 | + "error-ex": { | ||
3712 | + "version": "1.3.2", | ||
3713 | + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", | ||
3714 | + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", | ||
3715 | + "dev": true, | ||
3716 | + "requires": { | ||
3717 | + "is-arrayish": "^0.2.1" | ||
3718 | + } | ||
3719 | + }, | ||
3720 | + "es-abstract": { | ||
3721 | + "version": "1.17.5", | ||
3722 | + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", | ||
3723 | + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", | ||
3724 | + "dev": true, | ||
3725 | + "requires": { | ||
3726 | + "es-to-primitive": "^1.2.1", | ||
3727 | + "function-bind": "^1.1.1", | ||
3728 | + "has": "^1.0.3", | ||
3729 | + "has-symbols": "^1.0.1", | ||
3730 | + "is-callable": "^1.1.5", | ||
3731 | + "is-regex": "^1.0.5", | ||
3732 | + "object-inspect": "^1.7.0", | ||
3733 | + "object-keys": "^1.1.1", | ||
3734 | + "object.assign": "^4.1.0", | ||
3735 | + "string.prototype.trimleft": "^2.1.1", | ||
3736 | + "string.prototype.trimright": "^2.1.1" | ||
3737 | + } | ||
3738 | + }, | ||
3739 | + "es-to-primitive": { | ||
3740 | + "version": "1.2.1", | ||
3741 | + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", | ||
3742 | + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", | ||
3743 | + "dev": true, | ||
3744 | + "requires": { | ||
3745 | + "is-callable": "^1.1.4", | ||
3746 | + "is-date-object": "^1.0.1", | ||
3747 | + "is-symbol": "^1.0.2" | ||
3748 | + } | ||
3749 | + }, | ||
3750 | + "escape-html": { | ||
3751 | + "version": "1.0.3", | ||
3752 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||
3753 | + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", | ||
3754 | + "dev": true | ||
3755 | + }, | ||
3756 | + "escape-string-regexp": { | ||
3757 | + "version": "1.0.5", | ||
3758 | + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", | ||
3759 | + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", | ||
3760 | + "dev": true | ||
3761 | + }, | ||
3762 | + "escodegen": { | ||
3763 | + "version": "1.9.1", | ||
3764 | + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", | ||
3765 | + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", | ||
3766 | + "dev": true, | ||
3767 | + "requires": { | ||
3768 | + "esprima": "^3.1.3", | ||
3769 | + "estraverse": "^4.2.0", | ||
3770 | + "esutils": "^2.0.2", | ||
3771 | + "optionator": "^0.8.1", | ||
3772 | + "source-map": "~0.6.1" | ||
3773 | + }, | ||
3774 | + "dependencies": { | ||
3775 | + "esprima": { | ||
3776 | + "version": "3.1.3", | ||
3777 | + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", | ||
3778 | + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", | ||
3779 | + "dev": true | ||
3780 | + } | ||
3781 | + } | ||
3782 | + }, | ||
3783 | + "esprima": { | ||
3784 | + "version": "4.0.1", | ||
3785 | + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | ||
3786 | + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", | ||
3787 | + "dev": true | ||
3788 | + }, | ||
3789 | + "estraverse": { | ||
3790 | + "version": "4.3.0", | ||
3791 | + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", | ||
3792 | + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", | ||
3793 | + "dev": true | ||
3794 | + }, | ||
3795 | + "esutils": { | ||
3796 | + "version": "2.0.3", | ||
3797 | + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", | ||
3798 | + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", | ||
3799 | + "dev": true | ||
3800 | + }, | ||
3801 | + "etag": { | ||
3802 | + "version": "1.8.1", | ||
3803 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||
3804 | + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", | ||
3805 | + "dev": true | ||
3806 | + }, | ||
3807 | + "events": { | ||
3808 | + "version": "3.1.0", | ||
3809 | + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", | ||
3810 | + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", | ||
3811 | + "dev": true | ||
3812 | + }, | ||
3813 | + "evp_bytestokey": { | ||
3814 | + "version": "1.0.3", | ||
3815 | + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", | ||
3816 | + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", | ||
3817 | + "dev": true, | ||
3818 | + "requires": { | ||
3819 | + "md5.js": "^1.3.4", | ||
3820 | + "safe-buffer": "^5.1.1" | ||
3821 | + } | ||
3822 | + }, | ||
3823 | + "expand-brackets": { | ||
3824 | + "version": "2.1.4", | ||
3825 | + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", | ||
3826 | + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", | ||
3827 | + "dev": true, | ||
3828 | + "requires": { | ||
3829 | + "debug": "^2.3.3", | ||
3830 | + "define-property": "^0.2.5", | ||
3831 | + "extend-shallow": "^2.0.1", | ||
3832 | + "posix-character-classes": "^0.1.0", | ||
3833 | + "regex-not": "^1.0.0", | ||
3834 | + "snapdragon": "^0.8.1", | ||
3835 | + "to-regex": "^3.0.1" | ||
3836 | + }, | ||
3837 | + "dependencies": { | ||
3838 | + "debug": { | ||
3839 | + "version": "2.6.9", | ||
3840 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
3841 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
3842 | + "dev": true, | ||
3843 | + "requires": { | ||
3844 | + "ms": "2.0.0" | ||
3845 | + } | ||
3846 | + }, | ||
3847 | + "define-property": { | ||
3848 | + "version": "0.2.5", | ||
3849 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | ||
3850 | + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", | ||
3851 | + "dev": true, | ||
3852 | + "requires": { | ||
3853 | + "is-descriptor": "^0.1.0" | ||
3854 | + } | ||
3855 | + }, | ||
3856 | + "extend-shallow": { | ||
3857 | + "version": "2.0.1", | ||
3858 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||
3859 | + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||
3860 | + "dev": true, | ||
3861 | + "requires": { | ||
3862 | + "is-extendable": "^0.1.0" | ||
3863 | + } | ||
3864 | + }, | ||
3865 | + "ms": { | ||
3866 | + "version": "2.0.0", | ||
3867 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
3868 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", | ||
3869 | + "dev": true | ||
3870 | + } | ||
3871 | + } | ||
3872 | + }, | ||
3873 | + "extend": { | ||
3874 | + "version": "3.0.2", | ||
3875 | + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", | ||
3876 | + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" | ||
3877 | + }, | ||
3878 | + "extend-shallow": { | ||
3879 | + "version": "3.0.2", | ||
3880 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", | ||
3881 | + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", | ||
3882 | + "dev": true, | ||
3883 | + "requires": { | ||
3884 | + "assign-symbols": "^1.0.0", | ||
3885 | + "is-extendable": "^1.0.1" | ||
3886 | + }, | ||
3887 | + "dependencies": { | ||
3888 | + "is-extendable": { | ||
3889 | + "version": "1.0.1", | ||
3890 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | ||
3891 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | ||
3892 | + "dev": true, | ||
3893 | + "requires": { | ||
3894 | + "is-plain-object": "^2.0.4" | ||
3895 | + } | ||
3896 | + } | ||
3897 | + } | ||
3898 | + }, | ||
3899 | + "extglob": { | ||
3900 | + "version": "2.0.4", | ||
3901 | + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", | ||
3902 | + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", | ||
3903 | + "dev": true, | ||
3904 | + "requires": { | ||
3905 | + "array-unique": "^0.3.2", | ||
3906 | + "define-property": "^1.0.0", | ||
3907 | + "expand-brackets": "^2.1.4", | ||
3908 | + "extend-shallow": "^2.0.1", | ||
3909 | + "fragment-cache": "^0.2.1", | ||
3910 | + "regex-not": "^1.0.0", | ||
3911 | + "snapdragon": "^0.8.1", | ||
3912 | + "to-regex": "^3.0.1" | ||
3913 | + }, | ||
3914 | + "dependencies": { | ||
3915 | + "define-property": { | ||
3916 | + "version": "1.0.0", | ||
3917 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | ||
3918 | + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", | ||
3919 | + "dev": true, | ||
3920 | + "requires": { | ||
3921 | + "is-descriptor": "^1.0.0" | ||
3922 | + } | ||
3923 | + }, | ||
3924 | + "extend-shallow": { | ||
3925 | + "version": "2.0.1", | ||
3926 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||
3927 | + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||
3928 | + "dev": true, | ||
3929 | + "requires": { | ||
3930 | + "is-extendable": "^0.1.0" | ||
3931 | + } | ||
3932 | + }, | ||
3933 | + "is-accessor-descriptor": { | ||
3934 | + "version": "1.0.0", | ||
3935 | + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", | ||
3936 | + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", | ||
3937 | + "dev": true, | ||
3938 | + "requires": { | ||
3939 | + "kind-of": "^6.0.0" | ||
3940 | + } | ||
3941 | + }, | ||
3942 | + "is-data-descriptor": { | ||
3943 | + "version": "1.0.0", | ||
3944 | + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", | ||
3945 | + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", | ||
3946 | + "dev": true, | ||
3947 | + "requires": { | ||
3948 | + "kind-of": "^6.0.0" | ||
3949 | + } | ||
3950 | + }, | ||
3951 | + "is-descriptor": { | ||
3952 | + "version": "1.0.2", | ||
3953 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", | ||
3954 | + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", | ||
3955 | + "dev": true, | ||
3956 | + "requires": { | ||
3957 | + "is-accessor-descriptor": "^1.0.0", | ||
3958 | + "is-data-descriptor": "^1.0.0", | ||
3959 | + "kind-of": "^6.0.2" | ||
3960 | + } | ||
3961 | + } | ||
3962 | + } | ||
3963 | + }, | ||
3964 | + "extsprintf": { | ||
3965 | + "version": "1.3.0", | ||
3966 | + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", | ||
3967 | + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" | ||
3968 | + }, | ||
3969 | + "falafel": { | ||
3970 | + "version": "2.2.4", | ||
3971 | + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", | ||
3972 | + "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", | ||
3973 | + "dev": true, | ||
3974 | + "requires": { | ||
3975 | + "acorn": "^7.1.1", | ||
3976 | + "foreach": "^2.0.5", | ||
3977 | + "isarray": "^2.0.1", | ||
3978 | + "object-keys": "^1.0.6" | ||
3979 | + }, | ||
3980 | + "dependencies": { | ||
3981 | + "isarray": { | ||
3982 | + "version": "2.0.5", | ||
3983 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | ||
3984 | + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | ||
3985 | + "dev": true | ||
3986 | + } | ||
3987 | + } | ||
3988 | + }, | ||
3989 | + "fast-deep-equal": { | ||
3990 | + "version": "3.1.1", | ||
3991 | + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", | ||
3992 | + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" | ||
3993 | + }, | ||
3994 | + "fast-glob": { | ||
3995 | + "version": "2.2.7", | ||
3996 | + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", | ||
3997 | + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", | ||
3998 | + "dev": true, | ||
3999 | + "requires": { | ||
4000 | + "@mrmlnc/readdir-enhanced": "^2.2.1", | ||
4001 | + "@nodelib/fs.stat": "^1.1.2", | ||
4002 | + "glob-parent": "^3.1.0", | ||
4003 | + "is-glob": "^4.0.0", | ||
4004 | + "merge2": "^1.2.3", | ||
4005 | + "micromatch": "^3.1.10" | ||
4006 | + } | ||
4007 | + }, | ||
4008 | + "fast-json-stable-stringify": { | ||
4009 | + "version": "2.1.0", | ||
4010 | + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", | ||
4011 | + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" | ||
4012 | + }, | ||
4013 | + "fast-levenshtein": { | ||
4014 | + "version": "2.0.6", | ||
4015 | + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", | ||
4016 | + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", | ||
4017 | + "dev": true | ||
4018 | + }, | ||
4019 | + "fastparse": { | ||
4020 | + "version": "1.1.2", | ||
4021 | + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", | ||
4022 | + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", | ||
4023 | + "dev": true | ||
4024 | + }, | ||
4025 | + "file-uri-to-path": { | ||
4026 | + "version": "1.0.0", | ||
4027 | + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | ||
4028 | + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", | ||
4029 | + "dev": true | ||
4030 | + }, | ||
4031 | + "filesize": { | ||
4032 | + "version": "3.6.1", | ||
4033 | + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", | ||
4034 | + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", | ||
4035 | + "dev": true | ||
4036 | + }, | ||
4037 | + "fill-range": { | ||
4038 | + "version": "4.0.0", | ||
4039 | + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", | ||
4040 | + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", | ||
4041 | + "dev": true, | ||
4042 | + "requires": { | ||
4043 | + "extend-shallow": "^2.0.1", | ||
4044 | + "is-number": "^3.0.0", | ||
4045 | + "repeat-string": "^1.6.1", | ||
4046 | + "to-regex-range": "^2.1.0" | ||
4047 | + }, | ||
4048 | + "dependencies": { | ||
4049 | + "extend-shallow": { | ||
4050 | + "version": "2.0.1", | ||
4051 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||
4052 | + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||
4053 | + "dev": true, | ||
4054 | + "requires": { | ||
4055 | + "is-extendable": "^0.1.0" | ||
4056 | + } | ||
4057 | + } | ||
4058 | + } | ||
4059 | + }, | ||
4060 | + "find-elm-dependencies": { | ||
4061 | + "version": "2.0.2", | ||
4062 | + "resolved": "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz", | ||
4063 | + "integrity": "sha512-nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==", | ||
4064 | + "dev": true, | ||
4065 | + "requires": { | ||
4066 | + "firstline": "1.2.0", | ||
4067 | + "lodash": "4.17.15" | ||
4068 | + } | ||
4069 | + }, | ||
4070 | + "find-up": { | ||
4071 | + "version": "2.1.0", | ||
4072 | + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", | ||
4073 | + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", | ||
4074 | + "dev": true, | ||
4075 | + "requires": { | ||
4076 | + "locate-path": "^2.0.0" | ||
4077 | + } | ||
4078 | + }, | ||
4079 | + "firstline": { | ||
4080 | + "version": "1.2.0", | ||
4081 | + "resolved": "https://registry.npmjs.org/firstline/-/firstline-1.2.0.tgz", | ||
4082 | + "integrity": "sha1-yfSIbn9/vwr8EtcZQdzgaxkq6gU=", | ||
4083 | + "dev": true | ||
4084 | + }, | ||
4085 | + "for-in": { | ||
4086 | + "version": "1.0.2", | ||
4087 | + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", | ||
4088 | + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", | ||
4089 | + "dev": true | ||
4090 | + }, | ||
4091 | + "foreach": { | ||
4092 | + "version": "2.0.5", | ||
4093 | + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", | ||
4094 | + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", | ||
4095 | + "dev": true | ||
4096 | + }, | ||
4097 | + "forever-agent": { | ||
4098 | + "version": "0.6.1", | ||
4099 | + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | ||
4100 | + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" | ||
4101 | + }, | ||
4102 | + "form-data": { | ||
4103 | + "version": "2.3.3", | ||
4104 | + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", | ||
4105 | + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", | ||
4106 | + "requires": { | ||
4107 | + "asynckit": "^0.4.0", | ||
4108 | + "combined-stream": "^1.0.6", | ||
4109 | + "mime-types": "^2.1.12" | ||
4110 | + } | ||
4111 | + }, | ||
4112 | + "fragment-cache": { | ||
4113 | + "version": "0.2.1", | ||
4114 | + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", | ||
4115 | + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", | ||
4116 | + "dev": true, | ||
4117 | + "requires": { | ||
4118 | + "map-cache": "^0.2.2" | ||
4119 | + } | ||
4120 | + }, | ||
4121 | + "fresh": { | ||
4122 | + "version": "0.5.2", | ||
4123 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | ||
4124 | + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", | ||
4125 | + "dev": true | ||
4126 | + }, | ||
4127 | + "fs.realpath": { | ||
4128 | + "version": "1.0.0", | ||
4129 | + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||
4130 | + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", | ||
4131 | + "dev": true | ||
4132 | + }, | ||
4133 | + "function-bind": { | ||
4134 | + "version": "1.1.1", | ||
4135 | + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | ||
4136 | + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", | ||
4137 | + "dev": true | ||
4138 | + }, | ||
4139 | + "get-caller-file": { | ||
4140 | + "version": "2.0.5", | ||
4141 | + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", | ||
4142 | + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", | ||
4143 | + "dev": true | ||
4144 | + }, | ||
4145 | + "get-port": { | ||
4146 | + "version": "3.2.0", | ||
4147 | + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", | ||
4148 | + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", | ||
4149 | + "dev": true | ||
4150 | + }, | ||
4151 | + "get-value": { | ||
4152 | + "version": "2.0.6", | ||
4153 | + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", | ||
4154 | + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", | ||
4155 | + "dev": true | ||
4156 | + }, | ||
4157 | + "getpass": { | ||
4158 | + "version": "0.1.7", | ||
4159 | + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||
4160 | + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", | ||
4161 | + "requires": { | ||
4162 | + "assert-plus": "^1.0.0" | ||
4163 | + } | ||
4164 | + }, | ||
4165 | + "glob": { | ||
4166 | + "version": "7.1.4", | ||
4167 | + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", | ||
4168 | + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", | ||
4169 | + "dev": true, | ||
4170 | + "requires": { | ||
4171 | + "fs.realpath": "^1.0.0", | ||
4172 | + "inflight": "^1.0.4", | ||
4173 | + "inherits": "2", | ||
4174 | + "minimatch": "^3.0.4", | ||
4175 | + "once": "^1.3.0", | ||
4176 | + "path-is-absolute": "^1.0.0" | ||
4177 | + } | ||
4178 | + }, | ||
4179 | + "glob-parent": { | ||
4180 | + "version": "3.1.0", | ||
4181 | + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", | ||
4182 | + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", | ||
4183 | + "dev": true, | ||
4184 | + "requires": { | ||
4185 | + "is-glob": "^3.1.0", | ||
4186 | + "path-dirname": "^1.0.0" | ||
4187 | + }, | ||
4188 | + "dependencies": { | ||
4189 | + "is-glob": { | ||
4190 | + "version": "3.1.0", | ||
4191 | + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", | ||
4192 | + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", | ||
4193 | + "dev": true, | ||
4194 | + "requires": { | ||
4195 | + "is-extglob": "^2.1.0" | ||
4196 | + } | ||
4197 | + } | ||
4198 | + } | ||
4199 | + }, | ||
4200 | + "glob-to-regexp": { | ||
4201 | + "version": "0.3.0", | ||
4202 | + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", | ||
4203 | + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", | ||
4204 | + "dev": true | ||
4205 | + }, | ||
4206 | + "globals": { | ||
4207 | + "version": "11.12.0", | ||
4208 | + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", | ||
4209 | + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", | ||
4210 | + "dev": true | ||
4211 | + }, | ||
4212 | + "graceful-fs": { | ||
4213 | + "version": "4.2.3", | ||
4214 | + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", | ||
4215 | + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", | ||
4216 | + "dev": true | ||
4217 | + }, | ||
4218 | + "grapheme-breaker": { | ||
4219 | + "version": "0.3.2", | ||
4220 | + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", | ||
4221 | + "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=", | ||
4222 | + "dev": true, | ||
4223 | + "requires": { | ||
4224 | + "brfs": "^1.2.0", | ||
4225 | + "unicode-trie": "^0.3.1" | ||
4226 | + } | ||
4227 | + }, | ||
4228 | + "har-schema": { | ||
4229 | + "version": "2.0.0", | ||
4230 | + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", | ||
4231 | + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" | ||
4232 | + }, | ||
4233 | + "har-validator": { | ||
4234 | + "version": "5.1.3", | ||
4235 | + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", | ||
4236 | + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", | ||
4237 | + "requires": { | ||
4238 | + "ajv": "^6.5.5", | ||
4239 | + "har-schema": "^2.0.0" | ||
4240 | + } | ||
4241 | + }, | ||
4242 | + "has": { | ||
4243 | + "version": "1.0.3", | ||
4244 | + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | ||
4245 | + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | ||
4246 | + "dev": true, | ||
4247 | + "requires": { | ||
4248 | + "function-bind": "^1.1.1" | ||
4249 | + } | ||
4250 | + }, | ||
4251 | + "has-ansi": { | ||
4252 | + "version": "2.0.0", | ||
4253 | + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", | ||
4254 | + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", | ||
4255 | + "dev": true, | ||
4256 | + "requires": { | ||
4257 | + "ansi-regex": "^2.0.0" | ||
4258 | + }, | ||
4259 | + "dependencies": { | ||
4260 | + "ansi-regex": { | ||
4261 | + "version": "2.1.1", | ||
4262 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | ||
4263 | + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", | ||
4264 | + "dev": true | ||
4265 | + } | ||
4266 | + } | ||
4267 | + }, | ||
4268 | + "has-flag": { | ||
4269 | + "version": "3.0.0", | ||
4270 | + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", | ||
4271 | + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", | ||
4272 | + "dev": true | ||
4273 | + }, | ||
4274 | + "has-symbols": { | ||
4275 | + "version": "1.0.1", | ||
4276 | + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", | ||
4277 | + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", | ||
4278 | + "dev": true | ||
4279 | + }, | ||
4280 | + "has-value": { | ||
4281 | + "version": "1.0.0", | ||
4282 | + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", | ||
4283 | + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", | ||
4284 | + "dev": true, | ||
4285 | + "requires": { | ||
4286 | + "get-value": "^2.0.6", | ||
4287 | + "has-values": "^1.0.0", | ||
4288 | + "isobject": "^3.0.0" | ||
4289 | + } | ||
4290 | + }, | ||
4291 | + "has-values": { | ||
4292 | + "version": "1.0.0", | ||
4293 | + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", | ||
4294 | + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", | ||
4295 | + "dev": true, | ||
4296 | + "requires": { | ||
4297 | + "is-number": "^3.0.0", | ||
4298 | + "kind-of": "^4.0.0" | ||
4299 | + }, | ||
4300 | + "dependencies": { | ||
4301 | + "kind-of": { | ||
4302 | + "version": "4.0.0", | ||
4303 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", | ||
4304 | + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", | ||
4305 | + "dev": true, | ||
4306 | + "requires": { | ||
4307 | + "is-buffer": "^1.1.5" | ||
4308 | + } | ||
4309 | + } | ||
4310 | + } | ||
4311 | + }, | ||
4312 | + "hash-base": { | ||
4313 | + "version": "3.0.4", | ||
4314 | + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", | ||
4315 | + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", | ||
4316 | + "dev": true, | ||
4317 | + "requires": { | ||
4318 | + "inherits": "^2.0.1", | ||
4319 | + "safe-buffer": "^5.0.1" | ||
4320 | + } | ||
4321 | + }, | ||
4322 | + "hash.js": { | ||
4323 | + "version": "1.1.7", | ||
4324 | + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", | ||
4325 | + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", | ||
4326 | + "dev": true, | ||
4327 | + "requires": { | ||
4328 | + "inherits": "^2.0.3", | ||
4329 | + "minimalistic-assert": "^1.0.1" | ||
4330 | + } | ||
4331 | + }, | ||
4332 | + "hex-color-regex": { | ||
4333 | + "version": "1.1.0", | ||
4334 | + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", | ||
4335 | + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", | ||
4336 | + "dev": true | ||
4337 | + }, | ||
4338 | + "hmac-drbg": { | ||
4339 | + "version": "1.0.1", | ||
4340 | + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", | ||
4341 | + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", | ||
4342 | + "dev": true, | ||
4343 | + "requires": { | ||
4344 | + "hash.js": "^1.0.3", | ||
4345 | + "minimalistic-assert": "^1.0.0", | ||
4346 | + "minimalistic-crypto-utils": "^1.0.1" | ||
4347 | + } | ||
4348 | + }, | ||
4349 | + "hsl-regex": { | ||
4350 | + "version": "1.0.0", | ||
4351 | + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", | ||
4352 | + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", | ||
4353 | + "dev": true | ||
4354 | + }, | ||
4355 | + "hsla-regex": { | ||
4356 | + "version": "1.0.0", | ||
4357 | + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", | ||
4358 | + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", | ||
4359 | + "dev": true | ||
4360 | + }, | ||
4361 | + "html-comment-regex": { | ||
4362 | + "version": "1.1.2", | ||
4363 | + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", | ||
4364 | + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", | ||
4365 | + "dev": true | ||
4366 | + }, | ||
4367 | + "html-encoding-sniffer": { | ||
4368 | + "version": "1.0.2", | ||
4369 | + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", | ||
4370 | + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", | ||
4371 | + "dev": true, | ||
4372 | + "requires": { | ||
4373 | + "whatwg-encoding": "^1.0.1" | ||
4374 | + } | ||
4375 | + }, | ||
4376 | + "html-tags": { | ||
4377 | + "version": "1.2.0", | ||
4378 | + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz", | ||
4379 | + "integrity": "sha1-x43mW1Zjqll5id0rerSSANfk25g=", | ||
4380 | + "dev": true | ||
4381 | + }, | ||
4382 | + "htmlnano": { | ||
4383 | + "version": "0.2.5", | ||
4384 | + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.5.tgz", | ||
4385 | + "integrity": "sha512-X1iPSwXG/iF9bVs+/obt2n6F64uH0ETkA8zp7qFDmLW9/+A6ueHGeb/+qD67T21qUY22owZPMdawljN50ajkqA==", | ||
4386 | + "dev": true, | ||
4387 | + "requires": { | ||
4388 | + "cssnano": "^4.1.10", | ||
4389 | + "normalize-html-whitespace": "^1.0.0", | ||
4390 | + "posthtml": "^0.12.0", | ||
4391 | + "posthtml-render": "^1.1.5", | ||
4392 | + "purgecss": "^1.4.0", | ||
4393 | + "svgo": "^1.3.2", | ||
4394 | + "terser": "^4.3.9", | ||
4395 | + "uncss": "^0.17.2" | ||
4396 | + }, | ||
4397 | + "dependencies": { | ||
4398 | + "posthtml": { | ||
4399 | + "version": "0.12.3", | ||
4400 | + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz", | ||
4401 | + "integrity": "sha512-Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==", | ||
4402 | + "dev": true, | ||
4403 | + "requires": { | ||
4404 | + "posthtml-parser": "^0.4.2", | ||
4405 | + "posthtml-render": "^1.2.2" | ||
4406 | + } | ||
4407 | + }, | ||
4408 | + "terser": { | ||
4409 | + "version": "4.6.12", | ||
4410 | + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", | ||
4411 | + "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", | ||
4412 | + "dev": true, | ||
4413 | + "requires": { | ||
4414 | + "commander": "^2.20.0", | ||
4415 | + "source-map": "~0.6.1", | ||
4416 | + "source-map-support": "~0.5.12" | ||
4417 | + } | ||
4418 | + } | ||
4419 | + } | ||
4420 | + }, | ||
4421 | + "htmlparser2": { | ||
4422 | + "version": "3.10.1", | ||
4423 | + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", | ||
4424 | + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", | ||
4425 | + "dev": true, | ||
4426 | + "requires": { | ||
4427 | + "domelementtype": "^1.3.1", | ||
4428 | + "domhandler": "^2.3.0", | ||
4429 | + "domutils": "^1.5.1", | ||
4430 | + "entities": "^1.1.1", | ||
4431 | + "inherits": "^2.0.1", | ||
4432 | + "readable-stream": "^3.1.1" | ||
4433 | + }, | ||
4434 | + "dependencies": { | ||
4435 | + "entities": { | ||
4436 | + "version": "1.1.2", | ||
4437 | + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | ||
4438 | + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", | ||
4439 | + "dev": true | ||
4440 | + }, | ||
4441 | + "readable-stream": { | ||
4442 | + "version": "3.6.0", | ||
4443 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", | ||
4444 | + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", | ||
4445 | + "dev": true, | ||
4446 | + "requires": { | ||
4447 | + "inherits": "^2.0.3", | ||
4448 | + "string_decoder": "^1.1.1", | ||
4449 | + "util-deprecate": "^1.0.1" | ||
4450 | + } | ||
4451 | + } | ||
4452 | + } | ||
4453 | + }, | ||
4454 | + "http-errors": { | ||
4455 | + "version": "1.7.3", | ||
4456 | + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", | ||
4457 | + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", | ||
4458 | + "dev": true, | ||
4459 | + "requires": { | ||
4460 | + "depd": "~1.1.2", | ||
4461 | + "inherits": "2.0.4", | ||
4462 | + "setprototypeof": "1.1.1", | ||
4463 | + "statuses": ">= 1.5.0 < 2", | ||
4464 | + "toidentifier": "1.0.0" | ||
4465 | + } | ||
4466 | + }, | ||
4467 | + "http-signature": { | ||
4468 | + "version": "1.2.0", | ||
4469 | + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", | ||
4470 | + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", | ||
4471 | + "requires": { | ||
4472 | + "assert-plus": "^1.0.0", | ||
4473 | + "jsprim": "^1.2.2", | ||
4474 | + "sshpk": "^1.7.0" | ||
4475 | + } | ||
4476 | + }, | ||
4477 | + "https-browserify": { | ||
4478 | + "version": "1.0.0", | ||
4479 | + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", | ||
4480 | + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", | ||
4481 | + "dev": true | ||
4482 | + }, | ||
4483 | + "iconv-lite": { | ||
4484 | + "version": "0.4.24", | ||
4485 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
4486 | + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
4487 | + "dev": true, | ||
4488 | + "requires": { | ||
4489 | + "safer-buffer": ">= 2.1.2 < 3" | ||
4490 | + } | ||
4491 | + }, | ||
4492 | + "icss-replace-symbols": { | ||
4493 | + "version": "1.1.0", | ||
4494 | + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", | ||
4495 | + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", | ||
4496 | + "dev": true | ||
4497 | + }, | ||
4498 | + "ieee754": { | ||
4499 | + "version": "1.1.13", | ||
4500 | + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", | ||
4501 | + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", | ||
4502 | + "dev": true | ||
4503 | + }, | ||
4504 | + "import-fresh": { | ||
4505 | + "version": "2.0.0", | ||
4506 | + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", | ||
4507 | + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", | ||
4508 | + "dev": true, | ||
4509 | + "requires": { | ||
4510 | + "caller-path": "^2.0.0", | ||
4511 | + "resolve-from": "^3.0.0" | ||
4512 | + } | ||
4513 | + }, | ||
4514 | + "indexes-of": { | ||
4515 | + "version": "1.0.1", | ||
4516 | + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", | ||
4517 | + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", | ||
4518 | + "dev": true | ||
4519 | + }, | ||
4520 | + "inflight": { | ||
4521 | + "version": "1.0.6", | ||
4522 | + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||
4523 | + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||
4524 | + "dev": true, | ||
4525 | + "requires": { | ||
4526 | + "once": "^1.3.0", | ||
4527 | + "wrappy": "1" | ||
4528 | + } | ||
4529 | + }, | ||
4530 | + "inherits": { | ||
4531 | + "version": "2.0.4", | ||
4532 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||
4533 | + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | ||
4534 | + "dev": true | ||
4535 | + }, | ||
4536 | + "ini": { | ||
4537 | + "version": "1.3.5", | ||
4538 | + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", | ||
4539 | + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", | ||
4540 | + "dev": true | ||
4541 | + }, | ||
4542 | + "invariant": { | ||
4543 | + "version": "2.2.4", | ||
4544 | + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", | ||
4545 | + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", | ||
4546 | + "dev": true, | ||
4547 | + "requires": { | ||
4548 | + "loose-envify": "^1.0.0" | ||
4549 | + } | ||
4550 | + }, | ||
4551 | + "is-absolute-url": { | ||
4552 | + "version": "2.1.0", | ||
4553 | + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", | ||
4554 | + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", | ||
4555 | + "dev": true | ||
4556 | + }, | ||
4557 | + "is-accessor-descriptor": { | ||
4558 | + "version": "0.1.6", | ||
4559 | + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", | ||
4560 | + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", | ||
4561 | + "dev": true, | ||
4562 | + "requires": { | ||
4563 | + "kind-of": "^3.0.2" | ||
4564 | + }, | ||
4565 | + "dependencies": { | ||
4566 | + "kind-of": { | ||
4567 | + "version": "3.2.2", | ||
4568 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
4569 | + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
4570 | + "dev": true, | ||
4571 | + "requires": { | ||
4572 | + "is-buffer": "^1.1.5" | ||
4573 | + } | ||
4574 | + } | ||
4575 | + } | ||
4576 | + }, | ||
4577 | + "is-arrayish": { | ||
4578 | + "version": "0.2.1", | ||
4579 | + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", | ||
4580 | + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", | ||
4581 | + "dev": true | ||
4582 | + }, | ||
4583 | + "is-binary-path": { | ||
4584 | + "version": "1.0.1", | ||
4585 | + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", | ||
4586 | + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", | ||
4587 | + "dev": true, | ||
4588 | + "requires": { | ||
4589 | + "binary-extensions": "^1.0.0" | ||
4590 | + } | ||
4591 | + }, | ||
4592 | + "is-buffer": { | ||
4593 | + "version": "1.1.6", | ||
4594 | + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", | ||
4595 | + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", | ||
4596 | + "dev": true | ||
4597 | + }, | ||
4598 | + "is-callable": { | ||
4599 | + "version": "1.1.5", | ||
4600 | + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", | ||
4601 | + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", | ||
4602 | + "dev": true | ||
4603 | + }, | ||
4604 | + "is-color-stop": { | ||
4605 | + "version": "1.1.0", | ||
4606 | + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", | ||
4607 | + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", | ||
4608 | + "dev": true, | ||
4609 | + "requires": { | ||
4610 | + "css-color-names": "^0.0.4", | ||
4611 | + "hex-color-regex": "^1.1.0", | ||
4612 | + "hsl-regex": "^1.0.0", | ||
4613 | + "hsla-regex": "^1.0.0", | ||
4614 | + "rgb-regex": "^1.0.1", | ||
4615 | + "rgba-regex": "^1.0.0" | ||
4616 | + } | ||
4617 | + }, | ||
4618 | + "is-data-descriptor": { | ||
4619 | + "version": "0.1.4", | ||
4620 | + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", | ||
4621 | + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", | ||
4622 | + "dev": true, | ||
4623 | + "requires": { | ||
4624 | + "kind-of": "^3.0.2" | ||
4625 | + }, | ||
4626 | + "dependencies": { | ||
4627 | + "kind-of": { | ||
4628 | + "version": "3.2.2", | ||
4629 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
4630 | + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
4631 | + "dev": true, | ||
4632 | + "requires": { | ||
4633 | + "is-buffer": "^1.1.5" | ||
4634 | + } | ||
4635 | + } | ||
4636 | + } | ||
4637 | + }, | ||
4638 | + "is-date-object": { | ||
4639 | + "version": "1.0.2", | ||
4640 | + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", | ||
4641 | + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", | ||
4642 | + "dev": true | ||
4643 | + }, | ||
4644 | + "is-descriptor": { | ||
4645 | + "version": "0.1.6", | ||
4646 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", | ||
4647 | + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", | ||
4648 | + "dev": true, | ||
4649 | + "requires": { | ||
4650 | + "is-accessor-descriptor": "^0.1.6", | ||
4651 | + "is-data-descriptor": "^0.1.4", | ||
4652 | + "kind-of": "^5.0.0" | ||
4653 | + }, | ||
4654 | + "dependencies": { | ||
4655 | + "kind-of": { | ||
4656 | + "version": "5.1.0", | ||
4657 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", | ||
4658 | + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", | ||
4659 | + "dev": true | ||
4660 | + } | ||
4661 | + } | ||
4662 | + }, | ||
4663 | + "is-directory": { | ||
4664 | + "version": "0.3.1", | ||
4665 | + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", | ||
4666 | + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", | ||
4667 | + "dev": true | ||
4668 | + }, | ||
4669 | + "is-extendable": { | ||
4670 | + "version": "0.1.1", | ||
4671 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", | ||
4672 | + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", | ||
4673 | + "dev": true | ||
4674 | + }, | ||
4675 | + "is-extglob": { | ||
4676 | + "version": "2.1.1", | ||
4677 | + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", | ||
4678 | + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", | ||
4679 | + "dev": true | ||
4680 | + }, | ||
4681 | + "is-fullwidth-code-point": { | ||
4682 | + "version": "2.0.0", | ||
4683 | + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
4684 | + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
4685 | + "dev": true | ||
4686 | + }, | ||
4687 | + "is-glob": { | ||
4688 | + "version": "4.0.1", | ||
4689 | + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | ||
4690 | + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | ||
4691 | + "dev": true, | ||
4692 | + "requires": { | ||
4693 | + "is-extglob": "^2.1.1" | ||
4694 | + } | ||
4695 | + }, | ||
4696 | + "is-html": { | ||
4697 | + "version": "1.1.0", | ||
4698 | + "resolved": "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz", | ||
4699 | + "integrity": "sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ=", | ||
4700 | + "dev": true, | ||
4701 | + "requires": { | ||
4702 | + "html-tags": "^1.0.0" | ||
4703 | + } | ||
4704 | + }, | ||
4705 | + "is-number": { | ||
4706 | + "version": "3.0.0", | ||
4707 | + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", | ||
4708 | + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", | ||
4709 | + "dev": true, | ||
4710 | + "requires": { | ||
4711 | + "kind-of": "^3.0.2" | ||
4712 | + }, | ||
4713 | + "dependencies": { | ||
4714 | + "kind-of": { | ||
4715 | + "version": "3.2.2", | ||
4716 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
4717 | + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
4718 | + "dev": true, | ||
4719 | + "requires": { | ||
4720 | + "is-buffer": "^1.1.5" | ||
4721 | + } | ||
4722 | + } | ||
4723 | + } | ||
4724 | + }, | ||
4725 | + "is-obj": { | ||
4726 | + "version": "2.0.0", | ||
4727 | + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", | ||
4728 | + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", | ||
4729 | + "dev": true | ||
4730 | + }, | ||
4731 | + "is-plain-object": { | ||
4732 | + "version": "2.0.4", | ||
4733 | + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", | ||
4734 | + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", | ||
4735 | + "dev": true, | ||
4736 | + "requires": { | ||
4737 | + "isobject": "^3.0.1" | ||
4738 | + } | ||
4739 | + }, | ||
4740 | + "is-regex": { | ||
4741 | + "version": "1.0.5", | ||
4742 | + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", | ||
4743 | + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", | ||
4744 | + "dev": true, | ||
4745 | + "requires": { | ||
4746 | + "has": "^1.0.3" | ||
4747 | + } | ||
4748 | + }, | ||
4749 | + "is-resolvable": { | ||
4750 | + "version": "1.1.0", | ||
4751 | + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", | ||
4752 | + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", | ||
4753 | + "dev": true | ||
4754 | + }, | ||
4755 | + "is-svg": { | ||
4756 | + "version": "3.0.0", | ||
4757 | + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", | ||
4758 | + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", | ||
4759 | + "dev": true, | ||
4760 | + "requires": { | ||
4761 | + "html-comment-regex": "^1.1.0" | ||
4762 | + } | ||
4763 | + }, | ||
4764 | + "is-symbol": { | ||
4765 | + "version": "1.0.3", | ||
4766 | + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", | ||
4767 | + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", | ||
4768 | + "dev": true, | ||
4769 | + "requires": { | ||
4770 | + "has-symbols": "^1.0.1" | ||
4771 | + } | ||
4772 | + }, | ||
4773 | + "is-typedarray": { | ||
4774 | + "version": "1.0.0", | ||
4775 | + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | ||
4776 | + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" | ||
4777 | + }, | ||
4778 | + "is-url": { | ||
4779 | + "version": "1.2.4", | ||
4780 | + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", | ||
4781 | + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", | ||
4782 | + "dev": true | ||
4783 | + }, | ||
4784 | + "is-windows": { | ||
4785 | + "version": "1.0.2", | ||
4786 | + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", | ||
4787 | + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", | ||
4788 | + "dev": true | ||
4789 | + }, | ||
4790 | + "is-wsl": { | ||
4791 | + "version": "1.1.0", | ||
4792 | + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", | ||
4793 | + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", | ||
4794 | + "dev": true | ||
4795 | + }, | ||
4796 | + "isarray": { | ||
4797 | + "version": "1.0.0", | ||
4798 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||
4799 | + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", | ||
4800 | + "dev": true | ||
4801 | + }, | ||
4802 | + "isexe": { | ||
4803 | + "version": "2.0.0", | ||
4804 | + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | ||
4805 | + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", | ||
4806 | + "dev": true | ||
4807 | + }, | ||
4808 | + "isobject": { | ||
4809 | + "version": "3.0.1", | ||
4810 | + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", | ||
4811 | + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", | ||
4812 | + "dev": true | ||
4813 | + }, | ||
4814 | + "isstream": { | ||
4815 | + "version": "0.1.2", | ||
4816 | + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | ||
4817 | + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" | ||
4818 | + }, | ||
4819 | + "js-beautify": { | ||
4820 | + "version": "1.11.0", | ||
4821 | + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz", | ||
4822 | + "integrity": "sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==", | ||
4823 | + "dev": true, | ||
4824 | + "requires": { | ||
4825 | + "config-chain": "^1.1.12", | ||
4826 | + "editorconfig": "^0.15.3", | ||
4827 | + "glob": "^7.1.3", | ||
4828 | + "mkdirp": "~1.0.3", | ||
4829 | + "nopt": "^4.0.3" | ||
4830 | + }, | ||
4831 | + "dependencies": { | ||
4832 | + "mkdirp": { | ||
4833 | + "version": "1.0.4", | ||
4834 | + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", | ||
4835 | + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", | ||
4836 | + "dev": true | ||
4837 | + } | ||
4838 | + } | ||
4839 | + }, | ||
4840 | + "js-levenshtein": { | ||
4841 | + "version": "1.1.6", | ||
4842 | + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", | ||
4843 | + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", | ||
4844 | + "dev": true | ||
4845 | + }, | ||
4846 | + "js-tokens": { | ||
4847 | + "version": "4.0.0", | ||
4848 | + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | ||
4849 | + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", | ||
4850 | + "dev": true | ||
4851 | + }, | ||
4852 | + "js-yaml": { | ||
4853 | + "version": "3.13.1", | ||
4854 | + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", | ||
4855 | + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", | ||
4856 | + "dev": true, | ||
4857 | + "requires": { | ||
4858 | + "argparse": "^1.0.7", | ||
4859 | + "esprima": "^4.0.0" | ||
4860 | + } | ||
4861 | + }, | ||
4862 | + "jsbn": { | ||
4863 | + "version": "0.1.1", | ||
4864 | + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | ||
4865 | + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" | ||
4866 | + }, | ||
4867 | + "jsdom": { | ||
4868 | + "version": "14.1.0", | ||
4869 | + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", | ||
4870 | + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", | ||
4871 | + "dev": true, | ||
4872 | + "requires": { | ||
4873 | + "abab": "^2.0.0", | ||
4874 | + "acorn": "^6.0.4", | ||
4875 | + "acorn-globals": "^4.3.0", | ||
4876 | + "array-equal": "^1.0.0", | ||
4877 | + "cssom": "^0.3.4", | ||
4878 | + "cssstyle": "^1.1.1", | ||
4879 | + "data-urls": "^1.1.0", | ||
4880 | + "domexception": "^1.0.1", | ||
4881 | + "escodegen": "^1.11.0", | ||
4882 | + "html-encoding-sniffer": "^1.0.2", | ||
4883 | + "nwsapi": "^2.1.3", | ||
4884 | + "parse5": "5.1.0", | ||
4885 | + "pn": "^1.1.0", | ||
4886 | + "request": "^2.88.0", | ||
4887 | + "request-promise-native": "^1.0.5", | ||
4888 | + "saxes": "^3.1.9", | ||
4889 | + "symbol-tree": "^3.2.2", | ||
4890 | + "tough-cookie": "^2.5.0", | ||
4891 | + "w3c-hr-time": "^1.0.1", | ||
4892 | + "w3c-xmlserializer": "^1.1.2", | ||
4893 | + "webidl-conversions": "^4.0.2", | ||
4894 | + "whatwg-encoding": "^1.0.5", | ||
4895 | + "whatwg-mimetype": "^2.3.0", | ||
4896 | + "whatwg-url": "^7.0.0", | ||
4897 | + "ws": "^6.1.2", | ||
4898 | + "xml-name-validator": "^3.0.0" | ||
4899 | + }, | ||
4900 | + "dependencies": { | ||
4901 | + "acorn": { | ||
4902 | + "version": "6.4.1", | ||
4903 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", | ||
4904 | + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", | ||
4905 | + "dev": true | ||
4906 | + }, | ||
4907 | + "escodegen": { | ||
4908 | + "version": "1.14.1", | ||
4909 | + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", | ||
4910 | + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", | ||
4911 | + "dev": true, | ||
4912 | + "requires": { | ||
4913 | + "esprima": "^4.0.1", | ||
4914 | + "estraverse": "^4.2.0", | ||
4915 | + "esutils": "^2.0.2", | ||
4916 | + "optionator": "^0.8.1", | ||
4917 | + "source-map": "~0.6.1" | ||
4918 | + } | ||
4919 | + }, | ||
4920 | + "ws": { | ||
4921 | + "version": "6.2.1", | ||
4922 | + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", | ||
4923 | + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", | ||
4924 | + "dev": true, | ||
4925 | + "requires": { | ||
4926 | + "async-limiter": "~1.0.0" | ||
4927 | + } | ||
4928 | + } | ||
4929 | + } | ||
4930 | + }, | ||
4931 | + "jsesc": { | ||
4932 | + "version": "2.5.2", | ||
4933 | + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", | ||
4934 | + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", | ||
4935 | + "dev": true | ||
4936 | + }, | ||
4937 | + "json-parse-better-errors": { | ||
4938 | + "version": "1.0.2", | ||
4939 | + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", | ||
4940 | + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", | ||
4941 | + "dev": true | ||
4942 | + }, | ||
4943 | + "json-schema": { | ||
4944 | + "version": "0.2.3", | ||
4945 | + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", | ||
4946 | + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" | ||
4947 | + }, | ||
4948 | + "json-schema-traverse": { | ||
4949 | + "version": "0.4.1", | ||
4950 | + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", | ||
4951 | + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" | ||
4952 | + }, | ||
4953 | + "json-stringify-safe": { | ||
4954 | + "version": "5.0.1", | ||
4955 | + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||
4956 | + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | ||
4957 | + }, | ||
4958 | + "json5": { | ||
4959 | + "version": "1.0.1", | ||
4960 | + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", | ||
4961 | + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", | ||
4962 | + "dev": true, | ||
4963 | + "requires": { | ||
4964 | + "minimist": "^1.2.0" | ||
4965 | + } | ||
4966 | + }, | ||
4967 | + "jsprim": { | ||
4968 | + "version": "1.4.1", | ||
4969 | + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", | ||
4970 | + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", | ||
4971 | + "requires": { | ||
4972 | + "assert-plus": "1.0.0", | ||
4973 | + "extsprintf": "1.3.0", | ||
4974 | + "json-schema": "0.2.3", | ||
4975 | + "verror": "1.10.0" | ||
4976 | + } | ||
4977 | + }, | ||
4978 | + "kind-of": { | ||
4979 | + "version": "6.0.3", | ||
4980 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", | ||
4981 | + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", | ||
4982 | + "dev": true | ||
4983 | + }, | ||
4984 | + "levn": { | ||
4985 | + "version": "0.3.0", | ||
4986 | + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", | ||
4987 | + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", | ||
4988 | + "dev": true, | ||
4989 | + "requires": { | ||
4990 | + "prelude-ls": "~1.1.2", | ||
4991 | + "type-check": "~0.3.2" | ||
4992 | + } | ||
4993 | + }, | ||
4994 | + "locate-path": { | ||
4995 | + "version": "2.0.0", | ||
4996 | + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", | ||
4997 | + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", | ||
4998 | + "dev": true, | ||
4999 | + "requires": { | ||
5000 | + "p-locate": "^2.0.0", | ||
5001 | + "path-exists": "^3.0.0" | ||
5002 | + } | ||
5003 | + }, | ||
5004 | + "lodash": { | ||
5005 | + "version": "4.17.15", | ||
5006 | + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", | ||
5007 | + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", | ||
5008 | + "dev": true | ||
5009 | + }, | ||
5010 | + "lodash.clone": { | ||
5011 | + "version": "4.5.0", | ||
5012 | + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", | ||
5013 | + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", | ||
5014 | + "dev": true | ||
5015 | + }, | ||
5016 | + "lodash.memoize": { | ||
5017 | + "version": "4.1.2", | ||
5018 | + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", | ||
5019 | + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", | ||
5020 | + "dev": true | ||
5021 | + }, | ||
5022 | + "lodash.sortby": { | ||
5023 | + "version": "4.7.0", | ||
5024 | + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", | ||
5025 | + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", | ||
5026 | + "dev": true | ||
5027 | + }, | ||
5028 | + "lodash.uniq": { | ||
5029 | + "version": "4.5.0", | ||
5030 | + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", | ||
5031 | + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", | ||
5032 | + "dev": true | ||
5033 | + }, | ||
5034 | + "log-symbols": { | ||
5035 | + "version": "2.2.0", | ||
5036 | + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", | ||
5037 | + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", | ||
5038 | + "dev": true, | ||
5039 | + "requires": { | ||
5040 | + "chalk": "^2.0.1" | ||
5041 | + } | ||
5042 | + }, | ||
5043 | + "loose-envify": { | ||
5044 | + "version": "1.4.0", | ||
5045 | + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", | ||
5046 | + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", | ||
5047 | + "dev": true, | ||
5048 | + "requires": { | ||
5049 | + "js-tokens": "^3.0.0 || ^4.0.0" | ||
5050 | + } | ||
5051 | + }, | ||
5052 | + "lru-cache": { | ||
5053 | + "version": "4.1.5", | ||
5054 | + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", | ||
5055 | + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", | ||
5056 | + "dev": true, | ||
5057 | + "requires": { | ||
5058 | + "pseudomap": "^1.0.2", | ||
5059 | + "yallist": "^2.1.2" | ||
5060 | + } | ||
5061 | + }, | ||
5062 | + "magic-string": { | ||
5063 | + "version": "0.22.5", | ||
5064 | + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", | ||
5065 | + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", | ||
5066 | + "dev": true, | ||
5067 | + "requires": { | ||
5068 | + "vlq": "^0.2.2" | ||
5069 | + } | ||
5070 | + }, | ||
5071 | + "map-cache": { | ||
5072 | + "version": "0.2.2", | ||
5073 | + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", | ||
5074 | + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", | ||
5075 | + "dev": true | ||
5076 | + }, | ||
5077 | + "map-visit": { | ||
5078 | + "version": "1.0.0", | ||
5079 | + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", | ||
5080 | + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", | ||
5081 | + "dev": true, | ||
5082 | + "requires": { | ||
5083 | + "object-visit": "^1.0.0" | ||
5084 | + } | ||
5085 | + }, | ||
5086 | + "md5.js": { | ||
5087 | + "version": "1.3.5", | ||
5088 | + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", | ||
5089 | + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", | ||
5090 | + "dev": true, | ||
5091 | + "requires": { | ||
5092 | + "hash-base": "^3.0.0", | ||
5093 | + "inherits": "^2.0.1", | ||
5094 | + "safe-buffer": "^5.1.2" | ||
5095 | + } | ||
5096 | + }, | ||
5097 | + "mdn-data": { | ||
5098 | + "version": "2.0.4", | ||
5099 | + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", | ||
5100 | + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", | ||
5101 | + "dev": true | ||
5102 | + }, | ||
5103 | + "merge-source-map": { | ||
5104 | + "version": "1.0.4", | ||
5105 | + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", | ||
5106 | + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", | ||
5107 | + "dev": true, | ||
5108 | + "requires": { | ||
5109 | + "source-map": "^0.5.6" | ||
5110 | + }, | ||
5111 | + "dependencies": { | ||
5112 | + "source-map": { | ||
5113 | + "version": "0.5.7", | ||
5114 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
5115 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
5116 | + "dev": true | ||
5117 | + } | ||
5118 | + } | ||
5119 | + }, | ||
5120 | + "merge2": { | ||
5121 | + "version": "1.3.0", | ||
5122 | + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", | ||
5123 | + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", | ||
5124 | + "dev": true | ||
5125 | + }, | ||
5126 | + "micromatch": { | ||
5127 | + "version": "3.1.10", | ||
5128 | + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", | ||
5129 | + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", | ||
5130 | + "dev": true, | ||
5131 | + "requires": { | ||
5132 | + "arr-diff": "^4.0.0", | ||
5133 | + "array-unique": "^0.3.2", | ||
5134 | + "braces": "^2.3.1", | ||
5135 | + "define-property": "^2.0.2", | ||
5136 | + "extend-shallow": "^3.0.2", | ||
5137 | + "extglob": "^2.0.4", | ||
5138 | + "fragment-cache": "^0.2.1", | ||
5139 | + "kind-of": "^6.0.2", | ||
5140 | + "nanomatch": "^1.2.9", | ||
5141 | + "object.pick": "^1.3.0", | ||
5142 | + "regex-not": "^1.0.0", | ||
5143 | + "snapdragon": "^0.8.1", | ||
5144 | + "to-regex": "^3.0.2" | ||
5145 | + } | ||
5146 | + }, | ||
5147 | + "miller-rabin": { | ||
5148 | + "version": "4.0.1", | ||
5149 | + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", | ||
5150 | + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", | ||
5151 | + "dev": true, | ||
5152 | + "requires": { | ||
5153 | + "bn.js": "^4.0.0", | ||
5154 | + "brorand": "^1.0.1" | ||
5155 | + } | ||
5156 | + }, | ||
5157 | + "mime": { | ||
5158 | + "version": "1.6.0", | ||
5159 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", | ||
5160 | + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", | ||
5161 | + "dev": true | ||
5162 | + }, | ||
5163 | + "mime-db": { | ||
5164 | + "version": "1.44.0", | ||
5165 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", | ||
5166 | + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" | ||
5167 | + }, | ||
5168 | + "mime-types": { | ||
5169 | + "version": "2.1.27", | ||
5170 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", | ||
5171 | + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", | ||
5172 | + "requires": { | ||
5173 | + "mime-db": "1.44.0" | ||
5174 | + } | ||
5175 | + }, | ||
5176 | + "mimic-fn": { | ||
5177 | + "version": "1.2.0", | ||
5178 | + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", | ||
5179 | + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", | ||
5180 | + "dev": true | ||
5181 | + }, | ||
5182 | + "minimalistic-assert": { | ||
5183 | + "version": "1.0.1", | ||
5184 | + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", | ||
5185 | + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", | ||
5186 | + "dev": true | ||
5187 | + }, | ||
5188 | + "minimalistic-crypto-utils": { | ||
5189 | + "version": "1.0.1", | ||
5190 | + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", | ||
5191 | + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", | ||
5192 | + "dev": true | ||
5193 | + }, | ||
5194 | + "minimatch": { | ||
5195 | + "version": "3.0.4", | ||
5196 | + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||
5197 | + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
5198 | + "dev": true, | ||
5199 | + "requires": { | ||
5200 | + "brace-expansion": "^1.1.7" | ||
5201 | + } | ||
5202 | + }, | ||
5203 | + "minimist": { | ||
5204 | + "version": "1.2.5", | ||
5205 | + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||
5206 | + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", | ||
5207 | + "dev": true | ||
5208 | + }, | ||
5209 | + "mixin-deep": { | ||
5210 | + "version": "1.3.2", | ||
5211 | + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", | ||
5212 | + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", | ||
5213 | + "dev": true, | ||
5214 | + "requires": { | ||
5215 | + "for-in": "^1.0.2", | ||
5216 | + "is-extendable": "^1.0.1" | ||
5217 | + }, | ||
5218 | + "dependencies": { | ||
5219 | + "is-extendable": { | ||
5220 | + "version": "1.0.1", | ||
5221 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | ||
5222 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | ||
5223 | + "dev": true, | ||
5224 | + "requires": { | ||
5225 | + "is-plain-object": "^2.0.4" | ||
5226 | + } | ||
5227 | + } | ||
5228 | + } | ||
5229 | + }, | ||
5230 | + "mkdirp": { | ||
5231 | + "version": "0.5.5", | ||
5232 | + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", | ||
5233 | + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", | ||
5234 | + "dev": true, | ||
5235 | + "requires": { | ||
5236 | + "minimist": "^1.2.5" | ||
5237 | + } | ||
5238 | + }, | ||
5239 | + "ms": { | ||
5240 | + "version": "2.1.2", | ||
5241 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
5242 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", | ||
5243 | + "dev": true | ||
5244 | + }, | ||
5245 | + "nan": { | ||
5246 | + "version": "2.14.1", | ||
5247 | + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", | ||
5248 | + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", | ||
5249 | + "dev": true, | ||
5250 | + "optional": true | ||
5251 | + }, | ||
5252 | + "nanomatch": { | ||
5253 | + "version": "1.2.13", | ||
5254 | + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", | ||
5255 | + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", | ||
5256 | + "dev": true, | ||
5257 | + "requires": { | ||
5258 | + "arr-diff": "^4.0.0", | ||
5259 | + "array-unique": "^0.3.2", | ||
5260 | + "define-property": "^2.0.2", | ||
5261 | + "extend-shallow": "^3.0.2", | ||
5262 | + "fragment-cache": "^0.2.1", | ||
5263 | + "is-windows": "^1.0.2", | ||
5264 | + "kind-of": "^6.0.2", | ||
5265 | + "object.pick": "^1.3.0", | ||
5266 | + "regex-not": "^1.0.0", | ||
5267 | + "snapdragon": "^0.8.1", | ||
5268 | + "to-regex": "^3.0.1" | ||
5269 | + } | ||
5270 | + }, | ||
5271 | + "nice-try": { | ||
5272 | + "version": "1.0.5", | ||
5273 | + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", | ||
5274 | + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", | ||
5275 | + "dev": true | ||
5276 | + }, | ||
5277 | + "node-addon-api": { | ||
5278 | + "version": "1.7.1", | ||
5279 | + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz", | ||
5280 | + "integrity": "sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==", | ||
5281 | + "dev": true | ||
5282 | + }, | ||
5283 | + "node-elm-compiler": { | ||
5284 | + "version": "5.0.4", | ||
5285 | + "resolved": "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz", | ||
5286 | + "integrity": "sha512-VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==", | ||
5287 | + "dev": true, | ||
5288 | + "requires": { | ||
5289 | + "cross-spawn": "6.0.5", | ||
5290 | + "find-elm-dependencies": "2.0.2", | ||
5291 | + "lodash": "4.17.15", | ||
5292 | + "temp": "^0.9.0" | ||
5293 | + } | ||
5294 | + }, | ||
5295 | + "node-forge": { | ||
5296 | + "version": "0.7.6", | ||
5297 | + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", | ||
5298 | + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", | ||
5299 | + "dev": true | ||
5300 | + }, | ||
5301 | + "node-libs-browser": { | ||
5302 | + "version": "2.2.1", | ||
5303 | + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", | ||
5304 | + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", | ||
5305 | + "dev": true, | ||
5306 | + "requires": { | ||
5307 | + "assert": "^1.1.1", | ||
5308 | + "browserify-zlib": "^0.2.0", | ||
5309 | + "buffer": "^4.3.0", | ||
5310 | + "console-browserify": "^1.1.0", | ||
5311 | + "constants-browserify": "^1.0.0", | ||
5312 | + "crypto-browserify": "^3.11.0", | ||
5313 | + "domain-browser": "^1.1.1", | ||
5314 | + "events": "^3.0.0", | ||
5315 | + "https-browserify": "^1.0.0", | ||
5316 | + "os-browserify": "^0.3.0", | ||
5317 | + "path-browserify": "0.0.1", | ||
5318 | + "process": "^0.11.10", | ||
5319 | + "punycode": "^1.2.4", | ||
5320 | + "querystring-es3": "^0.2.0", | ||
5321 | + "readable-stream": "^2.3.3", | ||
5322 | + "stream-browserify": "^2.0.1", | ||
5323 | + "stream-http": "^2.7.2", | ||
5324 | + "string_decoder": "^1.0.0", | ||
5325 | + "timers-browserify": "^2.0.4", | ||
5326 | + "tty-browserify": "0.0.0", | ||
5327 | + "url": "^0.11.0", | ||
5328 | + "util": "^0.11.0", | ||
5329 | + "vm-browserify": "^1.0.1" | ||
5330 | + }, | ||
5331 | + "dependencies": { | ||
5332 | + "punycode": { | ||
5333 | + "version": "1.4.1", | ||
5334 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||
5335 | + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", | ||
5336 | + "dev": true | ||
5337 | + } | ||
5338 | + } | ||
5339 | + }, | ||
5340 | + "node-releases": { | ||
5341 | + "version": "1.1.53", | ||
5342 | + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", | ||
5343 | + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", | ||
5344 | + "dev": true | ||
5345 | + }, | ||
5346 | + "nopt": { | ||
5347 | + "version": "4.0.3", | ||
5348 | + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", | ||
5349 | + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", | ||
5350 | + "dev": true, | ||
5351 | + "requires": { | ||
5352 | + "abbrev": "1", | ||
5353 | + "osenv": "^0.1.4" | ||
5354 | + } | ||
5355 | + }, | ||
5356 | + "normalize-html-whitespace": { | ||
5357 | + "version": "1.0.0", | ||
5358 | + "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz", | ||
5359 | + "integrity": "sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA==", | ||
5360 | + "dev": true | ||
5361 | + }, | ||
5362 | + "normalize-path": { | ||
5363 | + "version": "3.0.0", | ||
5364 | + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", | ||
5365 | + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", | ||
5366 | + "dev": true | ||
5367 | + }, | ||
5368 | + "normalize-url": { | ||
5369 | + "version": "3.3.0", | ||
5370 | + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", | ||
5371 | + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", | ||
5372 | + "dev": true | ||
5373 | + }, | ||
5374 | + "nth-check": { | ||
5375 | + "version": "1.0.2", | ||
5376 | + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", | ||
5377 | + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", | ||
5378 | + "dev": true, | ||
5379 | + "requires": { | ||
5380 | + "boolbase": "~1.0.0" | ||
5381 | + } | ||
5382 | + }, | ||
5383 | + "nwsapi": { | ||
5384 | + "version": "2.2.0", | ||
5385 | + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", | ||
5386 | + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", | ||
5387 | + "dev": true | ||
5388 | + }, | ||
5389 | + "oauth-sign": { | ||
5390 | + "version": "0.9.0", | ||
5391 | + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | ||
5392 | + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" | ||
5393 | + }, | ||
5394 | + "object-assign": { | ||
5395 | + "version": "4.1.1", | ||
5396 | + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | ||
5397 | + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", | ||
5398 | + "dev": true | ||
5399 | + }, | ||
5400 | + "object-copy": { | ||
5401 | + "version": "0.1.0", | ||
5402 | + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", | ||
5403 | + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", | ||
5404 | + "dev": true, | ||
5405 | + "requires": { | ||
5406 | + "copy-descriptor": "^0.1.0", | ||
5407 | + "define-property": "^0.2.5", | ||
5408 | + "kind-of": "^3.0.3" | ||
5409 | + }, | ||
5410 | + "dependencies": { | ||
5411 | + "define-property": { | ||
5412 | + "version": "0.2.5", | ||
5413 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | ||
5414 | + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", | ||
5415 | + "dev": true, | ||
5416 | + "requires": { | ||
5417 | + "is-descriptor": "^0.1.0" | ||
5418 | + } | ||
5419 | + }, | ||
5420 | + "kind-of": { | ||
5421 | + "version": "3.2.2", | ||
5422 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
5423 | + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
5424 | + "dev": true, | ||
5425 | + "requires": { | ||
5426 | + "is-buffer": "^1.1.5" | ||
5427 | + } | ||
5428 | + } | ||
5429 | + } | ||
5430 | + }, | ||
5431 | + "object-inspect": { | ||
5432 | + "version": "1.7.0", | ||
5433 | + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", | ||
5434 | + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", | ||
5435 | + "dev": true | ||
5436 | + }, | ||
5437 | + "object-keys": { | ||
5438 | + "version": "1.1.1", | ||
5439 | + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | ||
5440 | + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", | ||
5441 | + "dev": true | ||
5442 | + }, | ||
5443 | + "object-visit": { | ||
5444 | + "version": "1.0.1", | ||
5445 | + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", | ||
5446 | + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", | ||
5447 | + "dev": true, | ||
5448 | + "requires": { | ||
5449 | + "isobject": "^3.0.0" | ||
5450 | + } | ||
5451 | + }, | ||
5452 | + "object.assign": { | ||
5453 | + "version": "4.1.0", | ||
5454 | + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", | ||
5455 | + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", | ||
5456 | + "dev": true, | ||
5457 | + "requires": { | ||
5458 | + "define-properties": "^1.1.2", | ||
5459 | + "function-bind": "^1.1.1", | ||
5460 | + "has-symbols": "^1.0.0", | ||
5461 | + "object-keys": "^1.0.11" | ||
5462 | + } | ||
5463 | + }, | ||
5464 | + "object.getownpropertydescriptors": { | ||
5465 | + "version": "2.1.0", | ||
5466 | + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", | ||
5467 | + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", | ||
5468 | + "dev": true, | ||
5469 | + "requires": { | ||
5470 | + "define-properties": "^1.1.3", | ||
5471 | + "es-abstract": "^1.17.0-next.1" | ||
5472 | + } | ||
5473 | + }, | ||
5474 | + "object.pick": { | ||
5475 | + "version": "1.3.0", | ||
5476 | + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", | ||
5477 | + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", | ||
5478 | + "dev": true, | ||
5479 | + "requires": { | ||
5480 | + "isobject": "^3.0.1" | ||
5481 | + } | ||
5482 | + }, | ||
5483 | + "object.values": { | ||
5484 | + "version": "1.1.1", | ||
5485 | + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", | ||
5486 | + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", | ||
5487 | + "dev": true, | ||
5488 | + "requires": { | ||
5489 | + "define-properties": "^1.1.3", | ||
5490 | + "es-abstract": "^1.17.0-next.1", | ||
5491 | + "function-bind": "^1.1.1", | ||
5492 | + "has": "^1.0.3" | ||
5493 | + } | ||
5494 | + }, | ||
5495 | + "on-finished": { | ||
5496 | + "version": "2.3.0", | ||
5497 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | ||
5498 | + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", | ||
5499 | + "dev": true, | ||
5500 | + "requires": { | ||
5501 | + "ee-first": "1.1.1" | ||
5502 | + } | ||
5503 | + }, | ||
5504 | + "once": { | ||
5505 | + "version": "1.4.0", | ||
5506 | + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||
5507 | + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||
5508 | + "dev": true, | ||
5509 | + "requires": { | ||
5510 | + "wrappy": "1" | ||
5511 | + } | ||
5512 | + }, | ||
5513 | + "onetime": { | ||
5514 | + "version": "2.0.1", | ||
5515 | + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", | ||
5516 | + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", | ||
5517 | + "dev": true, | ||
5518 | + "requires": { | ||
5519 | + "mimic-fn": "^1.0.0" | ||
5520 | + } | ||
5521 | + }, | ||
5522 | + "opn": { | ||
5523 | + "version": "5.5.0", | ||
5524 | + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", | ||
5525 | + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", | ||
5526 | + "dev": true, | ||
5527 | + "requires": { | ||
5528 | + "is-wsl": "^1.1.0" | ||
5529 | + } | ||
5530 | + }, | ||
5531 | + "optionator": { | ||
5532 | + "version": "0.8.3", | ||
5533 | + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", | ||
5534 | + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", | ||
5535 | + "dev": true, | ||
5536 | + "requires": { | ||
5537 | + "deep-is": "~0.1.3", | ||
5538 | + "fast-levenshtein": "~2.0.6", | ||
5539 | + "levn": "~0.3.0", | ||
5540 | + "prelude-ls": "~1.1.2", | ||
5541 | + "type-check": "~0.3.2", | ||
5542 | + "word-wrap": "~1.2.3" | ||
5543 | + } | ||
5544 | + }, | ||
5545 | + "ora": { | ||
5546 | + "version": "2.1.0", | ||
5547 | + "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", | ||
5548 | + "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", | ||
5549 | + "dev": true, | ||
5550 | + "requires": { | ||
5551 | + "chalk": "^2.3.1", | ||
5552 | + "cli-cursor": "^2.1.0", | ||
5553 | + "cli-spinners": "^1.1.0", | ||
5554 | + "log-symbols": "^2.2.0", | ||
5555 | + "strip-ansi": "^4.0.0", | ||
5556 | + "wcwidth": "^1.0.1" | ||
5557 | + } | ||
5558 | + }, | ||
5559 | + "os-browserify": { | ||
5560 | + "version": "0.3.0", | ||
5561 | + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", | ||
5562 | + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", | ||
5563 | + "dev": true | ||
5564 | + }, | ||
5565 | + "os-homedir": { | ||
5566 | + "version": "1.0.2", | ||
5567 | + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", | ||
5568 | + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", | ||
5569 | + "dev": true | ||
5570 | + }, | ||
5571 | + "os-tmpdir": { | ||
5572 | + "version": "1.0.2", | ||
5573 | + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", | ||
5574 | + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", | ||
5575 | + "dev": true | ||
5576 | + }, | ||
5577 | + "osenv": { | ||
5578 | + "version": "0.1.5", | ||
5579 | + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", | ||
5580 | + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", | ||
5581 | + "dev": true, | ||
5582 | + "requires": { | ||
5583 | + "os-homedir": "^1.0.0", | ||
5584 | + "os-tmpdir": "^1.0.0" | ||
5585 | + } | ||
5586 | + }, | ||
5587 | + "p-limit": { | ||
5588 | + "version": "1.3.0", | ||
5589 | + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", | ||
5590 | + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", | ||
5591 | + "dev": true, | ||
5592 | + "requires": { | ||
5593 | + "p-try": "^1.0.0" | ||
5594 | + } | ||
5595 | + }, | ||
5596 | + "p-locate": { | ||
5597 | + "version": "2.0.0", | ||
5598 | + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", | ||
5599 | + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", | ||
5600 | + "dev": true, | ||
5601 | + "requires": { | ||
5602 | + "p-limit": "^1.1.0" | ||
5603 | + } | ||
5604 | + }, | ||
5605 | + "p-try": { | ||
5606 | + "version": "1.0.0", | ||
5607 | + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", | ||
5608 | + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", | ||
5609 | + "dev": true | ||
5610 | + }, | ||
5611 | + "pako": { | ||
5612 | + "version": "0.2.9", | ||
5613 | + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", | ||
5614 | + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", | ||
5615 | + "dev": true | ||
5616 | + }, | ||
5617 | + "parcel-bundler": { | ||
5618 | + "version": "1.12.3", | ||
5619 | + "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.3.tgz", | ||
5620 | + "integrity": "sha512-8bq6lj0hhQeGxD9f9xEkFMXQ3d8TIlf2+isKxoi9bciB0KVEILRGllaPkUgp++5t0anToBh9+tG6ZyInXOC1/A==", | ||
5621 | + "dev": true, | ||
5622 | + "requires": { | ||
5623 | + "@babel/code-frame": "^7.0.0 <7.4.0", | ||
5624 | + "@babel/core": "^7.0.0 <7.4.0", | ||
5625 | + "@babel/generator": "^7.0.0 <7.4.0", | ||
5626 | + "@babel/parser": "^7.0.0 <7.4.0", | ||
5627 | + "@babel/plugin-transform-flow-strip-types": "^7.0.0 <7.4.0", | ||
5628 | + "@babel/plugin-transform-modules-commonjs": "^7.0.0 <7.4.0", | ||
5629 | + "@babel/plugin-transform-react-jsx": "^7.0.0 <7.4.0", | ||
5630 | + "@babel/preset-env": "^7.0.0 <7.4.0", | ||
5631 | + "@babel/runtime": "^7.0.0 <7.4.0", | ||
5632 | + "@babel/template": "^7.0.0 <7.4.0", | ||
5633 | + "@babel/traverse": "^7.0.0 <7.4.0", | ||
5634 | + "@babel/types": "^7.0.0 <7.4.0", | ||
5635 | + "@iarna/toml": "^2.2.0", | ||
5636 | + "@parcel/fs": "^1.11.0", | ||
5637 | + "@parcel/logger": "^1.11.0", | ||
5638 | + "@parcel/utils": "^1.11.0", | ||
5639 | + "@parcel/watcher": "^1.12.0", | ||
5640 | + "@parcel/workers": "^1.11.0", | ||
5641 | + "ansi-to-html": "^0.6.4", | ||
5642 | + "babylon-walk": "^1.0.2", | ||
5643 | + "browserslist": "^4.1.0", | ||
5644 | + "chalk": "^2.1.0", | ||
5645 | + "clone": "^2.1.1", | ||
5646 | + "command-exists": "^1.2.6", | ||
5647 | + "commander": "^2.11.0", | ||
5648 | + "cross-spawn": "^6.0.4", | ||
5649 | + "css-modules-loader-core": "^1.1.0", | ||
5650 | + "cssnano": "^4.0.0", | ||
5651 | + "deasync": "^0.1.14", | ||
5652 | + "dotenv": "^5.0.0", | ||
5653 | + "dotenv-expand": "^4.2.0", | ||
5654 | + "fast-glob": "^2.2.2", | ||
5655 | + "filesize": "^3.6.0", | ||
5656 | + "get-port": "^3.2.0", | ||
5657 | + "htmlnano": "^0.2.2", | ||
5658 | + "is-glob": "^4.0.0", | ||
5659 | + "is-url": "^1.2.2", | ||
5660 | + "js-yaml": "^3.10.0", | ||
5661 | + "json5": "^1.0.1", | ||
5662 | + "micromatch": "^3.0.4", | ||
5663 | + "mkdirp": "^0.5.1", | ||
5664 | + "node-forge": "^0.7.1", | ||
5665 | + "node-libs-browser": "^2.0.0", | ||
5666 | + "opn": "^5.1.0", | ||
5667 | + "postcss": "^7.0.11", | ||
5668 | + "postcss-value-parser": "^3.3.1", | ||
5669 | + "posthtml": "^0.11.2", | ||
5670 | + "posthtml-parser": "^0.4.0", | ||
5671 | + "posthtml-render": "^1.1.3", | ||
5672 | + "resolve": "^1.4.0", | ||
5673 | + "semver": "^5.4.1", | ||
5674 | + "serialize-to-js": "^1.1.1", | ||
5675 | + "serve-static": "^1.12.4", | ||
5676 | + "source-map": "0.6.1", | ||
5677 | + "terser": "^3.7.3", | ||
5678 | + "v8-compile-cache": "^2.0.0", | ||
5679 | + "ws": "^5.1.1" | ||
5680 | + }, | ||
5681 | + "dependencies": { | ||
5682 | + "postcss-value-parser": { | ||
5683 | + "version": "3.3.1", | ||
5684 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
5685 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
5686 | + "dev": true | ||
5687 | + } | ||
5688 | + } | ||
5689 | + }, | ||
5690 | + "parse-asn1": { | ||
5691 | + "version": "5.1.5", | ||
5692 | + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", | ||
5693 | + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", | ||
5694 | + "dev": true, | ||
5695 | + "requires": { | ||
5696 | + "asn1.js": "^4.0.0", | ||
5697 | + "browserify-aes": "^1.0.0", | ||
5698 | + "create-hash": "^1.1.0", | ||
5699 | + "evp_bytestokey": "^1.0.0", | ||
5700 | + "pbkdf2": "^3.0.3", | ||
5701 | + "safe-buffer": "^5.1.1" | ||
5702 | + } | ||
5703 | + }, | ||
5704 | + "parse-json": { | ||
5705 | + "version": "4.0.0", | ||
5706 | + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", | ||
5707 | + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", | ||
5708 | + "dev": true, | ||
5709 | + "requires": { | ||
5710 | + "error-ex": "^1.3.1", | ||
5711 | + "json-parse-better-errors": "^1.0.1" | ||
5712 | + } | ||
5713 | + }, | ||
5714 | + "parse5": { | ||
5715 | + "version": "5.1.0", | ||
5716 | + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", | ||
5717 | + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", | ||
5718 | + "dev": true | ||
5719 | + }, | ||
5720 | + "parseurl": { | ||
5721 | + "version": "1.3.3", | ||
5722 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", | ||
5723 | + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", | ||
5724 | + "dev": true | ||
5725 | + }, | ||
5726 | + "pascalcase": { | ||
5727 | + "version": "0.1.1", | ||
5728 | + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", | ||
5729 | + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", | ||
5730 | + "dev": true | ||
5731 | + }, | ||
5732 | + "path-browserify": { | ||
5733 | + "version": "0.0.1", | ||
5734 | + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", | ||
5735 | + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", | ||
5736 | + "dev": true | ||
5737 | + }, | ||
5738 | + "path-dirname": { | ||
5739 | + "version": "1.0.2", | ||
5740 | + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", | ||
5741 | + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", | ||
5742 | + "dev": true | ||
5743 | + }, | ||
5744 | + "path-exists": { | ||
5745 | + "version": "3.0.0", | ||
5746 | + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||
5747 | + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | ||
5748 | + "dev": true | ||
5749 | + }, | ||
5750 | + "path-is-absolute": { | ||
5751 | + "version": "1.0.1", | ||
5752 | + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||
5753 | + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", | ||
5754 | + "dev": true | ||
5755 | + }, | ||
5756 | + "path-key": { | ||
5757 | + "version": "2.0.1", | ||
5758 | + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", | ||
5759 | + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", | ||
5760 | + "dev": true | ||
5761 | + }, | ||
5762 | + "path-parse": { | ||
5763 | + "version": "1.0.6", | ||
5764 | + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", | ||
5765 | + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", | ||
5766 | + "dev": true | ||
5767 | + }, | ||
5768 | + "pbkdf2": { | ||
5769 | + "version": "3.0.17", | ||
5770 | + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", | ||
5771 | + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", | ||
5772 | + "dev": true, | ||
5773 | + "requires": { | ||
5774 | + "create-hash": "^1.1.2", | ||
5775 | + "create-hmac": "^1.1.4", | ||
5776 | + "ripemd160": "^2.0.1", | ||
5777 | + "safe-buffer": "^5.0.1", | ||
5778 | + "sha.js": "^2.4.8" | ||
5779 | + } | ||
5780 | + }, | ||
5781 | + "performance-now": { | ||
5782 | + "version": "2.1.0", | ||
5783 | + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | ||
5784 | + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" | ||
5785 | + }, | ||
5786 | + "physical-cpu-count": { | ||
5787 | + "version": "2.0.0", | ||
5788 | + "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", | ||
5789 | + "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", | ||
5790 | + "dev": true | ||
5791 | + }, | ||
5792 | + "pkg-up": { | ||
5793 | + "version": "2.0.0", | ||
5794 | + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", | ||
5795 | + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", | ||
5796 | + "dev": true, | ||
5797 | + "requires": { | ||
5798 | + "find-up": "^2.1.0" | ||
5799 | + } | ||
5800 | + }, | ||
5801 | + "pn": { | ||
5802 | + "version": "1.1.0", | ||
5803 | + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", | ||
5804 | + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", | ||
5805 | + "dev": true | ||
5806 | + }, | ||
5807 | + "posix-character-classes": { | ||
5808 | + "version": "0.1.1", | ||
5809 | + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", | ||
5810 | + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", | ||
5811 | + "dev": true | ||
5812 | + }, | ||
5813 | + "postcss": { | ||
5814 | + "version": "7.0.27", | ||
5815 | + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", | ||
5816 | + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", | ||
5817 | + "dev": true, | ||
5818 | + "requires": { | ||
5819 | + "chalk": "^2.4.2", | ||
5820 | + "source-map": "^0.6.1", | ||
5821 | + "supports-color": "^6.1.0" | ||
5822 | + } | ||
5823 | + }, | ||
5824 | + "postcss-calc": { | ||
5825 | + "version": "7.0.2", | ||
5826 | + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", | ||
5827 | + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", | ||
5828 | + "dev": true, | ||
5829 | + "requires": { | ||
5830 | + "postcss": "^7.0.27", | ||
5831 | + "postcss-selector-parser": "^6.0.2", | ||
5832 | + "postcss-value-parser": "^4.0.2" | ||
5833 | + } | ||
5834 | + }, | ||
5835 | + "postcss-colormin": { | ||
5836 | + "version": "4.0.3", | ||
5837 | + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", | ||
5838 | + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", | ||
5839 | + "dev": true, | ||
5840 | + "requires": { | ||
5841 | + "browserslist": "^4.0.0", | ||
5842 | + "color": "^3.0.0", | ||
5843 | + "has": "^1.0.0", | ||
5844 | + "postcss": "^7.0.0", | ||
5845 | + "postcss-value-parser": "^3.0.0" | ||
5846 | + }, | ||
5847 | + "dependencies": { | ||
5848 | + "postcss-value-parser": { | ||
5849 | + "version": "3.3.1", | ||
5850 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
5851 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
5852 | + "dev": true | ||
5853 | + } | ||
5854 | + } | ||
5855 | + }, | ||
5856 | + "postcss-convert-values": { | ||
5857 | + "version": "4.0.1", | ||
5858 | + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", | ||
5859 | + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", | ||
5860 | + "dev": true, | ||
5861 | + "requires": { | ||
5862 | + "postcss": "^7.0.0", | ||
5863 | + "postcss-value-parser": "^3.0.0" | ||
5864 | + }, | ||
5865 | + "dependencies": { | ||
5866 | + "postcss-value-parser": { | ||
5867 | + "version": "3.3.1", | ||
5868 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
5869 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
5870 | + "dev": true | ||
5871 | + } | ||
5872 | + } | ||
5873 | + }, | ||
5874 | + "postcss-discard-comments": { | ||
5875 | + "version": "4.0.2", | ||
5876 | + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", | ||
5877 | + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", | ||
5878 | + "dev": true, | ||
5879 | + "requires": { | ||
5880 | + "postcss": "^7.0.0" | ||
5881 | + } | ||
5882 | + }, | ||
5883 | + "postcss-discard-duplicates": { | ||
5884 | + "version": "4.0.2", | ||
5885 | + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", | ||
5886 | + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", | ||
5887 | + "dev": true, | ||
5888 | + "requires": { | ||
5889 | + "postcss": "^7.0.0" | ||
5890 | + } | ||
5891 | + }, | ||
5892 | + "postcss-discard-empty": { | ||
5893 | + "version": "4.0.1", | ||
5894 | + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", | ||
5895 | + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", | ||
5896 | + "dev": true, | ||
5897 | + "requires": { | ||
5898 | + "postcss": "^7.0.0" | ||
5899 | + } | ||
5900 | + }, | ||
5901 | + "postcss-discard-overridden": { | ||
5902 | + "version": "4.0.1", | ||
5903 | + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", | ||
5904 | + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", | ||
5905 | + "dev": true, | ||
5906 | + "requires": { | ||
5907 | + "postcss": "^7.0.0" | ||
5908 | + } | ||
5909 | + }, | ||
5910 | + "postcss-merge-longhand": { | ||
5911 | + "version": "4.0.11", | ||
5912 | + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", | ||
5913 | + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", | ||
5914 | + "dev": true, | ||
5915 | + "requires": { | ||
5916 | + "css-color-names": "0.0.4", | ||
5917 | + "postcss": "^7.0.0", | ||
5918 | + "postcss-value-parser": "^3.0.0", | ||
5919 | + "stylehacks": "^4.0.0" | ||
5920 | + }, | ||
5921 | + "dependencies": { | ||
5922 | + "postcss-value-parser": { | ||
5923 | + "version": "3.3.1", | ||
5924 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
5925 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
5926 | + "dev": true | ||
5927 | + } | ||
5928 | + } | ||
5929 | + }, | ||
5930 | + "postcss-merge-rules": { | ||
5931 | + "version": "4.0.3", | ||
5932 | + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", | ||
5933 | + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", | ||
5934 | + "dev": true, | ||
5935 | + "requires": { | ||
5936 | + "browserslist": "^4.0.0", | ||
5937 | + "caniuse-api": "^3.0.0", | ||
5938 | + "cssnano-util-same-parent": "^4.0.0", | ||
5939 | + "postcss": "^7.0.0", | ||
5940 | + "postcss-selector-parser": "^3.0.0", | ||
5941 | + "vendors": "^1.0.0" | ||
5942 | + }, | ||
5943 | + "dependencies": { | ||
5944 | + "postcss-selector-parser": { | ||
5945 | + "version": "3.1.2", | ||
5946 | + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", | ||
5947 | + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", | ||
5948 | + "dev": true, | ||
5949 | + "requires": { | ||
5950 | + "dot-prop": "^5.2.0", | ||
5951 | + "indexes-of": "^1.0.1", | ||
5952 | + "uniq": "^1.0.1" | ||
5953 | + } | ||
5954 | + } | ||
5955 | + } | ||
5956 | + }, | ||
5957 | + "postcss-minify-font-values": { | ||
5958 | + "version": "4.0.2", | ||
5959 | + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", | ||
5960 | + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", | ||
5961 | + "dev": true, | ||
5962 | + "requires": { | ||
5963 | + "postcss": "^7.0.0", | ||
5964 | + "postcss-value-parser": "^3.0.0" | ||
5965 | + }, | ||
5966 | + "dependencies": { | ||
5967 | + "postcss-value-parser": { | ||
5968 | + "version": "3.3.1", | ||
5969 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
5970 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
5971 | + "dev": true | ||
5972 | + } | ||
5973 | + } | ||
5974 | + }, | ||
5975 | + "postcss-minify-gradients": { | ||
5976 | + "version": "4.0.2", | ||
5977 | + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", | ||
5978 | + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", | ||
5979 | + "dev": true, | ||
5980 | + "requires": { | ||
5981 | + "cssnano-util-get-arguments": "^4.0.0", | ||
5982 | + "is-color-stop": "^1.0.0", | ||
5983 | + "postcss": "^7.0.0", | ||
5984 | + "postcss-value-parser": "^3.0.0" | ||
5985 | + }, | ||
5986 | + "dependencies": { | ||
5987 | + "postcss-value-parser": { | ||
5988 | + "version": "3.3.1", | ||
5989 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
5990 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
5991 | + "dev": true | ||
5992 | + } | ||
5993 | + } | ||
5994 | + }, | ||
5995 | + "postcss-minify-params": { | ||
5996 | + "version": "4.0.2", | ||
5997 | + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", | ||
5998 | + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", | ||
5999 | + "dev": true, | ||
6000 | + "requires": { | ||
6001 | + "alphanum-sort": "^1.0.0", | ||
6002 | + "browserslist": "^4.0.0", | ||
6003 | + "cssnano-util-get-arguments": "^4.0.0", | ||
6004 | + "postcss": "^7.0.0", | ||
6005 | + "postcss-value-parser": "^3.0.0", | ||
6006 | + "uniqs": "^2.0.0" | ||
6007 | + }, | ||
6008 | + "dependencies": { | ||
6009 | + "postcss-value-parser": { | ||
6010 | + "version": "3.3.1", | ||
6011 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6012 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6013 | + "dev": true | ||
6014 | + } | ||
6015 | + } | ||
6016 | + }, | ||
6017 | + "postcss-minify-selectors": { | ||
6018 | + "version": "4.0.2", | ||
6019 | + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", | ||
6020 | + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", | ||
6021 | + "dev": true, | ||
6022 | + "requires": { | ||
6023 | + "alphanum-sort": "^1.0.0", | ||
6024 | + "has": "^1.0.0", | ||
6025 | + "postcss": "^7.0.0", | ||
6026 | + "postcss-selector-parser": "^3.0.0" | ||
6027 | + }, | ||
6028 | + "dependencies": { | ||
6029 | + "postcss-selector-parser": { | ||
6030 | + "version": "3.1.2", | ||
6031 | + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", | ||
6032 | + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", | ||
6033 | + "dev": true, | ||
6034 | + "requires": { | ||
6035 | + "dot-prop": "^5.2.0", | ||
6036 | + "indexes-of": "^1.0.1", | ||
6037 | + "uniq": "^1.0.1" | ||
6038 | + } | ||
6039 | + } | ||
6040 | + } | ||
6041 | + }, | ||
6042 | + "postcss-modules-extract-imports": { | ||
6043 | + "version": "1.1.0", | ||
6044 | + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", | ||
6045 | + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", | ||
6046 | + "dev": true, | ||
6047 | + "requires": { | ||
6048 | + "postcss": "^6.0.1" | ||
6049 | + }, | ||
6050 | + "dependencies": { | ||
6051 | + "postcss": { | ||
6052 | + "version": "6.0.23", | ||
6053 | + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", | ||
6054 | + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", | ||
6055 | + "dev": true, | ||
6056 | + "requires": { | ||
6057 | + "chalk": "^2.4.1", | ||
6058 | + "source-map": "^0.6.1", | ||
6059 | + "supports-color": "^5.4.0" | ||
6060 | + } | ||
6061 | + }, | ||
6062 | + "supports-color": { | ||
6063 | + "version": "5.5.0", | ||
6064 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
6065 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
6066 | + "dev": true, | ||
6067 | + "requires": { | ||
6068 | + "has-flag": "^3.0.0" | ||
6069 | + } | ||
6070 | + } | ||
6071 | + } | ||
6072 | + }, | ||
6073 | + "postcss-modules-local-by-default": { | ||
6074 | + "version": "1.2.0", | ||
6075 | + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", | ||
6076 | + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", | ||
6077 | + "dev": true, | ||
6078 | + "requires": { | ||
6079 | + "css-selector-tokenizer": "^0.7.0", | ||
6080 | + "postcss": "^6.0.1" | ||
6081 | + }, | ||
6082 | + "dependencies": { | ||
6083 | + "postcss": { | ||
6084 | + "version": "6.0.23", | ||
6085 | + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", | ||
6086 | + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", | ||
6087 | + "dev": true, | ||
6088 | + "requires": { | ||
6089 | + "chalk": "^2.4.1", | ||
6090 | + "source-map": "^0.6.1", | ||
6091 | + "supports-color": "^5.4.0" | ||
6092 | + } | ||
6093 | + }, | ||
6094 | + "supports-color": { | ||
6095 | + "version": "5.5.0", | ||
6096 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
6097 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
6098 | + "dev": true, | ||
6099 | + "requires": { | ||
6100 | + "has-flag": "^3.0.0" | ||
6101 | + } | ||
6102 | + } | ||
6103 | + } | ||
6104 | + }, | ||
6105 | + "postcss-modules-scope": { | ||
6106 | + "version": "1.1.0", | ||
6107 | + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", | ||
6108 | + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", | ||
6109 | + "dev": true, | ||
6110 | + "requires": { | ||
6111 | + "css-selector-tokenizer": "^0.7.0", | ||
6112 | + "postcss": "^6.0.1" | ||
6113 | + }, | ||
6114 | + "dependencies": { | ||
6115 | + "postcss": { | ||
6116 | + "version": "6.0.23", | ||
6117 | + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", | ||
6118 | + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", | ||
6119 | + "dev": true, | ||
6120 | + "requires": { | ||
6121 | + "chalk": "^2.4.1", | ||
6122 | + "source-map": "^0.6.1", | ||
6123 | + "supports-color": "^5.4.0" | ||
6124 | + } | ||
6125 | + }, | ||
6126 | + "supports-color": { | ||
6127 | + "version": "5.5.0", | ||
6128 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
6129 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
6130 | + "dev": true, | ||
6131 | + "requires": { | ||
6132 | + "has-flag": "^3.0.0" | ||
6133 | + } | ||
6134 | + } | ||
6135 | + } | ||
6136 | + }, | ||
6137 | + "postcss-modules-values": { | ||
6138 | + "version": "1.3.0", | ||
6139 | + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", | ||
6140 | + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", | ||
6141 | + "dev": true, | ||
6142 | + "requires": { | ||
6143 | + "icss-replace-symbols": "^1.1.0", | ||
6144 | + "postcss": "^6.0.1" | ||
6145 | + }, | ||
6146 | + "dependencies": { | ||
6147 | + "postcss": { | ||
6148 | + "version": "6.0.23", | ||
6149 | + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", | ||
6150 | + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", | ||
6151 | + "dev": true, | ||
6152 | + "requires": { | ||
6153 | + "chalk": "^2.4.1", | ||
6154 | + "source-map": "^0.6.1", | ||
6155 | + "supports-color": "^5.4.0" | ||
6156 | + } | ||
6157 | + }, | ||
6158 | + "supports-color": { | ||
6159 | + "version": "5.5.0", | ||
6160 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
6161 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
6162 | + "dev": true, | ||
6163 | + "requires": { | ||
6164 | + "has-flag": "^3.0.0" | ||
6165 | + } | ||
6166 | + } | ||
6167 | + } | ||
6168 | + }, | ||
6169 | + "postcss-normalize-charset": { | ||
6170 | + "version": "4.0.1", | ||
6171 | + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", | ||
6172 | + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", | ||
6173 | + "dev": true, | ||
6174 | + "requires": { | ||
6175 | + "postcss": "^7.0.0" | ||
6176 | + } | ||
6177 | + }, | ||
6178 | + "postcss-normalize-display-values": { | ||
6179 | + "version": "4.0.2", | ||
6180 | + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", | ||
6181 | + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", | ||
6182 | + "dev": true, | ||
6183 | + "requires": { | ||
6184 | + "cssnano-util-get-match": "^4.0.0", | ||
6185 | + "postcss": "^7.0.0", | ||
6186 | + "postcss-value-parser": "^3.0.0" | ||
6187 | + }, | ||
6188 | + "dependencies": { | ||
6189 | + "postcss-value-parser": { | ||
6190 | + "version": "3.3.1", | ||
6191 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6192 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6193 | + "dev": true | ||
6194 | + } | ||
6195 | + } | ||
6196 | + }, | ||
6197 | + "postcss-normalize-positions": { | ||
6198 | + "version": "4.0.2", | ||
6199 | + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", | ||
6200 | + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", | ||
6201 | + "dev": true, | ||
6202 | + "requires": { | ||
6203 | + "cssnano-util-get-arguments": "^4.0.0", | ||
6204 | + "has": "^1.0.0", | ||
6205 | + "postcss": "^7.0.0", | ||
6206 | + "postcss-value-parser": "^3.0.0" | ||
6207 | + }, | ||
6208 | + "dependencies": { | ||
6209 | + "postcss-value-parser": { | ||
6210 | + "version": "3.3.1", | ||
6211 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6212 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6213 | + "dev": true | ||
6214 | + } | ||
6215 | + } | ||
6216 | + }, | ||
6217 | + "postcss-normalize-repeat-style": { | ||
6218 | + "version": "4.0.2", | ||
6219 | + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", | ||
6220 | + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", | ||
6221 | + "dev": true, | ||
6222 | + "requires": { | ||
6223 | + "cssnano-util-get-arguments": "^4.0.0", | ||
6224 | + "cssnano-util-get-match": "^4.0.0", | ||
6225 | + "postcss": "^7.0.0", | ||
6226 | + "postcss-value-parser": "^3.0.0" | ||
6227 | + }, | ||
6228 | + "dependencies": { | ||
6229 | + "postcss-value-parser": { | ||
6230 | + "version": "3.3.1", | ||
6231 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6232 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6233 | + "dev": true | ||
6234 | + } | ||
6235 | + } | ||
6236 | + }, | ||
6237 | + "postcss-normalize-string": { | ||
6238 | + "version": "4.0.2", | ||
6239 | + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", | ||
6240 | + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", | ||
6241 | + "dev": true, | ||
6242 | + "requires": { | ||
6243 | + "has": "^1.0.0", | ||
6244 | + "postcss": "^7.0.0", | ||
6245 | + "postcss-value-parser": "^3.0.0" | ||
6246 | + }, | ||
6247 | + "dependencies": { | ||
6248 | + "postcss-value-parser": { | ||
6249 | + "version": "3.3.1", | ||
6250 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6251 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6252 | + "dev": true | ||
6253 | + } | ||
6254 | + } | ||
6255 | + }, | ||
6256 | + "postcss-normalize-timing-functions": { | ||
6257 | + "version": "4.0.2", | ||
6258 | + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", | ||
6259 | + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", | ||
6260 | + "dev": true, | ||
6261 | + "requires": { | ||
6262 | + "cssnano-util-get-match": "^4.0.0", | ||
6263 | + "postcss": "^7.0.0", | ||
6264 | + "postcss-value-parser": "^3.0.0" | ||
6265 | + }, | ||
6266 | + "dependencies": { | ||
6267 | + "postcss-value-parser": { | ||
6268 | + "version": "3.3.1", | ||
6269 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6270 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6271 | + "dev": true | ||
6272 | + } | ||
6273 | + } | ||
6274 | + }, | ||
6275 | + "postcss-normalize-unicode": { | ||
6276 | + "version": "4.0.1", | ||
6277 | + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", | ||
6278 | + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", | ||
6279 | + "dev": true, | ||
6280 | + "requires": { | ||
6281 | + "browserslist": "^4.0.0", | ||
6282 | + "postcss": "^7.0.0", | ||
6283 | + "postcss-value-parser": "^3.0.0" | ||
6284 | + }, | ||
6285 | + "dependencies": { | ||
6286 | + "postcss-value-parser": { | ||
6287 | + "version": "3.3.1", | ||
6288 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6289 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6290 | + "dev": true | ||
6291 | + } | ||
6292 | + } | ||
6293 | + }, | ||
6294 | + "postcss-normalize-url": { | ||
6295 | + "version": "4.0.1", | ||
6296 | + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", | ||
6297 | + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", | ||
6298 | + "dev": true, | ||
6299 | + "requires": { | ||
6300 | + "is-absolute-url": "^2.0.0", | ||
6301 | + "normalize-url": "^3.0.0", | ||
6302 | + "postcss": "^7.0.0", | ||
6303 | + "postcss-value-parser": "^3.0.0" | ||
6304 | + }, | ||
6305 | + "dependencies": { | ||
6306 | + "postcss-value-parser": { | ||
6307 | + "version": "3.3.1", | ||
6308 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6309 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6310 | + "dev": true | ||
6311 | + } | ||
6312 | + } | ||
6313 | + }, | ||
6314 | + "postcss-normalize-whitespace": { | ||
6315 | + "version": "4.0.2", | ||
6316 | + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", | ||
6317 | + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", | ||
6318 | + "dev": true, | ||
6319 | + "requires": { | ||
6320 | + "postcss": "^7.0.0", | ||
6321 | + "postcss-value-parser": "^3.0.0" | ||
6322 | + }, | ||
6323 | + "dependencies": { | ||
6324 | + "postcss-value-parser": { | ||
6325 | + "version": "3.3.1", | ||
6326 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6327 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6328 | + "dev": true | ||
6329 | + } | ||
6330 | + } | ||
6331 | + }, | ||
6332 | + "postcss-ordered-values": { | ||
6333 | + "version": "4.1.2", | ||
6334 | + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", | ||
6335 | + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", | ||
6336 | + "dev": true, | ||
6337 | + "requires": { | ||
6338 | + "cssnano-util-get-arguments": "^4.0.0", | ||
6339 | + "postcss": "^7.0.0", | ||
6340 | + "postcss-value-parser": "^3.0.0" | ||
6341 | + }, | ||
6342 | + "dependencies": { | ||
6343 | + "postcss-value-parser": { | ||
6344 | + "version": "3.3.1", | ||
6345 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6346 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6347 | + "dev": true | ||
6348 | + } | ||
6349 | + } | ||
6350 | + }, | ||
6351 | + "postcss-reduce-initial": { | ||
6352 | + "version": "4.0.3", | ||
6353 | + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", | ||
6354 | + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", | ||
6355 | + "dev": true, | ||
6356 | + "requires": { | ||
6357 | + "browserslist": "^4.0.0", | ||
6358 | + "caniuse-api": "^3.0.0", | ||
6359 | + "has": "^1.0.0", | ||
6360 | + "postcss": "^7.0.0" | ||
6361 | + } | ||
6362 | + }, | ||
6363 | + "postcss-reduce-transforms": { | ||
6364 | + "version": "4.0.2", | ||
6365 | + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", | ||
6366 | + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", | ||
6367 | + "dev": true, | ||
6368 | + "requires": { | ||
6369 | + "cssnano-util-get-match": "^4.0.0", | ||
6370 | + "has": "^1.0.0", | ||
6371 | + "postcss": "^7.0.0", | ||
6372 | + "postcss-value-parser": "^3.0.0" | ||
6373 | + }, | ||
6374 | + "dependencies": { | ||
6375 | + "postcss-value-parser": { | ||
6376 | + "version": "3.3.1", | ||
6377 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6378 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6379 | + "dev": true | ||
6380 | + } | ||
6381 | + } | ||
6382 | + }, | ||
6383 | + "postcss-selector-parser": { | ||
6384 | + "version": "6.0.2", | ||
6385 | + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", | ||
6386 | + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", | ||
6387 | + "dev": true, | ||
6388 | + "requires": { | ||
6389 | + "cssesc": "^3.0.0", | ||
6390 | + "indexes-of": "^1.0.1", | ||
6391 | + "uniq": "^1.0.1" | ||
6392 | + } | ||
6393 | + }, | ||
6394 | + "postcss-svgo": { | ||
6395 | + "version": "4.0.2", | ||
6396 | + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", | ||
6397 | + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", | ||
6398 | + "dev": true, | ||
6399 | + "requires": { | ||
6400 | + "is-svg": "^3.0.0", | ||
6401 | + "postcss": "^7.0.0", | ||
6402 | + "postcss-value-parser": "^3.0.0", | ||
6403 | + "svgo": "^1.0.0" | ||
6404 | + }, | ||
6405 | + "dependencies": { | ||
6406 | + "postcss-value-parser": { | ||
6407 | + "version": "3.3.1", | ||
6408 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", | ||
6409 | + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", | ||
6410 | + "dev": true | ||
6411 | + } | ||
6412 | + } | ||
6413 | + }, | ||
6414 | + "postcss-unique-selectors": { | ||
6415 | + "version": "4.0.1", | ||
6416 | + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", | ||
6417 | + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", | ||
6418 | + "dev": true, | ||
6419 | + "requires": { | ||
6420 | + "alphanum-sort": "^1.0.0", | ||
6421 | + "postcss": "^7.0.0", | ||
6422 | + "uniqs": "^2.0.0" | ||
6423 | + } | ||
6424 | + }, | ||
6425 | + "postcss-value-parser": { | ||
6426 | + "version": "4.0.3", | ||
6427 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", | ||
6428 | + "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", | ||
6429 | + "dev": true | ||
6430 | + }, | ||
6431 | + "posthtml": { | ||
6432 | + "version": "0.11.6", | ||
6433 | + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.11.6.tgz", | ||
6434 | + "integrity": "sha512-C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==", | ||
6435 | + "dev": true, | ||
6436 | + "requires": { | ||
6437 | + "posthtml-parser": "^0.4.1", | ||
6438 | + "posthtml-render": "^1.1.5" | ||
6439 | + } | ||
6440 | + }, | ||
6441 | + "posthtml-parser": { | ||
6442 | + "version": "0.4.2", | ||
6443 | + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz", | ||
6444 | + "integrity": "sha512-BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==", | ||
6445 | + "dev": true, | ||
6446 | + "requires": { | ||
6447 | + "htmlparser2": "^3.9.2" | ||
6448 | + } | ||
6449 | + }, | ||
6450 | + "posthtml-render": { | ||
6451 | + "version": "1.2.2", | ||
6452 | + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.2.tgz", | ||
6453 | + "integrity": "sha512-MbIXTWwAfJ9qET6Zl29UNwJcDJEEz9Zkr5oDhiujitJa7YBJwEpbkX2cmuklCDxubTMoRWpid3q8DrSyGnUUzQ==", | ||
6454 | + "dev": true | ||
6455 | + }, | ||
6456 | + "prelude-ls": { | ||
6457 | + "version": "1.1.2", | ||
6458 | + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | ||
6459 | + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", | ||
6460 | + "dev": true | ||
6461 | + }, | ||
6462 | + "private": { | ||
6463 | + "version": "0.1.8", | ||
6464 | + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", | ||
6465 | + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", | ||
6466 | + "dev": true | ||
6467 | + }, | ||
6468 | + "process": { | ||
6469 | + "version": "0.11.10", | ||
6470 | + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", | ||
6471 | + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", | ||
6472 | + "dev": true | ||
6473 | + }, | ||
6474 | + "process-nextick-args": { | ||
6475 | + "version": "2.0.1", | ||
6476 | + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | ||
6477 | + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", | ||
6478 | + "dev": true | ||
6479 | + }, | ||
6480 | + "proto-list": { | ||
6481 | + "version": "1.2.4", | ||
6482 | + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", | ||
6483 | + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", | ||
6484 | + "dev": true | ||
6485 | + }, | ||
6486 | + "pseudomap": { | ||
6487 | + "version": "1.0.2", | ||
6488 | + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", | ||
6489 | + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", | ||
6490 | + "dev": true | ||
6491 | + }, | ||
6492 | + "psl": { | ||
6493 | + "version": "1.8.0", | ||
6494 | + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", | ||
6495 | + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" | ||
6496 | + }, | ||
6497 | + "public-encrypt": { | ||
6498 | + "version": "4.0.3", | ||
6499 | + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", | ||
6500 | + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", | ||
6501 | + "dev": true, | ||
6502 | + "requires": { | ||
6503 | + "bn.js": "^4.1.0", | ||
6504 | + "browserify-rsa": "^4.0.0", | ||
6505 | + "create-hash": "^1.1.0", | ||
6506 | + "parse-asn1": "^5.0.0", | ||
6507 | + "randombytes": "^2.0.1", | ||
6508 | + "safe-buffer": "^5.1.2" | ||
6509 | + } | ||
6510 | + }, | ||
6511 | + "punycode": { | ||
6512 | + "version": "2.1.1", | ||
6513 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", | ||
6514 | + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" | ||
6515 | + }, | ||
6516 | + "purgecss": { | ||
6517 | + "version": "1.4.2", | ||
6518 | + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz", | ||
6519 | + "integrity": "sha512-hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw==", | ||
6520 | + "dev": true, | ||
6521 | + "requires": { | ||
6522 | + "glob": "^7.1.3", | ||
6523 | + "postcss": "^7.0.14", | ||
6524 | + "postcss-selector-parser": "^6.0.0", | ||
6525 | + "yargs": "^14.0.0" | ||
6526 | + } | ||
6527 | + }, | ||
6528 | + "q": { | ||
6529 | + "version": "1.5.1", | ||
6530 | + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", | ||
6531 | + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", | ||
6532 | + "dev": true | ||
6533 | + }, | ||
6534 | + "qs": { | ||
6535 | + "version": "6.5.2", | ||
6536 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", | ||
6537 | + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" | ||
6538 | + }, | ||
6539 | + "querystring": { | ||
6540 | + "version": "0.2.0", | ||
6541 | + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", | ||
6542 | + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", | ||
6543 | + "dev": true | ||
6544 | + }, | ||
6545 | + "querystring-es3": { | ||
6546 | + "version": "0.2.1", | ||
6547 | + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", | ||
6548 | + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", | ||
6549 | + "dev": true | ||
6550 | + }, | ||
6551 | + "quote-stream": { | ||
6552 | + "version": "1.0.2", | ||
6553 | + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", | ||
6554 | + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", | ||
6555 | + "dev": true, | ||
6556 | + "requires": { | ||
6557 | + "buffer-equal": "0.0.1", | ||
6558 | + "minimist": "^1.1.3", | ||
6559 | + "through2": "^2.0.0" | ||
6560 | + } | ||
6561 | + }, | ||
6562 | + "randombytes": { | ||
6563 | + "version": "2.1.0", | ||
6564 | + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", | ||
6565 | + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", | ||
6566 | + "dev": true, | ||
6567 | + "requires": { | ||
6568 | + "safe-buffer": "^5.1.0" | ||
6569 | + } | ||
6570 | + }, | ||
6571 | + "randomfill": { | ||
6572 | + "version": "1.0.4", | ||
6573 | + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", | ||
6574 | + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", | ||
6575 | + "dev": true, | ||
6576 | + "requires": { | ||
6577 | + "randombytes": "^2.0.5", | ||
6578 | + "safe-buffer": "^5.1.0" | ||
6579 | + } | ||
6580 | + }, | ||
6581 | + "range-parser": { | ||
6582 | + "version": "1.2.1", | ||
6583 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", | ||
6584 | + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", | ||
6585 | + "dev": true | ||
6586 | + }, | ||
6587 | + "readable-stream": { | ||
6588 | + "version": "2.3.7", | ||
6589 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", | ||
6590 | + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", | ||
6591 | + "dev": true, | ||
6592 | + "requires": { | ||
6593 | + "core-util-is": "~1.0.0", | ||
6594 | + "inherits": "~2.0.3", | ||
6595 | + "isarray": "~1.0.0", | ||
6596 | + "process-nextick-args": "~2.0.0", | ||
6597 | + "safe-buffer": "~5.1.1", | ||
6598 | + "string_decoder": "~1.1.1", | ||
6599 | + "util-deprecate": "~1.0.1" | ||
6600 | + } | ||
6601 | + }, | ||
6602 | + "readdirp": { | ||
6603 | + "version": "2.2.1", | ||
6604 | + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", | ||
6605 | + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", | ||
6606 | + "dev": true, | ||
6607 | + "requires": { | ||
6608 | + "graceful-fs": "^4.1.11", | ||
6609 | + "micromatch": "^3.1.10", | ||
6610 | + "readable-stream": "^2.0.2" | ||
6611 | + } | ||
6612 | + }, | ||
6613 | + "regenerate": { | ||
6614 | + "version": "1.4.0", | ||
6615 | + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", | ||
6616 | + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", | ||
6617 | + "dev": true | ||
6618 | + }, | ||
6619 | + "regenerate-unicode-properties": { | ||
6620 | + "version": "8.2.0", | ||
6621 | + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", | ||
6622 | + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", | ||
6623 | + "dev": true, | ||
6624 | + "requires": { | ||
6625 | + "regenerate": "^1.4.0" | ||
6626 | + } | ||
6627 | + }, | ||
6628 | + "regenerator-runtime": { | ||
6629 | + "version": "0.13.5", | ||
6630 | + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", | ||
6631 | + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", | ||
6632 | + "dev": true | ||
6633 | + }, | ||
6634 | + "regenerator-transform": { | ||
6635 | + "version": "0.14.4", | ||
6636 | + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", | ||
6637 | + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", | ||
6638 | + "dev": true, | ||
6639 | + "requires": { | ||
6640 | + "@babel/runtime": "^7.8.4", | ||
6641 | + "private": "^0.1.8" | ||
6642 | + }, | ||
6643 | + "dependencies": { | ||
6644 | + "@babel/runtime": { | ||
6645 | + "version": "7.9.2", | ||
6646 | + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", | ||
6647 | + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", | ||
6648 | + "dev": true, | ||
6649 | + "requires": { | ||
6650 | + "regenerator-runtime": "^0.13.4" | ||
6651 | + } | ||
6652 | + } | ||
6653 | + } | ||
6654 | + }, | ||
6655 | + "regex-not": { | ||
6656 | + "version": "1.0.2", | ||
6657 | + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", | ||
6658 | + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", | ||
6659 | + "dev": true, | ||
6660 | + "requires": { | ||
6661 | + "extend-shallow": "^3.0.2", | ||
6662 | + "safe-regex": "^1.1.0" | ||
6663 | + } | ||
6664 | + }, | ||
6665 | + "regexpu-core": { | ||
6666 | + "version": "4.7.0", | ||
6667 | + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", | ||
6668 | + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", | ||
6669 | + "dev": true, | ||
6670 | + "requires": { | ||
6671 | + "regenerate": "^1.4.0", | ||
6672 | + "regenerate-unicode-properties": "^8.2.0", | ||
6673 | + "regjsgen": "^0.5.1", | ||
6674 | + "regjsparser": "^0.6.4", | ||
6675 | + "unicode-match-property-ecmascript": "^1.0.4", | ||
6676 | + "unicode-match-property-value-ecmascript": "^1.2.0" | ||
6677 | + } | ||
6678 | + }, | ||
6679 | + "regjsgen": { | ||
6680 | + "version": "0.5.1", | ||
6681 | + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", | ||
6682 | + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", | ||
6683 | + "dev": true | ||
6684 | + }, | ||
6685 | + "regjsparser": { | ||
6686 | + "version": "0.6.4", | ||
6687 | + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", | ||
6688 | + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", | ||
6689 | + "dev": true, | ||
6690 | + "requires": { | ||
6691 | + "jsesc": "~0.5.0" | ||
6692 | + }, | ||
6693 | + "dependencies": { | ||
6694 | + "jsesc": { | ||
6695 | + "version": "0.5.0", | ||
6696 | + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", | ||
6697 | + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", | ||
6698 | + "dev": true | ||
6699 | + } | ||
6700 | + } | ||
6701 | + }, | ||
6702 | + "remove-trailing-separator": { | ||
6703 | + "version": "1.1.0", | ||
6704 | + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", | ||
6705 | + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", | ||
6706 | + "dev": true | ||
6707 | + }, | ||
6708 | + "repeat-element": { | ||
6709 | + "version": "1.1.3", | ||
6710 | + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", | ||
6711 | + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", | ||
6712 | + "dev": true | ||
6713 | + }, | ||
6714 | + "repeat-string": { | ||
6715 | + "version": "1.6.1", | ||
6716 | + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", | ||
6717 | + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", | ||
6718 | + "dev": true | ||
6719 | + }, | ||
6720 | + "request": { | ||
6721 | + "version": "2.88.2", | ||
6722 | + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", | ||
6723 | + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", | ||
6724 | + "requires": { | ||
6725 | + "aws-sign2": "~0.7.0", | ||
6726 | + "aws4": "^1.8.0", | ||
6727 | + "caseless": "~0.12.0", | ||
6728 | + "combined-stream": "~1.0.6", | ||
6729 | + "extend": "~3.0.2", | ||
6730 | + "forever-agent": "~0.6.1", | ||
6731 | + "form-data": "~2.3.2", | ||
6732 | + "har-validator": "~5.1.3", | ||
6733 | + "http-signature": "~1.2.0", | ||
6734 | + "is-typedarray": "~1.0.0", | ||
6735 | + "isstream": "~0.1.2", | ||
6736 | + "json-stringify-safe": "~5.0.1", | ||
6737 | + "mime-types": "~2.1.19", | ||
6738 | + "oauth-sign": "~0.9.0", | ||
6739 | + "performance-now": "^2.1.0", | ||
6740 | + "qs": "~6.5.2", | ||
6741 | + "safe-buffer": "^5.1.2", | ||
6742 | + "tough-cookie": "~2.5.0", | ||
6743 | + "tunnel-agent": "^0.6.0", | ||
6744 | + "uuid": "^3.3.2" | ||
6745 | + } | ||
6746 | + }, | ||
6747 | + "request-promise-core": { | ||
6748 | + "version": "1.1.3", | ||
6749 | + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", | ||
6750 | + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", | ||
6751 | + "dev": true, | ||
6752 | + "requires": { | ||
6753 | + "lodash": "^4.17.15" | ||
6754 | + } | ||
6755 | + }, | ||
6756 | + "request-promise-native": { | ||
6757 | + "version": "1.0.8", | ||
6758 | + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", | ||
6759 | + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", | ||
6760 | + "dev": true, | ||
6761 | + "requires": { | ||
6762 | + "request-promise-core": "1.1.3", | ||
6763 | + "stealthy-require": "^1.1.1", | ||
6764 | + "tough-cookie": "^2.3.3" | ||
6765 | + } | ||
6766 | + }, | ||
6767 | + "require-directory": { | ||
6768 | + "version": "2.1.1", | ||
6769 | + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", | ||
6770 | + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", | ||
6771 | + "dev": true | ||
6772 | + }, | ||
6773 | + "require-main-filename": { | ||
6774 | + "version": "2.0.0", | ||
6775 | + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", | ||
6776 | + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", | ||
6777 | + "dev": true | ||
6778 | + }, | ||
6779 | + "resolve": { | ||
6780 | + "version": "1.17.0", | ||
6781 | + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", | ||
6782 | + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", | ||
6783 | + "dev": true, | ||
6784 | + "requires": { | ||
6785 | + "path-parse": "^1.0.6" | ||
6786 | + } | ||
6787 | + }, | ||
6788 | + "resolve-from": { | ||
6789 | + "version": "3.0.0", | ||
6790 | + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", | ||
6791 | + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", | ||
6792 | + "dev": true | ||
6793 | + }, | ||
6794 | + "resolve-url": { | ||
6795 | + "version": "0.2.1", | ||
6796 | + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", | ||
6797 | + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", | ||
6798 | + "dev": true | ||
6799 | + }, | ||
6800 | + "restore-cursor": { | ||
6801 | + "version": "2.0.0", | ||
6802 | + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", | ||
6803 | + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", | ||
6804 | + "dev": true, | ||
6805 | + "requires": { | ||
6806 | + "onetime": "^2.0.0", | ||
6807 | + "signal-exit": "^3.0.2" | ||
6808 | + } | ||
6809 | + }, | ||
6810 | + "ret": { | ||
6811 | + "version": "0.1.15", | ||
6812 | + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", | ||
6813 | + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", | ||
6814 | + "dev": true | ||
6815 | + }, | ||
6816 | + "rgb-regex": { | ||
6817 | + "version": "1.0.1", | ||
6818 | + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", | ||
6819 | + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", | ||
6820 | + "dev": true | ||
6821 | + }, | ||
6822 | + "rgba-regex": { | ||
6823 | + "version": "1.0.0", | ||
6824 | + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", | ||
6825 | + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", | ||
6826 | + "dev": true | ||
6827 | + }, | ||
6828 | + "rimraf": { | ||
6829 | + "version": "2.6.3", | ||
6830 | + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", | ||
6831 | + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", | ||
6832 | + "dev": true, | ||
6833 | + "requires": { | ||
6834 | + "glob": "^7.1.3" | ||
6835 | + } | ||
6836 | + }, | ||
6837 | + "ripemd160": { | ||
6838 | + "version": "2.0.2", | ||
6839 | + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", | ||
6840 | + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", | ||
6841 | + "dev": true, | ||
6842 | + "requires": { | ||
6843 | + "hash-base": "^3.0.0", | ||
6844 | + "inherits": "^2.0.1" | ||
6845 | + } | ||
6846 | + }, | ||
6847 | + "safe-buffer": { | ||
6848 | + "version": "5.1.2", | ||
6849 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
6850 | + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||
6851 | + }, | ||
6852 | + "safe-regex": { | ||
6853 | + "version": "1.1.0", | ||
6854 | + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", | ||
6855 | + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", | ||
6856 | + "dev": true, | ||
6857 | + "requires": { | ||
6858 | + "ret": "~0.1.10" | ||
6859 | + } | ||
6860 | + }, | ||
6861 | + "safer-buffer": { | ||
6862 | + "version": "2.1.2", | ||
6863 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
6864 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | ||
6865 | + }, | ||
6866 | + "safer-eval": { | ||
6867 | + "version": "1.3.6", | ||
6868 | + "resolved": "https://registry.npmjs.org/safer-eval/-/safer-eval-1.3.6.tgz", | ||
6869 | + "integrity": "sha512-DN9tBsZgtUOHODzSfO1nGCLhZtxc7Qq/d8/2SNxQZ9muYXZspSh1fO7HOsrf4lcelBNviAJLCxB/ggmG+jV1aw==", | ||
6870 | + "dev": true, | ||
6871 | + "requires": { | ||
6872 | + "clones": "^1.2.0" | ||
6873 | + } | ||
6874 | + }, | ||
6875 | + "sax": { | ||
6876 | + "version": "1.2.4", | ||
6877 | + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", | ||
6878 | + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", | ||
6879 | + "dev": true | ||
6880 | + }, | ||
6881 | + "saxes": { | ||
6882 | + "version": "3.1.11", | ||
6883 | + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", | ||
6884 | + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", | ||
6885 | + "dev": true, | ||
6886 | + "requires": { | ||
6887 | + "xmlchars": "^2.1.1" | ||
6888 | + } | ||
6889 | + }, | ||
6890 | + "semver": { | ||
6891 | + "version": "5.7.1", | ||
6892 | + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||
6893 | + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | ||
6894 | + "dev": true | ||
6895 | + }, | ||
6896 | + "send": { | ||
6897 | + "version": "0.17.1", | ||
6898 | + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", | ||
6899 | + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", | ||
6900 | + "dev": true, | ||
6901 | + "requires": { | ||
6902 | + "debug": "2.6.9", | ||
6903 | + "depd": "~1.1.2", | ||
6904 | + "destroy": "~1.0.4", | ||
6905 | + "encodeurl": "~1.0.2", | ||
6906 | + "escape-html": "~1.0.3", | ||
6907 | + "etag": "~1.8.1", | ||
6908 | + "fresh": "0.5.2", | ||
6909 | + "http-errors": "~1.7.2", | ||
6910 | + "mime": "1.6.0", | ||
6911 | + "ms": "2.1.1", | ||
6912 | + "on-finished": "~2.3.0", | ||
6913 | + "range-parser": "~1.2.1", | ||
6914 | + "statuses": "~1.5.0" | ||
6915 | + }, | ||
6916 | + "dependencies": { | ||
6917 | + "debug": { | ||
6918 | + "version": "2.6.9", | ||
6919 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
6920 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
6921 | + "dev": true, | ||
6922 | + "requires": { | ||
6923 | + "ms": "2.0.0" | ||
6924 | + }, | ||
6925 | + "dependencies": { | ||
6926 | + "ms": { | ||
6927 | + "version": "2.0.0", | ||
6928 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
6929 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", | ||
6930 | + "dev": true | ||
6931 | + } | ||
6932 | + } | ||
6933 | + }, | ||
6934 | + "ms": { | ||
6935 | + "version": "2.1.1", | ||
6936 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", | ||
6937 | + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", | ||
6938 | + "dev": true | ||
6939 | + } | ||
6940 | + } | ||
6941 | + }, | ||
6942 | + "serialize-to-js": { | ||
6943 | + "version": "1.2.2", | ||
6944 | + "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-1.2.2.tgz", | ||
6945 | + "integrity": "sha512-mUc8vA5iJghe+O+3s0YDGFLMJcqitVFk787YKiv8a4sf6RX5W0u81b+gcHrp15O0fFa010dRBVZvwcKXOWsL9Q==", | ||
6946 | + "dev": true, | ||
6947 | + "requires": { | ||
6948 | + "js-beautify": "^1.8.9", | ||
6949 | + "safer-eval": "^1.3.0" | ||
6950 | + } | ||
6951 | + }, | ||
6952 | + "serve-static": { | ||
6953 | + "version": "1.14.1", | ||
6954 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", | ||
6955 | + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", | ||
6956 | + "dev": true, | ||
6957 | + "requires": { | ||
6958 | + "encodeurl": "~1.0.2", | ||
6959 | + "escape-html": "~1.0.3", | ||
6960 | + "parseurl": "~1.3.3", | ||
6961 | + "send": "0.17.1" | ||
6962 | + } | ||
6963 | + }, | ||
6964 | + "set-blocking": { | ||
6965 | + "version": "2.0.0", | ||
6966 | + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", | ||
6967 | + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", | ||
6968 | + "dev": true | ||
6969 | + }, | ||
6970 | + "set-value": { | ||
6971 | + "version": "2.0.1", | ||
6972 | + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", | ||
6973 | + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", | ||
6974 | + "dev": true, | ||
6975 | + "requires": { | ||
6976 | + "extend-shallow": "^2.0.1", | ||
6977 | + "is-extendable": "^0.1.1", | ||
6978 | + "is-plain-object": "^2.0.3", | ||
6979 | + "split-string": "^3.0.1" | ||
6980 | + }, | ||
6981 | + "dependencies": { | ||
6982 | + "extend-shallow": { | ||
6983 | + "version": "2.0.1", | ||
6984 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||
6985 | + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||
6986 | + "dev": true, | ||
6987 | + "requires": { | ||
6988 | + "is-extendable": "^0.1.0" | ||
6989 | + } | ||
6990 | + } | ||
6991 | + } | ||
6992 | + }, | ||
6993 | + "setimmediate": { | ||
6994 | + "version": "1.0.5", | ||
6995 | + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", | ||
6996 | + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", | ||
6997 | + "dev": true | ||
6998 | + }, | ||
6999 | + "setprototypeof": { | ||
7000 | + "version": "1.1.1", | ||
7001 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", | ||
7002 | + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", | ||
7003 | + "dev": true | ||
7004 | + }, | ||
7005 | + "sha.js": { | ||
7006 | + "version": "2.4.11", | ||
7007 | + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", | ||
7008 | + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", | ||
7009 | + "dev": true, | ||
7010 | + "requires": { | ||
7011 | + "inherits": "^2.0.1", | ||
7012 | + "safe-buffer": "^5.0.1" | ||
7013 | + } | ||
7014 | + }, | ||
7015 | + "shallow-copy": { | ||
7016 | + "version": "0.0.1", | ||
7017 | + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", | ||
7018 | + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", | ||
7019 | + "dev": true | ||
7020 | + }, | ||
7021 | + "shebang-command": { | ||
7022 | + "version": "1.2.0", | ||
7023 | + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", | ||
7024 | + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", | ||
7025 | + "dev": true, | ||
7026 | + "requires": { | ||
7027 | + "shebang-regex": "^1.0.0" | ||
7028 | + } | ||
7029 | + }, | ||
7030 | + "shebang-regex": { | ||
7031 | + "version": "1.0.0", | ||
7032 | + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", | ||
7033 | + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", | ||
7034 | + "dev": true | ||
7035 | + }, | ||
7036 | + "sigmund": { | ||
7037 | + "version": "1.0.1", | ||
7038 | + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", | ||
7039 | + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", | ||
7040 | + "dev": true | ||
7041 | + }, | ||
7042 | + "signal-exit": { | ||
7043 | + "version": "3.0.3", | ||
7044 | + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", | ||
7045 | + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", | ||
7046 | + "dev": true | ||
7047 | + }, | ||
7048 | + "simple-swizzle": { | ||
7049 | + "version": "0.2.2", | ||
7050 | + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", | ||
7051 | + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", | ||
7052 | + "dev": true, | ||
7053 | + "requires": { | ||
7054 | + "is-arrayish": "^0.3.1" | ||
7055 | + }, | ||
7056 | + "dependencies": { | ||
7057 | + "is-arrayish": { | ||
7058 | + "version": "0.3.2", | ||
7059 | + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", | ||
7060 | + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", | ||
7061 | + "dev": true | ||
7062 | + } | ||
7063 | + } | ||
7064 | + }, | ||
7065 | + "snapdragon": { | ||
7066 | + "version": "0.8.2", | ||
7067 | + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", | ||
7068 | + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", | ||
7069 | + "dev": true, | ||
7070 | + "requires": { | ||
7071 | + "base": "^0.11.1", | ||
7072 | + "debug": "^2.2.0", | ||
7073 | + "define-property": "^0.2.5", | ||
7074 | + "extend-shallow": "^2.0.1", | ||
7075 | + "map-cache": "^0.2.2", | ||
7076 | + "source-map": "^0.5.6", | ||
7077 | + "source-map-resolve": "^0.5.0", | ||
7078 | + "use": "^3.1.0" | ||
7079 | + }, | ||
7080 | + "dependencies": { | ||
7081 | + "debug": { | ||
7082 | + "version": "2.6.9", | ||
7083 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
7084 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
7085 | + "dev": true, | ||
7086 | + "requires": { | ||
7087 | + "ms": "2.0.0" | ||
7088 | + } | ||
7089 | + }, | ||
7090 | + "define-property": { | ||
7091 | + "version": "0.2.5", | ||
7092 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | ||
7093 | + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", | ||
7094 | + "dev": true, | ||
7095 | + "requires": { | ||
7096 | + "is-descriptor": "^0.1.0" | ||
7097 | + } | ||
7098 | + }, | ||
7099 | + "extend-shallow": { | ||
7100 | + "version": "2.0.1", | ||
7101 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||
7102 | + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||
7103 | + "dev": true, | ||
7104 | + "requires": { | ||
7105 | + "is-extendable": "^0.1.0" | ||
7106 | + } | ||
7107 | + }, | ||
7108 | + "ms": { | ||
7109 | + "version": "2.0.0", | ||
7110 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
7111 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", | ||
7112 | + "dev": true | ||
7113 | + }, | ||
7114 | + "source-map": { | ||
7115 | + "version": "0.5.7", | ||
7116 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
7117 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", | ||
7118 | + "dev": true | ||
7119 | + } | ||
7120 | + } | ||
7121 | + }, | ||
7122 | + "snapdragon-node": { | ||
7123 | + "version": "2.1.1", | ||
7124 | + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", | ||
7125 | + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", | ||
7126 | + "dev": true, | ||
7127 | + "requires": { | ||
7128 | + "define-property": "^1.0.0", | ||
7129 | + "isobject": "^3.0.0", | ||
7130 | + "snapdragon-util": "^3.0.1" | ||
7131 | + }, | ||
7132 | + "dependencies": { | ||
7133 | + "define-property": { | ||
7134 | + "version": "1.0.0", | ||
7135 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | ||
7136 | + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", | ||
7137 | + "dev": true, | ||
7138 | + "requires": { | ||
7139 | + "is-descriptor": "^1.0.0" | ||
7140 | + } | ||
7141 | + }, | ||
7142 | + "is-accessor-descriptor": { | ||
7143 | + "version": "1.0.0", | ||
7144 | + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", | ||
7145 | + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", | ||
7146 | + "dev": true, | ||
7147 | + "requires": { | ||
7148 | + "kind-of": "^6.0.0" | ||
7149 | + } | ||
7150 | + }, | ||
7151 | + "is-data-descriptor": { | ||
7152 | + "version": "1.0.0", | ||
7153 | + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", | ||
7154 | + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", | ||
7155 | + "dev": true, | ||
7156 | + "requires": { | ||
7157 | + "kind-of": "^6.0.0" | ||
7158 | + } | ||
7159 | + }, | ||
7160 | + "is-descriptor": { | ||
7161 | + "version": "1.0.2", | ||
7162 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", | ||
7163 | + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", | ||
7164 | + "dev": true, | ||
7165 | + "requires": { | ||
7166 | + "is-accessor-descriptor": "^1.0.0", | ||
7167 | + "is-data-descriptor": "^1.0.0", | ||
7168 | + "kind-of": "^6.0.2" | ||
7169 | + } | ||
7170 | + } | ||
7171 | + } | ||
7172 | + }, | ||
7173 | + "snapdragon-util": { | ||
7174 | + "version": "3.0.1", | ||
7175 | + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", | ||
7176 | + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", | ||
7177 | + "dev": true, | ||
7178 | + "requires": { | ||
7179 | + "kind-of": "^3.2.0" | ||
7180 | + }, | ||
7181 | + "dependencies": { | ||
7182 | + "kind-of": { | ||
7183 | + "version": "3.2.2", | ||
7184 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
7185 | + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
7186 | + "dev": true, | ||
7187 | + "requires": { | ||
7188 | + "is-buffer": "^1.1.5" | ||
7189 | + } | ||
7190 | + } | ||
7191 | + } | ||
7192 | + }, | ||
7193 | + "source-map": { | ||
7194 | + "version": "0.6.1", | ||
7195 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||
7196 | + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", | ||
7197 | + "dev": true | ||
7198 | + }, | ||
7199 | + "source-map-resolve": { | ||
7200 | + "version": "0.5.3", | ||
7201 | + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", | ||
7202 | + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", | ||
7203 | + "dev": true, | ||
7204 | + "requires": { | ||
7205 | + "atob": "^2.1.2", | ||
7206 | + "decode-uri-component": "^0.2.0", | ||
7207 | + "resolve-url": "^0.2.1", | ||
7208 | + "source-map-url": "^0.4.0", | ||
7209 | + "urix": "^0.1.0" | ||
7210 | + } | ||
7211 | + }, | ||
7212 | + "source-map-support": { | ||
7213 | + "version": "0.5.19", | ||
7214 | + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", | ||
7215 | + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", | ||
7216 | + "dev": true, | ||
7217 | + "requires": { | ||
7218 | + "buffer-from": "^1.0.0", | ||
7219 | + "source-map": "^0.6.0" | ||
7220 | + } | ||
7221 | + }, | ||
7222 | + "source-map-url": { | ||
7223 | + "version": "0.4.0", | ||
7224 | + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", | ||
7225 | + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", | ||
7226 | + "dev": true | ||
7227 | + }, | ||
7228 | + "split-string": { | ||
7229 | + "version": "3.1.0", | ||
7230 | + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", | ||
7231 | + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", | ||
7232 | + "dev": true, | ||
7233 | + "requires": { | ||
7234 | + "extend-shallow": "^3.0.0" | ||
7235 | + } | ||
7236 | + }, | ||
7237 | + "sprintf-js": { | ||
7238 | + "version": "1.0.3", | ||
7239 | + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", | ||
7240 | + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", | ||
7241 | + "dev": true | ||
7242 | + }, | ||
7243 | + "sshpk": { | ||
7244 | + "version": "1.16.1", | ||
7245 | + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", | ||
7246 | + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", | ||
7247 | + "requires": { | ||
7248 | + "asn1": "~0.2.3", | ||
7249 | + "assert-plus": "^1.0.0", | ||
7250 | + "bcrypt-pbkdf": "^1.0.0", | ||
7251 | + "dashdash": "^1.12.0", | ||
7252 | + "ecc-jsbn": "~0.1.1", | ||
7253 | + "getpass": "^0.1.1", | ||
7254 | + "jsbn": "~0.1.0", | ||
7255 | + "safer-buffer": "^2.0.2", | ||
7256 | + "tweetnacl": "~0.14.0" | ||
7257 | + } | ||
7258 | + }, | ||
7259 | + "stable": { | ||
7260 | + "version": "0.1.8", | ||
7261 | + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", | ||
7262 | + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", | ||
7263 | + "dev": true | ||
7264 | + }, | ||
7265 | + "static-eval": { | ||
7266 | + "version": "2.0.5", | ||
7267 | + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz", | ||
7268 | + "integrity": "sha512-nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==", | ||
7269 | + "dev": true, | ||
7270 | + "requires": { | ||
7271 | + "escodegen": "^1.11.1" | ||
7272 | + }, | ||
7273 | + "dependencies": { | ||
7274 | + "escodegen": { | ||
7275 | + "version": "1.14.1", | ||
7276 | + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", | ||
7277 | + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", | ||
7278 | + "dev": true, | ||
7279 | + "requires": { | ||
7280 | + "esprima": "^4.0.1", | ||
7281 | + "estraverse": "^4.2.0", | ||
7282 | + "esutils": "^2.0.2", | ||
7283 | + "optionator": "^0.8.1", | ||
7284 | + "source-map": "~0.6.1" | ||
7285 | + } | ||
7286 | + } | ||
7287 | + } | ||
7288 | + }, | ||
7289 | + "static-extend": { | ||
7290 | + "version": "0.1.2", | ||
7291 | + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", | ||
7292 | + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", | ||
7293 | + "dev": true, | ||
7294 | + "requires": { | ||
7295 | + "define-property": "^0.2.5", | ||
7296 | + "object-copy": "^0.1.0" | ||
7297 | + }, | ||
7298 | + "dependencies": { | ||
7299 | + "define-property": { | ||
7300 | + "version": "0.2.5", | ||
7301 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | ||
7302 | + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", | ||
7303 | + "dev": true, | ||
7304 | + "requires": { | ||
7305 | + "is-descriptor": "^0.1.0" | ||
7306 | + } | ||
7307 | + } | ||
7308 | + } | ||
7309 | + }, | ||
7310 | + "static-module": { | ||
7311 | + "version": "2.2.5", | ||
7312 | + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", | ||
7313 | + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", | ||
7314 | + "dev": true, | ||
7315 | + "requires": { | ||
7316 | + "concat-stream": "~1.6.0", | ||
7317 | + "convert-source-map": "^1.5.1", | ||
7318 | + "duplexer2": "~0.1.4", | ||
7319 | + "escodegen": "~1.9.0", | ||
7320 | + "falafel": "^2.1.0", | ||
7321 | + "has": "^1.0.1", | ||
7322 | + "magic-string": "^0.22.4", | ||
7323 | + "merge-source-map": "1.0.4", | ||
7324 | + "object-inspect": "~1.4.0", | ||
7325 | + "quote-stream": "~1.0.2", | ||
7326 | + "readable-stream": "~2.3.3", | ||
7327 | + "shallow-copy": "~0.0.1", | ||
7328 | + "static-eval": "^2.0.0", | ||
7329 | + "through2": "~2.0.3" | ||
7330 | + }, | ||
7331 | + "dependencies": { | ||
7332 | + "object-inspect": { | ||
7333 | + "version": "1.4.1", | ||
7334 | + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", | ||
7335 | + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", | ||
7336 | + "dev": true | ||
7337 | + } | ||
7338 | + } | ||
7339 | + }, | ||
7340 | + "statuses": { | ||
7341 | + "version": "1.5.0", | ||
7342 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", | ||
7343 | + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", | ||
7344 | + "dev": true | ||
7345 | + }, | ||
7346 | + "stealthy-require": { | ||
7347 | + "version": "1.1.1", | ||
7348 | + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", | ||
7349 | + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", | ||
7350 | + "dev": true | ||
7351 | + }, | ||
7352 | + "stream-browserify": { | ||
7353 | + "version": "2.0.2", | ||
7354 | + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", | ||
7355 | + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", | ||
7356 | + "dev": true, | ||
7357 | + "requires": { | ||
7358 | + "inherits": "~2.0.1", | ||
7359 | + "readable-stream": "^2.0.2" | ||
7360 | + } | ||
7361 | + }, | ||
7362 | + "stream-http": { | ||
7363 | + "version": "2.8.3", | ||
7364 | + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", | ||
7365 | + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", | ||
7366 | + "dev": true, | ||
7367 | + "requires": { | ||
7368 | + "builtin-status-codes": "^3.0.0", | ||
7369 | + "inherits": "^2.0.1", | ||
7370 | + "readable-stream": "^2.3.6", | ||
7371 | + "to-arraybuffer": "^1.0.0", | ||
7372 | + "xtend": "^4.0.0" | ||
7373 | + } | ||
7374 | + }, | ||
7375 | + "string-width": { | ||
7376 | + "version": "3.1.0", | ||
7377 | + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
7378 | + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
7379 | + "dev": true, | ||
7380 | + "requires": { | ||
7381 | + "emoji-regex": "^7.0.1", | ||
7382 | + "is-fullwidth-code-point": "^2.0.0", | ||
7383 | + "strip-ansi": "^5.1.0" | ||
7384 | + }, | ||
7385 | + "dependencies": { | ||
7386 | + "ansi-regex": { | ||
7387 | + "version": "4.1.0", | ||
7388 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
7389 | + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
7390 | + "dev": true | ||
7391 | + }, | ||
7392 | + "strip-ansi": { | ||
7393 | + "version": "5.2.0", | ||
7394 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
7395 | + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
7396 | + "dev": true, | ||
7397 | + "requires": { | ||
7398 | + "ansi-regex": "^4.1.0" | ||
7399 | + } | ||
7400 | + } | ||
7401 | + } | ||
7402 | + }, | ||
7403 | + "string.prototype.trimend": { | ||
7404 | + "version": "1.0.1", | ||
7405 | + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", | ||
7406 | + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", | ||
7407 | + "dev": true, | ||
7408 | + "requires": { | ||
7409 | + "define-properties": "^1.1.3", | ||
7410 | + "es-abstract": "^1.17.5" | ||
7411 | + } | ||
7412 | + }, | ||
7413 | + "string.prototype.trimleft": { | ||
7414 | + "version": "2.1.2", | ||
7415 | + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", | ||
7416 | + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", | ||
7417 | + "dev": true, | ||
7418 | + "requires": { | ||
7419 | + "define-properties": "^1.1.3", | ||
7420 | + "es-abstract": "^1.17.5", | ||
7421 | + "string.prototype.trimstart": "^1.0.0" | ||
7422 | + } | ||
7423 | + }, | ||
7424 | + "string.prototype.trimright": { | ||
7425 | + "version": "2.1.2", | ||
7426 | + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", | ||
7427 | + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", | ||
7428 | + "dev": true, | ||
7429 | + "requires": { | ||
7430 | + "define-properties": "^1.1.3", | ||
7431 | + "es-abstract": "^1.17.5", | ||
7432 | + "string.prototype.trimend": "^1.0.0" | ||
7433 | + } | ||
7434 | + }, | ||
7435 | + "string.prototype.trimstart": { | ||
7436 | + "version": "1.0.1", | ||
7437 | + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", | ||
7438 | + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", | ||
7439 | + "dev": true, | ||
7440 | + "requires": { | ||
7441 | + "define-properties": "^1.1.3", | ||
7442 | + "es-abstract": "^1.17.5" | ||
7443 | + } | ||
7444 | + }, | ||
7445 | + "string_decoder": { | ||
7446 | + "version": "1.1.1", | ||
7447 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||
7448 | + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||
7449 | + "dev": true, | ||
7450 | + "requires": { | ||
7451 | + "safe-buffer": "~5.1.0" | ||
7452 | + } | ||
7453 | + }, | ||
7454 | + "strip-ansi": { | ||
7455 | + "version": "4.0.0", | ||
7456 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", | ||
7457 | + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", | ||
7458 | + "dev": true, | ||
7459 | + "requires": { | ||
7460 | + "ansi-regex": "^3.0.0" | ||
7461 | + } | ||
7462 | + }, | ||
7463 | + "stylehacks": { | ||
7464 | + "version": "4.0.3", | ||
7465 | + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", | ||
7466 | + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", | ||
7467 | + "dev": true, | ||
7468 | + "requires": { | ||
7469 | + "browserslist": "^4.0.0", | ||
7470 | + "postcss": "^7.0.0", | ||
7471 | + "postcss-selector-parser": "^3.0.0" | ||
7472 | + }, | ||
7473 | + "dependencies": { | ||
7474 | + "postcss-selector-parser": { | ||
7475 | + "version": "3.1.2", | ||
7476 | + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", | ||
7477 | + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", | ||
7478 | + "dev": true, | ||
7479 | + "requires": { | ||
7480 | + "dot-prop": "^5.2.0", | ||
7481 | + "indexes-of": "^1.0.1", | ||
7482 | + "uniq": "^1.0.1" | ||
7483 | + } | ||
7484 | + } | ||
7485 | + } | ||
7486 | + }, | ||
7487 | + "supports-color": { | ||
7488 | + "version": "6.1.0", | ||
7489 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", | ||
7490 | + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", | ||
7491 | + "dev": true, | ||
7492 | + "requires": { | ||
7493 | + "has-flag": "^3.0.0" | ||
7494 | + } | ||
7495 | + }, | ||
7496 | + "svgo": { | ||
7497 | + "version": "1.3.2", | ||
7498 | + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", | ||
7499 | + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", | ||
7500 | + "dev": true, | ||
7501 | + "requires": { | ||
7502 | + "chalk": "^2.4.1", | ||
7503 | + "coa": "^2.0.2", | ||
7504 | + "css-select": "^2.0.0", | ||
7505 | + "css-select-base-adapter": "^0.1.1", | ||
7506 | + "css-tree": "1.0.0-alpha.37", | ||
7507 | + "csso": "^4.0.2", | ||
7508 | + "js-yaml": "^3.13.1", | ||
7509 | + "mkdirp": "~0.5.1", | ||
7510 | + "object.values": "^1.1.0", | ||
7511 | + "sax": "~1.2.4", | ||
7512 | + "stable": "^0.1.8", | ||
7513 | + "unquote": "~1.1.1", | ||
7514 | + "util.promisify": "~1.0.0" | ||
7515 | + } | ||
7516 | + }, | ||
7517 | + "symbol-tree": { | ||
7518 | + "version": "3.2.4", | ||
7519 | + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", | ||
7520 | + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", | ||
7521 | + "dev": true | ||
7522 | + }, | ||
7523 | + "temp": { | ||
7524 | + "version": "0.9.0", | ||
7525 | + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz", | ||
7526 | + "integrity": "sha512-YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==", | ||
7527 | + "dev": true, | ||
7528 | + "requires": { | ||
7529 | + "rimraf": "~2.6.2" | ||
7530 | + } | ||
7531 | + }, | ||
7532 | + "terser": { | ||
7533 | + "version": "3.17.0", | ||
7534 | + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", | ||
7535 | + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", | ||
7536 | + "dev": true, | ||
7537 | + "requires": { | ||
7538 | + "commander": "^2.19.0", | ||
7539 | + "source-map": "~0.6.1", | ||
7540 | + "source-map-support": "~0.5.10" | ||
7541 | + } | ||
7542 | + }, | ||
7543 | + "through2": { | ||
7544 | + "version": "2.0.5", | ||
7545 | + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", | ||
7546 | + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", | ||
7547 | + "dev": true, | ||
7548 | + "requires": { | ||
7549 | + "readable-stream": "~2.3.6", | ||
7550 | + "xtend": "~4.0.1" | ||
7551 | + } | ||
7552 | + }, | ||
7553 | + "timers-browserify": { | ||
7554 | + "version": "2.0.11", | ||
7555 | + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", | ||
7556 | + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", | ||
7557 | + "dev": true, | ||
7558 | + "requires": { | ||
7559 | + "setimmediate": "^1.0.4" | ||
7560 | + } | ||
7561 | + }, | ||
7562 | + "timsort": { | ||
7563 | + "version": "0.3.0", | ||
7564 | + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", | ||
7565 | + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", | ||
7566 | + "dev": true | ||
7567 | + }, | ||
7568 | + "tiny-inflate": { | ||
7569 | + "version": "1.0.3", | ||
7570 | + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", | ||
7571 | + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", | ||
7572 | + "dev": true | ||
7573 | + }, | ||
7574 | + "to-arraybuffer": { | ||
7575 | + "version": "1.0.1", | ||
7576 | + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", | ||
7577 | + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", | ||
7578 | + "dev": true | ||
7579 | + }, | ||
7580 | + "to-fast-properties": { | ||
7581 | + "version": "2.0.0", | ||
7582 | + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", | ||
7583 | + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", | ||
7584 | + "dev": true | ||
7585 | + }, | ||
7586 | + "to-object-path": { | ||
7587 | + "version": "0.3.0", | ||
7588 | + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", | ||
7589 | + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", | ||
7590 | + "dev": true, | ||
7591 | + "requires": { | ||
7592 | + "kind-of": "^3.0.2" | ||
7593 | + }, | ||
7594 | + "dependencies": { | ||
7595 | + "kind-of": { | ||
7596 | + "version": "3.2.2", | ||
7597 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
7598 | + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
7599 | + "dev": true, | ||
7600 | + "requires": { | ||
7601 | + "is-buffer": "^1.1.5" | ||
7602 | + } | ||
7603 | + } | ||
7604 | + } | ||
7605 | + }, | ||
7606 | + "to-regex": { | ||
7607 | + "version": "3.0.2", | ||
7608 | + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", | ||
7609 | + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", | ||
7610 | + "dev": true, | ||
7611 | + "requires": { | ||
7612 | + "define-property": "^2.0.2", | ||
7613 | + "extend-shallow": "^3.0.2", | ||
7614 | + "regex-not": "^1.0.2", | ||
7615 | + "safe-regex": "^1.1.0" | ||
7616 | + } | ||
7617 | + }, | ||
7618 | + "to-regex-range": { | ||
7619 | + "version": "2.1.1", | ||
7620 | + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", | ||
7621 | + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", | ||
7622 | + "dev": true, | ||
7623 | + "requires": { | ||
7624 | + "is-number": "^3.0.0", | ||
7625 | + "repeat-string": "^1.6.1" | ||
7626 | + } | ||
7627 | + }, | ||
7628 | + "toidentifier": { | ||
7629 | + "version": "1.0.0", | ||
7630 | + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", | ||
7631 | + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", | ||
7632 | "dev": true | ||
7633 | }, | ||
7634 | - "brace-expansion": { | ||
7635 | - "version": "1.1.11", | ||
7636 | - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||
7637 | - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||
7638 | + "tough-cookie": { | ||
7639 | + "version": "2.5.0", | ||
7640 | + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", | ||
7641 | + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", | ||
7642 | + "requires": { | ||
7643 | + "psl": "^1.1.28", | ||
7644 | + "punycode": "^2.1.1" | ||
7645 | + } | ||
7646 | + }, | ||
7647 | + "tr46": { | ||
7648 | + "version": "1.0.1", | ||
7649 | + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", | ||
7650 | + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", | ||
7651 | "dev": true, | ||
7652 | "requires": { | ||
7653 | - "balanced-match": "^1.0.0", | ||
7654 | - "concat-map": "0.0.1" | ||
7655 | + "punycode": "^2.1.0" | ||
7656 | } | ||
7657 | }, | ||
7658 | - "concat-map": { | ||
7659 | - "version": "0.0.1", | ||
7660 | - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||
7661 | - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", | ||
7662 | + "trim-right": { | ||
7663 | + "version": "1.0.1", | ||
7664 | + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", | ||
7665 | + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", | ||
7666 | "dev": true | ||
7667 | }, | ||
7668 | - "cross-spawn": { | ||
7669 | - "version": "6.0.5", | ||
7670 | - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", | ||
7671 | - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", | ||
7672 | + "tty-browserify": { | ||
7673 | + "version": "0.0.0", | ||
7674 | + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", | ||
7675 | + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", | ||
7676 | + "dev": true | ||
7677 | + }, | ||
7678 | + "tunnel-agent": { | ||
7679 | + "version": "0.6.0", | ||
7680 | + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", | ||
7681 | + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", | ||
7682 | + "requires": { | ||
7683 | + "safe-buffer": "^5.0.1" | ||
7684 | + } | ||
7685 | + }, | ||
7686 | + "tweetnacl": { | ||
7687 | + "version": "0.14.5", | ||
7688 | + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", | ||
7689 | + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" | ||
7690 | + }, | ||
7691 | + "type-check": { | ||
7692 | + "version": "0.3.2", | ||
7693 | + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", | ||
7694 | + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", | ||
7695 | "dev": true, | ||
7696 | "requires": { | ||
7697 | - "nice-try": "^1.0.4", | ||
7698 | - "path-key": "^2.0.1", | ||
7699 | - "semver": "^5.5.0", | ||
7700 | - "shebang-command": "^1.2.0", | ||
7701 | - "which": "^1.2.9" | ||
7702 | + "prelude-ls": "~1.1.2" | ||
7703 | } | ||
7704 | }, | ||
7705 | - "elm-hot": { | ||
7706 | - "version": "1.1.1", | ||
7707 | - "resolved": "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz", | ||
7708 | - "integrity": "sha512-ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA==", | ||
7709 | + "typedarray": { | ||
7710 | + "version": "0.0.6", | ||
7711 | + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", | ||
7712 | + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", | ||
7713 | "dev": true | ||
7714 | }, | ||
7715 | - "find-elm-dependencies": { | ||
7716 | - "version": "2.0.2", | ||
7717 | - "resolved": "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz", | ||
7718 | - "integrity": "sha512-nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==", | ||
7719 | + "uncss": { | ||
7720 | + "version": "0.17.3", | ||
7721 | + "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz", | ||
7722 | + "integrity": "sha512-ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog==", | ||
7723 | "dev": true, | ||
7724 | "requires": { | ||
7725 | - "firstline": "1.2.0", | ||
7726 | - "lodash": "4.17.15" | ||
7727 | + "commander": "^2.20.0", | ||
7728 | + "glob": "^7.1.4", | ||
7729 | + "is-absolute-url": "^3.0.1", | ||
7730 | + "is-html": "^1.1.0", | ||
7731 | + "jsdom": "^14.1.0", | ||
7732 | + "lodash": "^4.17.15", | ||
7733 | + "postcss": "^7.0.17", | ||
7734 | + "postcss-selector-parser": "6.0.2", | ||
7735 | + "request": "^2.88.0" | ||
7736 | + }, | ||
7737 | + "dependencies": { | ||
7738 | + "is-absolute-url": { | ||
7739 | + "version": "3.0.3", | ||
7740 | + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", | ||
7741 | + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", | ||
7742 | + "dev": true | ||
7743 | + } | ||
7744 | } | ||
7745 | }, | ||
7746 | - "firstline": { | ||
7747 | + "unicode-canonical-property-names-ecmascript": { | ||
7748 | + "version": "1.0.4", | ||
7749 | + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", | ||
7750 | + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", | ||
7751 | + "dev": true | ||
7752 | + }, | ||
7753 | + "unicode-match-property-ecmascript": { | ||
7754 | + "version": "1.0.4", | ||
7755 | + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", | ||
7756 | + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", | ||
7757 | + "dev": true, | ||
7758 | + "requires": { | ||
7759 | + "unicode-canonical-property-names-ecmascript": "^1.0.4", | ||
7760 | + "unicode-property-aliases-ecmascript": "^1.0.4" | ||
7761 | + } | ||
7762 | + }, | ||
7763 | + "unicode-match-property-value-ecmascript": { | ||
7764 | "version": "1.2.0", | ||
7765 | - "resolved": "https://registry.npmjs.org/firstline/-/firstline-1.2.0.tgz", | ||
7766 | - "integrity": "sha1-yfSIbn9/vwr8EtcZQdzgaxkq6gU=", | ||
7767 | + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", | ||
7768 | + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", | ||
7769 | "dev": true | ||
7770 | }, | ||
7771 | - "fs.realpath": { | ||
7772 | - "version": "1.0.0", | ||
7773 | - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||
7774 | - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", | ||
7775 | + "unicode-property-aliases-ecmascript": { | ||
7776 | + "version": "1.1.0", | ||
7777 | + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", | ||
7778 | + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", | ||
7779 | "dev": true | ||
7780 | }, | ||
7781 | - "glob": { | ||
7782 | - "version": "7.1.4", | ||
7783 | - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", | ||
7784 | - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", | ||
7785 | + "unicode-trie": { | ||
7786 | + "version": "0.3.1", | ||
7787 | + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", | ||
7788 | + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", | ||
7789 | "dev": true, | ||
7790 | "requires": { | ||
7791 | - "fs.realpath": "^1.0.0", | ||
7792 | - "inflight": "^1.0.4", | ||
7793 | - "inherits": "2", | ||
7794 | - "minimatch": "^3.0.4", | ||
7795 | - "once": "^1.3.0", | ||
7796 | - "path-is-absolute": "^1.0.0" | ||
7797 | + "pako": "^0.2.5", | ||
7798 | + "tiny-inflate": "^1.0.0" | ||
7799 | } | ||
7800 | }, | ||
7801 | - "inflight": { | ||
7802 | - "version": "1.0.6", | ||
7803 | - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||
7804 | - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||
7805 | + "union-value": { | ||
7806 | + "version": "1.0.1", | ||
7807 | + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", | ||
7808 | + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", | ||
7809 | "dev": true, | ||
7810 | "requires": { | ||
7811 | - "once": "^1.3.0", | ||
7812 | - "wrappy": "1" | ||
7813 | + "arr-union": "^3.1.0", | ||
7814 | + "get-value": "^2.0.6", | ||
7815 | + "is-extendable": "^0.1.1", | ||
7816 | + "set-value": "^2.0.1" | ||
7817 | } | ||
7818 | }, | ||
7819 | - "inherits": { | ||
7820 | - "version": "2.0.4", | ||
7821 | - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||
7822 | - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | ||
7823 | + "uniq": { | ||
7824 | + "version": "1.0.1", | ||
7825 | + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", | ||
7826 | + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", | ||
7827 | "dev": true | ||
7828 | }, | ||
7829 | - "isexe": { | ||
7830 | + "uniqs": { | ||
7831 | "version": "2.0.0", | ||
7832 | - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | ||
7833 | - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", | ||
7834 | + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", | ||
7835 | + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", | ||
7836 | "dev": true | ||
7837 | }, | ||
7838 | - "lodash": { | ||
7839 | - "version": "4.17.15", | ||
7840 | - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", | ||
7841 | - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", | ||
7842 | + "unquote": { | ||
7843 | + "version": "1.1.1", | ||
7844 | + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", | ||
7845 | + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", | ||
7846 | "dev": true | ||
7847 | }, | ||
7848 | - "minimatch": { | ||
7849 | - "version": "3.0.4", | ||
7850 | - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||
7851 | - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
7852 | + "unset-value": { | ||
7853 | + "version": "1.0.0", | ||
7854 | + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", | ||
7855 | + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", | ||
7856 | "dev": true, | ||
7857 | "requires": { | ||
7858 | - "brace-expansion": "^1.1.7" | ||
7859 | + "has-value": "^0.3.1", | ||
7860 | + "isobject": "^3.0.0" | ||
7861 | + }, | ||
7862 | + "dependencies": { | ||
7863 | + "has-value": { | ||
7864 | + "version": "0.3.1", | ||
7865 | + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", | ||
7866 | + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", | ||
7867 | + "dev": true, | ||
7868 | + "requires": { | ||
7869 | + "get-value": "^2.0.3", | ||
7870 | + "has-values": "^0.1.4", | ||
7871 | + "isobject": "^2.0.0" | ||
7872 | + }, | ||
7873 | + "dependencies": { | ||
7874 | + "isobject": { | ||
7875 | + "version": "2.1.0", | ||
7876 | + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", | ||
7877 | + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", | ||
7878 | + "dev": true, | ||
7879 | + "requires": { | ||
7880 | + "isarray": "1.0.0" | ||
7881 | + } | ||
7882 | + } | ||
7883 | + } | ||
7884 | + }, | ||
7885 | + "has-values": { | ||
7886 | + "version": "0.1.4", | ||
7887 | + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", | ||
7888 | + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", | ||
7889 | + "dev": true | ||
7890 | + } | ||
7891 | } | ||
7892 | }, | ||
7893 | - "nice-try": { | ||
7894 | - "version": "1.0.5", | ||
7895 | - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", | ||
7896 | - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", | ||
7897 | + "upath": { | ||
7898 | + "version": "1.2.0", | ||
7899 | + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", | ||
7900 | + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", | ||
7901 | "dev": true | ||
7902 | }, | ||
7903 | - "node-elm-compiler": { | ||
7904 | - "version": "5.0.4", | ||
7905 | - "resolved": "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz", | ||
7906 | - "integrity": "sha512-VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==", | ||
7907 | + "uri-js": { | ||
7908 | + "version": "4.2.2", | ||
7909 | + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", | ||
7910 | + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", | ||
7911 | + "requires": { | ||
7912 | + "punycode": "^2.1.0" | ||
7913 | + } | ||
7914 | + }, | ||
7915 | + "urix": { | ||
7916 | + "version": "0.1.0", | ||
7917 | + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", | ||
7918 | + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", | ||
7919 | + "dev": true | ||
7920 | + }, | ||
7921 | + "url": { | ||
7922 | + "version": "0.11.0", | ||
7923 | + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", | ||
7924 | + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", | ||
7925 | "dev": true, | ||
7926 | "requires": { | ||
7927 | - "cross-spawn": "6.0.5", | ||
7928 | - "find-elm-dependencies": "2.0.2", | ||
7929 | - "lodash": "4.17.15", | ||
7930 | - "temp": "^0.9.0" | ||
7931 | + "punycode": "1.3.2", | ||
7932 | + "querystring": "0.2.0" | ||
7933 | + }, | ||
7934 | + "dependencies": { | ||
7935 | + "punycode": { | ||
7936 | + "version": "1.3.2", | ||
7937 | + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", | ||
7938 | + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", | ||
7939 | + "dev": true | ||
7940 | + } | ||
7941 | } | ||
7942 | }, | ||
7943 | - "once": { | ||
7944 | - "version": "1.4.0", | ||
7945 | - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||
7946 | - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||
7947 | + "use": { | ||
7948 | + "version": "3.1.1", | ||
7949 | + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", | ||
7950 | + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", | ||
7951 | + "dev": true | ||
7952 | + }, | ||
7953 | + "util": { | ||
7954 | + "version": "0.11.1", | ||
7955 | + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", | ||
7956 | + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", | ||
7957 | "dev": true, | ||
7958 | "requires": { | ||
7959 | - "wrappy": "1" | ||
7960 | + "inherits": "2.0.3" | ||
7961 | + }, | ||
7962 | + "dependencies": { | ||
7963 | + "inherits": { | ||
7964 | + "version": "2.0.3", | ||
7965 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||
7966 | + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", | ||
7967 | + "dev": true | ||
7968 | + } | ||
7969 | } | ||
7970 | }, | ||
7971 | - "path-is-absolute": { | ||
7972 | + "util-deprecate": { | ||
7973 | + "version": "1.0.2", | ||
7974 | + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||
7975 | + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", | ||
7976 | + "dev": true | ||
7977 | + }, | ||
7978 | + "util.promisify": { | ||
7979 | "version": "1.0.1", | ||
7980 | - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||
7981 | - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", | ||
7982 | + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", | ||
7983 | + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", | ||
7984 | + "dev": true, | ||
7985 | + "requires": { | ||
7986 | + "define-properties": "^1.1.3", | ||
7987 | + "es-abstract": "^1.17.2", | ||
7988 | + "has-symbols": "^1.0.1", | ||
7989 | + "object.getownpropertydescriptors": "^2.1.0" | ||
7990 | + } | ||
7991 | + }, | ||
7992 | + "uuid": { | ||
7993 | + "version": "3.4.0", | ||
7994 | + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", | ||
7995 | + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" | ||
7996 | + }, | ||
7997 | + "v8-compile-cache": { | ||
7998 | + "version": "2.1.0", | ||
7999 | + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", | ||
8000 | + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", | ||
8001 | "dev": true | ||
8002 | }, | ||
8003 | - "path-key": { | ||
8004 | - "version": "2.0.1", | ||
8005 | - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", | ||
8006 | - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", | ||
8007 | + "vendors": { | ||
8008 | + "version": "1.0.4", | ||
8009 | + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", | ||
8010 | + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", | ||
8011 | "dev": true | ||
8012 | }, | ||
8013 | - "rimraf": { | ||
8014 | - "version": "2.6.3", | ||
8015 | - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", | ||
8016 | - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", | ||
8017 | + "verror": { | ||
8018 | + "version": "1.10.0", | ||
8019 | + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | ||
8020 | + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", | ||
8021 | + "requires": { | ||
8022 | + "assert-plus": "^1.0.0", | ||
8023 | + "core-util-is": "1.0.2", | ||
8024 | + "extsprintf": "^1.2.0" | ||
8025 | + } | ||
8026 | + }, | ||
8027 | + "vlq": { | ||
8028 | + "version": "0.2.3", | ||
8029 | + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", | ||
8030 | + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", | ||
8031 | + "dev": true | ||
8032 | + }, | ||
8033 | + "vm-browserify": { | ||
8034 | + "version": "1.1.2", | ||
8035 | + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", | ||
8036 | + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", | ||
8037 | + "dev": true | ||
8038 | + }, | ||
8039 | + "w3c-hr-time": { | ||
8040 | + "version": "1.0.2", | ||
8041 | + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", | ||
8042 | + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", | ||
8043 | "dev": true, | ||
8044 | "requires": { | ||
8045 | - "glob": "^7.1.3" | ||
8046 | + "browser-process-hrtime": "^1.0.0" | ||
8047 | } | ||
8048 | }, | ||
8049 | - "semver": { | ||
8050 | - "version": "5.7.1", | ||
8051 | - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||
8052 | - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | ||
8053 | + "w3c-xmlserializer": { | ||
8054 | + "version": "1.1.2", | ||
8055 | + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", | ||
8056 | + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", | ||
8057 | + "dev": true, | ||
8058 | + "requires": { | ||
8059 | + "domexception": "^1.0.1", | ||
8060 | + "webidl-conversions": "^4.0.2", | ||
8061 | + "xml-name-validator": "^3.0.0" | ||
8062 | + } | ||
8063 | + }, | ||
8064 | + "wcwidth": { | ||
8065 | + "version": "1.0.1", | ||
8066 | + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", | ||
8067 | + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", | ||
8068 | + "dev": true, | ||
8069 | + "requires": { | ||
8070 | + "defaults": "^1.0.3" | ||
8071 | + } | ||
8072 | + }, | ||
8073 | + "webidl-conversions": { | ||
8074 | + "version": "4.0.2", | ||
8075 | + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", | ||
8076 | + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", | ||
8077 | "dev": true | ||
8078 | }, | ||
8079 | - "shebang-command": { | ||
8080 | - "version": "1.2.0", | ||
8081 | - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", | ||
8082 | - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", | ||
8083 | + "whatwg-encoding": { | ||
8084 | + "version": "1.0.5", | ||
8085 | + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", | ||
8086 | + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", | ||
8087 | "dev": true, | ||
8088 | "requires": { | ||
8089 | - "shebang-regex": "^1.0.0" | ||
8090 | + "iconv-lite": "0.4.24" | ||
8091 | } | ||
8092 | }, | ||
8093 | - "shebang-regex": { | ||
8094 | - "version": "1.0.0", | ||
8095 | - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", | ||
8096 | - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", | ||
8097 | + "whatwg-mimetype": { | ||
8098 | + "version": "2.3.0", | ||
8099 | + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", | ||
8100 | + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", | ||
8101 | "dev": true | ||
8102 | }, | ||
8103 | - "temp": { | ||
8104 | - "version": "0.9.0", | ||
8105 | - "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz", | ||
8106 | - "integrity": "sha512-YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==", | ||
8107 | + "whatwg-url": { | ||
8108 | + "version": "7.1.0", | ||
8109 | + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", | ||
8110 | + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", | ||
8111 | "dev": true, | ||
8112 | "requires": { | ||
8113 | - "rimraf": "~2.6.2" | ||
8114 | + "lodash.sortby": "^4.7.0", | ||
8115 | + "tr46": "^1.0.1", | ||
8116 | + "webidl-conversions": "^4.0.2" | ||
8117 | } | ||
8118 | }, | ||
8119 | "which": { | ||
8120 | @@ -205,11 +7972,164 @@ | ||
8121 | "isexe": "^2.0.0" | ||
8122 | } | ||
8123 | }, | ||
8124 | + "which-module": { | ||
8125 | + "version": "2.0.0", | ||
8126 | + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", | ||
8127 | + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", | ||
8128 | + "dev": true | ||
8129 | + }, | ||
8130 | + "word-wrap": { | ||
8131 | + "version": "1.2.3", | ||
8132 | + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", | ||
8133 | + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", | ||
8134 | + "dev": true | ||
8135 | + }, | ||
8136 | + "wrap-ansi": { | ||
8137 | + "version": "5.1.0", | ||
8138 | + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", | ||
8139 | + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", | ||
8140 | + "dev": true, | ||
8141 | + "requires": { | ||
8142 | + "ansi-styles": "^3.2.0", | ||
8143 | + "string-width": "^3.0.0", | ||
8144 | + "strip-ansi": "^5.0.0" | ||
8145 | + }, | ||
8146 | + "dependencies": { | ||
8147 | + "ansi-regex": { | ||
8148 | + "version": "4.1.0", | ||
8149 | + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
8150 | + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
8151 | + "dev": true | ||
8152 | + }, | ||
8153 | + "strip-ansi": { | ||
8154 | + "version": "5.2.0", | ||
8155 | + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
8156 | + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
8157 | + "dev": true, | ||
8158 | + "requires": { | ||
8159 | + "ansi-regex": "^4.1.0" | ||
8160 | + } | ||
8161 | + } | ||
8162 | + } | ||
8163 | + }, | ||
8164 | "wrappy": { | ||
8165 | "version": "1.0.2", | ||
8166 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||
8167 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | ||
8168 | "dev": true | ||
8169 | + }, | ||
8170 | + "ws": { | ||
8171 | + "version": "5.2.2", | ||
8172 | + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", | ||
8173 | + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", | ||
8174 | + "dev": true, | ||
8175 | + "requires": { | ||
8176 | + "async-limiter": "~1.0.0" | ||
8177 | + } | ||
8178 | + }, | ||
8179 | + "xml-name-validator": { | ||
8180 | + "version": "3.0.0", | ||
8181 | + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", | ||
8182 | + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", | ||
8183 | + "dev": true | ||
8184 | + }, | ||
8185 | + "xmlchars": { | ||
8186 | + "version": "2.2.0", | ||
8187 | + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", | ||
8188 | + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", | ||
8189 | + "dev": true | ||
8190 | + }, | ||
8191 | + "xtend": { | ||
8192 | + "version": "4.0.2", | ||
8193 | + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", | ||
8194 | + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", | ||
8195 | + "dev": true | ||
8196 | + }, | ||
8197 | + "y18n": { | ||
8198 | + "version": "4.0.0", | ||
8199 | + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", | ||
8200 | + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", | ||
8201 | + "dev": true | ||
8202 | + }, | ||
8203 | + "yallist": { | ||
8204 | + "version": "2.1.2", | ||
8205 | + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", | ||
8206 | + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", | ||
8207 | + "dev": true | ||
8208 | + }, | ||
8209 | + "yargs": { | ||
8210 | + "version": "14.2.3", | ||
8211 | + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", | ||
8212 | + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", | ||
8213 | + "dev": true, | ||
8214 | + "requires": { | ||
8215 | + "cliui": "^5.0.0", | ||
8216 | + "decamelize": "^1.2.0", | ||
8217 | + "find-up": "^3.0.0", | ||
8218 | + "get-caller-file": "^2.0.1", | ||
8219 | + "require-directory": "^2.1.1", | ||
8220 | + "require-main-filename": "^2.0.0", | ||
8221 | + "set-blocking": "^2.0.0", | ||
8222 | + "string-width": "^3.0.0", | ||
8223 | + "which-module": "^2.0.0", | ||
8224 | + "y18n": "^4.0.0", | ||
8225 | + "yargs-parser": "^15.0.1" | ||
8226 | + }, | ||
8227 | + "dependencies": { | ||
8228 | + "find-up": { | ||
8229 | + "version": "3.0.0", | ||
8230 | + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", | ||
8231 | + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", | ||
8232 | + "dev": true, | ||
8233 | + "requires": { | ||
8234 | + "locate-path": "^3.0.0" | ||
8235 | + } | ||
8236 | + }, | ||
8237 | + "locate-path": { | ||
8238 | + "version": "3.0.0", | ||
8239 | + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", | ||
8240 | + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", | ||
8241 | + "dev": true, | ||
8242 | + "requires": { | ||
8243 | + "p-locate": "^3.0.0", | ||
8244 | + "path-exists": "^3.0.0" | ||
8245 | + } | ||
8246 | + }, | ||
8247 | + "p-limit": { | ||
8248 | + "version": "2.3.0", | ||
8249 | + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", | ||
8250 | + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", | ||
8251 | + "dev": true, | ||
8252 | + "requires": { | ||
8253 | + "p-try": "^2.0.0" | ||
8254 | + } | ||
8255 | + }, | ||
8256 | + "p-locate": { | ||
8257 | + "version": "3.0.0", | ||
8258 | + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", | ||
8259 | + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", | ||
8260 | + "dev": true, | ||
8261 | + "requires": { | ||
8262 | + "p-limit": "^2.0.0" | ||
8263 | + } | ||
8264 | + }, | ||
8265 | + "p-try": { | ||
8266 | + "version": "2.2.0", | ||
8267 | + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", | ||
8268 | + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", | ||
8269 | + "dev": true | ||
8270 | + } | ||
8271 | + } | ||
8272 | + }, | ||
8273 | + "yargs-parser": { | ||
8274 | + "version": "15.0.1", | ||
8275 | + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", | ||
8276 | + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", | ||
8277 | + "dev": true, | ||
8278 | + "requires": { | ||
8279 | + "camelcase": "^5.0.0", | ||
8280 | + "decamelize": "^1.2.0" | ||
8281 | + } | ||
8282 | } | ||
8283 | } | ||
8284 | } | ||
8285 | diff --git a/src/Api.elm b/src/Api.elm | ||
8286 | index 82e5f6c..bd8c516 100644 | ||
8287 | --- a/src/Api.elm | ||
8288 | +++ b/src/Api.elm | ||
8289 | @@ -36,7 +36,7 @@ init url = | ||
8290 | { url | host = "api.codenamesgreen.com", path = "", query = Nothing, fragment = Nothing } | ||
8291 | |||
8292 | _ -> | ||
8293 | - { url | host = "api." ++ url.host, path = "", query = Nothing, fragment = Nothing } | ||
8294 | + { url | host = url.host, path = "/api", query = Nothing, fragment = Nothing } | ||
8295 | in | ||
8296 | { baseUrl = baseUrl } | ||
8297 | |||
8298 | @@ -80,7 +80,7 @@ type alias Index = | ||
8299 | |||
8300 | endpointUrl : Url.Url -> String -> String | ||
8301 | endpointUrl baseUrl path = | ||
8302 | - { baseUrl | path = path } | ||
8303 | + { baseUrl | path = baseUrl.path ++ path } | ||
8304 | |> Url.toString | ||
8305 | |||
8306 | |||
diff --git a/modules/private/websites/tools/games/codenames/default.nix b/modules/private/websites/tools/games/codenames/default.nix deleted file mode 100644 index 25eb62d..0000000 --- a/modules/private/websites/tools/games/codenames/default.nix +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | let | ||
3 | greenapid = pkgs.callPackage ./greenapid.nix {}; | ||
4 | frontend = pkgs.callPackage ./frontend.nix { nodeEnv = pkgs.callPackage pkgs.mylibs.nodeEnv {}; }; | ||
5 | wordlists = pkgs.runCommand "wordlists" {} '' | ||
6 | mkdir -p $out | ||
7 | cp -r ${./wordlists} $out/wordlists | ||
8 | ''; | ||
9 | cfg = config.myServices.websites.games.codenames; | ||
10 | in | ||
11 | { | ||
12 | options.myServices.websites.games.codenames.enable = lib.mkEnableOption "Enable Codenames game"; | ||
13 | config = lib.mkIf cfg.enable { | ||
14 | systemd.services.codenames_api = { | ||
15 | description = "Api for codenames game"; | ||
16 | wantedBy = [ "multi-user.target" ]; | ||
17 | script = "${greenapid}/bin/greenapid"; | ||
18 | postStart = '' | ||
19 | sleep 5; | ||
20 | chown :wwwrun /run/codenamesgreen/socket.sock | ||
21 | chmod g+w /run/codenamesgreen/socket.sock | ||
22 | ''; | ||
23 | serviceConfig = { | ||
24 | User = "codenames"; | ||
25 | DynamicUser = true; | ||
26 | SupplementaryGroups = [ "wwwrun" ]; | ||
27 | Type = "simple"; | ||
28 | RuntimeDirectory = "codenamesgreen"; | ||
29 | WorkingDirectory = builtins.toString wordlists; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | services.websites.env.tools.vhostConfs.games_codenames = { | ||
34 | certName = "games"; | ||
35 | certMainHost = "games.immae.eu"; | ||
36 | hosts = [ "codenames.games.immae.eu" ]; | ||
37 | root = frontend; | ||
38 | extraConfig = [ | ||
39 | '' | ||
40 | ProxyPass /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/ | ||
41 | ProxyPassReverse /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/ | ||
42 | |||
43 | <Directory ${frontend}> | ||
44 | FallbackResource index.html | ||
45 | </Directory> | ||
46 | '' | ||
47 | ]; | ||
48 | }; | ||
49 | }; | ||
50 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/deps.nix b/modules/private/websites/tools/games/codenames/deps.nix deleted file mode 100644 index fddec2e..0000000 --- a/modules/private/websites/tools/games/codenames/deps.nix +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | [ | ||
2 | { | ||
3 | goPackagePath = "github.com/jbowens/dictionary"; | ||
4 | fetch = { | ||
5 | type = "git"; | ||
6 | url = "https://github.com/jbowens/dictionary"; | ||
7 | rev = "229cf68df1a675e7a2462c4028d7df4abfd98854"; | ||
8 | sha256 = "0gyg3xcx4xqx6w8id2dq5s280mdfhs6yc9flg2jbj8jff040s28w"; | ||
9 | }; | ||
10 | } | ||
11 | ] | ||
diff --git a/modules/private/websites/tools/games/codenames/elm-srcs.nix b/modules/private/websites/tools/games/codenames/elm-srcs.nix deleted file mode 100644 index 031e7ff..0000000 --- a/modules/private/websites/tools/games/codenames/elm-srcs.nix +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | { | ||
2 | |||
3 | "elm/json" = { | ||
4 | sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh"; | ||
5 | version = "1.1.3"; | ||
6 | }; | ||
7 | |||
8 | "perzanko/elm-loading" = { | ||
9 | sha256 = "0fs7ly4jib4gwhh157g91hgjryqja096i6jhbsq7qb4k4r3c5l80"; | ||
10 | version = "2.0.4"; | ||
11 | }; | ||
12 | |||
13 | "elm/html" = { | ||
14 | sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k"; | ||
15 | version = "1.0.0"; | ||
16 | }; | ||
17 | |||
18 | "elm/browser" = { | ||
19 | sha256 = "1zlmx672glg7fdgkvh5jm47y85pv7pdfr5mkhg6x7ar6k000vyka"; | ||
20 | version = "1.0.1"; | ||
21 | }; | ||
22 | |||
23 | "elm/core" = { | ||
24 | sha256 = "1l0qdbczw91kzz8sx5d5zwz9x662bspy7p21dsr3f2rigxiix2as"; | ||
25 | version = "1.0.2"; | ||
26 | }; | ||
27 | |||
28 | "elm/url" = { | ||
29 | sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4"; | ||
30 | version = "1.0.0"; | ||
31 | }; | ||
32 | |||
33 | "elm/http" = { | ||
34 | sha256 = "008bs76mnp48b4dw8qwjj4fyvzbxvlrl4xpa2qh1gg2kfwyw56v1"; | ||
35 | version = "2.0.0"; | ||
36 | }; | ||
37 | |||
38 | "elm/bytes" = { | ||
39 | sha256 = "02ywbf52akvxclpxwj9n04jydajcbsbcbsnjs53yjc5lwck3abwj"; | ||
40 | version = "1.0.8"; | ||
41 | }; | ||
42 | |||
43 | "elm/file" = { | ||
44 | sha256 = "1rljcb41dl97myidyjih2yliyzddkr2m7n74x7gg46rcw4jl0ny8"; | ||
45 | version = "1.0.5"; | ||
46 | }; | ||
47 | |||
48 | "rtfeldman/elm-hex" = { | ||
49 | sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d"; | ||
50 | version = "1.0.0"; | ||
51 | }; | ||
52 | |||
53 | "rtfeldman/elm-css" = { | ||
54 | sha256 = "0nxiyxyw3kw55whkpwhrcgc0dr6a8zlm2nqvsaqdw6mzkykg0ba6"; | ||
55 | version = "16.1.0"; | ||
56 | }; | ||
57 | |||
58 | "elm/time" = { | ||
59 | sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1"; | ||
60 | version = "1.0.0"; | ||
61 | }; | ||
62 | |||
63 | "elm/virtual-dom" = { | ||
64 | sha256 = "0q1v5gi4g336bzz1lgwpn5b1639lrn63d8y6k6pimcyismp2i1yg"; | ||
65 | version = "1.0.2"; | ||
66 | }; | ||
67 | |||
68 | "elm-explorations/test" = { | ||
69 | sha256 = "0rpynrm9irgzyynd1bws0xspww5lnwv7w7998750jb8kcrw39h0n"; | ||
70 | version = "1.0.0"; | ||
71 | }; | ||
72 | |||
73 | "elm/random" = { | ||
74 | sha256 = "138n2455wdjwa657w6sjq18wx2r0k60ibpc4frhbqr50sncxrfdl"; | ||
75 | version = "1.0.0"; | ||
76 | }; | ||
77 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/frontend.nix b/modules/private/websites/tools/games/codenames/frontend.nix deleted file mode 100644 index 0f29070..0000000 --- a/modules/private/websites/tools/games/codenames/frontend.nix +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | { callPackage, runCommand, nodejs, utillinux, nodeEnv, nodePackages, elmPackages }: | ||
2 | let | ||
3 | codenamesgreen_packages = callPackage ./node-packages.nix { inherit nodeEnv; }; | ||
4 | in | ||
5 | runCommand "frontend" { | ||
6 | buildInputs = [ | ||
7 | nodejs utillinux nodePackages.parcel-bundler elmPackages.elm | ||
8 | ]; | ||
9 | } '' | ||
10 | cp -a ${codenamesgreen_packages.package}/lib/node_modules/codenamesgreen . | ||
11 | chmod -R u+w codenamesgreen | ||
12 | cd codenamesgreen | ||
13 | ${elmPackages.fetchElmDeps { | ||
14 | elmPackages = import ./elm-srcs.nix; | ||
15 | registryDat = ./registry.dat; | ||
16 | elmVersion = elmPackages.elm.version; | ||
17 | }} | ||
18 | npx parcel build src/index.html | ||
19 | cp -a dist $out | ||
20 | cp -R src/images $out | ||
21 | cp src/robots.txt $out | ||
22 | '' | ||
diff --git a/modules/private/websites/tools/games/codenames/greenapid.nix b/modules/private/websites/tools/games/codenames/greenapid.nix deleted file mode 100644 index 52bda3b..0000000 --- a/modules/private/websites/tools/games/codenames/greenapid.nix +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | { buildGoPackage, fetchFromGitHub, socket ? "/run/codenamesgreen/socket.sock" }: | ||
2 | buildGoPackage rec { | ||
3 | pname = "greenapid"; | ||
4 | version = "master-6d014d0"; | ||
5 | |||
6 | goPackagePath = "github.com/jbowens/codenamesgreen"; | ||
7 | subPackages = [ "cmd/greenapid" ]; | ||
8 | |||
9 | src = fetchFromGitHub { | ||
10 | owner = "jbowens"; | ||
11 | repo = "codenamesgreen"; | ||
12 | rev = "6d014d0df14bee72495e01f12885ef31cba3bd6b"; | ||
13 | sha256 = "0bkaf52rnjw792q0755in4k5jbcrmgq06cl03fdl6zdr8kq2mhm0"; | ||
14 | }; | ||
15 | |||
16 | patches = [ ./greenapid.patch ]; | ||
17 | goDeps = ./deps.nix; | ||
18 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/greenapid.patch b/modules/private/websites/tools/games/codenames/greenapid.patch deleted file mode 100644 index 21a9fad..0000000 --- a/modules/private/websites/tools/games/codenames/greenapid.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | diff --git a/cmd/greenapid/main.go b/cmd/greenapid/main.go | ||
2 | index 86499e9..1589323 100644 | ||
3 | --- a/cmd/greenapid/main.go | ||
4 | +++ b/cmd/greenapid/main.go | ||
5 | @@ -1,6 +1,7 @@ | ||
6 | package main | ||
7 | |||
8 | import ( | ||
9 | + "net" | ||
10 | "net/http" | ||
11 | |||
12 | "github.com/jbowens/codenamesgreen/gameapi" | ||
13 | @@ -13,6 +14,12 @@ func main() { | ||
14 | } | ||
15 | |||
16 | h := gameapi.Handler(wordLists) | ||
17 | - err = http.ListenAndServe(":8080", h) | ||
18 | + server := &http.Server{Handler: h} | ||
19 | + ln, err := net.Listen("unix", "/run/codenamesgreen/socket.sock") | ||
20 | + if err != nil { | ||
21 | + panic(err) | ||
22 | + } | ||
23 | + | ||
24 | + err = server.Serve(ln) | ||
25 | panic(err) | ||
26 | } | ||
27 | diff --git a/gameapi/handler.go b/gameapi/handler.go | ||
28 | index d67cf94..108e7e1 100644 | ||
29 | --- a/gameapi/handler.go | ||
30 | +++ b/gameapi/handler.go | ||
31 | @@ -101,7 +101,7 @@ func (h *handler) handleIndex(rw http.ResponseWriter, req *http.Request) { | ||
32 | for { | ||
33 | w1 := strings.ToLower(h.allWords[h.rand.Int63n(int64(len(h.allWords)))]) | ||
34 | w2 := strings.ToLower(h.allWords[h.rand.Int63n(int64(len(h.allWords)))]) | ||
35 | - id := fmt.Sprintf("%s-%s", w1, w2) | ||
36 | + id = fmt.Sprintf("%s-%s", w1, w2) | ||
37 | if _, ok := h.games[id]; !ok { | ||
38 | break | ||
39 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/node-packages.nix b/modules/private/websites/tools/games/codenames/node-packages.nix deleted file mode 100644 index 02595c5..0000000 --- a/modules/private/websites/tools/games/codenames/node-packages.nix +++ /dev/null | |||
@@ -1,7621 +0,0 @@ | |||
1 | # This file has been generated by node2nix 1.8.0. Do not edit! | ||
2 | |||
3 | {nodeEnv, fetchurl, fetchgit, fetchFromGitHub, runCommand, globalBuildInputs ? []}: | ||
4 | |||
5 | let | ||
6 | sources = { | ||
7 | "@babel/code-frame-7.0.0" = { | ||
8 | name = "_at_babel_slash_code-frame"; | ||
9 | packageName = "@babel/code-frame"; | ||
10 | version = "7.0.0"; | ||
11 | src = fetchurl { | ||
12 | url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz"; | ||
13 | sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA=="; | ||
14 | }; | ||
15 | }; | ||
16 | "@babel/code-frame-7.8.3" = { | ||
17 | name = "_at_babel_slash_code-frame"; | ||
18 | packageName = "@babel/code-frame"; | ||
19 | version = "7.8.3"; | ||
20 | src = fetchurl { | ||
21 | url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz"; | ||
22 | sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g=="; | ||
23 | }; | ||
24 | }; | ||
25 | "@babel/core-7.3.4" = { | ||
26 | name = "_at_babel_slash_core"; | ||
27 | packageName = "@babel/core"; | ||
28 | version = "7.3.4"; | ||
29 | src = fetchurl { | ||
30 | url = "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz"; | ||
31 | sha512 = "jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA=="; | ||
32 | }; | ||
33 | }; | ||
34 | "@babel/generator-7.3.4" = { | ||
35 | name = "_at_babel_slash_generator"; | ||
36 | packageName = "@babel/generator"; | ||
37 | version = "7.3.4"; | ||
38 | src = fetchurl { | ||
39 | url = "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz"; | ||
40 | sha512 = "8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg=="; | ||
41 | }; | ||
42 | }; | ||
43 | "@babel/generator-7.9.5" = { | ||
44 | name = "_at_babel_slash_generator"; | ||
45 | packageName = "@babel/generator"; | ||
46 | version = "7.9.5"; | ||
47 | src = fetchurl { | ||
48 | url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz"; | ||
49 | sha512 = "GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ=="; | ||
50 | }; | ||
51 | }; | ||
52 | "@babel/helper-annotate-as-pure-7.8.3" = { | ||
53 | name = "_at_babel_slash_helper-annotate-as-pure"; | ||
54 | packageName = "@babel/helper-annotate-as-pure"; | ||
55 | version = "7.8.3"; | ||
56 | src = fetchurl { | ||
57 | url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz"; | ||
58 | sha512 = "6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw=="; | ||
59 | }; | ||
60 | }; | ||
61 | "@babel/helper-builder-binary-assignment-operator-visitor-7.8.3" = { | ||
62 | name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor"; | ||
63 | packageName = "@babel/helper-builder-binary-assignment-operator-visitor"; | ||
64 | version = "7.8.3"; | ||
65 | src = fetchurl { | ||
66 | url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz"; | ||
67 | sha512 = "5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw=="; | ||
68 | }; | ||
69 | }; | ||
70 | "@babel/helper-builder-react-jsx-7.9.0" = { | ||
71 | name = "_at_babel_slash_helper-builder-react-jsx"; | ||
72 | packageName = "@babel/helper-builder-react-jsx"; | ||
73 | version = "7.9.0"; | ||
74 | src = fetchurl { | ||
75 | url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz"; | ||
76 | sha512 = "weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw=="; | ||
77 | }; | ||
78 | }; | ||
79 | "@babel/helper-create-regexp-features-plugin-7.8.8" = { | ||
80 | name = "_at_babel_slash_helper-create-regexp-features-plugin"; | ||
81 | packageName = "@babel/helper-create-regexp-features-plugin"; | ||
82 | version = "7.8.8"; | ||
83 | src = fetchurl { | ||
84 | url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz"; | ||
85 | sha512 = "LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg=="; | ||
86 | }; | ||
87 | }; | ||
88 | "@babel/helper-define-map-7.8.3" = { | ||
89 | name = "_at_babel_slash_helper-define-map"; | ||
90 | packageName = "@babel/helper-define-map"; | ||
91 | version = "7.8.3"; | ||
92 | src = fetchurl { | ||
93 | url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz"; | ||
94 | sha512 = "PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g=="; | ||
95 | }; | ||
96 | }; | ||
97 | "@babel/helper-explode-assignable-expression-7.8.3" = { | ||
98 | name = "_at_babel_slash_helper-explode-assignable-expression"; | ||
99 | packageName = "@babel/helper-explode-assignable-expression"; | ||
100 | version = "7.8.3"; | ||
101 | src = fetchurl { | ||
102 | url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz"; | ||
103 | sha512 = "N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw=="; | ||
104 | }; | ||
105 | }; | ||
106 | "@babel/helper-function-name-7.9.5" = { | ||
107 | name = "_at_babel_slash_helper-function-name"; | ||
108 | packageName = "@babel/helper-function-name"; | ||
109 | version = "7.9.5"; | ||
110 | src = fetchurl { | ||
111 | url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz"; | ||
112 | sha512 = "JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw=="; | ||
113 | }; | ||
114 | }; | ||
115 | "@babel/helper-get-function-arity-7.8.3" = { | ||
116 | name = "_at_babel_slash_helper-get-function-arity"; | ||
117 | packageName = "@babel/helper-get-function-arity"; | ||
118 | version = "7.8.3"; | ||
119 | src = fetchurl { | ||
120 | url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz"; | ||
121 | sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA=="; | ||
122 | }; | ||
123 | }; | ||
124 | "@babel/helper-hoist-variables-7.8.3" = { | ||
125 | name = "_at_babel_slash_helper-hoist-variables"; | ||
126 | packageName = "@babel/helper-hoist-variables"; | ||
127 | version = "7.8.3"; | ||
128 | src = fetchurl { | ||
129 | url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz"; | ||
130 | sha512 = "ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg=="; | ||
131 | }; | ||
132 | }; | ||
133 | "@babel/helper-member-expression-to-functions-7.8.3" = { | ||
134 | name = "_at_babel_slash_helper-member-expression-to-functions"; | ||
135 | packageName = "@babel/helper-member-expression-to-functions"; | ||
136 | version = "7.8.3"; | ||
137 | src = fetchurl { | ||
138 | url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz"; | ||
139 | sha512 = "fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA=="; | ||
140 | }; | ||
141 | }; | ||
142 | "@babel/helper-module-imports-7.8.3" = { | ||
143 | name = "_at_babel_slash_helper-module-imports"; | ||
144 | packageName = "@babel/helper-module-imports"; | ||
145 | version = "7.8.3"; | ||
146 | src = fetchurl { | ||
147 | url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz"; | ||
148 | sha512 = "R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg=="; | ||
149 | }; | ||
150 | }; | ||
151 | "@babel/helper-module-transforms-7.9.0" = { | ||
152 | name = "_at_babel_slash_helper-module-transforms"; | ||
153 | packageName = "@babel/helper-module-transforms"; | ||
154 | version = "7.9.0"; | ||
155 | src = fetchurl { | ||
156 | url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz"; | ||
157 | sha512 = "0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA=="; | ||
158 | }; | ||
159 | }; | ||
160 | "@babel/helper-optimise-call-expression-7.8.3" = { | ||
161 | name = "_at_babel_slash_helper-optimise-call-expression"; | ||
162 | packageName = "@babel/helper-optimise-call-expression"; | ||
163 | version = "7.8.3"; | ||
164 | src = fetchurl { | ||
165 | url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz"; | ||
166 | sha512 = "Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ=="; | ||
167 | }; | ||
168 | }; | ||
169 | "@babel/helper-plugin-utils-7.8.3" = { | ||
170 | name = "_at_babel_slash_helper-plugin-utils"; | ||
171 | packageName = "@babel/helper-plugin-utils"; | ||
172 | version = "7.8.3"; | ||
173 | src = fetchurl { | ||
174 | url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz"; | ||
175 | sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ=="; | ||
176 | }; | ||
177 | }; | ||
178 | "@babel/helper-regex-7.8.3" = { | ||
179 | name = "_at_babel_slash_helper-regex"; | ||
180 | packageName = "@babel/helper-regex"; | ||
181 | version = "7.8.3"; | ||
182 | src = fetchurl { | ||
183 | url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz"; | ||
184 | sha512 = "BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ=="; | ||
185 | }; | ||
186 | }; | ||
187 | "@babel/helper-remap-async-to-generator-7.8.3" = { | ||
188 | name = "_at_babel_slash_helper-remap-async-to-generator"; | ||
189 | packageName = "@babel/helper-remap-async-to-generator"; | ||
190 | version = "7.8.3"; | ||
191 | src = fetchurl { | ||
192 | url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz"; | ||
193 | sha512 = "kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA=="; | ||
194 | }; | ||
195 | }; | ||
196 | "@babel/helper-replace-supers-7.8.6" = { | ||
197 | name = "_at_babel_slash_helper-replace-supers"; | ||
198 | packageName = "@babel/helper-replace-supers"; | ||
199 | version = "7.8.6"; | ||
200 | src = fetchurl { | ||
201 | url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz"; | ||
202 | sha512 = "PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA=="; | ||
203 | }; | ||
204 | }; | ||
205 | "@babel/helper-simple-access-7.8.3" = { | ||
206 | name = "_at_babel_slash_helper-simple-access"; | ||
207 | packageName = "@babel/helper-simple-access"; | ||
208 | version = "7.8.3"; | ||
209 | src = fetchurl { | ||
210 | url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz"; | ||
211 | sha512 = "VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw=="; | ||
212 | }; | ||
213 | }; | ||
214 | "@babel/helper-split-export-declaration-7.8.3" = { | ||
215 | name = "_at_babel_slash_helper-split-export-declaration"; | ||
216 | packageName = "@babel/helper-split-export-declaration"; | ||
217 | version = "7.8.3"; | ||
218 | src = fetchurl { | ||
219 | url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz"; | ||
220 | sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA=="; | ||
221 | }; | ||
222 | }; | ||
223 | "@babel/helper-validator-identifier-7.9.5" = { | ||
224 | name = "_at_babel_slash_helper-validator-identifier"; | ||
225 | packageName = "@babel/helper-validator-identifier"; | ||
226 | version = "7.9.5"; | ||
227 | src = fetchurl { | ||
228 | url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz"; | ||
229 | sha512 = "/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g=="; | ||
230 | }; | ||
231 | }; | ||
232 | "@babel/helper-wrap-function-7.8.3" = { | ||
233 | name = "_at_babel_slash_helper-wrap-function"; | ||
234 | packageName = "@babel/helper-wrap-function"; | ||
235 | version = "7.8.3"; | ||
236 | src = fetchurl { | ||
237 | url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz"; | ||
238 | sha512 = "LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ=="; | ||
239 | }; | ||
240 | }; | ||
241 | "@babel/helpers-7.9.2" = { | ||
242 | name = "_at_babel_slash_helpers"; | ||
243 | packageName = "@babel/helpers"; | ||
244 | version = "7.9.2"; | ||
245 | src = fetchurl { | ||
246 | url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz"; | ||
247 | sha512 = "JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA=="; | ||
248 | }; | ||
249 | }; | ||
250 | "@babel/highlight-7.9.0" = { | ||
251 | name = "_at_babel_slash_highlight"; | ||
252 | packageName = "@babel/highlight"; | ||
253 | version = "7.9.0"; | ||
254 | src = fetchurl { | ||
255 | url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz"; | ||
256 | sha512 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ=="; | ||
257 | }; | ||
258 | }; | ||
259 | "@babel/parser-7.3.4" = { | ||
260 | name = "_at_babel_slash_parser"; | ||
261 | packageName = "@babel/parser"; | ||
262 | version = "7.3.4"; | ||
263 | src = fetchurl { | ||
264 | url = "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz"; | ||
265 | sha512 = "tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ=="; | ||
266 | }; | ||
267 | }; | ||
268 | "@babel/parser-7.9.4" = { | ||
269 | name = "_at_babel_slash_parser"; | ||
270 | packageName = "@babel/parser"; | ||
271 | version = "7.9.4"; | ||
272 | src = fetchurl { | ||
273 | url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz"; | ||
274 | sha512 = "bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA=="; | ||
275 | }; | ||
276 | }; | ||
277 | "@babel/plugin-proposal-async-generator-functions-7.8.3" = { | ||
278 | name = "_at_babel_slash_plugin-proposal-async-generator-functions"; | ||
279 | packageName = "@babel/plugin-proposal-async-generator-functions"; | ||
280 | version = "7.8.3"; | ||
281 | src = fetchurl { | ||
282 | url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz"; | ||
283 | sha512 = "NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw=="; | ||
284 | }; | ||
285 | }; | ||
286 | "@babel/plugin-proposal-json-strings-7.8.3" = { | ||
287 | name = "_at_babel_slash_plugin-proposal-json-strings"; | ||
288 | packageName = "@babel/plugin-proposal-json-strings"; | ||
289 | version = "7.8.3"; | ||
290 | src = fetchurl { | ||
291 | url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz"; | ||
292 | sha512 = "KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q=="; | ||
293 | }; | ||
294 | }; | ||
295 | "@babel/plugin-proposal-object-rest-spread-7.9.5" = { | ||
296 | name = "_at_babel_slash_plugin-proposal-object-rest-spread"; | ||
297 | packageName = "@babel/plugin-proposal-object-rest-spread"; | ||
298 | version = "7.9.5"; | ||
299 | src = fetchurl { | ||
300 | url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz"; | ||
301 | sha512 = "VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg=="; | ||
302 | }; | ||
303 | }; | ||
304 | "@babel/plugin-proposal-optional-catch-binding-7.8.3" = { | ||
305 | name = "_at_babel_slash_plugin-proposal-optional-catch-binding"; | ||
306 | packageName = "@babel/plugin-proposal-optional-catch-binding"; | ||
307 | version = "7.8.3"; | ||
308 | src = fetchurl { | ||
309 | url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz"; | ||
310 | sha512 = "0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw=="; | ||
311 | }; | ||
312 | }; | ||
313 | "@babel/plugin-proposal-unicode-property-regex-7.8.8" = { | ||
314 | name = "_at_babel_slash_plugin-proposal-unicode-property-regex"; | ||
315 | packageName = "@babel/plugin-proposal-unicode-property-regex"; | ||
316 | version = "7.8.8"; | ||
317 | src = fetchurl { | ||
318 | url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz"; | ||
319 | sha512 = "EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A=="; | ||
320 | }; | ||
321 | }; | ||
322 | "@babel/plugin-syntax-async-generators-7.8.4" = { | ||
323 | name = "_at_babel_slash_plugin-syntax-async-generators"; | ||
324 | packageName = "@babel/plugin-syntax-async-generators"; | ||
325 | version = "7.8.4"; | ||
326 | src = fetchurl { | ||
327 | url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"; | ||
328 | sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="; | ||
329 | }; | ||
330 | }; | ||
331 | "@babel/plugin-syntax-flow-7.8.3" = { | ||
332 | name = "_at_babel_slash_plugin-syntax-flow"; | ||
333 | packageName = "@babel/plugin-syntax-flow"; | ||
334 | version = "7.8.3"; | ||
335 | src = fetchurl { | ||
336 | url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz"; | ||
337 | sha512 = "innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg=="; | ||
338 | }; | ||
339 | }; | ||
340 | "@babel/plugin-syntax-json-strings-7.8.3" = { | ||
341 | name = "_at_babel_slash_plugin-syntax-json-strings"; | ||
342 | packageName = "@babel/plugin-syntax-json-strings"; | ||
343 | version = "7.8.3"; | ||
344 | src = fetchurl { | ||
345 | url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"; | ||
346 | sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="; | ||
347 | }; | ||
348 | }; | ||
349 | "@babel/plugin-syntax-jsx-7.8.3" = { | ||
350 | name = "_at_babel_slash_plugin-syntax-jsx"; | ||
351 | packageName = "@babel/plugin-syntax-jsx"; | ||
352 | version = "7.8.3"; | ||
353 | src = fetchurl { | ||
354 | url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz"; | ||
355 | sha512 = "WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A=="; | ||
356 | }; | ||
357 | }; | ||
358 | "@babel/plugin-syntax-object-rest-spread-7.8.3" = { | ||
359 | name = "_at_babel_slash_plugin-syntax-object-rest-spread"; | ||
360 | packageName = "@babel/plugin-syntax-object-rest-spread"; | ||
361 | version = "7.8.3"; | ||
362 | src = fetchurl { | ||
363 | url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"; | ||
364 | sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="; | ||
365 | }; | ||
366 | }; | ||
367 | "@babel/plugin-syntax-optional-catch-binding-7.8.3" = { | ||
368 | name = "_at_babel_slash_plugin-syntax-optional-catch-binding"; | ||
369 | packageName = "@babel/plugin-syntax-optional-catch-binding"; | ||
370 | version = "7.8.3"; | ||
371 | src = fetchurl { | ||
372 | url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"; | ||
373 | sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="; | ||
374 | }; | ||
375 | }; | ||
376 | "@babel/plugin-transform-arrow-functions-7.8.3" = { | ||
377 | name = "_at_babel_slash_plugin-transform-arrow-functions"; | ||
378 | packageName = "@babel/plugin-transform-arrow-functions"; | ||
379 | version = "7.8.3"; | ||
380 | src = fetchurl { | ||
381 | url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz"; | ||
382 | sha512 = "0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg=="; | ||
383 | }; | ||
384 | }; | ||
385 | "@babel/plugin-transform-async-to-generator-7.8.3" = { | ||
386 | name = "_at_babel_slash_plugin-transform-async-to-generator"; | ||
387 | packageName = "@babel/plugin-transform-async-to-generator"; | ||
388 | version = "7.8.3"; | ||
389 | src = fetchurl { | ||
390 | url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz"; | ||
391 | sha512 = "imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ=="; | ||
392 | }; | ||
393 | }; | ||
394 | "@babel/plugin-transform-block-scoped-functions-7.8.3" = { | ||
395 | name = "_at_babel_slash_plugin-transform-block-scoped-functions"; | ||
396 | packageName = "@babel/plugin-transform-block-scoped-functions"; | ||
397 | version = "7.8.3"; | ||
398 | src = fetchurl { | ||
399 | url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz"; | ||
400 | sha512 = "vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg=="; | ||
401 | }; | ||
402 | }; | ||
403 | "@babel/plugin-transform-block-scoping-7.8.3" = { | ||
404 | name = "_at_babel_slash_plugin-transform-block-scoping"; | ||
405 | packageName = "@babel/plugin-transform-block-scoping"; | ||
406 | version = "7.8.3"; | ||
407 | src = fetchurl { | ||
408 | url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz"; | ||
409 | sha512 = "pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w=="; | ||
410 | }; | ||
411 | }; | ||
412 | "@babel/plugin-transform-classes-7.9.5" = { | ||
413 | name = "_at_babel_slash_plugin-transform-classes"; | ||
414 | packageName = "@babel/plugin-transform-classes"; | ||
415 | version = "7.9.5"; | ||
416 | src = fetchurl { | ||
417 | url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz"; | ||
418 | sha512 = "x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg=="; | ||
419 | }; | ||
420 | }; | ||
421 | "@babel/plugin-transform-computed-properties-7.8.3" = { | ||
422 | name = "_at_babel_slash_plugin-transform-computed-properties"; | ||
423 | packageName = "@babel/plugin-transform-computed-properties"; | ||
424 | version = "7.8.3"; | ||
425 | src = fetchurl { | ||
426 | url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz"; | ||
427 | sha512 = "O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA=="; | ||
428 | }; | ||
429 | }; | ||
430 | "@babel/plugin-transform-destructuring-7.9.5" = { | ||
431 | name = "_at_babel_slash_plugin-transform-destructuring"; | ||
432 | packageName = "@babel/plugin-transform-destructuring"; | ||
433 | version = "7.9.5"; | ||
434 | src = fetchurl { | ||
435 | url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz"; | ||
436 | sha512 = "j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q=="; | ||
437 | }; | ||
438 | }; | ||
439 | "@babel/plugin-transform-dotall-regex-7.8.3" = { | ||
440 | name = "_at_babel_slash_plugin-transform-dotall-regex"; | ||
441 | packageName = "@babel/plugin-transform-dotall-regex"; | ||
442 | version = "7.8.3"; | ||
443 | src = fetchurl { | ||
444 | url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz"; | ||
445 | sha512 = "kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw=="; | ||
446 | }; | ||
447 | }; | ||
448 | "@babel/plugin-transform-duplicate-keys-7.8.3" = { | ||
449 | name = "_at_babel_slash_plugin-transform-duplicate-keys"; | ||
450 | packageName = "@babel/plugin-transform-duplicate-keys"; | ||
451 | version = "7.8.3"; | ||
452 | src = fetchurl { | ||
453 | url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz"; | ||
454 | sha512 = "s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ=="; | ||
455 | }; | ||
456 | }; | ||
457 | "@babel/plugin-transform-exponentiation-operator-7.8.3" = { | ||
458 | name = "_at_babel_slash_plugin-transform-exponentiation-operator"; | ||
459 | packageName = "@babel/plugin-transform-exponentiation-operator"; | ||
460 | version = "7.8.3"; | ||
461 | src = fetchurl { | ||
462 | url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz"; | ||
463 | sha512 = "zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ=="; | ||
464 | }; | ||
465 | }; | ||
466 | "@babel/plugin-transform-flow-strip-types-7.3.4" = { | ||
467 | name = "_at_babel_slash_plugin-transform-flow-strip-types"; | ||
468 | packageName = "@babel/plugin-transform-flow-strip-types"; | ||
469 | version = "7.3.4"; | ||
470 | src = fetchurl { | ||
471 | url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz"; | ||
472 | sha512 = "PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA=="; | ||
473 | }; | ||
474 | }; | ||
475 | "@babel/plugin-transform-for-of-7.9.0" = { | ||
476 | name = "_at_babel_slash_plugin-transform-for-of"; | ||
477 | packageName = "@babel/plugin-transform-for-of"; | ||
478 | version = "7.9.0"; | ||
479 | src = fetchurl { | ||
480 | url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz"; | ||
481 | sha512 = "lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ=="; | ||
482 | }; | ||
483 | }; | ||
484 | "@babel/plugin-transform-function-name-7.8.3" = { | ||
485 | name = "_at_babel_slash_plugin-transform-function-name"; | ||
486 | packageName = "@babel/plugin-transform-function-name"; | ||
487 | version = "7.8.3"; | ||
488 | src = fetchurl { | ||
489 | url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz"; | ||
490 | sha512 = "rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ=="; | ||
491 | }; | ||
492 | }; | ||
493 | "@babel/plugin-transform-literals-7.8.3" = { | ||
494 | name = "_at_babel_slash_plugin-transform-literals"; | ||
495 | packageName = "@babel/plugin-transform-literals"; | ||
496 | version = "7.8.3"; | ||
497 | src = fetchurl { | ||
498 | url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz"; | ||
499 | sha512 = "3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A=="; | ||
500 | }; | ||
501 | }; | ||
502 | "@babel/plugin-transform-modules-amd-7.9.0" = { | ||
503 | name = "_at_babel_slash_plugin-transform-modules-amd"; | ||
504 | packageName = "@babel/plugin-transform-modules-amd"; | ||
505 | version = "7.9.0"; | ||
506 | src = fetchurl { | ||
507 | url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz"; | ||
508 | sha512 = "vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q=="; | ||
509 | }; | ||
510 | }; | ||
511 | "@babel/plugin-transform-modules-commonjs-7.2.0" = { | ||
512 | name = "_at_babel_slash_plugin-transform-modules-commonjs"; | ||
513 | packageName = "@babel/plugin-transform-modules-commonjs"; | ||
514 | version = "7.2.0"; | ||
515 | src = fetchurl { | ||
516 | url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz"; | ||
517 | sha512 = "V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ=="; | ||
518 | }; | ||
519 | }; | ||
520 | "@babel/plugin-transform-modules-systemjs-7.9.0" = { | ||
521 | name = "_at_babel_slash_plugin-transform-modules-systemjs"; | ||
522 | packageName = "@babel/plugin-transform-modules-systemjs"; | ||
523 | version = "7.9.0"; | ||
524 | src = fetchurl { | ||
525 | url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz"; | ||
526 | sha512 = "FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ=="; | ||
527 | }; | ||
528 | }; | ||
529 | "@babel/plugin-transform-modules-umd-7.9.0" = { | ||
530 | name = "_at_babel_slash_plugin-transform-modules-umd"; | ||
531 | packageName = "@babel/plugin-transform-modules-umd"; | ||
532 | version = "7.9.0"; | ||
533 | src = fetchurl { | ||
534 | url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz"; | ||
535 | sha512 = "uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ=="; | ||
536 | }; | ||
537 | }; | ||
538 | "@babel/plugin-transform-named-capturing-groups-regex-7.8.3" = { | ||
539 | name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex"; | ||
540 | packageName = "@babel/plugin-transform-named-capturing-groups-regex"; | ||
541 | version = "7.8.3"; | ||
542 | src = fetchurl { | ||
543 | url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz"; | ||
544 | sha512 = "f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw=="; | ||
545 | }; | ||
546 | }; | ||
547 | "@babel/plugin-transform-new-target-7.8.3" = { | ||
548 | name = "_at_babel_slash_plugin-transform-new-target"; | ||
549 | packageName = "@babel/plugin-transform-new-target"; | ||
550 | version = "7.8.3"; | ||
551 | src = fetchurl { | ||
552 | url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz"; | ||
553 | sha512 = "QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw=="; | ||
554 | }; | ||
555 | }; | ||
556 | "@babel/plugin-transform-object-super-7.8.3" = { | ||
557 | name = "_at_babel_slash_plugin-transform-object-super"; | ||
558 | packageName = "@babel/plugin-transform-object-super"; | ||
559 | version = "7.8.3"; | ||
560 | src = fetchurl { | ||
561 | url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz"; | ||
562 | sha512 = "57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ=="; | ||
563 | }; | ||
564 | }; | ||
565 | "@babel/plugin-transform-parameters-7.9.5" = { | ||
566 | name = "_at_babel_slash_plugin-transform-parameters"; | ||
567 | packageName = "@babel/plugin-transform-parameters"; | ||
568 | version = "7.9.5"; | ||
569 | src = fetchurl { | ||
570 | url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz"; | ||
571 | sha512 = "0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA=="; | ||
572 | }; | ||
573 | }; | ||
574 | "@babel/plugin-transform-react-jsx-7.3.0" = { | ||
575 | name = "_at_babel_slash_plugin-transform-react-jsx"; | ||
576 | packageName = "@babel/plugin-transform-react-jsx"; | ||
577 | version = "7.3.0"; | ||
578 | src = fetchurl { | ||
579 | url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz"; | ||
580 | sha512 = "a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg=="; | ||
581 | }; | ||
582 | }; | ||
583 | "@babel/plugin-transform-regenerator-7.8.7" = { | ||
584 | name = "_at_babel_slash_plugin-transform-regenerator"; | ||
585 | packageName = "@babel/plugin-transform-regenerator"; | ||
586 | version = "7.8.7"; | ||
587 | src = fetchurl { | ||
588 | url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz"; | ||
589 | sha512 = "TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA=="; | ||
590 | }; | ||
591 | }; | ||
592 | "@babel/plugin-transform-shorthand-properties-7.8.3" = { | ||
593 | name = "_at_babel_slash_plugin-transform-shorthand-properties"; | ||
594 | packageName = "@babel/plugin-transform-shorthand-properties"; | ||
595 | version = "7.8.3"; | ||
596 | src = fetchurl { | ||
597 | url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz"; | ||
598 | sha512 = "I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w=="; | ||
599 | }; | ||
600 | }; | ||
601 | "@babel/plugin-transform-spread-7.8.3" = { | ||
602 | name = "_at_babel_slash_plugin-transform-spread"; | ||
603 | packageName = "@babel/plugin-transform-spread"; | ||
604 | version = "7.8.3"; | ||
605 | src = fetchurl { | ||
606 | url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz"; | ||
607 | sha512 = "CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g=="; | ||
608 | }; | ||
609 | }; | ||
610 | "@babel/plugin-transform-sticky-regex-7.8.3" = { | ||
611 | name = "_at_babel_slash_plugin-transform-sticky-regex"; | ||
612 | packageName = "@babel/plugin-transform-sticky-regex"; | ||
613 | version = "7.8.3"; | ||
614 | src = fetchurl { | ||
615 | url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz"; | ||
616 | sha512 = "9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw=="; | ||
617 | }; | ||
618 | }; | ||
619 | "@babel/plugin-transform-template-literals-7.8.3" = { | ||
620 | name = "_at_babel_slash_plugin-transform-template-literals"; | ||
621 | packageName = "@babel/plugin-transform-template-literals"; | ||
622 | version = "7.8.3"; | ||
623 | src = fetchurl { | ||
624 | url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz"; | ||
625 | sha512 = "820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ=="; | ||
626 | }; | ||
627 | }; | ||
628 | "@babel/plugin-transform-typeof-symbol-7.8.4" = { | ||
629 | name = "_at_babel_slash_plugin-transform-typeof-symbol"; | ||
630 | packageName = "@babel/plugin-transform-typeof-symbol"; | ||
631 | version = "7.8.4"; | ||
632 | src = fetchurl { | ||
633 | url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz"; | ||
634 | sha512 = "2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg=="; | ||
635 | }; | ||
636 | }; | ||
637 | "@babel/plugin-transform-unicode-regex-7.8.3" = { | ||
638 | name = "_at_babel_slash_plugin-transform-unicode-regex"; | ||
639 | packageName = "@babel/plugin-transform-unicode-regex"; | ||
640 | version = "7.8.3"; | ||
641 | src = fetchurl { | ||
642 | url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz"; | ||
643 | sha512 = "+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw=="; | ||
644 | }; | ||
645 | }; | ||
646 | "@babel/preset-env-7.3.4" = { | ||
647 | name = "_at_babel_slash_preset-env"; | ||
648 | packageName = "@babel/preset-env"; | ||
649 | version = "7.3.4"; | ||
650 | src = fetchurl { | ||
651 | url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz"; | ||
652 | sha512 = "2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA=="; | ||
653 | }; | ||
654 | }; | ||
655 | "@babel/runtime-7.3.4" = { | ||
656 | name = "_at_babel_slash_runtime"; | ||
657 | packageName = "@babel/runtime"; | ||
658 | version = "7.3.4"; | ||
659 | src = fetchurl { | ||
660 | url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz"; | ||
661 | sha512 = "IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g=="; | ||
662 | }; | ||
663 | }; | ||
664 | "@babel/runtime-7.9.2" = { | ||
665 | name = "_at_babel_slash_runtime"; | ||
666 | packageName = "@babel/runtime"; | ||
667 | version = "7.9.2"; | ||
668 | src = fetchurl { | ||
669 | url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz"; | ||
670 | sha512 = "NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q=="; | ||
671 | }; | ||
672 | }; | ||
673 | "@babel/template-7.2.2" = { | ||
674 | name = "_at_babel_slash_template"; | ||
675 | packageName = "@babel/template"; | ||
676 | version = "7.2.2"; | ||
677 | src = fetchurl { | ||
678 | url = "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz"; | ||
679 | sha512 = "zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g=="; | ||
680 | }; | ||
681 | }; | ||
682 | "@babel/template-7.8.6" = { | ||
683 | name = "_at_babel_slash_template"; | ||
684 | packageName = "@babel/template"; | ||
685 | version = "7.8.6"; | ||
686 | src = fetchurl { | ||
687 | url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz"; | ||
688 | sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg=="; | ||
689 | }; | ||
690 | }; | ||
691 | "@babel/traverse-7.3.4" = { | ||
692 | name = "_at_babel_slash_traverse"; | ||
693 | packageName = "@babel/traverse"; | ||
694 | version = "7.3.4"; | ||
695 | src = fetchurl { | ||
696 | url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz"; | ||
697 | sha512 = "TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ=="; | ||
698 | }; | ||
699 | }; | ||
700 | "@babel/traverse-7.9.5" = { | ||
701 | name = "_at_babel_slash_traverse"; | ||
702 | packageName = "@babel/traverse"; | ||
703 | version = "7.9.5"; | ||
704 | src = fetchurl { | ||
705 | url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz"; | ||
706 | sha512 = "c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ=="; | ||
707 | }; | ||
708 | }; | ||
709 | "@babel/types-7.3.4" = { | ||
710 | name = "_at_babel_slash_types"; | ||
711 | packageName = "@babel/types"; | ||
712 | version = "7.3.4"; | ||
713 | src = fetchurl { | ||
714 | url = "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz"; | ||
715 | sha512 = "WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ=="; | ||
716 | }; | ||
717 | }; | ||
718 | "@babel/types-7.9.5" = { | ||
719 | name = "_at_babel_slash_types"; | ||
720 | packageName = "@babel/types"; | ||
721 | version = "7.9.5"; | ||
722 | src = fetchurl { | ||
723 | url = "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz"; | ||
724 | sha512 = "XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg=="; | ||
725 | }; | ||
726 | }; | ||
727 | "@iarna/toml-2.2.5" = { | ||
728 | name = "_at_iarna_slash_toml"; | ||
729 | packageName = "@iarna/toml"; | ||
730 | version = "2.2.5"; | ||
731 | src = fetchurl { | ||
732 | url = "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz"; | ||
733 | sha512 = "trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="; | ||
734 | }; | ||
735 | }; | ||
736 | "@mrmlnc/readdir-enhanced-2.2.1" = { | ||
737 | name = "_at_mrmlnc_slash_readdir-enhanced"; | ||
738 | packageName = "@mrmlnc/readdir-enhanced"; | ||
739 | version = "2.2.1"; | ||
740 | src = fetchurl { | ||
741 | url = "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz"; | ||
742 | sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g=="; | ||
743 | }; | ||
744 | }; | ||
745 | "@nodelib/fs.stat-1.1.3" = { | ||
746 | name = "_at_nodelib_slash_fs.stat"; | ||
747 | packageName = "@nodelib/fs.stat"; | ||
748 | version = "1.1.3"; | ||
749 | src = fetchurl { | ||
750 | url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz"; | ||
751 | sha512 = "shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="; | ||
752 | }; | ||
753 | }; | ||
754 | "@parcel/fs-1.11.0" = { | ||
755 | name = "_at_parcel_slash_fs"; | ||
756 | packageName = "@parcel/fs"; | ||
757 | version = "1.11.0"; | ||
758 | src = fetchurl { | ||
759 | url = "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz"; | ||
760 | sha512 = "86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA=="; | ||
761 | }; | ||
762 | }; | ||
763 | "@parcel/logger-1.11.1" = { | ||
764 | name = "_at_parcel_slash_logger"; | ||
765 | packageName = "@parcel/logger"; | ||
766 | version = "1.11.1"; | ||
767 | src = fetchurl { | ||
768 | url = "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.1.tgz"; | ||
769 | sha512 = "9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA=="; | ||
770 | }; | ||
771 | }; | ||
772 | "@parcel/utils-1.11.0" = { | ||
773 | name = "_at_parcel_slash_utils"; | ||
774 | packageName = "@parcel/utils"; | ||
775 | version = "1.11.0"; | ||
776 | src = fetchurl { | ||
777 | url = "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz"; | ||
778 | sha512 = "cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ=="; | ||
779 | }; | ||
780 | }; | ||
781 | "@parcel/watcher-1.12.1" = { | ||
782 | name = "_at_parcel_slash_watcher"; | ||
783 | packageName = "@parcel/watcher"; | ||
784 | version = "1.12.1"; | ||
785 | src = fetchurl { | ||
786 | url = "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.1.tgz"; | ||
787 | sha512 = "od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA=="; | ||
788 | }; | ||
789 | }; | ||
790 | "@parcel/workers-1.11.0" = { | ||
791 | name = "_at_parcel_slash_workers"; | ||
792 | packageName = "@parcel/workers"; | ||
793 | version = "1.11.0"; | ||
794 | src = fetchurl { | ||
795 | url = "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz"; | ||
796 | sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ=="; | ||
797 | }; | ||
798 | }; | ||
799 | "@types/q-1.5.2" = { | ||
800 | name = "_at_types_slash_q"; | ||
801 | packageName = "@types/q"; | ||
802 | version = "1.5.2"; | ||
803 | src = fetchurl { | ||
804 | url = "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz"; | ||
805 | sha512 = "ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw=="; | ||
806 | }; | ||
807 | }; | ||
808 | "abab-2.0.3" = { | ||
809 | name = "abab"; | ||
810 | packageName = "abab"; | ||
811 | version = "2.0.3"; | ||
812 | src = fetchurl { | ||
813 | url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz"; | ||
814 | sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="; | ||
815 | }; | ||
816 | }; | ||
817 | "abbrev-1.1.1" = { | ||
818 | name = "abbrev"; | ||
819 | packageName = "abbrev"; | ||
820 | version = "1.1.1"; | ||
821 | src = fetchurl { | ||
822 | url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; | ||
823 | sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; | ||
824 | }; | ||
825 | }; | ||
826 | "acorn-6.4.1" = { | ||
827 | name = "acorn"; | ||
828 | packageName = "acorn"; | ||
829 | version = "6.4.1"; | ||
830 | src = fetchurl { | ||
831 | url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz"; | ||
832 | sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="; | ||
833 | }; | ||
834 | }; | ||
835 | "acorn-7.1.1" = { | ||
836 | name = "acorn"; | ||
837 | packageName = "acorn"; | ||
838 | version = "7.1.1"; | ||
839 | src = fetchurl { | ||
840 | url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz"; | ||
841 | sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg=="; | ||
842 | }; | ||
843 | }; | ||
844 | "acorn-globals-4.3.4" = { | ||
845 | name = "acorn-globals"; | ||
846 | packageName = "acorn-globals"; | ||
847 | version = "4.3.4"; | ||
848 | src = fetchurl { | ||
849 | url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz"; | ||
850 | sha512 = "clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A=="; | ||
851 | }; | ||
852 | }; | ||
853 | "acorn-walk-6.2.0" = { | ||
854 | name = "acorn-walk"; | ||
855 | packageName = "acorn-walk"; | ||
856 | version = "6.2.0"; | ||
857 | src = fetchurl { | ||
858 | url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz"; | ||
859 | sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="; | ||
860 | }; | ||
861 | }; | ||
862 | "ajv-6.12.2" = { | ||
863 | name = "ajv"; | ||
864 | packageName = "ajv"; | ||
865 | version = "6.12.2"; | ||
866 | src = fetchurl { | ||
867 | url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz"; | ||
868 | sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ=="; | ||
869 | }; | ||
870 | }; | ||
871 | "alphanum-sort-1.0.2" = { | ||
872 | name = "alphanum-sort"; | ||
873 | packageName = "alphanum-sort"; | ||
874 | version = "1.0.2"; | ||
875 | src = fetchurl { | ||
876 | url = "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz"; | ||
877 | sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3"; | ||
878 | }; | ||
879 | }; | ||
880 | "ansi-regex-2.1.1" = { | ||
881 | name = "ansi-regex"; | ||
882 | packageName = "ansi-regex"; | ||
883 | version = "2.1.1"; | ||
884 | src = fetchurl { | ||
885 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; | ||
886 | sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; | ||
887 | }; | ||
888 | }; | ||
889 | "ansi-regex-3.0.0" = { | ||
890 | name = "ansi-regex"; | ||
891 | packageName = "ansi-regex"; | ||
892 | version = "3.0.0"; | ||
893 | src = fetchurl { | ||
894 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; | ||
895 | sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; | ||
896 | }; | ||
897 | }; | ||
898 | "ansi-regex-4.1.0" = { | ||
899 | name = "ansi-regex"; | ||
900 | packageName = "ansi-regex"; | ||
901 | version = "4.1.0"; | ||
902 | src = fetchurl { | ||
903 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"; | ||
904 | sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="; | ||
905 | }; | ||
906 | }; | ||
907 | "ansi-styles-2.2.1" = { | ||
908 | name = "ansi-styles"; | ||
909 | packageName = "ansi-styles"; | ||
910 | version = "2.2.1"; | ||
911 | src = fetchurl { | ||
912 | url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; | ||
913 | sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; | ||
914 | }; | ||
915 | }; | ||
916 | "ansi-styles-3.2.1" = { | ||
917 | name = "ansi-styles"; | ||
918 | packageName = "ansi-styles"; | ||
919 | version = "3.2.1"; | ||
920 | src = fetchurl { | ||
921 | url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; | ||
922 | sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; | ||
923 | }; | ||
924 | }; | ||
925 | "ansi-to-html-0.6.14" = { | ||
926 | name = "ansi-to-html"; | ||
927 | packageName = "ansi-to-html"; | ||
928 | version = "0.6.14"; | ||
929 | src = fetchurl { | ||
930 | url = "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz"; | ||
931 | sha512 = "7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA=="; | ||
932 | }; | ||
933 | }; | ||
934 | "anymatch-2.0.0" = { | ||
935 | name = "anymatch"; | ||
936 | packageName = "anymatch"; | ||
937 | version = "2.0.0"; | ||
938 | src = fetchurl { | ||
939 | url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"; | ||
940 | sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw=="; | ||
941 | }; | ||
942 | }; | ||
943 | "argparse-1.0.10" = { | ||
944 | name = "argparse"; | ||
945 | packageName = "argparse"; | ||
946 | version = "1.0.10"; | ||
947 | src = fetchurl { | ||
948 | url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; | ||
949 | sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; | ||
950 | }; | ||
951 | }; | ||
952 | "arr-diff-4.0.0" = { | ||
953 | name = "arr-diff"; | ||
954 | packageName = "arr-diff"; | ||
955 | version = "4.0.0"; | ||
956 | src = fetchurl { | ||
957 | url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"; | ||
958 | sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; | ||
959 | }; | ||
960 | }; | ||
961 | "arr-flatten-1.1.0" = { | ||
962 | name = "arr-flatten"; | ||
963 | packageName = "arr-flatten"; | ||
964 | version = "1.1.0"; | ||
965 | src = fetchurl { | ||
966 | url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"; | ||
967 | sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="; | ||
968 | }; | ||
969 | }; | ||
970 | "arr-union-3.1.0" = { | ||
971 | name = "arr-union"; | ||
972 | packageName = "arr-union"; | ||
973 | version = "3.1.0"; | ||
974 | src = fetchurl { | ||
975 | url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"; | ||
976 | sha1 = "e39b09aea9def866a8f206e288af63919bae39c4"; | ||
977 | }; | ||
978 | }; | ||
979 | "array-equal-1.0.0" = { | ||
980 | name = "array-equal"; | ||
981 | packageName = "array-equal"; | ||
982 | version = "1.0.0"; | ||
983 | src = fetchurl { | ||
984 | url = "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz"; | ||
985 | sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93"; | ||
986 | }; | ||
987 | }; | ||
988 | "array-unique-0.3.2" = { | ||
989 | name = "array-unique"; | ||
990 | packageName = "array-unique"; | ||
991 | version = "0.3.2"; | ||
992 | src = fetchurl { | ||
993 | url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"; | ||
994 | sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; | ||
995 | }; | ||
996 | }; | ||
997 | "asn1-0.2.4" = { | ||
998 | name = "asn1"; | ||
999 | packageName = "asn1"; | ||
1000 | version = "0.2.4"; | ||
1001 | src = fetchurl { | ||
1002 | url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; | ||
1003 | sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; | ||
1004 | }; | ||
1005 | }; | ||
1006 | "asn1.js-4.10.1" = { | ||
1007 | name = "asn1.js"; | ||
1008 | packageName = "asn1.js"; | ||
1009 | version = "4.10.1"; | ||
1010 | src = fetchurl { | ||
1011 | url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz"; | ||
1012 | sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw=="; | ||
1013 | }; | ||
1014 | }; | ||
1015 | "assert-1.5.0" = { | ||
1016 | name = "assert"; | ||
1017 | packageName = "assert"; | ||
1018 | version = "1.5.0"; | ||
1019 | src = fetchurl { | ||
1020 | url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz"; | ||
1021 | sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA=="; | ||
1022 | }; | ||
1023 | }; | ||
1024 | "assert-plus-1.0.0" = { | ||
1025 | name = "assert-plus"; | ||
1026 | packageName = "assert-plus"; | ||
1027 | version = "1.0.0"; | ||
1028 | src = fetchurl { | ||
1029 | url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; | ||
1030 | sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; | ||
1031 | }; | ||
1032 | }; | ||
1033 | "assign-symbols-1.0.0" = { | ||
1034 | name = "assign-symbols"; | ||
1035 | packageName = "assign-symbols"; | ||
1036 | version = "1.0.0"; | ||
1037 | src = fetchurl { | ||
1038 | url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"; | ||
1039 | sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; | ||
1040 | }; | ||
1041 | }; | ||
1042 | "async-each-1.0.3" = { | ||
1043 | name = "async-each"; | ||
1044 | packageName = "async-each"; | ||
1045 | version = "1.0.3"; | ||
1046 | src = fetchurl { | ||
1047 | url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"; | ||
1048 | sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="; | ||
1049 | }; | ||
1050 | }; | ||
1051 | "async-limiter-1.0.1" = { | ||
1052 | name = "async-limiter"; | ||
1053 | packageName = "async-limiter"; | ||
1054 | version = "1.0.1"; | ||
1055 | src = fetchurl { | ||
1056 | url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"; | ||
1057 | sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="; | ||
1058 | }; | ||
1059 | }; | ||
1060 | "asynckit-0.4.0" = { | ||
1061 | name = "asynckit"; | ||
1062 | packageName = "asynckit"; | ||
1063 | version = "0.4.0"; | ||
1064 | src = fetchurl { | ||
1065 | url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; | ||
1066 | sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; | ||
1067 | }; | ||
1068 | }; | ||
1069 | "atob-2.1.2" = { | ||
1070 | name = "atob"; | ||
1071 | packageName = "atob"; | ||
1072 | version = "2.1.2"; | ||
1073 | src = fetchurl { | ||
1074 | url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"; | ||
1075 | sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="; | ||
1076 | }; | ||
1077 | }; | ||
1078 | "aws-sign2-0.7.0" = { | ||
1079 | name = "aws-sign2"; | ||
1080 | packageName = "aws-sign2"; | ||
1081 | version = "0.7.0"; | ||
1082 | src = fetchurl { | ||
1083 | url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; | ||
1084 | sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; | ||
1085 | }; | ||
1086 | }; | ||
1087 | "aws4-1.9.1" = { | ||
1088 | name = "aws4"; | ||
1089 | packageName = "aws4"; | ||
1090 | version = "1.9.1"; | ||
1091 | src = fetchurl { | ||
1092 | url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz"; | ||
1093 | sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="; | ||
1094 | }; | ||
1095 | }; | ||
1096 | "babel-plugin-dynamic-import-node-2.3.3" = { | ||
1097 | name = "babel-plugin-dynamic-import-node"; | ||
1098 | packageName = "babel-plugin-dynamic-import-node"; | ||
1099 | version = "2.3.3"; | ||
1100 | src = fetchurl { | ||
1101 | url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz"; | ||
1102 | sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ=="; | ||
1103 | }; | ||
1104 | }; | ||
1105 | "babel-runtime-6.26.0" = { | ||
1106 | name = "babel-runtime"; | ||
1107 | packageName = "babel-runtime"; | ||
1108 | version = "6.26.0"; | ||
1109 | src = fetchurl { | ||
1110 | url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"; | ||
1111 | sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; | ||
1112 | }; | ||
1113 | }; | ||
1114 | "babel-types-6.26.0" = { | ||
1115 | name = "babel-types"; | ||
1116 | packageName = "babel-types"; | ||
1117 | version = "6.26.0"; | ||
1118 | src = fetchurl { | ||
1119 | url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"; | ||
1120 | sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497"; | ||
1121 | }; | ||
1122 | }; | ||
1123 | "babylon-walk-1.0.2" = { | ||
1124 | name = "babylon-walk"; | ||
1125 | packageName = "babylon-walk"; | ||
1126 | version = "1.0.2"; | ||
1127 | src = fetchurl { | ||
1128 | url = "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz"; | ||
1129 | sha1 = "3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce"; | ||
1130 | }; | ||
1131 | }; | ||
1132 | "balanced-match-1.0.0" = { | ||
1133 | name = "balanced-match"; | ||
1134 | packageName = "balanced-match"; | ||
1135 | version = "1.0.0"; | ||
1136 | src = fetchurl { | ||
1137 | url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; | ||
1138 | sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; | ||
1139 | }; | ||
1140 | }; | ||
1141 | "base-0.11.2" = { | ||
1142 | name = "base"; | ||
1143 | packageName = "base"; | ||
1144 | version = "0.11.2"; | ||
1145 | src = fetchurl { | ||
1146 | url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz"; | ||
1147 | sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg=="; | ||
1148 | }; | ||
1149 | }; | ||
1150 | "base64-js-1.3.1" = { | ||
1151 | name = "base64-js"; | ||
1152 | packageName = "base64-js"; | ||
1153 | version = "1.3.1"; | ||
1154 | src = fetchurl { | ||
1155 | url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz"; | ||
1156 | sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="; | ||
1157 | }; | ||
1158 | }; | ||
1159 | "bcrypt-pbkdf-1.0.2" = { | ||
1160 | name = "bcrypt-pbkdf"; | ||
1161 | packageName = "bcrypt-pbkdf"; | ||
1162 | version = "1.0.2"; | ||
1163 | src = fetchurl { | ||
1164 | url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; | ||
1165 | sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; | ||
1166 | }; | ||
1167 | }; | ||
1168 | "binary-extensions-1.13.1" = { | ||
1169 | name = "binary-extensions"; | ||
1170 | packageName = "binary-extensions"; | ||
1171 | version = "1.13.1"; | ||
1172 | src = fetchurl { | ||
1173 | url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz"; | ||
1174 | sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="; | ||
1175 | }; | ||
1176 | }; | ||
1177 | "bindings-1.5.0" = { | ||
1178 | name = "bindings"; | ||
1179 | packageName = "bindings"; | ||
1180 | version = "1.5.0"; | ||
1181 | src = fetchurl { | ||
1182 | url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"; | ||
1183 | sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="; | ||
1184 | }; | ||
1185 | }; | ||
1186 | "bn.js-4.11.8" = { | ||
1187 | name = "bn.js"; | ||
1188 | packageName = "bn.js"; | ||
1189 | version = "4.11.8"; | ||
1190 | src = fetchurl { | ||
1191 | url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz"; | ||
1192 | sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="; | ||
1193 | }; | ||
1194 | }; | ||
1195 | "boolbase-1.0.0" = { | ||
1196 | name = "boolbase"; | ||
1197 | packageName = "boolbase"; | ||
1198 | version = "1.0.0"; | ||
1199 | src = fetchurl { | ||
1200 | url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"; | ||
1201 | sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"; | ||
1202 | }; | ||
1203 | }; | ||
1204 | "brace-expansion-1.1.11" = { | ||
1205 | name = "brace-expansion"; | ||
1206 | packageName = "brace-expansion"; | ||
1207 | version = "1.1.11"; | ||
1208 | src = fetchurl { | ||
1209 | url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; | ||
1210 | sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; | ||
1211 | }; | ||
1212 | }; | ||
1213 | "braces-2.3.2" = { | ||
1214 | name = "braces"; | ||
1215 | packageName = "braces"; | ||
1216 | version = "2.3.2"; | ||
1217 | src = fetchurl { | ||
1218 | url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"; | ||
1219 | sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w=="; | ||
1220 | }; | ||
1221 | }; | ||
1222 | "brfs-1.6.1" = { | ||
1223 | name = "brfs"; | ||
1224 | packageName = "brfs"; | ||
1225 | version = "1.6.1"; | ||
1226 | src = fetchurl { | ||
1227 | url = "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz"; | ||
1228 | sha512 = "OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ=="; | ||
1229 | }; | ||
1230 | }; | ||
1231 | "brorand-1.1.0" = { | ||
1232 | name = "brorand"; | ||
1233 | packageName = "brorand"; | ||
1234 | version = "1.1.0"; | ||
1235 | src = fetchurl { | ||
1236 | url = "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"; | ||
1237 | sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; | ||
1238 | }; | ||
1239 | }; | ||
1240 | "browser-process-hrtime-1.0.0" = { | ||
1241 | name = "browser-process-hrtime"; | ||
1242 | packageName = "browser-process-hrtime"; | ||
1243 | version = "1.0.0"; | ||
1244 | src = fetchurl { | ||
1245 | url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"; | ||
1246 | sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="; | ||
1247 | }; | ||
1248 | }; | ||
1249 | "browserify-aes-1.2.0" = { | ||
1250 | name = "browserify-aes"; | ||
1251 | packageName = "browserify-aes"; | ||
1252 | version = "1.2.0"; | ||
1253 | src = fetchurl { | ||
1254 | url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz"; | ||
1255 | sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA=="; | ||
1256 | }; | ||
1257 | }; | ||
1258 | "browserify-cipher-1.0.1" = { | ||
1259 | name = "browserify-cipher"; | ||
1260 | packageName = "browserify-cipher"; | ||
1261 | version = "1.0.1"; | ||
1262 | src = fetchurl { | ||
1263 | url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz"; | ||
1264 | sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w=="; | ||
1265 | }; | ||
1266 | }; | ||
1267 | "browserify-des-1.0.2" = { | ||
1268 | name = "browserify-des"; | ||
1269 | packageName = "browserify-des"; | ||
1270 | version = "1.0.2"; | ||
1271 | src = fetchurl { | ||
1272 | url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz"; | ||
1273 | sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A=="; | ||
1274 | }; | ||
1275 | }; | ||
1276 | "browserify-rsa-4.0.1" = { | ||
1277 | name = "browserify-rsa"; | ||
1278 | packageName = "browserify-rsa"; | ||
1279 | version = "4.0.1"; | ||
1280 | src = fetchurl { | ||
1281 | url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; | ||
1282 | sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; | ||
1283 | }; | ||
1284 | }; | ||
1285 | "browserify-sign-4.0.4" = { | ||
1286 | name = "browserify-sign"; | ||
1287 | packageName = "browserify-sign"; | ||
1288 | version = "4.0.4"; | ||
1289 | src = fetchurl { | ||
1290 | url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz"; | ||
1291 | sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"; | ||
1292 | }; | ||
1293 | }; | ||
1294 | "browserify-zlib-0.2.0" = { | ||
1295 | name = "browserify-zlib"; | ||
1296 | packageName = "browserify-zlib"; | ||
1297 | version = "0.2.0"; | ||
1298 | src = fetchurl { | ||
1299 | url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; | ||
1300 | sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA=="; | ||
1301 | }; | ||
1302 | }; | ||
1303 | "browserslist-4.12.0" = { | ||
1304 | name = "browserslist"; | ||
1305 | packageName = "browserslist"; | ||
1306 | version = "4.12.0"; | ||
1307 | src = fetchurl { | ||
1308 | url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz"; | ||
1309 | sha512 = "UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg=="; | ||
1310 | }; | ||
1311 | }; | ||
1312 | "buffer-4.9.2" = { | ||
1313 | name = "buffer"; | ||
1314 | packageName = "buffer"; | ||
1315 | version = "4.9.2"; | ||
1316 | src = fetchurl { | ||
1317 | url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz"; | ||
1318 | sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=="; | ||
1319 | }; | ||
1320 | }; | ||
1321 | "buffer-equal-0.0.1" = { | ||
1322 | name = "buffer-equal"; | ||
1323 | packageName = "buffer-equal"; | ||
1324 | version = "0.0.1"; | ||
1325 | src = fetchurl { | ||
1326 | url = "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz"; | ||
1327 | sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b"; | ||
1328 | }; | ||
1329 | }; | ||
1330 | "buffer-from-1.1.1" = { | ||
1331 | name = "buffer-from"; | ||
1332 | packageName = "buffer-from"; | ||
1333 | version = "1.1.1"; | ||
1334 | src = fetchurl { | ||
1335 | url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"; | ||
1336 | sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="; | ||
1337 | }; | ||
1338 | }; | ||
1339 | "buffer-xor-1.0.3" = { | ||
1340 | name = "buffer-xor"; | ||
1341 | packageName = "buffer-xor"; | ||
1342 | version = "1.0.3"; | ||
1343 | src = fetchurl { | ||
1344 | url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz"; | ||
1345 | sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; | ||
1346 | }; | ||
1347 | }; | ||
1348 | "builtin-status-codes-3.0.0" = { | ||
1349 | name = "builtin-status-codes"; | ||
1350 | packageName = "builtin-status-codes"; | ||
1351 | version = "3.0.0"; | ||
1352 | src = fetchurl { | ||
1353 | url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"; | ||
1354 | sha1 = "85982878e21b98e1c66425e03d0174788f569ee8"; | ||
1355 | }; | ||
1356 | }; | ||
1357 | "cache-base-1.0.1" = { | ||
1358 | name = "cache-base"; | ||
1359 | packageName = "cache-base"; | ||
1360 | version = "1.0.1"; | ||
1361 | src = fetchurl { | ||
1362 | url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"; | ||
1363 | sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ=="; | ||
1364 | }; | ||
1365 | }; | ||
1366 | "call-me-maybe-1.0.1" = { | ||
1367 | name = "call-me-maybe"; | ||
1368 | packageName = "call-me-maybe"; | ||
1369 | version = "1.0.1"; | ||
1370 | src = fetchurl { | ||
1371 | url = "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz"; | ||
1372 | sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b"; | ||
1373 | }; | ||
1374 | }; | ||
1375 | "caller-callsite-2.0.0" = { | ||
1376 | name = "caller-callsite"; | ||
1377 | packageName = "caller-callsite"; | ||
1378 | version = "2.0.0"; | ||
1379 | src = fetchurl { | ||
1380 | url = "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz"; | ||
1381 | sha1 = "847e0fce0a223750a9a027c54b33731ad3154134"; | ||
1382 | }; | ||
1383 | }; | ||
1384 | "caller-path-2.0.0" = { | ||
1385 | name = "caller-path"; | ||
1386 | packageName = "caller-path"; | ||
1387 | version = "2.0.0"; | ||
1388 | src = fetchurl { | ||
1389 | url = "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz"; | ||
1390 | sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4"; | ||
1391 | }; | ||
1392 | }; | ||
1393 | "callsites-2.0.0" = { | ||
1394 | name = "callsites"; | ||
1395 | packageName = "callsites"; | ||
1396 | version = "2.0.0"; | ||
1397 | src = fetchurl { | ||
1398 | url = "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz"; | ||
1399 | sha1 = "06eb84f00eea413da86affefacbffb36093b3c50"; | ||
1400 | }; | ||
1401 | }; | ||
1402 | "camelcase-5.3.1" = { | ||
1403 | name = "camelcase"; | ||
1404 | packageName = "camelcase"; | ||
1405 | version = "5.3.1"; | ||
1406 | src = fetchurl { | ||
1407 | url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"; | ||
1408 | sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="; | ||
1409 | }; | ||
1410 | }; | ||
1411 | "caniuse-api-3.0.0" = { | ||
1412 | name = "caniuse-api"; | ||
1413 | packageName = "caniuse-api"; | ||
1414 | version = "3.0.0"; | ||
1415 | src = fetchurl { | ||
1416 | url = "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz"; | ||
1417 | sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="; | ||
1418 | }; | ||
1419 | }; | ||
1420 | "caniuse-lite-1.0.30001048" = { | ||
1421 | name = "caniuse-lite"; | ||
1422 | packageName = "caniuse-lite"; | ||
1423 | version = "1.0.30001048"; | ||
1424 | src = fetchurl { | ||
1425 | url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz"; | ||
1426 | sha512 = "g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg=="; | ||
1427 | }; | ||
1428 | }; | ||
1429 | "caseless-0.12.0" = { | ||
1430 | name = "caseless"; | ||
1431 | packageName = "caseless"; | ||
1432 | version = "0.12.0"; | ||
1433 | src = fetchurl { | ||
1434 | url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; | ||
1435 | sha1 = "1b681c21ff84033c826543090689420d187151dc"; | ||
1436 | }; | ||
1437 | }; | ||
1438 | "chalk-1.1.3" = { | ||
1439 | name = "chalk"; | ||
1440 | packageName = "chalk"; | ||
1441 | version = "1.1.3"; | ||
1442 | src = fetchurl { | ||
1443 | url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; | ||
1444 | sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; | ||
1445 | }; | ||
1446 | }; | ||
1447 | "chalk-2.4.2" = { | ||
1448 | name = "chalk"; | ||
1449 | packageName = "chalk"; | ||
1450 | version = "2.4.2"; | ||
1451 | src = fetchurl { | ||
1452 | url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; | ||
1453 | sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; | ||
1454 | }; | ||
1455 | }; | ||
1456 | "chokidar-2.1.8" = { | ||
1457 | name = "chokidar"; | ||
1458 | packageName = "chokidar"; | ||
1459 | version = "2.1.8"; | ||
1460 | src = fetchurl { | ||
1461 | url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz"; | ||
1462 | sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg=="; | ||
1463 | }; | ||
1464 | }; | ||
1465 | "cipher-base-1.0.4" = { | ||
1466 | name = "cipher-base"; | ||
1467 | packageName = "cipher-base"; | ||
1468 | version = "1.0.4"; | ||
1469 | src = fetchurl { | ||
1470 | url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz"; | ||
1471 | sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q=="; | ||
1472 | }; | ||
1473 | }; | ||
1474 | "class-utils-0.3.6" = { | ||
1475 | name = "class-utils"; | ||
1476 | packageName = "class-utils"; | ||
1477 | version = "0.3.6"; | ||
1478 | src = fetchurl { | ||
1479 | url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"; | ||
1480 | sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="; | ||
1481 | }; | ||
1482 | }; | ||
1483 | "cli-cursor-2.1.0" = { | ||
1484 | name = "cli-cursor"; | ||
1485 | packageName = "cli-cursor"; | ||
1486 | version = "2.1.0"; | ||
1487 | src = fetchurl { | ||
1488 | url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"; | ||
1489 | sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5"; | ||
1490 | }; | ||
1491 | }; | ||
1492 | "cli-spinners-1.3.1" = { | ||
1493 | name = "cli-spinners"; | ||
1494 | packageName = "cli-spinners"; | ||
1495 | version = "1.3.1"; | ||
1496 | src = fetchurl { | ||
1497 | url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz"; | ||
1498 | sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg=="; | ||
1499 | }; | ||
1500 | }; | ||
1501 | "cliui-5.0.0" = { | ||
1502 | name = "cliui"; | ||
1503 | packageName = "cliui"; | ||
1504 | version = "5.0.0"; | ||
1505 | src = fetchurl { | ||
1506 | url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"; | ||
1507 | sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="; | ||
1508 | }; | ||
1509 | }; | ||
1510 | "clone-1.0.4" = { | ||
1511 | name = "clone"; | ||
1512 | packageName = "clone"; | ||
1513 | version = "1.0.4"; | ||
1514 | src = fetchurl { | ||
1515 | url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"; | ||
1516 | sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; | ||
1517 | }; | ||
1518 | }; | ||
1519 | "clone-2.1.2" = { | ||
1520 | name = "clone"; | ||
1521 | packageName = "clone"; | ||
1522 | version = "2.1.2"; | ||
1523 | src = fetchurl { | ||
1524 | url = "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz"; | ||
1525 | sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f"; | ||
1526 | }; | ||
1527 | }; | ||
1528 | "clones-1.2.0" = { | ||
1529 | name = "clones"; | ||
1530 | packageName = "clones"; | ||
1531 | version = "1.2.0"; | ||
1532 | src = fetchurl { | ||
1533 | url = "https://registry.npmjs.org/clones/-/clones-1.2.0.tgz"; | ||
1534 | sha512 = "FXDYw4TjR8wgPZYui2LeTqWh1BLpfQ8lB6upMtlpDF6WlOOxghmTTxWyngdKTgozqBgKnHbTVwTE+hOHqAykuQ=="; | ||
1535 | }; | ||
1536 | }; | ||
1537 | "coa-2.0.2" = { | ||
1538 | name = "coa"; | ||
1539 | packageName = "coa"; | ||
1540 | version = "2.0.2"; | ||
1541 | src = fetchurl { | ||
1542 | url = "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz"; | ||
1543 | sha512 = "q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA=="; | ||
1544 | }; | ||
1545 | }; | ||
1546 | "collection-visit-1.0.0" = { | ||
1547 | name = "collection-visit"; | ||
1548 | packageName = "collection-visit"; | ||
1549 | version = "1.0.0"; | ||
1550 | src = fetchurl { | ||
1551 | url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"; | ||
1552 | sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; | ||
1553 | }; | ||
1554 | }; | ||
1555 | "color-3.1.2" = { | ||
1556 | name = "color"; | ||
1557 | packageName = "color"; | ||
1558 | version = "3.1.2"; | ||
1559 | src = fetchurl { | ||
1560 | url = "https://registry.npmjs.org/color/-/color-3.1.2.tgz"; | ||
1561 | sha512 = "vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg=="; | ||
1562 | }; | ||
1563 | }; | ||
1564 | "color-convert-1.9.3" = { | ||
1565 | name = "color-convert"; | ||
1566 | packageName = "color-convert"; | ||
1567 | version = "1.9.3"; | ||
1568 | src = fetchurl { | ||
1569 | url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; | ||
1570 | sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; | ||
1571 | }; | ||
1572 | }; | ||
1573 | "color-name-1.1.3" = { | ||
1574 | name = "color-name"; | ||
1575 | packageName = "color-name"; | ||
1576 | version = "1.1.3"; | ||
1577 | src = fetchurl { | ||
1578 | url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; | ||
1579 | sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; | ||
1580 | }; | ||
1581 | }; | ||
1582 | "color-string-1.5.3" = { | ||
1583 | name = "color-string"; | ||
1584 | packageName = "color-string"; | ||
1585 | version = "1.5.3"; | ||
1586 | src = fetchurl { | ||
1587 | url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz"; | ||
1588 | sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw=="; | ||
1589 | }; | ||
1590 | }; | ||
1591 | "combined-stream-1.0.8" = { | ||
1592 | name = "combined-stream"; | ||
1593 | packageName = "combined-stream"; | ||
1594 | version = "1.0.8"; | ||
1595 | src = fetchurl { | ||
1596 | url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; | ||
1597 | sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; | ||
1598 | }; | ||
1599 | }; | ||
1600 | "command-exists-1.2.9" = { | ||
1601 | name = "command-exists"; | ||
1602 | packageName = "command-exists"; | ||
1603 | version = "1.2.9"; | ||
1604 | src = fetchurl { | ||
1605 | url = "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz"; | ||
1606 | sha512 = "LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="; | ||
1607 | }; | ||
1608 | }; | ||
1609 | "commander-2.20.3" = { | ||
1610 | name = "commander"; | ||
1611 | packageName = "commander"; | ||
1612 | version = "2.20.3"; | ||
1613 | src = fetchurl { | ||
1614 | url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"; | ||
1615 | sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; | ||
1616 | }; | ||
1617 | }; | ||
1618 | "component-emitter-1.3.0" = { | ||
1619 | name = "component-emitter"; | ||
1620 | packageName = "component-emitter"; | ||
1621 | version = "1.3.0"; | ||
1622 | src = fetchurl { | ||
1623 | url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"; | ||
1624 | sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="; | ||
1625 | }; | ||
1626 | }; | ||
1627 | "concat-map-0.0.1" = { | ||
1628 | name = "concat-map"; | ||
1629 | packageName = "concat-map"; | ||
1630 | version = "0.0.1"; | ||
1631 | src = fetchurl { | ||
1632 | url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; | ||
1633 | sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; | ||
1634 | }; | ||
1635 | }; | ||
1636 | "concat-stream-1.6.2" = { | ||
1637 | name = "concat-stream"; | ||
1638 | packageName = "concat-stream"; | ||
1639 | version = "1.6.2"; | ||
1640 | src = fetchurl { | ||
1641 | url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"; | ||
1642 | sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="; | ||
1643 | }; | ||
1644 | }; | ||
1645 | "config-chain-1.1.12" = { | ||
1646 | name = "config-chain"; | ||
1647 | packageName = "config-chain"; | ||
1648 | version = "1.1.12"; | ||
1649 | src = fetchurl { | ||
1650 | url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz"; | ||
1651 | sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA=="; | ||
1652 | }; | ||
1653 | }; | ||
1654 | "console-browserify-1.2.0" = { | ||
1655 | name = "console-browserify"; | ||
1656 | packageName = "console-browserify"; | ||
1657 | version = "1.2.0"; | ||
1658 | src = fetchurl { | ||
1659 | url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz"; | ||
1660 | sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="; | ||
1661 | }; | ||
1662 | }; | ||
1663 | "constants-browserify-1.0.0" = { | ||
1664 | name = "constants-browserify"; | ||
1665 | packageName = "constants-browserify"; | ||
1666 | version = "1.0.0"; | ||
1667 | src = fetchurl { | ||
1668 | url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz"; | ||
1669 | sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; | ||
1670 | }; | ||
1671 | }; | ||
1672 | "convert-source-map-1.7.0" = { | ||
1673 | name = "convert-source-map"; | ||
1674 | packageName = "convert-source-map"; | ||
1675 | version = "1.7.0"; | ||
1676 | src = fetchurl { | ||
1677 | url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"; | ||
1678 | sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA=="; | ||
1679 | }; | ||
1680 | }; | ||
1681 | "copy-descriptor-0.1.1" = { | ||
1682 | name = "copy-descriptor"; | ||
1683 | packageName = "copy-descriptor"; | ||
1684 | version = "0.1.1"; | ||
1685 | src = fetchurl { | ||
1686 | url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; | ||
1687 | sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; | ||
1688 | }; | ||
1689 | }; | ||
1690 | "core-js-2.6.11" = { | ||
1691 | name = "core-js"; | ||
1692 | packageName = "core-js"; | ||
1693 | version = "2.6.11"; | ||
1694 | src = fetchurl { | ||
1695 | url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz"; | ||
1696 | sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="; | ||
1697 | }; | ||
1698 | }; | ||
1699 | "core-util-is-1.0.2" = { | ||
1700 | name = "core-util-is"; | ||
1701 | packageName = "core-util-is"; | ||
1702 | version = "1.0.2"; | ||
1703 | src = fetchurl { | ||
1704 | url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; | ||
1705 | sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; | ||
1706 | }; | ||
1707 | }; | ||
1708 | "cosmiconfig-5.2.1" = { | ||
1709 | name = "cosmiconfig"; | ||
1710 | packageName = "cosmiconfig"; | ||
1711 | version = "5.2.1"; | ||
1712 | src = fetchurl { | ||
1713 | url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz"; | ||
1714 | sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA=="; | ||
1715 | }; | ||
1716 | }; | ||
1717 | "create-ecdh-4.0.3" = { | ||
1718 | name = "create-ecdh"; | ||
1719 | packageName = "create-ecdh"; | ||
1720 | version = "4.0.3"; | ||
1721 | src = fetchurl { | ||
1722 | url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz"; | ||
1723 | sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw=="; | ||
1724 | }; | ||
1725 | }; | ||
1726 | "create-hash-1.2.0" = { | ||
1727 | name = "create-hash"; | ||
1728 | packageName = "create-hash"; | ||
1729 | version = "1.2.0"; | ||
1730 | src = fetchurl { | ||
1731 | url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz"; | ||
1732 | sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg=="; | ||
1733 | }; | ||
1734 | }; | ||
1735 | "create-hmac-1.1.7" = { | ||
1736 | name = "create-hmac"; | ||
1737 | packageName = "create-hmac"; | ||
1738 | version = "1.1.7"; | ||
1739 | src = fetchurl { | ||
1740 | url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz"; | ||
1741 | sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg=="; | ||
1742 | }; | ||
1743 | }; | ||
1744 | "cross-spawn-6.0.5" = { | ||
1745 | name = "cross-spawn"; | ||
1746 | packageName = "cross-spawn"; | ||
1747 | version = "6.0.5"; | ||
1748 | src = fetchurl { | ||
1749 | url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"; | ||
1750 | sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ=="; | ||
1751 | }; | ||
1752 | }; | ||
1753 | "crypto-browserify-3.12.0" = { | ||
1754 | name = "crypto-browserify"; | ||
1755 | packageName = "crypto-browserify"; | ||
1756 | version = "3.12.0"; | ||
1757 | src = fetchurl { | ||
1758 | url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; | ||
1759 | sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg=="; | ||
1760 | }; | ||
1761 | }; | ||
1762 | "css-color-names-0.0.4" = { | ||
1763 | name = "css-color-names"; | ||
1764 | packageName = "css-color-names"; | ||
1765 | version = "0.0.4"; | ||
1766 | src = fetchurl { | ||
1767 | url = "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz"; | ||
1768 | sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0"; | ||
1769 | }; | ||
1770 | }; | ||
1771 | "css-declaration-sorter-4.0.1" = { | ||
1772 | name = "css-declaration-sorter"; | ||
1773 | packageName = "css-declaration-sorter"; | ||
1774 | version = "4.0.1"; | ||
1775 | src = fetchurl { | ||
1776 | url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz"; | ||
1777 | sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA=="; | ||
1778 | }; | ||
1779 | }; | ||
1780 | "css-modules-loader-core-1.1.0" = { | ||
1781 | name = "css-modules-loader-core"; | ||
1782 | packageName = "css-modules-loader-core"; | ||
1783 | version = "1.1.0"; | ||
1784 | src = fetchurl { | ||
1785 | url = "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz"; | ||
1786 | sha1 = "5908668294a1becd261ae0a4ce21b0b551f21d16"; | ||
1787 | }; | ||
1788 | }; | ||
1789 | "css-select-2.1.0" = { | ||
1790 | name = "css-select"; | ||
1791 | packageName = "css-select"; | ||
1792 | version = "2.1.0"; | ||
1793 | src = fetchurl { | ||
1794 | url = "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz"; | ||
1795 | sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ=="; | ||
1796 | }; | ||
1797 | }; | ||
1798 | "css-select-base-adapter-0.1.1" = { | ||
1799 | name = "css-select-base-adapter"; | ||
1800 | packageName = "css-select-base-adapter"; | ||
1801 | version = "0.1.1"; | ||
1802 | src = fetchurl { | ||
1803 | url = "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz"; | ||
1804 | sha512 = "jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="; | ||
1805 | }; | ||
1806 | }; | ||
1807 | "css-selector-tokenizer-0.7.2" = { | ||
1808 | name = "css-selector-tokenizer"; | ||
1809 | packageName = "css-selector-tokenizer"; | ||
1810 | version = "0.7.2"; | ||
1811 | src = fetchurl { | ||
1812 | url = "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz"; | ||
1813 | sha512 = "yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw=="; | ||
1814 | }; | ||
1815 | }; | ||
1816 | "css-tree-1.0.0-alpha.37" = { | ||
1817 | name = "css-tree"; | ||
1818 | packageName = "css-tree"; | ||
1819 | version = "1.0.0-alpha.37"; | ||
1820 | src = fetchurl { | ||
1821 | url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz"; | ||
1822 | sha512 = "DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg=="; | ||
1823 | }; | ||
1824 | }; | ||
1825 | "css-tree-1.0.0-alpha.39" = { | ||
1826 | name = "css-tree"; | ||
1827 | packageName = "css-tree"; | ||
1828 | version = "1.0.0-alpha.39"; | ||
1829 | src = fetchurl { | ||
1830 | url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz"; | ||
1831 | sha512 = "7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA=="; | ||
1832 | }; | ||
1833 | }; | ||
1834 | "css-what-3.2.1" = { | ||
1835 | name = "css-what"; | ||
1836 | packageName = "css-what"; | ||
1837 | version = "3.2.1"; | ||
1838 | src = fetchurl { | ||
1839 | url = "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz"; | ||
1840 | sha512 = "WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw=="; | ||
1841 | }; | ||
1842 | }; | ||
1843 | "cssesc-3.0.0" = { | ||
1844 | name = "cssesc"; | ||
1845 | packageName = "cssesc"; | ||
1846 | version = "3.0.0"; | ||
1847 | src = fetchurl { | ||
1848 | url = "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"; | ||
1849 | sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="; | ||
1850 | }; | ||
1851 | }; | ||
1852 | "cssnano-4.1.10" = { | ||
1853 | name = "cssnano"; | ||
1854 | packageName = "cssnano"; | ||
1855 | version = "4.1.10"; | ||
1856 | src = fetchurl { | ||
1857 | url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz"; | ||
1858 | sha512 = "5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ=="; | ||
1859 | }; | ||
1860 | }; | ||
1861 | "cssnano-preset-default-4.0.7" = { | ||
1862 | name = "cssnano-preset-default"; | ||
1863 | packageName = "cssnano-preset-default"; | ||
1864 | version = "4.0.7"; | ||
1865 | src = fetchurl { | ||
1866 | url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz"; | ||
1867 | sha512 = "x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA=="; | ||
1868 | }; | ||
1869 | }; | ||
1870 | "cssnano-util-get-arguments-4.0.0" = { | ||
1871 | name = "cssnano-util-get-arguments"; | ||
1872 | packageName = "cssnano-util-get-arguments"; | ||
1873 | version = "4.0.0"; | ||
1874 | src = fetchurl { | ||
1875 | url = "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz"; | ||
1876 | sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f"; | ||
1877 | }; | ||
1878 | }; | ||
1879 | "cssnano-util-get-match-4.0.0" = { | ||
1880 | name = "cssnano-util-get-match"; | ||
1881 | packageName = "cssnano-util-get-match"; | ||
1882 | version = "4.0.0"; | ||
1883 | src = fetchurl { | ||
1884 | url = "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz"; | ||
1885 | sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d"; | ||
1886 | }; | ||
1887 | }; | ||
1888 | "cssnano-util-raw-cache-4.0.1" = { | ||
1889 | name = "cssnano-util-raw-cache"; | ||
1890 | packageName = "cssnano-util-raw-cache"; | ||
1891 | version = "4.0.1"; | ||
1892 | src = fetchurl { | ||
1893 | url = "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz"; | ||
1894 | sha512 = "qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA=="; | ||
1895 | }; | ||
1896 | }; | ||
1897 | "cssnano-util-same-parent-4.0.1" = { | ||
1898 | name = "cssnano-util-same-parent"; | ||
1899 | packageName = "cssnano-util-same-parent"; | ||
1900 | version = "4.0.1"; | ||
1901 | src = fetchurl { | ||
1902 | url = "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz"; | ||
1903 | sha512 = "WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q=="; | ||
1904 | }; | ||
1905 | }; | ||
1906 | "csso-4.0.3" = { | ||
1907 | name = "csso"; | ||
1908 | packageName = "csso"; | ||
1909 | version = "4.0.3"; | ||
1910 | src = fetchurl { | ||
1911 | url = "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz"; | ||
1912 | sha512 = "NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ=="; | ||
1913 | }; | ||
1914 | }; | ||
1915 | "cssom-0.3.8" = { | ||
1916 | name = "cssom"; | ||
1917 | packageName = "cssom"; | ||
1918 | version = "0.3.8"; | ||
1919 | src = fetchurl { | ||
1920 | url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz"; | ||
1921 | sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="; | ||
1922 | }; | ||
1923 | }; | ||
1924 | "cssstyle-1.4.0" = { | ||
1925 | name = "cssstyle"; | ||
1926 | packageName = "cssstyle"; | ||
1927 | version = "1.4.0"; | ||
1928 | src = fetchurl { | ||
1929 | url = "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz"; | ||
1930 | sha512 = "GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA=="; | ||
1931 | }; | ||
1932 | }; | ||
1933 | "dashdash-1.14.1" = { | ||
1934 | name = "dashdash"; | ||
1935 | packageName = "dashdash"; | ||
1936 | version = "1.14.1"; | ||
1937 | src = fetchurl { | ||
1938 | url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; | ||
1939 | sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; | ||
1940 | }; | ||
1941 | }; | ||
1942 | "data-urls-1.1.0" = { | ||
1943 | name = "data-urls"; | ||
1944 | packageName = "data-urls"; | ||
1945 | version = "1.1.0"; | ||
1946 | src = fetchurl { | ||
1947 | url = "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz"; | ||
1948 | sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ=="; | ||
1949 | }; | ||
1950 | }; | ||
1951 | "deasync-0.1.19" = { | ||
1952 | name = "deasync"; | ||
1953 | packageName = "deasync"; | ||
1954 | version = "0.1.19"; | ||
1955 | src = fetchurl { | ||
1956 | url = "https://registry.npmjs.org/deasync/-/deasync-0.1.19.tgz"; | ||
1957 | sha512 = "oh3MRktfnPlLysCPpBpKZZzb4cUC/p0aA3SyRGp15lN30juJBTo/CiD0d4fR+f1kBtUQoJj1NE9RPNWQ7BQ9Mg=="; | ||
1958 | }; | ||
1959 | }; | ||
1960 | "debug-2.6.9" = { | ||
1961 | name = "debug"; | ||
1962 | packageName = "debug"; | ||
1963 | version = "2.6.9"; | ||
1964 | src = fetchurl { | ||
1965 | url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; | ||
1966 | sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; | ||
1967 | }; | ||
1968 | }; | ||
1969 | "debug-4.1.1" = { | ||
1970 | name = "debug"; | ||
1971 | packageName = "debug"; | ||
1972 | version = "4.1.1"; | ||
1973 | src = fetchurl { | ||
1974 | url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"; | ||
1975 | sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="; | ||
1976 | }; | ||
1977 | }; | ||
1978 | "decamelize-1.2.0" = { | ||
1979 | name = "decamelize"; | ||
1980 | packageName = "decamelize"; | ||
1981 | version = "1.2.0"; | ||
1982 | src = fetchurl { | ||
1983 | url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"; | ||
1984 | sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; | ||
1985 | }; | ||
1986 | }; | ||
1987 | "decode-uri-component-0.2.0" = { | ||
1988 | name = "decode-uri-component"; | ||
1989 | packageName = "decode-uri-component"; | ||
1990 | version = "0.2.0"; | ||
1991 | src = fetchurl { | ||
1992 | url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; | ||
1993 | sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; | ||
1994 | }; | ||
1995 | }; | ||
1996 | "deep-is-0.1.3" = { | ||
1997 | name = "deep-is"; | ||
1998 | packageName = "deep-is"; | ||
1999 | version = "0.1.3"; | ||
2000 | src = fetchurl { | ||
2001 | url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"; | ||
2002 | sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; | ||
2003 | }; | ||
2004 | }; | ||
2005 | "defaults-1.0.3" = { | ||
2006 | name = "defaults"; | ||
2007 | packageName = "defaults"; | ||
2008 | version = "1.0.3"; | ||
2009 | src = fetchurl { | ||
2010 | url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz"; | ||
2011 | sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d"; | ||
2012 | }; | ||
2013 | }; | ||
2014 | "define-properties-1.1.3" = { | ||
2015 | name = "define-properties"; | ||
2016 | packageName = "define-properties"; | ||
2017 | version = "1.1.3"; | ||
2018 | src = fetchurl { | ||
2019 | url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"; | ||
2020 | sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ=="; | ||
2021 | }; | ||
2022 | }; | ||
2023 | "define-property-0.2.5" = { | ||
2024 | name = "define-property"; | ||
2025 | packageName = "define-property"; | ||
2026 | version = "0.2.5"; | ||
2027 | src = fetchurl { | ||
2028 | url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"; | ||
2029 | sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; | ||
2030 | }; | ||
2031 | }; | ||
2032 | "define-property-1.0.0" = { | ||
2033 | name = "define-property"; | ||
2034 | packageName = "define-property"; | ||
2035 | version = "1.0.0"; | ||
2036 | src = fetchurl { | ||
2037 | url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"; | ||
2038 | sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; | ||
2039 | }; | ||
2040 | }; | ||
2041 | "define-property-2.0.2" = { | ||
2042 | name = "define-property"; | ||
2043 | packageName = "define-property"; | ||
2044 | version = "2.0.2"; | ||
2045 | src = fetchurl { | ||
2046 | url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"; | ||
2047 | sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ=="; | ||
2048 | }; | ||
2049 | }; | ||
2050 | "delayed-stream-1.0.0" = { | ||
2051 | name = "delayed-stream"; | ||
2052 | packageName = "delayed-stream"; | ||
2053 | version = "1.0.0"; | ||
2054 | src = fetchurl { | ||
2055 | url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; | ||
2056 | sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; | ||
2057 | }; | ||
2058 | }; | ||
2059 | "depd-1.1.2" = { | ||
2060 | name = "depd"; | ||
2061 | packageName = "depd"; | ||
2062 | version = "1.1.2"; | ||
2063 | src = fetchurl { | ||
2064 | url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; | ||
2065 | sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; | ||
2066 | }; | ||
2067 | }; | ||
2068 | "des.js-1.0.1" = { | ||
2069 | name = "des.js"; | ||
2070 | packageName = "des.js"; | ||
2071 | version = "1.0.1"; | ||
2072 | src = fetchurl { | ||
2073 | url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz"; | ||
2074 | sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA=="; | ||
2075 | }; | ||
2076 | }; | ||
2077 | "destroy-1.0.4" = { | ||
2078 | name = "destroy"; | ||
2079 | packageName = "destroy"; | ||
2080 | version = "1.0.4"; | ||
2081 | src = fetchurl { | ||
2082 | url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; | ||
2083 | sha1 = "978857442c44749e4206613e37946205826abd80"; | ||
2084 | }; | ||
2085 | }; | ||
2086 | "diffie-hellman-5.0.3" = { | ||
2087 | name = "diffie-hellman"; | ||
2088 | packageName = "diffie-hellman"; | ||
2089 | version = "5.0.3"; | ||
2090 | src = fetchurl { | ||
2091 | url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz"; | ||
2092 | sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg=="; | ||
2093 | }; | ||
2094 | }; | ||
2095 | "dom-serializer-0.2.2" = { | ||
2096 | name = "dom-serializer"; | ||
2097 | packageName = "dom-serializer"; | ||
2098 | version = "0.2.2"; | ||
2099 | src = fetchurl { | ||
2100 | url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz"; | ||
2101 | sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g=="; | ||
2102 | }; | ||
2103 | }; | ||
2104 | "domain-browser-1.2.0" = { | ||
2105 | name = "domain-browser"; | ||
2106 | packageName = "domain-browser"; | ||
2107 | version = "1.2.0"; | ||
2108 | src = fetchurl { | ||
2109 | url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz"; | ||
2110 | sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="; | ||
2111 | }; | ||
2112 | }; | ||
2113 | "domelementtype-1.3.1" = { | ||
2114 | name = "domelementtype"; | ||
2115 | packageName = "domelementtype"; | ||
2116 | version = "1.3.1"; | ||
2117 | src = fetchurl { | ||
2118 | url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz"; | ||
2119 | sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="; | ||
2120 | }; | ||
2121 | }; | ||
2122 | "domelementtype-2.0.1" = { | ||
2123 | name = "domelementtype"; | ||
2124 | packageName = "domelementtype"; | ||
2125 | version = "2.0.1"; | ||
2126 | src = fetchurl { | ||
2127 | url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz"; | ||
2128 | sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ=="; | ||
2129 | }; | ||
2130 | }; | ||
2131 | "domexception-1.0.1" = { | ||
2132 | name = "domexception"; | ||
2133 | packageName = "domexception"; | ||
2134 | version = "1.0.1"; | ||
2135 | src = fetchurl { | ||
2136 | url = "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz"; | ||
2137 | sha512 = "raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug=="; | ||
2138 | }; | ||
2139 | }; | ||
2140 | "domhandler-2.4.2" = { | ||
2141 | name = "domhandler"; | ||
2142 | packageName = "domhandler"; | ||
2143 | version = "2.4.2"; | ||
2144 | src = fetchurl { | ||
2145 | url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz"; | ||
2146 | sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA=="; | ||
2147 | }; | ||
2148 | }; | ||
2149 | "domutils-1.7.0" = { | ||
2150 | name = "domutils"; | ||
2151 | packageName = "domutils"; | ||
2152 | version = "1.7.0"; | ||
2153 | src = fetchurl { | ||
2154 | url = "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz"; | ||
2155 | sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg=="; | ||
2156 | }; | ||
2157 | }; | ||
2158 | "dot-prop-5.2.0" = { | ||
2159 | name = "dot-prop"; | ||
2160 | packageName = "dot-prop"; | ||
2161 | version = "5.2.0"; | ||
2162 | src = fetchurl { | ||
2163 | url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz"; | ||
2164 | sha512 = "uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A=="; | ||
2165 | }; | ||
2166 | }; | ||
2167 | "dotenv-5.0.1" = { | ||
2168 | name = "dotenv"; | ||
2169 | packageName = "dotenv"; | ||
2170 | version = "5.0.1"; | ||
2171 | src = fetchurl { | ||
2172 | url = "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz"; | ||
2173 | sha512 = "4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow=="; | ||
2174 | }; | ||
2175 | }; | ||
2176 | "dotenv-expand-4.2.0" = { | ||
2177 | name = "dotenv-expand"; | ||
2178 | packageName = "dotenv-expand"; | ||
2179 | version = "4.2.0"; | ||
2180 | src = fetchurl { | ||
2181 | url = "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz"; | ||
2182 | sha1 = "def1f1ca5d6059d24a766e587942c21106ce1275"; | ||
2183 | }; | ||
2184 | }; | ||
2185 | "duplexer2-0.1.4" = { | ||
2186 | name = "duplexer2"; | ||
2187 | packageName = "duplexer2"; | ||
2188 | version = "0.1.4"; | ||
2189 | src = fetchurl { | ||
2190 | url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz"; | ||
2191 | sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1"; | ||
2192 | }; | ||
2193 | }; | ||
2194 | "ecc-jsbn-0.1.2" = { | ||
2195 | name = "ecc-jsbn"; | ||
2196 | packageName = "ecc-jsbn"; | ||
2197 | version = "0.1.2"; | ||
2198 | src = fetchurl { | ||
2199 | url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; | ||
2200 | sha1 = "3a83a904e54353287874c564b7549386849a98c9"; | ||
2201 | }; | ||
2202 | }; | ||
2203 | "editorconfig-0.15.3" = { | ||
2204 | name = "editorconfig"; | ||
2205 | packageName = "editorconfig"; | ||
2206 | version = "0.15.3"; | ||
2207 | src = fetchurl { | ||
2208 | url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz"; | ||
2209 | sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g=="; | ||
2210 | }; | ||
2211 | }; | ||
2212 | "ee-first-1.1.1" = { | ||
2213 | name = "ee-first"; | ||
2214 | packageName = "ee-first"; | ||
2215 | version = "1.1.1"; | ||
2216 | src = fetchurl { | ||
2217 | url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; | ||
2218 | sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; | ||
2219 | }; | ||
2220 | }; | ||
2221 | "electron-to-chromium-1.3.418" = { | ||
2222 | name = "electron-to-chromium"; | ||
2223 | packageName = "electron-to-chromium"; | ||
2224 | version = "1.3.418"; | ||
2225 | src = fetchurl { | ||
2226 | url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz"; | ||
2227 | sha512 = "i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug=="; | ||
2228 | }; | ||
2229 | }; | ||
2230 | "elliptic-6.5.2" = { | ||
2231 | name = "elliptic"; | ||
2232 | packageName = "elliptic"; | ||
2233 | version = "6.5.2"; | ||
2234 | src = fetchurl { | ||
2235 | url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz"; | ||
2236 | sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw=="; | ||
2237 | }; | ||
2238 | }; | ||
2239 | "elm-hot-1.1.1" = { | ||
2240 | name = "elm-hot"; | ||
2241 | packageName = "elm-hot"; | ||
2242 | version = "1.1.1"; | ||
2243 | src = fetchurl { | ||
2244 | url = "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz"; | ||
2245 | sha512 = "ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA=="; | ||
2246 | }; | ||
2247 | }; | ||
2248 | "emoji-regex-7.0.3" = { | ||
2249 | name = "emoji-regex"; | ||
2250 | packageName = "emoji-regex"; | ||
2251 | version = "7.0.3"; | ||
2252 | src = fetchurl { | ||
2253 | url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"; | ||
2254 | sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="; | ||
2255 | }; | ||
2256 | }; | ||
2257 | "encodeurl-1.0.2" = { | ||
2258 | name = "encodeurl"; | ||
2259 | packageName = "encodeurl"; | ||
2260 | version = "1.0.2"; | ||
2261 | src = fetchurl { | ||
2262 | url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; | ||
2263 | sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; | ||
2264 | }; | ||
2265 | }; | ||
2266 | "entities-1.1.2" = { | ||
2267 | name = "entities"; | ||
2268 | packageName = "entities"; | ||
2269 | version = "1.1.2"; | ||
2270 | src = fetchurl { | ||
2271 | url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz"; | ||
2272 | sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="; | ||
2273 | }; | ||
2274 | }; | ||
2275 | "entities-2.0.0" = { | ||
2276 | name = "entities"; | ||
2277 | packageName = "entities"; | ||
2278 | version = "2.0.0"; | ||
2279 | src = fetchurl { | ||
2280 | url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz"; | ||
2281 | sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw=="; | ||
2282 | }; | ||
2283 | }; | ||
2284 | "error-ex-1.3.2" = { | ||
2285 | name = "error-ex"; | ||
2286 | packageName = "error-ex"; | ||
2287 | version = "1.3.2"; | ||
2288 | src = fetchurl { | ||
2289 | url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"; | ||
2290 | sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="; | ||
2291 | }; | ||
2292 | }; | ||
2293 | "es-abstract-1.17.5" = { | ||
2294 | name = "es-abstract"; | ||
2295 | packageName = "es-abstract"; | ||
2296 | version = "1.17.5"; | ||
2297 | src = fetchurl { | ||
2298 | url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz"; | ||
2299 | sha512 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg=="; | ||
2300 | }; | ||
2301 | }; | ||
2302 | "es-to-primitive-1.2.1" = { | ||
2303 | name = "es-to-primitive"; | ||
2304 | packageName = "es-to-primitive"; | ||
2305 | version = "1.2.1"; | ||
2306 | src = fetchurl { | ||
2307 | url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; | ||
2308 | sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="; | ||
2309 | }; | ||
2310 | }; | ||
2311 | "escape-html-1.0.3" = { | ||
2312 | name = "escape-html"; | ||
2313 | packageName = "escape-html"; | ||
2314 | version = "1.0.3"; | ||
2315 | src = fetchurl { | ||
2316 | url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; | ||
2317 | sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; | ||
2318 | }; | ||
2319 | }; | ||
2320 | "escape-string-regexp-1.0.5" = { | ||
2321 | name = "escape-string-regexp"; | ||
2322 | packageName = "escape-string-regexp"; | ||
2323 | version = "1.0.5"; | ||
2324 | src = fetchurl { | ||
2325 | url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; | ||
2326 | sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; | ||
2327 | }; | ||
2328 | }; | ||
2329 | "escodegen-1.14.1" = { | ||
2330 | name = "escodegen"; | ||
2331 | packageName = "escodegen"; | ||
2332 | version = "1.14.1"; | ||
2333 | src = fetchurl { | ||
2334 | url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz"; | ||
2335 | sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ=="; | ||
2336 | }; | ||
2337 | }; | ||
2338 | "escodegen-1.9.1" = { | ||
2339 | name = "escodegen"; | ||
2340 | packageName = "escodegen"; | ||
2341 | version = "1.9.1"; | ||
2342 | src = fetchurl { | ||
2343 | url = "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz"; | ||
2344 | sha512 = "6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q=="; | ||
2345 | }; | ||
2346 | }; | ||
2347 | "esprima-3.1.3" = { | ||
2348 | name = "esprima"; | ||
2349 | packageName = "esprima"; | ||
2350 | version = "3.1.3"; | ||
2351 | src = fetchurl { | ||
2352 | url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"; | ||
2353 | sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633"; | ||
2354 | }; | ||
2355 | }; | ||
2356 | "esprima-4.0.1" = { | ||
2357 | name = "esprima"; | ||
2358 | packageName = "esprima"; | ||
2359 | version = "4.0.1"; | ||
2360 | src = fetchurl { | ||
2361 | url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; | ||
2362 | sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; | ||
2363 | }; | ||
2364 | }; | ||
2365 | "estraverse-4.3.0" = { | ||
2366 | name = "estraverse"; | ||
2367 | packageName = "estraverse"; | ||
2368 | version = "4.3.0"; | ||
2369 | src = fetchurl { | ||
2370 | url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"; | ||
2371 | sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="; | ||
2372 | }; | ||
2373 | }; | ||
2374 | "esutils-2.0.3" = { | ||
2375 | name = "esutils"; | ||
2376 | packageName = "esutils"; | ||
2377 | version = "2.0.3"; | ||
2378 | src = fetchurl { | ||
2379 | url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"; | ||
2380 | sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="; | ||
2381 | }; | ||
2382 | }; | ||
2383 | "etag-1.8.1" = { | ||
2384 | name = "etag"; | ||
2385 | packageName = "etag"; | ||
2386 | version = "1.8.1"; | ||
2387 | src = fetchurl { | ||
2388 | url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; | ||
2389 | sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; | ||
2390 | }; | ||
2391 | }; | ||
2392 | "events-3.1.0" = { | ||
2393 | name = "events"; | ||
2394 | packageName = "events"; | ||
2395 | version = "3.1.0"; | ||
2396 | src = fetchurl { | ||
2397 | url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz"; | ||
2398 | sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="; | ||
2399 | }; | ||
2400 | }; | ||
2401 | "evp_bytestokey-1.0.3" = { | ||
2402 | name = "evp_bytestokey"; | ||
2403 | packageName = "evp_bytestokey"; | ||
2404 | version = "1.0.3"; | ||
2405 | src = fetchurl { | ||
2406 | url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; | ||
2407 | sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA=="; | ||
2408 | }; | ||
2409 | }; | ||
2410 | "expand-brackets-2.1.4" = { | ||
2411 | name = "expand-brackets"; | ||
2412 | packageName = "expand-brackets"; | ||
2413 | version = "2.1.4"; | ||
2414 | src = fetchurl { | ||
2415 | url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"; | ||
2416 | sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; | ||
2417 | }; | ||
2418 | }; | ||
2419 | "extend-3.0.2" = { | ||
2420 | name = "extend"; | ||
2421 | packageName = "extend"; | ||
2422 | version = "3.0.2"; | ||
2423 | src = fetchurl { | ||
2424 | url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; | ||
2425 | sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; | ||
2426 | }; | ||
2427 | }; | ||
2428 | "extend-shallow-2.0.1" = { | ||
2429 | name = "extend-shallow"; | ||
2430 | packageName = "extend-shallow"; | ||
2431 | version = "2.0.1"; | ||
2432 | src = fetchurl { | ||
2433 | url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"; | ||
2434 | sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; | ||
2435 | }; | ||
2436 | }; | ||
2437 | "extend-shallow-3.0.2" = { | ||
2438 | name = "extend-shallow"; | ||
2439 | packageName = "extend-shallow"; | ||
2440 | version = "3.0.2"; | ||
2441 | src = fetchurl { | ||
2442 | url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"; | ||
2443 | sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; | ||
2444 | }; | ||
2445 | }; | ||
2446 | "extglob-2.0.4" = { | ||
2447 | name = "extglob"; | ||
2448 | packageName = "extglob"; | ||
2449 | version = "2.0.4"; | ||
2450 | src = fetchurl { | ||
2451 | url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"; | ||
2452 | sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw=="; | ||
2453 | }; | ||
2454 | }; | ||
2455 | "extsprintf-1.3.0" = { | ||
2456 | name = "extsprintf"; | ||
2457 | packageName = "extsprintf"; | ||
2458 | version = "1.3.0"; | ||
2459 | src = fetchurl { | ||
2460 | url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; | ||
2461 | sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; | ||
2462 | }; | ||
2463 | }; | ||
2464 | "falafel-2.2.4" = { | ||
2465 | name = "falafel"; | ||
2466 | packageName = "falafel"; | ||
2467 | version = "2.2.4"; | ||
2468 | src = fetchurl { | ||
2469 | url = "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz"; | ||
2470 | sha512 = "0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ=="; | ||
2471 | }; | ||
2472 | }; | ||
2473 | "fast-deep-equal-3.1.1" = { | ||
2474 | name = "fast-deep-equal"; | ||
2475 | packageName = "fast-deep-equal"; | ||
2476 | version = "3.1.1"; | ||
2477 | src = fetchurl { | ||
2478 | url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz"; | ||
2479 | sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="; | ||
2480 | }; | ||
2481 | }; | ||
2482 | "fast-glob-2.2.7" = { | ||
2483 | name = "fast-glob"; | ||
2484 | packageName = "fast-glob"; | ||
2485 | version = "2.2.7"; | ||
2486 | src = fetchurl { | ||
2487 | url = "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz"; | ||
2488 | sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw=="; | ||
2489 | }; | ||
2490 | }; | ||
2491 | "fast-json-stable-stringify-2.1.0" = { | ||
2492 | name = "fast-json-stable-stringify"; | ||
2493 | packageName = "fast-json-stable-stringify"; | ||
2494 | version = "2.1.0"; | ||
2495 | src = fetchurl { | ||
2496 | url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; | ||
2497 | sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; | ||
2498 | }; | ||
2499 | }; | ||
2500 | "fast-levenshtein-2.0.6" = { | ||
2501 | name = "fast-levenshtein"; | ||
2502 | packageName = "fast-levenshtein"; | ||
2503 | version = "2.0.6"; | ||
2504 | src = fetchurl { | ||
2505 | url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; | ||
2506 | sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; | ||
2507 | }; | ||
2508 | }; | ||
2509 | "fastparse-1.1.2" = { | ||
2510 | name = "fastparse"; | ||
2511 | packageName = "fastparse"; | ||
2512 | version = "1.1.2"; | ||
2513 | src = fetchurl { | ||
2514 | url = "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz"; | ||
2515 | sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ=="; | ||
2516 | }; | ||
2517 | }; | ||
2518 | "file-uri-to-path-1.0.0" = { | ||
2519 | name = "file-uri-to-path"; | ||
2520 | packageName = "file-uri-to-path"; | ||
2521 | version = "1.0.0"; | ||
2522 | src = fetchurl { | ||
2523 | url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; | ||
2524 | sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="; | ||
2525 | }; | ||
2526 | }; | ||
2527 | "filesize-3.6.1" = { | ||
2528 | name = "filesize"; | ||
2529 | packageName = "filesize"; | ||
2530 | version = "3.6.1"; | ||
2531 | src = fetchurl { | ||
2532 | url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz"; | ||
2533 | sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg=="; | ||
2534 | }; | ||
2535 | }; | ||
2536 | "fill-range-4.0.0" = { | ||
2537 | name = "fill-range"; | ||
2538 | packageName = "fill-range"; | ||
2539 | version = "4.0.0"; | ||
2540 | src = fetchurl { | ||
2541 | url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"; | ||
2542 | sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; | ||
2543 | }; | ||
2544 | }; | ||
2545 | "find-elm-dependencies-2.0.2" = { | ||
2546 | name = "find-elm-dependencies"; | ||
2547 | packageName = "find-elm-dependencies"; | ||
2548 | version = "2.0.2"; | ||
2549 | src = fetchurl { | ||
2550 | url = "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz"; | ||
2551 | sha512 = "nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ=="; | ||
2552 | }; | ||
2553 | }; | ||
2554 | "find-up-2.1.0" = { | ||
2555 | name = "find-up"; | ||
2556 | packageName = "find-up"; | ||
2557 | version = "2.1.0"; | ||
2558 | src = fetchurl { | ||
2559 | url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"; | ||
2560 | sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; | ||
2561 | }; | ||
2562 | }; | ||
2563 | "find-up-3.0.0" = { | ||
2564 | name = "find-up"; | ||
2565 | packageName = "find-up"; | ||
2566 | version = "3.0.0"; | ||
2567 | src = fetchurl { | ||
2568 | url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"; | ||
2569 | sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="; | ||
2570 | }; | ||
2571 | }; | ||
2572 | "firstline-1.2.0" = { | ||
2573 | name = "firstline"; | ||
2574 | packageName = "firstline"; | ||
2575 | version = "1.2.0"; | ||
2576 | src = fetchurl { | ||
2577 | url = "https://registry.npmjs.org/firstline/-/firstline-1.2.0.tgz"; | ||
2578 | sha1 = "c9f4886e7f7fbf0afc12d71941dce06b192aea05"; | ||
2579 | }; | ||
2580 | }; | ||
2581 | "for-in-1.0.2" = { | ||
2582 | name = "for-in"; | ||
2583 | packageName = "for-in"; | ||
2584 | version = "1.0.2"; | ||
2585 | src = fetchurl { | ||
2586 | url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"; | ||
2587 | sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; | ||
2588 | }; | ||
2589 | }; | ||
2590 | "foreach-2.0.5" = { | ||
2591 | name = "foreach"; | ||
2592 | packageName = "foreach"; | ||
2593 | version = "2.0.5"; | ||
2594 | src = fetchurl { | ||
2595 | url = "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz"; | ||
2596 | sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99"; | ||
2597 | }; | ||
2598 | }; | ||
2599 | "forever-agent-0.6.1" = { | ||
2600 | name = "forever-agent"; | ||
2601 | packageName = "forever-agent"; | ||
2602 | version = "0.6.1"; | ||
2603 | src = fetchurl { | ||
2604 | url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; | ||
2605 | sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; | ||
2606 | }; | ||
2607 | }; | ||
2608 | "form-data-2.3.3" = { | ||
2609 | name = "form-data"; | ||
2610 | packageName = "form-data"; | ||
2611 | version = "2.3.3"; | ||
2612 | src = fetchurl { | ||
2613 | url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; | ||
2614 | sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; | ||
2615 | }; | ||
2616 | }; | ||
2617 | "fragment-cache-0.2.1" = { | ||
2618 | name = "fragment-cache"; | ||
2619 | packageName = "fragment-cache"; | ||
2620 | version = "0.2.1"; | ||
2621 | src = fetchurl { | ||
2622 | url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"; | ||
2623 | sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; | ||
2624 | }; | ||
2625 | }; | ||
2626 | "fresh-0.5.2" = { | ||
2627 | name = "fresh"; | ||
2628 | packageName = "fresh"; | ||
2629 | version = "0.5.2"; | ||
2630 | src = fetchurl { | ||
2631 | url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; | ||
2632 | sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; | ||
2633 | }; | ||
2634 | }; | ||
2635 | "fs.realpath-1.0.0" = { | ||
2636 | name = "fs.realpath"; | ||
2637 | packageName = "fs.realpath"; | ||
2638 | version = "1.0.0"; | ||
2639 | src = fetchurl { | ||
2640 | url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; | ||
2641 | sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; | ||
2642 | }; | ||
2643 | }; | ||
2644 | "fsevents-1.2.12" = { | ||
2645 | name = "fsevents"; | ||
2646 | packageName = "fsevents"; | ||
2647 | version = "1.2.12"; | ||
2648 | src = fetchurl { | ||
2649 | url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz"; | ||
2650 | sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q=="; | ||
2651 | }; | ||
2652 | }; | ||
2653 | "function-bind-1.1.1" = { | ||
2654 | name = "function-bind"; | ||
2655 | packageName = "function-bind"; | ||
2656 | version = "1.1.1"; | ||
2657 | src = fetchurl { | ||
2658 | url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"; | ||
2659 | sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="; | ||
2660 | }; | ||
2661 | }; | ||
2662 | "get-caller-file-2.0.5" = { | ||
2663 | name = "get-caller-file"; | ||
2664 | packageName = "get-caller-file"; | ||
2665 | version = "2.0.5"; | ||
2666 | src = fetchurl { | ||
2667 | url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; | ||
2668 | sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; | ||
2669 | }; | ||
2670 | }; | ||
2671 | "get-port-3.2.0" = { | ||
2672 | name = "get-port"; | ||
2673 | packageName = "get-port"; | ||
2674 | version = "3.2.0"; | ||
2675 | src = fetchurl { | ||
2676 | url = "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz"; | ||
2677 | sha1 = "dd7ce7de187c06c8bf353796ac71e099f0980ebc"; | ||
2678 | }; | ||
2679 | }; | ||
2680 | "get-value-2.0.6" = { | ||
2681 | name = "get-value"; | ||
2682 | packageName = "get-value"; | ||
2683 | version = "2.0.6"; | ||
2684 | src = fetchurl { | ||
2685 | url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"; | ||
2686 | sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; | ||
2687 | }; | ||
2688 | }; | ||
2689 | "getpass-0.1.7" = { | ||
2690 | name = "getpass"; | ||
2691 | packageName = "getpass"; | ||
2692 | version = "0.1.7"; | ||
2693 | src = fetchurl { | ||
2694 | url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; | ||
2695 | sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; | ||
2696 | }; | ||
2697 | }; | ||
2698 | "glob-7.1.4" = { | ||
2699 | name = "glob"; | ||
2700 | packageName = "glob"; | ||
2701 | version = "7.1.4"; | ||
2702 | src = fetchurl { | ||
2703 | url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; | ||
2704 | sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; | ||
2705 | }; | ||
2706 | }; | ||
2707 | "glob-parent-3.1.0" = { | ||
2708 | name = "glob-parent"; | ||
2709 | packageName = "glob-parent"; | ||
2710 | version = "3.1.0"; | ||
2711 | src = fetchurl { | ||
2712 | url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"; | ||
2713 | sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; | ||
2714 | }; | ||
2715 | }; | ||
2716 | "glob-to-regexp-0.3.0" = { | ||
2717 | name = "glob-to-regexp"; | ||
2718 | packageName = "glob-to-regexp"; | ||
2719 | version = "0.3.0"; | ||
2720 | src = fetchurl { | ||
2721 | url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz"; | ||
2722 | sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab"; | ||
2723 | }; | ||
2724 | }; | ||
2725 | "globals-11.12.0" = { | ||
2726 | name = "globals"; | ||
2727 | packageName = "globals"; | ||
2728 | version = "11.12.0"; | ||
2729 | src = fetchurl { | ||
2730 | url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"; | ||
2731 | sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="; | ||
2732 | }; | ||
2733 | }; | ||
2734 | "graceful-fs-4.2.3" = { | ||
2735 | name = "graceful-fs"; | ||
2736 | packageName = "graceful-fs"; | ||
2737 | version = "4.2.3"; | ||
2738 | src = fetchurl { | ||
2739 | url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz"; | ||
2740 | sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="; | ||
2741 | }; | ||
2742 | }; | ||
2743 | "grapheme-breaker-0.3.2" = { | ||
2744 | name = "grapheme-breaker"; | ||
2745 | packageName = "grapheme-breaker"; | ||
2746 | version = "0.3.2"; | ||
2747 | src = fetchurl { | ||
2748 | url = "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz"; | ||
2749 | sha1 = "5b9e6b78c3832452d2ba2bb1cb830f96276410ac"; | ||
2750 | }; | ||
2751 | }; | ||
2752 | "har-schema-2.0.0" = { | ||
2753 | name = "har-schema"; | ||
2754 | packageName = "har-schema"; | ||
2755 | version = "2.0.0"; | ||
2756 | src = fetchurl { | ||
2757 | url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; | ||
2758 | sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; | ||
2759 | }; | ||
2760 | }; | ||
2761 | "har-validator-5.1.3" = { | ||
2762 | name = "har-validator"; | ||
2763 | packageName = "har-validator"; | ||
2764 | version = "5.1.3"; | ||
2765 | src = fetchurl { | ||
2766 | url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"; | ||
2767 | sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g=="; | ||
2768 | }; | ||
2769 | }; | ||
2770 | "has-1.0.3" = { | ||
2771 | name = "has"; | ||
2772 | packageName = "has"; | ||
2773 | version = "1.0.3"; | ||
2774 | src = fetchurl { | ||
2775 | url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz"; | ||
2776 | sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="; | ||
2777 | }; | ||
2778 | }; | ||
2779 | "has-ansi-2.0.0" = { | ||
2780 | name = "has-ansi"; | ||
2781 | packageName = "has-ansi"; | ||
2782 | version = "2.0.0"; | ||
2783 | src = fetchurl { | ||
2784 | url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; | ||
2785 | sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; | ||
2786 | }; | ||
2787 | }; | ||
2788 | "has-flag-1.0.0" = { | ||
2789 | name = "has-flag"; | ||
2790 | packageName = "has-flag"; | ||
2791 | version = "1.0.0"; | ||
2792 | src = fetchurl { | ||
2793 | url = "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"; | ||
2794 | sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa"; | ||
2795 | }; | ||
2796 | }; | ||
2797 | "has-flag-3.0.0" = { | ||
2798 | name = "has-flag"; | ||
2799 | packageName = "has-flag"; | ||
2800 | version = "3.0.0"; | ||
2801 | src = fetchurl { | ||
2802 | url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; | ||
2803 | sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; | ||
2804 | }; | ||
2805 | }; | ||
2806 | "has-symbols-1.0.1" = { | ||
2807 | name = "has-symbols"; | ||
2808 | packageName = "has-symbols"; | ||
2809 | version = "1.0.1"; | ||
2810 | src = fetchurl { | ||
2811 | url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz"; | ||
2812 | sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="; | ||
2813 | }; | ||
2814 | }; | ||
2815 | "has-value-0.3.1" = { | ||
2816 | name = "has-value"; | ||
2817 | packageName = "has-value"; | ||
2818 | version = "0.3.1"; | ||
2819 | src = fetchurl { | ||
2820 | url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"; | ||
2821 | sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; | ||
2822 | }; | ||
2823 | }; | ||
2824 | "has-value-1.0.0" = { | ||
2825 | name = "has-value"; | ||
2826 | packageName = "has-value"; | ||
2827 | version = "1.0.0"; | ||
2828 | src = fetchurl { | ||
2829 | url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"; | ||
2830 | sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; | ||
2831 | }; | ||
2832 | }; | ||
2833 | "has-values-0.1.4" = { | ||
2834 | name = "has-values"; | ||
2835 | packageName = "has-values"; | ||
2836 | version = "0.1.4"; | ||
2837 | src = fetchurl { | ||
2838 | url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"; | ||
2839 | sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; | ||
2840 | }; | ||
2841 | }; | ||
2842 | "has-values-1.0.0" = { | ||
2843 | name = "has-values"; | ||
2844 | packageName = "has-values"; | ||
2845 | version = "1.0.0"; | ||
2846 | src = fetchurl { | ||
2847 | url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"; | ||
2848 | sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; | ||
2849 | }; | ||
2850 | }; | ||
2851 | "hash-base-3.0.4" = { | ||
2852 | name = "hash-base"; | ||
2853 | packageName = "hash-base"; | ||
2854 | version = "3.0.4"; | ||
2855 | src = fetchurl { | ||
2856 | url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz"; | ||
2857 | sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918"; | ||
2858 | }; | ||
2859 | }; | ||
2860 | "hash.js-1.1.7" = { | ||
2861 | name = "hash.js"; | ||
2862 | packageName = "hash.js"; | ||
2863 | version = "1.1.7"; | ||
2864 | src = fetchurl { | ||
2865 | url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; | ||
2866 | sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; | ||
2867 | }; | ||
2868 | }; | ||
2869 | "hex-color-regex-1.1.0" = { | ||
2870 | name = "hex-color-regex"; | ||
2871 | packageName = "hex-color-regex"; | ||
2872 | version = "1.1.0"; | ||
2873 | src = fetchurl { | ||
2874 | url = "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz"; | ||
2875 | sha512 = "l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="; | ||
2876 | }; | ||
2877 | }; | ||
2878 | "hmac-drbg-1.0.1" = { | ||
2879 | name = "hmac-drbg"; | ||
2880 | packageName = "hmac-drbg"; | ||
2881 | version = "1.0.1"; | ||
2882 | src = fetchurl { | ||
2883 | url = "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; | ||
2884 | sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; | ||
2885 | }; | ||
2886 | }; | ||
2887 | "hsl-regex-1.0.0" = { | ||
2888 | name = "hsl-regex"; | ||
2889 | packageName = "hsl-regex"; | ||
2890 | version = "1.0.0"; | ||
2891 | src = fetchurl { | ||
2892 | url = "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz"; | ||
2893 | sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e"; | ||
2894 | }; | ||
2895 | }; | ||
2896 | "hsla-regex-1.0.0" = { | ||
2897 | name = "hsla-regex"; | ||
2898 | packageName = "hsla-regex"; | ||
2899 | version = "1.0.0"; | ||
2900 | src = fetchurl { | ||
2901 | url = "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz"; | ||
2902 | sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"; | ||
2903 | }; | ||
2904 | }; | ||
2905 | "html-comment-regex-1.1.2" = { | ||
2906 | name = "html-comment-regex"; | ||
2907 | packageName = "html-comment-regex"; | ||
2908 | version = "1.1.2"; | ||
2909 | src = fetchurl { | ||
2910 | url = "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz"; | ||
2911 | sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ=="; | ||
2912 | }; | ||
2913 | }; | ||
2914 | "html-encoding-sniffer-1.0.2" = { | ||
2915 | name = "html-encoding-sniffer"; | ||
2916 | packageName = "html-encoding-sniffer"; | ||
2917 | version = "1.0.2"; | ||
2918 | src = fetchurl { | ||
2919 | url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz"; | ||
2920 | sha512 = "71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw=="; | ||
2921 | }; | ||
2922 | }; | ||
2923 | "html-tags-1.2.0" = { | ||
2924 | name = "html-tags"; | ||
2925 | packageName = "html-tags"; | ||
2926 | version = "1.2.0"; | ||
2927 | src = fetchurl { | ||
2928 | url = "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz"; | ||
2929 | sha1 = "c78de65b5663aa597989dd2b7ab49200d7e4db98"; | ||
2930 | }; | ||
2931 | }; | ||
2932 | "htmlnano-0.2.5" = { | ||
2933 | name = "htmlnano"; | ||
2934 | packageName = "htmlnano"; | ||
2935 | version = "0.2.5"; | ||
2936 | src = fetchurl { | ||
2937 | url = "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.5.tgz"; | ||
2938 | sha512 = "X1iPSwXG/iF9bVs+/obt2n6F64uH0ETkA8zp7qFDmLW9/+A6ueHGeb/+qD67T21qUY22owZPMdawljN50ajkqA=="; | ||
2939 | }; | ||
2940 | }; | ||
2941 | "htmlparser2-3.10.1" = { | ||
2942 | name = "htmlparser2"; | ||
2943 | packageName = "htmlparser2"; | ||
2944 | version = "3.10.1"; | ||
2945 | src = fetchurl { | ||
2946 | url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz"; | ||
2947 | sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ=="; | ||
2948 | }; | ||
2949 | }; | ||
2950 | "http-errors-1.7.3" = { | ||
2951 | name = "http-errors"; | ||
2952 | packageName = "http-errors"; | ||
2953 | version = "1.7.3"; | ||
2954 | src = fetchurl { | ||
2955 | url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz"; | ||
2956 | sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw=="; | ||
2957 | }; | ||
2958 | }; | ||
2959 | "http-signature-1.2.0" = { | ||
2960 | name = "http-signature"; | ||
2961 | packageName = "http-signature"; | ||
2962 | version = "1.2.0"; | ||
2963 | src = fetchurl { | ||
2964 | url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; | ||
2965 | sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; | ||
2966 | }; | ||
2967 | }; | ||
2968 | "https-browserify-1.0.0" = { | ||
2969 | name = "https-browserify"; | ||
2970 | packageName = "https-browserify"; | ||
2971 | version = "1.0.0"; | ||
2972 | src = fetchurl { | ||
2973 | url = "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"; | ||
2974 | sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; | ||
2975 | }; | ||
2976 | }; | ||
2977 | "iconv-lite-0.4.24" = { | ||
2978 | name = "iconv-lite"; | ||
2979 | packageName = "iconv-lite"; | ||
2980 | version = "0.4.24"; | ||
2981 | src = fetchurl { | ||
2982 | url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; | ||
2983 | sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; | ||
2984 | }; | ||
2985 | }; | ||
2986 | "icss-replace-symbols-1.1.0" = { | ||
2987 | name = "icss-replace-symbols"; | ||
2988 | packageName = "icss-replace-symbols"; | ||
2989 | version = "1.1.0"; | ||
2990 | src = fetchurl { | ||
2991 | url = "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz"; | ||
2992 | sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded"; | ||
2993 | }; | ||
2994 | }; | ||
2995 | "ieee754-1.1.13" = { | ||
2996 | name = "ieee754"; | ||
2997 | packageName = "ieee754"; | ||
2998 | version = "1.1.13"; | ||
2999 | src = fetchurl { | ||
3000 | url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz"; | ||
3001 | sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="; | ||
3002 | }; | ||
3003 | }; | ||
3004 | "import-fresh-2.0.0" = { | ||
3005 | name = "import-fresh"; | ||
3006 | packageName = "import-fresh"; | ||
3007 | version = "2.0.0"; | ||
3008 | src = fetchurl { | ||
3009 | url = "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz"; | ||
3010 | sha1 = "d81355c15612d386c61f9ddd3922d4304822a546"; | ||
3011 | }; | ||
3012 | }; | ||
3013 | "indexes-of-1.0.1" = { | ||
3014 | name = "indexes-of"; | ||
3015 | packageName = "indexes-of"; | ||
3016 | version = "1.0.1"; | ||
3017 | src = fetchurl { | ||
3018 | url = "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz"; | ||
3019 | sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607"; | ||
3020 | }; | ||
3021 | }; | ||
3022 | "inflight-1.0.6" = { | ||
3023 | name = "inflight"; | ||
3024 | packageName = "inflight"; | ||
3025 | version = "1.0.6"; | ||
3026 | src = fetchurl { | ||
3027 | url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; | ||
3028 | sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; | ||
3029 | }; | ||
3030 | }; | ||
3031 | "inherits-2.0.1" = { | ||
3032 | name = "inherits"; | ||
3033 | packageName = "inherits"; | ||
3034 | version = "2.0.1"; | ||
3035 | src = fetchurl { | ||
3036 | url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"; | ||
3037 | sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; | ||
3038 | }; | ||
3039 | }; | ||
3040 | "inherits-2.0.3" = { | ||
3041 | name = "inherits"; | ||
3042 | packageName = "inherits"; | ||
3043 | version = "2.0.3"; | ||
3044 | src = fetchurl { | ||
3045 | url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; | ||
3046 | sha1 = "633c2c83e3da42a502f52466022480f4208261de"; | ||
3047 | }; | ||
3048 | }; | ||
3049 | "inherits-2.0.4" = { | ||
3050 | name = "inherits"; | ||
3051 | packageName = "inherits"; | ||
3052 | version = "2.0.4"; | ||
3053 | src = fetchurl { | ||
3054 | url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; | ||
3055 | sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; | ||
3056 | }; | ||
3057 | }; | ||
3058 | "ini-1.3.5" = { | ||
3059 | name = "ini"; | ||
3060 | packageName = "ini"; | ||
3061 | version = "1.3.5"; | ||
3062 | src = fetchurl { | ||
3063 | url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz"; | ||
3064 | sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="; | ||
3065 | }; | ||
3066 | }; | ||
3067 | "invariant-2.2.4" = { | ||
3068 | name = "invariant"; | ||
3069 | packageName = "invariant"; | ||
3070 | version = "2.2.4"; | ||
3071 | src = fetchurl { | ||
3072 | url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"; | ||
3073 | sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="; | ||
3074 | }; | ||
3075 | }; | ||
3076 | "is-absolute-url-2.1.0" = { | ||
3077 | name = "is-absolute-url"; | ||
3078 | packageName = "is-absolute-url"; | ||
3079 | version = "2.1.0"; | ||
3080 | src = fetchurl { | ||
3081 | url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz"; | ||
3082 | sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"; | ||
3083 | }; | ||
3084 | }; | ||
3085 | "is-absolute-url-3.0.3" = { | ||
3086 | name = "is-absolute-url"; | ||
3087 | packageName = "is-absolute-url"; | ||
3088 | version = "3.0.3"; | ||
3089 | src = fetchurl { | ||
3090 | url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz"; | ||
3091 | sha512 = "opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q=="; | ||
3092 | }; | ||
3093 | }; | ||
3094 | "is-accessor-descriptor-0.1.6" = { | ||
3095 | name = "is-accessor-descriptor"; | ||
3096 | packageName = "is-accessor-descriptor"; | ||
3097 | version = "0.1.6"; | ||
3098 | src = fetchurl { | ||
3099 | url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"; | ||
3100 | sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"; | ||
3101 | }; | ||
3102 | }; | ||
3103 | "is-accessor-descriptor-1.0.0" = { | ||
3104 | name = "is-accessor-descriptor"; | ||
3105 | packageName = "is-accessor-descriptor"; | ||
3106 | version = "1.0.0"; | ||
3107 | src = fetchurl { | ||
3108 | url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"; | ||
3109 | sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ=="; | ||
3110 | }; | ||
3111 | }; | ||
3112 | "is-arrayish-0.2.1" = { | ||
3113 | name = "is-arrayish"; | ||
3114 | packageName = "is-arrayish"; | ||
3115 | version = "0.2.1"; | ||
3116 | src = fetchurl { | ||
3117 | url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"; | ||
3118 | sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; | ||
3119 | }; | ||
3120 | }; | ||
3121 | "is-arrayish-0.3.2" = { | ||
3122 | name = "is-arrayish"; | ||
3123 | packageName = "is-arrayish"; | ||
3124 | version = "0.3.2"; | ||
3125 | src = fetchurl { | ||
3126 | url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"; | ||
3127 | sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="; | ||
3128 | }; | ||
3129 | }; | ||
3130 | "is-binary-path-1.0.1" = { | ||
3131 | name = "is-binary-path"; | ||
3132 | packageName = "is-binary-path"; | ||
3133 | version = "1.0.1"; | ||
3134 | src = fetchurl { | ||
3135 | url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"; | ||
3136 | sha1 = "75f16642b480f187a711c814161fd3a4a7655898"; | ||
3137 | }; | ||
3138 | }; | ||
3139 | "is-buffer-1.1.6" = { | ||
3140 | name = "is-buffer"; | ||
3141 | packageName = "is-buffer"; | ||
3142 | version = "1.1.6"; | ||
3143 | src = fetchurl { | ||
3144 | url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"; | ||
3145 | sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="; | ||
3146 | }; | ||
3147 | }; | ||
3148 | "is-callable-1.1.5" = { | ||
3149 | name = "is-callable"; | ||
3150 | packageName = "is-callable"; | ||
3151 | version = "1.1.5"; | ||
3152 | src = fetchurl { | ||
3153 | url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz"; | ||
3154 | sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="; | ||
3155 | }; | ||
3156 | }; | ||
3157 | "is-color-stop-1.1.0" = { | ||
3158 | name = "is-color-stop"; | ||
3159 | packageName = "is-color-stop"; | ||
3160 | version = "1.1.0"; | ||
3161 | src = fetchurl { | ||
3162 | url = "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz"; | ||
3163 | sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345"; | ||
3164 | }; | ||
3165 | }; | ||
3166 | "is-data-descriptor-0.1.4" = { | ||
3167 | name = "is-data-descriptor"; | ||
3168 | packageName = "is-data-descriptor"; | ||
3169 | version = "0.1.4"; | ||
3170 | src = fetchurl { | ||
3171 | url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"; | ||
3172 | sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56"; | ||
3173 | }; | ||
3174 | }; | ||
3175 | "is-data-descriptor-1.0.0" = { | ||
3176 | name = "is-data-descriptor"; | ||
3177 | packageName = "is-data-descriptor"; | ||
3178 | version = "1.0.0"; | ||
3179 | src = fetchurl { | ||
3180 | url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"; | ||
3181 | sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ=="; | ||
3182 | }; | ||
3183 | }; | ||
3184 | "is-date-object-1.0.2" = { | ||
3185 | name = "is-date-object"; | ||
3186 | packageName = "is-date-object"; | ||
3187 | version = "1.0.2"; | ||
3188 | src = fetchurl { | ||
3189 | url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz"; | ||
3190 | sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="; | ||
3191 | }; | ||
3192 | }; | ||
3193 | "is-descriptor-0.1.6" = { | ||
3194 | name = "is-descriptor"; | ||
3195 | packageName = "is-descriptor"; | ||
3196 | version = "0.1.6"; | ||
3197 | src = fetchurl { | ||
3198 | url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"; | ||
3199 | sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg=="; | ||
3200 | }; | ||
3201 | }; | ||
3202 | "is-descriptor-1.0.2" = { | ||
3203 | name = "is-descriptor"; | ||
3204 | packageName = "is-descriptor"; | ||
3205 | version = "1.0.2"; | ||
3206 | src = fetchurl { | ||
3207 | url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"; | ||
3208 | sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg=="; | ||
3209 | }; | ||
3210 | }; | ||
3211 | "is-directory-0.3.1" = { | ||
3212 | name = "is-directory"; | ||
3213 | packageName = "is-directory"; | ||
3214 | version = "0.3.1"; | ||
3215 | src = fetchurl { | ||
3216 | url = "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz"; | ||
3217 | sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1"; | ||
3218 | }; | ||
3219 | }; | ||
3220 | "is-extendable-0.1.1" = { | ||
3221 | name = "is-extendable"; | ||
3222 | packageName = "is-extendable"; | ||
3223 | version = "0.1.1"; | ||
3224 | src = fetchurl { | ||
3225 | url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"; | ||
3226 | sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; | ||
3227 | }; | ||
3228 | }; | ||
3229 | "is-extendable-1.0.1" = { | ||
3230 | name = "is-extendable"; | ||
3231 | packageName = "is-extendable"; | ||
3232 | version = "1.0.1"; | ||
3233 | src = fetchurl { | ||
3234 | url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"; | ||
3235 | sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=="; | ||
3236 | }; | ||
3237 | }; | ||
3238 | "is-extglob-2.1.1" = { | ||
3239 | name = "is-extglob"; | ||
3240 | packageName = "is-extglob"; | ||
3241 | version = "2.1.1"; | ||
3242 | src = fetchurl { | ||
3243 | url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; | ||
3244 | sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; | ||
3245 | }; | ||
3246 | }; | ||
3247 | "is-fullwidth-code-point-2.0.0" = { | ||
3248 | name = "is-fullwidth-code-point"; | ||
3249 | packageName = "is-fullwidth-code-point"; | ||
3250 | version = "2.0.0"; | ||
3251 | src = fetchurl { | ||
3252 | url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; | ||
3253 | sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; | ||
3254 | }; | ||
3255 | }; | ||
3256 | "is-glob-3.1.0" = { | ||
3257 | name = "is-glob"; | ||
3258 | packageName = "is-glob"; | ||
3259 | version = "3.1.0"; | ||
3260 | src = fetchurl { | ||
3261 | url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"; | ||
3262 | sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; | ||
3263 | }; | ||
3264 | }; | ||
3265 | "is-glob-4.0.1" = { | ||
3266 | name = "is-glob"; | ||
3267 | packageName = "is-glob"; | ||
3268 | version = "4.0.1"; | ||
3269 | src = fetchurl { | ||
3270 | url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"; | ||
3271 | sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg=="; | ||
3272 | }; | ||
3273 | }; | ||
3274 | "is-html-1.1.0" = { | ||
3275 | name = "is-html"; | ||
3276 | packageName = "is-html"; | ||
3277 | version = "1.1.0"; | ||
3278 | src = fetchurl { | ||
3279 | url = "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz"; | ||
3280 | sha1 = "e04f1c18d39485111396f9a0273eab51af218464"; | ||
3281 | }; | ||
3282 | }; | ||
3283 | "is-number-3.0.0" = { | ||
3284 | name = "is-number"; | ||
3285 | packageName = "is-number"; | ||
3286 | version = "3.0.0"; | ||
3287 | src = fetchurl { | ||
3288 | url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"; | ||
3289 | sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; | ||
3290 | }; | ||
3291 | }; | ||
3292 | "is-obj-2.0.0" = { | ||
3293 | name = "is-obj"; | ||
3294 | packageName = "is-obj"; | ||
3295 | version = "2.0.0"; | ||
3296 | src = fetchurl { | ||
3297 | url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz"; | ||
3298 | sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="; | ||
3299 | }; | ||
3300 | }; | ||
3301 | "is-plain-object-2.0.4" = { | ||
3302 | name = "is-plain-object"; | ||
3303 | packageName = "is-plain-object"; | ||
3304 | version = "2.0.4"; | ||
3305 | src = fetchurl { | ||
3306 | url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"; | ||
3307 | sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="; | ||
3308 | }; | ||
3309 | }; | ||
3310 | "is-regex-1.0.5" = { | ||
3311 | name = "is-regex"; | ||
3312 | packageName = "is-regex"; | ||
3313 | version = "1.0.5"; | ||
3314 | src = fetchurl { | ||
3315 | url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz"; | ||
3316 | sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ=="; | ||
3317 | }; | ||
3318 | }; | ||
3319 | "is-resolvable-1.1.0" = { | ||
3320 | name = "is-resolvable"; | ||
3321 | packageName = "is-resolvable"; | ||
3322 | version = "1.1.0"; | ||
3323 | src = fetchurl { | ||
3324 | url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz"; | ||
3325 | sha512 = "qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="; | ||
3326 | }; | ||
3327 | }; | ||
3328 | "is-svg-3.0.0" = { | ||
3329 | name = "is-svg"; | ||
3330 | packageName = "is-svg"; | ||
3331 | version = "3.0.0"; | ||
3332 | src = fetchurl { | ||
3333 | url = "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz"; | ||
3334 | sha512 = "gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ=="; | ||
3335 | }; | ||
3336 | }; | ||
3337 | "is-symbol-1.0.3" = { | ||
3338 | name = "is-symbol"; | ||
3339 | packageName = "is-symbol"; | ||
3340 | version = "1.0.3"; | ||
3341 | src = fetchurl { | ||
3342 | url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz"; | ||
3343 | sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ=="; | ||
3344 | }; | ||
3345 | }; | ||
3346 | "is-typedarray-1.0.0" = { | ||
3347 | name = "is-typedarray"; | ||
3348 | packageName = "is-typedarray"; | ||
3349 | version = "1.0.0"; | ||
3350 | src = fetchurl { | ||
3351 | url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; | ||
3352 | sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; | ||
3353 | }; | ||
3354 | }; | ||
3355 | "is-url-1.2.4" = { | ||
3356 | name = "is-url"; | ||
3357 | packageName = "is-url"; | ||
3358 | version = "1.2.4"; | ||
3359 | src = fetchurl { | ||
3360 | url = "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz"; | ||
3361 | sha512 = "ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="; | ||
3362 | }; | ||
3363 | }; | ||
3364 | "is-windows-1.0.2" = { | ||
3365 | name = "is-windows"; | ||
3366 | packageName = "is-windows"; | ||
3367 | version = "1.0.2"; | ||
3368 | src = fetchurl { | ||
3369 | url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"; | ||
3370 | sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="; | ||
3371 | }; | ||
3372 | }; | ||
3373 | "is-wsl-1.1.0" = { | ||
3374 | name = "is-wsl"; | ||
3375 | packageName = "is-wsl"; | ||
3376 | version = "1.1.0"; | ||
3377 | src = fetchurl { | ||
3378 | url = "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"; | ||
3379 | sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d"; | ||
3380 | }; | ||
3381 | }; | ||
3382 | "isarray-1.0.0" = { | ||
3383 | name = "isarray"; | ||
3384 | packageName = "isarray"; | ||
3385 | version = "1.0.0"; | ||
3386 | src = fetchurl { | ||
3387 | url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; | ||
3388 | sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; | ||
3389 | }; | ||
3390 | }; | ||
3391 | "isarray-2.0.5" = { | ||
3392 | name = "isarray"; | ||
3393 | packageName = "isarray"; | ||
3394 | version = "2.0.5"; | ||
3395 | src = fetchurl { | ||
3396 | url = "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"; | ||
3397 | sha512 = "xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="; | ||
3398 | }; | ||
3399 | }; | ||
3400 | "isexe-2.0.0" = { | ||
3401 | name = "isexe"; | ||
3402 | packageName = "isexe"; | ||
3403 | version = "2.0.0"; | ||
3404 | src = fetchurl { | ||
3405 | url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; | ||
3406 | sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; | ||
3407 | }; | ||
3408 | }; | ||
3409 | "isobject-2.1.0" = { | ||
3410 | name = "isobject"; | ||
3411 | packageName = "isobject"; | ||
3412 | version = "2.1.0"; | ||
3413 | src = fetchurl { | ||
3414 | url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"; | ||
3415 | sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; | ||
3416 | }; | ||
3417 | }; | ||
3418 | "isobject-3.0.1" = { | ||
3419 | name = "isobject"; | ||
3420 | packageName = "isobject"; | ||
3421 | version = "3.0.1"; | ||
3422 | src = fetchurl { | ||
3423 | url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"; | ||
3424 | sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; | ||
3425 | }; | ||
3426 | }; | ||
3427 | "isstream-0.1.2" = { | ||
3428 | name = "isstream"; | ||
3429 | packageName = "isstream"; | ||
3430 | version = "0.1.2"; | ||
3431 | src = fetchurl { | ||
3432 | url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; | ||
3433 | sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; | ||
3434 | }; | ||
3435 | }; | ||
3436 | "js-beautify-1.11.0" = { | ||
3437 | name = "js-beautify"; | ||
3438 | packageName = "js-beautify"; | ||
3439 | version = "1.11.0"; | ||
3440 | src = fetchurl { | ||
3441 | url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz"; | ||
3442 | sha512 = "a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A=="; | ||
3443 | }; | ||
3444 | }; | ||
3445 | "js-levenshtein-1.1.6" = { | ||
3446 | name = "js-levenshtein"; | ||
3447 | packageName = "js-levenshtein"; | ||
3448 | version = "1.1.6"; | ||
3449 | src = fetchurl { | ||
3450 | url = "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz"; | ||
3451 | sha512 = "X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g=="; | ||
3452 | }; | ||
3453 | }; | ||
3454 | "js-tokens-4.0.0" = { | ||
3455 | name = "js-tokens"; | ||
3456 | packageName = "js-tokens"; | ||
3457 | version = "4.0.0"; | ||
3458 | src = fetchurl { | ||
3459 | url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; | ||
3460 | sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; | ||
3461 | }; | ||
3462 | }; | ||
3463 | "js-yaml-3.13.1" = { | ||
3464 | name = "js-yaml"; | ||
3465 | packageName = "js-yaml"; | ||
3466 | version = "3.13.1"; | ||
3467 | src = fetchurl { | ||
3468 | url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; | ||
3469 | sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; | ||
3470 | }; | ||
3471 | }; | ||
3472 | "jsbn-0.1.1" = { | ||
3473 | name = "jsbn"; | ||
3474 | packageName = "jsbn"; | ||
3475 | version = "0.1.1"; | ||
3476 | src = fetchurl { | ||
3477 | url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; | ||
3478 | sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; | ||
3479 | }; | ||
3480 | }; | ||
3481 | "jsdom-14.1.0" = { | ||
3482 | name = "jsdom"; | ||
3483 | packageName = "jsdom"; | ||
3484 | version = "14.1.0"; | ||
3485 | src = fetchurl { | ||
3486 | url = "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz"; | ||
3487 | sha512 = "O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng=="; | ||
3488 | }; | ||
3489 | }; | ||
3490 | "jsesc-0.5.0" = { | ||
3491 | name = "jsesc"; | ||
3492 | packageName = "jsesc"; | ||
3493 | version = "0.5.0"; | ||
3494 | src = fetchurl { | ||
3495 | url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"; | ||
3496 | sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d"; | ||
3497 | }; | ||
3498 | }; | ||
3499 | "jsesc-2.5.2" = { | ||
3500 | name = "jsesc"; | ||
3501 | packageName = "jsesc"; | ||
3502 | version = "2.5.2"; | ||
3503 | src = fetchurl { | ||
3504 | url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"; | ||
3505 | sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="; | ||
3506 | }; | ||
3507 | }; | ||
3508 | "json-parse-better-errors-1.0.2" = { | ||
3509 | name = "json-parse-better-errors"; | ||
3510 | packageName = "json-parse-better-errors"; | ||
3511 | version = "1.0.2"; | ||
3512 | src = fetchurl { | ||
3513 | url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; | ||
3514 | sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="; | ||
3515 | }; | ||
3516 | }; | ||
3517 | "json-schema-0.2.3" = { | ||
3518 | name = "json-schema"; | ||
3519 | packageName = "json-schema"; | ||
3520 | version = "0.2.3"; | ||
3521 | src = fetchurl { | ||
3522 | url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; | ||
3523 | sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; | ||
3524 | }; | ||
3525 | }; | ||
3526 | "json-schema-traverse-0.4.1" = { | ||
3527 | name = "json-schema-traverse"; | ||
3528 | packageName = "json-schema-traverse"; | ||
3529 | version = "0.4.1"; | ||
3530 | src = fetchurl { | ||
3531 | url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; | ||
3532 | sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; | ||
3533 | }; | ||
3534 | }; | ||
3535 | "json-stringify-safe-5.0.1" = { | ||
3536 | name = "json-stringify-safe"; | ||
3537 | packageName = "json-stringify-safe"; | ||
3538 | version = "5.0.1"; | ||
3539 | src = fetchurl { | ||
3540 | url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; | ||
3541 | sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; | ||
3542 | }; | ||
3543 | }; | ||
3544 | "json5-1.0.1" = { | ||
3545 | name = "json5"; | ||
3546 | packageName = "json5"; | ||
3547 | version = "1.0.1"; | ||
3548 | src = fetchurl { | ||
3549 | url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"; | ||
3550 | sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="; | ||
3551 | }; | ||
3552 | }; | ||
3553 | "json5-2.1.3" = { | ||
3554 | name = "json5"; | ||
3555 | packageName = "json5"; | ||
3556 | version = "2.1.3"; | ||
3557 | src = fetchurl { | ||
3558 | url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz"; | ||
3559 | sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA=="; | ||
3560 | }; | ||
3561 | }; | ||
3562 | "jsprim-1.4.1" = { | ||
3563 | name = "jsprim"; | ||
3564 | packageName = "jsprim"; | ||
3565 | version = "1.4.1"; | ||
3566 | src = fetchurl { | ||
3567 | url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; | ||
3568 | sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; | ||
3569 | }; | ||
3570 | }; | ||
3571 | "kind-of-3.2.2" = { | ||
3572 | name = "kind-of"; | ||
3573 | packageName = "kind-of"; | ||
3574 | version = "3.2.2"; | ||
3575 | src = fetchurl { | ||
3576 | url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"; | ||
3577 | sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; | ||
3578 | }; | ||
3579 | }; | ||
3580 | "kind-of-4.0.0" = { | ||
3581 | name = "kind-of"; | ||
3582 | packageName = "kind-of"; | ||
3583 | version = "4.0.0"; | ||
3584 | src = fetchurl { | ||
3585 | url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"; | ||
3586 | sha1 = "20813df3d712928b207378691a45066fae72dd57"; | ||
3587 | }; | ||
3588 | }; | ||
3589 | "kind-of-5.1.0" = { | ||
3590 | name = "kind-of"; | ||
3591 | packageName = "kind-of"; | ||
3592 | version = "5.1.0"; | ||
3593 | src = fetchurl { | ||
3594 | url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"; | ||
3595 | sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="; | ||
3596 | }; | ||
3597 | }; | ||
3598 | "kind-of-6.0.3" = { | ||
3599 | name = "kind-of"; | ||
3600 | packageName = "kind-of"; | ||
3601 | version = "6.0.3"; | ||
3602 | src = fetchurl { | ||
3603 | url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"; | ||
3604 | sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="; | ||
3605 | }; | ||
3606 | }; | ||
3607 | "levn-0.3.0" = { | ||
3608 | name = "levn"; | ||
3609 | packageName = "levn"; | ||
3610 | version = "0.3.0"; | ||
3611 | src = fetchurl { | ||
3612 | url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"; | ||
3613 | sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; | ||
3614 | }; | ||
3615 | }; | ||
3616 | "locate-path-2.0.0" = { | ||
3617 | name = "locate-path"; | ||
3618 | packageName = "locate-path"; | ||
3619 | version = "2.0.0"; | ||
3620 | src = fetchurl { | ||
3621 | url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"; | ||
3622 | sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; | ||
3623 | }; | ||
3624 | }; | ||
3625 | "locate-path-3.0.0" = { | ||
3626 | name = "locate-path"; | ||
3627 | packageName = "locate-path"; | ||
3628 | version = "3.0.0"; | ||
3629 | src = fetchurl { | ||
3630 | url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"; | ||
3631 | sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="; | ||
3632 | }; | ||
3633 | }; | ||
3634 | "lodash-4.17.15" = { | ||
3635 | name = "lodash"; | ||
3636 | packageName = "lodash"; | ||
3637 | version = "4.17.15"; | ||
3638 | src = fetchurl { | ||
3639 | url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"; | ||
3640 | sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="; | ||
3641 | }; | ||
3642 | }; | ||
3643 | "lodash.clone-4.5.0" = { | ||
3644 | name = "lodash.clone"; | ||
3645 | packageName = "lodash.clone"; | ||
3646 | version = "4.5.0"; | ||
3647 | src = fetchurl { | ||
3648 | url = "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz"; | ||
3649 | sha1 = "195870450f5a13192478df4bc3d23d2dea1907b6"; | ||
3650 | }; | ||
3651 | }; | ||
3652 | "lodash.memoize-4.1.2" = { | ||
3653 | name = "lodash.memoize"; | ||
3654 | packageName = "lodash.memoize"; | ||
3655 | version = "4.1.2"; | ||
3656 | src = fetchurl { | ||
3657 | url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"; | ||
3658 | sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe"; | ||
3659 | }; | ||
3660 | }; | ||
3661 | "lodash.sortby-4.7.0" = { | ||
3662 | name = "lodash.sortby"; | ||
3663 | packageName = "lodash.sortby"; | ||
3664 | version = "4.7.0"; | ||
3665 | src = fetchurl { | ||
3666 | url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz"; | ||
3667 | sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438"; | ||
3668 | }; | ||
3669 | }; | ||
3670 | "lodash.uniq-4.5.0" = { | ||
3671 | name = "lodash.uniq"; | ||
3672 | packageName = "lodash.uniq"; | ||
3673 | version = "4.5.0"; | ||
3674 | src = fetchurl { | ||
3675 | url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; | ||
3676 | sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; | ||
3677 | }; | ||
3678 | }; | ||
3679 | "log-symbols-2.2.0" = { | ||
3680 | name = "log-symbols"; | ||
3681 | packageName = "log-symbols"; | ||
3682 | version = "2.2.0"; | ||
3683 | src = fetchurl { | ||
3684 | url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz"; | ||
3685 | sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg=="; | ||
3686 | }; | ||
3687 | }; | ||
3688 | "loose-envify-1.4.0" = { | ||
3689 | name = "loose-envify"; | ||
3690 | packageName = "loose-envify"; | ||
3691 | version = "1.4.0"; | ||
3692 | src = fetchurl { | ||
3693 | url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"; | ||
3694 | sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="; | ||
3695 | }; | ||
3696 | }; | ||
3697 | "lru-cache-4.1.5" = { | ||
3698 | name = "lru-cache"; | ||
3699 | packageName = "lru-cache"; | ||
3700 | version = "4.1.5"; | ||
3701 | src = fetchurl { | ||
3702 | url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; | ||
3703 | sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; | ||
3704 | }; | ||
3705 | }; | ||
3706 | "magic-string-0.22.5" = { | ||
3707 | name = "magic-string"; | ||
3708 | packageName = "magic-string"; | ||
3709 | version = "0.22.5"; | ||
3710 | src = fetchurl { | ||
3711 | url = "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz"; | ||
3712 | sha512 = "oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w=="; | ||
3713 | }; | ||
3714 | }; | ||
3715 | "map-cache-0.2.2" = { | ||
3716 | name = "map-cache"; | ||
3717 | packageName = "map-cache"; | ||
3718 | version = "0.2.2"; | ||
3719 | src = fetchurl { | ||
3720 | url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"; | ||
3721 | sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; | ||
3722 | }; | ||
3723 | }; | ||
3724 | "map-visit-1.0.0" = { | ||
3725 | name = "map-visit"; | ||
3726 | packageName = "map-visit"; | ||
3727 | version = "1.0.0"; | ||
3728 | src = fetchurl { | ||
3729 | url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"; | ||
3730 | sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; | ||
3731 | }; | ||
3732 | }; | ||
3733 | "md5.js-1.3.5" = { | ||
3734 | name = "md5.js"; | ||
3735 | packageName = "md5.js"; | ||
3736 | version = "1.3.5"; | ||
3737 | src = fetchurl { | ||
3738 | url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz"; | ||
3739 | sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg=="; | ||
3740 | }; | ||
3741 | }; | ||
3742 | "mdn-data-2.0.4" = { | ||
3743 | name = "mdn-data"; | ||
3744 | packageName = "mdn-data"; | ||
3745 | version = "2.0.4"; | ||
3746 | src = fetchurl { | ||
3747 | url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz"; | ||
3748 | sha512 = "iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="; | ||
3749 | }; | ||
3750 | }; | ||
3751 | "mdn-data-2.0.6" = { | ||
3752 | name = "mdn-data"; | ||
3753 | packageName = "mdn-data"; | ||
3754 | version = "2.0.6"; | ||
3755 | src = fetchurl { | ||
3756 | url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz"; | ||
3757 | sha512 = "rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA=="; | ||
3758 | }; | ||
3759 | }; | ||
3760 | "merge-source-map-1.0.4" = { | ||
3761 | name = "merge-source-map"; | ||
3762 | packageName = "merge-source-map"; | ||
3763 | version = "1.0.4"; | ||
3764 | src = fetchurl { | ||
3765 | url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz"; | ||
3766 | sha1 = "a5de46538dae84d4114cc5ea02b4772a6346701f"; | ||
3767 | }; | ||
3768 | }; | ||
3769 | "merge2-1.3.0" = { | ||
3770 | name = "merge2"; | ||
3771 | packageName = "merge2"; | ||
3772 | version = "1.3.0"; | ||
3773 | src = fetchurl { | ||
3774 | url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz"; | ||
3775 | sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw=="; | ||
3776 | }; | ||
3777 | }; | ||
3778 | "micromatch-3.1.10" = { | ||
3779 | name = "micromatch"; | ||
3780 | packageName = "micromatch"; | ||
3781 | version = "3.1.10"; | ||
3782 | src = fetchurl { | ||
3783 | url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"; | ||
3784 | sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg=="; | ||
3785 | }; | ||
3786 | }; | ||
3787 | "miller-rabin-4.0.1" = { | ||
3788 | name = "miller-rabin"; | ||
3789 | packageName = "miller-rabin"; | ||
3790 | version = "4.0.1"; | ||
3791 | src = fetchurl { | ||
3792 | url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz"; | ||
3793 | sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA=="; | ||
3794 | }; | ||
3795 | }; | ||
3796 | "mime-1.6.0" = { | ||
3797 | name = "mime"; | ||
3798 | packageName = "mime"; | ||
3799 | version = "1.6.0"; | ||
3800 | src = fetchurl { | ||
3801 | url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; | ||
3802 | sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; | ||
3803 | }; | ||
3804 | }; | ||
3805 | "mime-db-1.44.0" = { | ||
3806 | name = "mime-db"; | ||
3807 | packageName = "mime-db"; | ||
3808 | version = "1.44.0"; | ||
3809 | src = fetchurl { | ||
3810 | url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz"; | ||
3811 | sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="; | ||
3812 | }; | ||
3813 | }; | ||
3814 | "mime-types-2.1.27" = { | ||
3815 | name = "mime-types"; | ||
3816 | packageName = "mime-types"; | ||
3817 | version = "2.1.27"; | ||
3818 | src = fetchurl { | ||
3819 | url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz"; | ||
3820 | sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w=="; | ||
3821 | }; | ||
3822 | }; | ||
3823 | "mimic-fn-1.2.0" = { | ||
3824 | name = "mimic-fn"; | ||
3825 | packageName = "mimic-fn"; | ||
3826 | version = "1.2.0"; | ||
3827 | src = fetchurl { | ||
3828 | url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"; | ||
3829 | sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="; | ||
3830 | }; | ||
3831 | }; | ||
3832 | "minimalistic-assert-1.0.1" = { | ||
3833 | name = "minimalistic-assert"; | ||
3834 | packageName = "minimalistic-assert"; | ||
3835 | version = "1.0.1"; | ||
3836 | src = fetchurl { | ||
3837 | url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; | ||
3838 | sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; | ||
3839 | }; | ||
3840 | }; | ||
3841 | "minimalistic-crypto-utils-1.0.1" = { | ||
3842 | name = "minimalistic-crypto-utils"; | ||
3843 | packageName = "minimalistic-crypto-utils"; | ||
3844 | version = "1.0.1"; | ||
3845 | src = fetchurl { | ||
3846 | url = "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"; | ||
3847 | sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"; | ||
3848 | }; | ||
3849 | }; | ||
3850 | "minimatch-3.0.4" = { | ||
3851 | name = "minimatch"; | ||
3852 | packageName = "minimatch"; | ||
3853 | version = "3.0.4"; | ||
3854 | src = fetchurl { | ||
3855 | url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; | ||
3856 | sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; | ||
3857 | }; | ||
3858 | }; | ||
3859 | "minimist-1.2.5" = { | ||
3860 | name = "minimist"; | ||
3861 | packageName = "minimist"; | ||
3862 | version = "1.2.5"; | ||
3863 | src = fetchurl { | ||
3864 | url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; | ||
3865 | sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; | ||
3866 | }; | ||
3867 | }; | ||
3868 | "mixin-deep-1.3.2" = { | ||
3869 | name = "mixin-deep"; | ||
3870 | packageName = "mixin-deep"; | ||
3871 | version = "1.3.2"; | ||
3872 | src = fetchurl { | ||
3873 | url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"; | ||
3874 | sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="; | ||
3875 | }; | ||
3876 | }; | ||
3877 | "mkdirp-0.5.5" = { | ||
3878 | name = "mkdirp"; | ||
3879 | packageName = "mkdirp"; | ||
3880 | version = "0.5.5"; | ||
3881 | src = fetchurl { | ||
3882 | url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; | ||
3883 | sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; | ||
3884 | }; | ||
3885 | }; | ||
3886 | "mkdirp-1.0.4" = { | ||
3887 | name = "mkdirp"; | ||
3888 | packageName = "mkdirp"; | ||
3889 | version = "1.0.4"; | ||
3890 | src = fetchurl { | ||
3891 | url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; | ||
3892 | sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; | ||
3893 | }; | ||
3894 | }; | ||
3895 | "ms-2.0.0" = { | ||
3896 | name = "ms"; | ||
3897 | packageName = "ms"; | ||
3898 | version = "2.0.0"; | ||
3899 | src = fetchurl { | ||
3900 | url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; | ||
3901 | sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; | ||
3902 | }; | ||
3903 | }; | ||
3904 | "ms-2.1.1" = { | ||
3905 | name = "ms"; | ||
3906 | packageName = "ms"; | ||
3907 | version = "2.1.1"; | ||
3908 | src = fetchurl { | ||
3909 | url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; | ||
3910 | sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; | ||
3911 | }; | ||
3912 | }; | ||
3913 | "ms-2.1.2" = { | ||
3914 | name = "ms"; | ||
3915 | packageName = "ms"; | ||
3916 | version = "2.1.2"; | ||
3917 | src = fetchurl { | ||
3918 | url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; | ||
3919 | sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; | ||
3920 | }; | ||
3921 | }; | ||
3922 | "nan-2.14.1" = { | ||
3923 | name = "nan"; | ||
3924 | packageName = "nan"; | ||
3925 | version = "2.14.1"; | ||
3926 | src = fetchurl { | ||
3927 | url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz"; | ||
3928 | sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="; | ||
3929 | }; | ||
3930 | }; | ||
3931 | "nanomatch-1.2.13" = { | ||
3932 | name = "nanomatch"; | ||
3933 | packageName = "nanomatch"; | ||
3934 | version = "1.2.13"; | ||
3935 | src = fetchurl { | ||
3936 | url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"; | ||
3937 | sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="; | ||
3938 | }; | ||
3939 | }; | ||
3940 | "nice-try-1.0.5" = { | ||
3941 | name = "nice-try"; | ||
3942 | packageName = "nice-try"; | ||
3943 | version = "1.0.5"; | ||
3944 | src = fetchurl { | ||
3945 | url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"; | ||
3946 | sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="; | ||
3947 | }; | ||
3948 | }; | ||
3949 | "node-addon-api-1.7.1" = { | ||
3950 | name = "node-addon-api"; | ||
3951 | packageName = "node-addon-api"; | ||
3952 | version = "1.7.1"; | ||
3953 | src = fetchurl { | ||
3954 | url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz"; | ||
3955 | sha512 = "2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ=="; | ||
3956 | }; | ||
3957 | }; | ||
3958 | "node-elm-compiler-5.0.4" = { | ||
3959 | name = "node-elm-compiler"; | ||
3960 | packageName = "node-elm-compiler"; | ||
3961 | version = "5.0.4"; | ||
3962 | src = fetchurl { | ||
3963 | url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz"; | ||
3964 | sha512 = "VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg=="; | ||
3965 | }; | ||
3966 | }; | ||
3967 | "node-forge-0.7.6" = { | ||
3968 | name = "node-forge"; | ||
3969 | packageName = "node-forge"; | ||
3970 | version = "0.7.6"; | ||
3971 | src = fetchurl { | ||
3972 | url = "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz"; | ||
3973 | sha512 = "sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw=="; | ||
3974 | }; | ||
3975 | }; | ||
3976 | "node-libs-browser-2.2.1" = { | ||
3977 | name = "node-libs-browser"; | ||
3978 | packageName = "node-libs-browser"; | ||
3979 | version = "2.2.1"; | ||
3980 | src = fetchurl { | ||
3981 | url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz"; | ||
3982 | sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q=="; | ||
3983 | }; | ||
3984 | }; | ||
3985 | "node-releases-1.1.53" = { | ||
3986 | name = "node-releases"; | ||
3987 | packageName = "node-releases"; | ||
3988 | version = "1.1.53"; | ||
3989 | src = fetchurl { | ||
3990 | url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz"; | ||
3991 | sha512 = "wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ=="; | ||
3992 | }; | ||
3993 | }; | ||
3994 | "nopt-4.0.3" = { | ||
3995 | name = "nopt"; | ||
3996 | packageName = "nopt"; | ||
3997 | version = "4.0.3"; | ||
3998 | src = fetchurl { | ||
3999 | url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; | ||
4000 | sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; | ||
4001 | }; | ||
4002 | }; | ||
4003 | "normalize-html-whitespace-1.0.0" = { | ||
4004 | name = "normalize-html-whitespace"; | ||
4005 | packageName = "normalize-html-whitespace"; | ||
4006 | version = "1.0.0"; | ||
4007 | src = fetchurl { | ||
4008 | url = "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz"; | ||
4009 | sha512 = "9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA=="; | ||
4010 | }; | ||
4011 | }; | ||
4012 | "normalize-path-2.1.1" = { | ||
4013 | name = "normalize-path"; | ||
4014 | packageName = "normalize-path"; | ||
4015 | version = "2.1.1"; | ||
4016 | src = fetchurl { | ||
4017 | url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"; | ||
4018 | sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; | ||
4019 | }; | ||
4020 | }; | ||
4021 | "normalize-path-3.0.0" = { | ||
4022 | name = "normalize-path"; | ||
4023 | packageName = "normalize-path"; | ||
4024 | version = "3.0.0"; | ||
4025 | src = fetchurl { | ||
4026 | url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"; | ||
4027 | sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="; | ||
4028 | }; | ||
4029 | }; | ||
4030 | "normalize-url-3.3.0" = { | ||
4031 | name = "normalize-url"; | ||
4032 | packageName = "normalize-url"; | ||
4033 | version = "3.3.0"; | ||
4034 | src = fetchurl { | ||
4035 | url = "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz"; | ||
4036 | sha512 = "U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="; | ||
4037 | }; | ||
4038 | }; | ||
4039 | "nth-check-1.0.2" = { | ||
4040 | name = "nth-check"; | ||
4041 | packageName = "nth-check"; | ||
4042 | version = "1.0.2"; | ||
4043 | src = fetchurl { | ||
4044 | url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz"; | ||
4045 | sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg=="; | ||
4046 | }; | ||
4047 | }; | ||
4048 | "nwsapi-2.2.0" = { | ||
4049 | name = "nwsapi"; | ||
4050 | packageName = "nwsapi"; | ||
4051 | version = "2.2.0"; | ||
4052 | src = fetchurl { | ||
4053 | url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz"; | ||
4054 | sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="; | ||
4055 | }; | ||
4056 | }; | ||
4057 | "oauth-sign-0.9.0" = { | ||
4058 | name = "oauth-sign"; | ||
4059 | packageName = "oauth-sign"; | ||
4060 | version = "0.9.0"; | ||
4061 | src = fetchurl { | ||
4062 | url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; | ||
4063 | sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; | ||
4064 | }; | ||
4065 | }; | ||
4066 | "object-assign-4.1.1" = { | ||
4067 | name = "object-assign"; | ||
4068 | packageName = "object-assign"; | ||
4069 | version = "4.1.1"; | ||
4070 | src = fetchurl { | ||
4071 | url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; | ||
4072 | sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; | ||
4073 | }; | ||
4074 | }; | ||
4075 | "object-copy-0.1.0" = { | ||
4076 | name = "object-copy"; | ||
4077 | packageName = "object-copy"; | ||
4078 | version = "0.1.0"; | ||
4079 | src = fetchurl { | ||
4080 | url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"; | ||
4081 | sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; | ||
4082 | }; | ||
4083 | }; | ||
4084 | "object-inspect-1.4.1" = { | ||
4085 | name = "object-inspect"; | ||
4086 | packageName = "object-inspect"; | ||
4087 | version = "1.4.1"; | ||
4088 | src = fetchurl { | ||
4089 | url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz"; | ||
4090 | sha512 = "wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw=="; | ||
4091 | }; | ||
4092 | }; | ||
4093 | "object-inspect-1.7.0" = { | ||
4094 | name = "object-inspect"; | ||
4095 | packageName = "object-inspect"; | ||
4096 | version = "1.7.0"; | ||
4097 | src = fetchurl { | ||
4098 | url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz"; | ||
4099 | sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="; | ||
4100 | }; | ||
4101 | }; | ||
4102 | "object-keys-1.1.1" = { | ||
4103 | name = "object-keys"; | ||
4104 | packageName = "object-keys"; | ||
4105 | version = "1.1.1"; | ||
4106 | src = fetchurl { | ||
4107 | url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"; | ||
4108 | sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="; | ||
4109 | }; | ||
4110 | }; | ||
4111 | "object-visit-1.0.1" = { | ||
4112 | name = "object-visit"; | ||
4113 | packageName = "object-visit"; | ||
4114 | version = "1.0.1"; | ||
4115 | src = fetchurl { | ||
4116 | url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"; | ||
4117 | sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; | ||
4118 | }; | ||
4119 | }; | ||
4120 | "object.assign-4.1.0" = { | ||
4121 | name = "object.assign"; | ||
4122 | packageName = "object.assign"; | ||
4123 | version = "4.1.0"; | ||
4124 | src = fetchurl { | ||
4125 | url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz"; | ||
4126 | sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w=="; | ||
4127 | }; | ||
4128 | }; | ||
4129 | "object.getownpropertydescriptors-2.1.0" = { | ||
4130 | name = "object.getownpropertydescriptors"; | ||
4131 | packageName = "object.getownpropertydescriptors"; | ||
4132 | version = "2.1.0"; | ||
4133 | src = fetchurl { | ||
4134 | url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz"; | ||
4135 | sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg=="; | ||
4136 | }; | ||
4137 | }; | ||
4138 | "object.pick-1.3.0" = { | ||
4139 | name = "object.pick"; | ||
4140 | packageName = "object.pick"; | ||
4141 | version = "1.3.0"; | ||
4142 | src = fetchurl { | ||
4143 | url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"; | ||
4144 | sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; | ||
4145 | }; | ||
4146 | }; | ||
4147 | "object.values-1.1.1" = { | ||
4148 | name = "object.values"; | ||
4149 | packageName = "object.values"; | ||
4150 | version = "1.1.1"; | ||
4151 | src = fetchurl { | ||
4152 | url = "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz"; | ||
4153 | sha512 = "WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA=="; | ||
4154 | }; | ||
4155 | }; | ||
4156 | "on-finished-2.3.0" = { | ||
4157 | name = "on-finished"; | ||
4158 | packageName = "on-finished"; | ||
4159 | version = "2.3.0"; | ||
4160 | src = fetchurl { | ||
4161 | url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; | ||
4162 | sha1 = "20f1336481b083cd75337992a16971aa2d906947"; | ||
4163 | }; | ||
4164 | }; | ||
4165 | "once-1.4.0" = { | ||
4166 | name = "once"; | ||
4167 | packageName = "once"; | ||
4168 | version = "1.4.0"; | ||
4169 | src = fetchurl { | ||
4170 | url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; | ||
4171 | sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; | ||
4172 | }; | ||
4173 | }; | ||
4174 | "onetime-2.0.1" = { | ||
4175 | name = "onetime"; | ||
4176 | packageName = "onetime"; | ||
4177 | version = "2.0.1"; | ||
4178 | src = fetchurl { | ||
4179 | url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz"; | ||
4180 | sha1 = "067428230fd67443b2794b22bba528b6867962d4"; | ||
4181 | }; | ||
4182 | }; | ||
4183 | "opn-5.5.0" = { | ||
4184 | name = "opn"; | ||
4185 | packageName = "opn"; | ||
4186 | version = "5.5.0"; | ||
4187 | src = fetchurl { | ||
4188 | url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz"; | ||
4189 | sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA=="; | ||
4190 | }; | ||
4191 | }; | ||
4192 | "optionator-0.8.3" = { | ||
4193 | name = "optionator"; | ||
4194 | packageName = "optionator"; | ||
4195 | version = "0.8.3"; | ||
4196 | src = fetchurl { | ||
4197 | url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"; | ||
4198 | sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="; | ||
4199 | }; | ||
4200 | }; | ||
4201 | "ora-2.1.0" = { | ||
4202 | name = "ora"; | ||
4203 | packageName = "ora"; | ||
4204 | version = "2.1.0"; | ||
4205 | src = fetchurl { | ||
4206 | url = "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz"; | ||
4207 | sha512 = "hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA=="; | ||
4208 | }; | ||
4209 | }; | ||
4210 | "os-browserify-0.3.0" = { | ||
4211 | name = "os-browserify"; | ||
4212 | packageName = "os-browserify"; | ||
4213 | version = "0.3.0"; | ||
4214 | src = fetchurl { | ||
4215 | url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz"; | ||
4216 | sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; | ||
4217 | }; | ||
4218 | }; | ||
4219 | "os-homedir-1.0.2" = { | ||
4220 | name = "os-homedir"; | ||
4221 | packageName = "os-homedir"; | ||
4222 | version = "1.0.2"; | ||
4223 | src = fetchurl { | ||
4224 | url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; | ||
4225 | sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; | ||
4226 | }; | ||
4227 | }; | ||
4228 | "os-tmpdir-1.0.2" = { | ||
4229 | name = "os-tmpdir"; | ||
4230 | packageName = "os-tmpdir"; | ||
4231 | version = "1.0.2"; | ||
4232 | src = fetchurl { | ||
4233 | url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; | ||
4234 | sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; | ||
4235 | }; | ||
4236 | }; | ||
4237 | "osenv-0.1.5" = { | ||
4238 | name = "osenv"; | ||
4239 | packageName = "osenv"; | ||
4240 | version = "0.1.5"; | ||
4241 | src = fetchurl { | ||
4242 | url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; | ||
4243 | sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; | ||
4244 | }; | ||
4245 | }; | ||
4246 | "p-limit-1.3.0" = { | ||
4247 | name = "p-limit"; | ||
4248 | packageName = "p-limit"; | ||
4249 | version = "1.3.0"; | ||
4250 | src = fetchurl { | ||
4251 | url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"; | ||
4252 | sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="; | ||
4253 | }; | ||
4254 | }; | ||
4255 | "p-limit-2.3.0" = { | ||
4256 | name = "p-limit"; | ||
4257 | packageName = "p-limit"; | ||
4258 | version = "2.3.0"; | ||
4259 | src = fetchurl { | ||
4260 | url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"; | ||
4261 | sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="; | ||
4262 | }; | ||
4263 | }; | ||
4264 | "p-locate-2.0.0" = { | ||
4265 | name = "p-locate"; | ||
4266 | packageName = "p-locate"; | ||
4267 | version = "2.0.0"; | ||
4268 | src = fetchurl { | ||
4269 | url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"; | ||
4270 | sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; | ||
4271 | }; | ||
4272 | }; | ||
4273 | "p-locate-3.0.0" = { | ||
4274 | name = "p-locate"; | ||
4275 | packageName = "p-locate"; | ||
4276 | version = "3.0.0"; | ||
4277 | src = fetchurl { | ||
4278 | url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"; | ||
4279 | sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="; | ||
4280 | }; | ||
4281 | }; | ||
4282 | "p-try-1.0.0" = { | ||
4283 | name = "p-try"; | ||
4284 | packageName = "p-try"; | ||
4285 | version = "1.0.0"; | ||
4286 | src = fetchurl { | ||
4287 | url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz"; | ||
4288 | sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; | ||
4289 | }; | ||
4290 | }; | ||
4291 | "p-try-2.2.0" = { | ||
4292 | name = "p-try"; | ||
4293 | packageName = "p-try"; | ||
4294 | version = "2.2.0"; | ||
4295 | src = fetchurl { | ||
4296 | url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"; | ||
4297 | sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="; | ||
4298 | }; | ||
4299 | }; | ||
4300 | "pako-0.2.9" = { | ||
4301 | name = "pako"; | ||
4302 | packageName = "pako"; | ||
4303 | version = "0.2.9"; | ||
4304 | src = fetchurl { | ||
4305 | url = "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz"; | ||
4306 | sha1 = "f3f7522f4ef782348da8161bad9ecfd51bf83a75"; | ||
4307 | }; | ||
4308 | }; | ||
4309 | "pako-1.0.11" = { | ||
4310 | name = "pako"; | ||
4311 | packageName = "pako"; | ||
4312 | version = "1.0.11"; | ||
4313 | src = fetchurl { | ||
4314 | url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"; | ||
4315 | sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="; | ||
4316 | }; | ||
4317 | }; | ||
4318 | "parcel-bundler-1.12.3" = { | ||
4319 | name = "parcel-bundler"; | ||
4320 | packageName = "parcel-bundler"; | ||
4321 | version = "1.12.3"; | ||
4322 | src = fetchurl { | ||
4323 | url = "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.3.tgz"; | ||
4324 | sha512 = "8bq6lj0hhQeGxD9f9xEkFMXQ3d8TIlf2+isKxoi9bciB0KVEILRGllaPkUgp++5t0anToBh9+tG6ZyInXOC1/A=="; | ||
4325 | }; | ||
4326 | }; | ||
4327 | "parse-asn1-5.1.5" = { | ||
4328 | name = "parse-asn1"; | ||
4329 | packageName = "parse-asn1"; | ||
4330 | version = "5.1.5"; | ||
4331 | src = fetchurl { | ||
4332 | url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz"; | ||
4333 | sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ=="; | ||
4334 | }; | ||
4335 | }; | ||
4336 | "parse-json-4.0.0" = { | ||
4337 | name = "parse-json"; | ||
4338 | packageName = "parse-json"; | ||
4339 | version = "4.0.0"; | ||
4340 | src = fetchurl { | ||
4341 | url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz"; | ||
4342 | sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0"; | ||
4343 | }; | ||
4344 | }; | ||
4345 | "parse5-5.1.0" = { | ||
4346 | name = "parse5"; | ||
4347 | packageName = "parse5"; | ||
4348 | version = "5.1.0"; | ||
4349 | src = fetchurl { | ||
4350 | url = "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz"; | ||
4351 | sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ=="; | ||
4352 | }; | ||
4353 | }; | ||
4354 | "parseurl-1.3.3" = { | ||
4355 | name = "parseurl"; | ||
4356 | packageName = "parseurl"; | ||
4357 | version = "1.3.3"; | ||
4358 | src = fetchurl { | ||
4359 | url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; | ||
4360 | sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; | ||
4361 | }; | ||
4362 | }; | ||
4363 | "pascalcase-0.1.1" = { | ||
4364 | name = "pascalcase"; | ||
4365 | packageName = "pascalcase"; | ||
4366 | version = "0.1.1"; | ||
4367 | src = fetchurl { | ||
4368 | url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"; | ||
4369 | sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; | ||
4370 | }; | ||
4371 | }; | ||
4372 | "path-browserify-0.0.1" = { | ||
4373 | name = "path-browserify"; | ||
4374 | packageName = "path-browserify"; | ||
4375 | version = "0.0.1"; | ||
4376 | src = fetchurl { | ||
4377 | url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz"; | ||
4378 | sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="; | ||
4379 | }; | ||
4380 | }; | ||
4381 | "path-dirname-1.0.2" = { | ||
4382 | name = "path-dirname"; | ||
4383 | packageName = "path-dirname"; | ||
4384 | version = "1.0.2"; | ||
4385 | src = fetchurl { | ||
4386 | url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"; | ||
4387 | sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; | ||
4388 | }; | ||
4389 | }; | ||
4390 | "path-exists-3.0.0" = { | ||
4391 | name = "path-exists"; | ||
4392 | packageName = "path-exists"; | ||
4393 | version = "3.0.0"; | ||
4394 | src = fetchurl { | ||
4395 | url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"; | ||
4396 | sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; | ||
4397 | }; | ||
4398 | }; | ||
4399 | "path-is-absolute-1.0.1" = { | ||
4400 | name = "path-is-absolute"; | ||
4401 | packageName = "path-is-absolute"; | ||
4402 | version = "1.0.1"; | ||
4403 | src = fetchurl { | ||
4404 | url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; | ||
4405 | sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; | ||
4406 | }; | ||
4407 | }; | ||
4408 | "path-key-2.0.1" = { | ||
4409 | name = "path-key"; | ||
4410 | packageName = "path-key"; | ||
4411 | version = "2.0.1"; | ||
4412 | src = fetchurl { | ||
4413 | url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"; | ||
4414 | sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; | ||
4415 | }; | ||
4416 | }; | ||
4417 | "path-parse-1.0.6" = { | ||
4418 | name = "path-parse"; | ||
4419 | packageName = "path-parse"; | ||
4420 | version = "1.0.6"; | ||
4421 | src = fetchurl { | ||
4422 | url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; | ||
4423 | sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; | ||
4424 | }; | ||
4425 | }; | ||
4426 | "pbkdf2-3.0.17" = { | ||
4427 | name = "pbkdf2"; | ||
4428 | packageName = "pbkdf2"; | ||
4429 | version = "3.0.17"; | ||
4430 | src = fetchurl { | ||
4431 | url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz"; | ||
4432 | sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA=="; | ||
4433 | }; | ||
4434 | }; | ||
4435 | "performance-now-2.1.0" = { | ||
4436 | name = "performance-now"; | ||
4437 | packageName = "performance-now"; | ||
4438 | version = "2.1.0"; | ||
4439 | src = fetchurl { | ||
4440 | url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; | ||
4441 | sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; | ||
4442 | }; | ||
4443 | }; | ||
4444 | "physical-cpu-count-2.0.0" = { | ||
4445 | name = "physical-cpu-count"; | ||
4446 | packageName = "physical-cpu-count"; | ||
4447 | version = "2.0.0"; | ||
4448 | src = fetchurl { | ||
4449 | url = "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz"; | ||
4450 | sha1 = "18de2f97e4bf7a9551ad7511942b5496f7aba660"; | ||
4451 | }; | ||
4452 | }; | ||
4453 | "pkg-up-2.0.0" = { | ||
4454 | name = "pkg-up"; | ||
4455 | packageName = "pkg-up"; | ||
4456 | version = "2.0.0"; | ||
4457 | src = fetchurl { | ||
4458 | url = "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz"; | ||
4459 | sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f"; | ||
4460 | }; | ||
4461 | }; | ||
4462 | "pn-1.1.0" = { | ||
4463 | name = "pn"; | ||
4464 | packageName = "pn"; | ||
4465 | version = "1.1.0"; | ||
4466 | src = fetchurl { | ||
4467 | url = "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz"; | ||
4468 | sha512 = "2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="; | ||
4469 | }; | ||
4470 | }; | ||
4471 | "posix-character-classes-0.1.1" = { | ||
4472 | name = "posix-character-classes"; | ||
4473 | packageName = "posix-character-classes"; | ||
4474 | version = "0.1.1"; | ||
4475 | src = fetchurl { | ||
4476 | url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"; | ||
4477 | sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"; | ||
4478 | }; | ||
4479 | }; | ||
4480 | "postcss-6.0.1" = { | ||
4481 | name = "postcss"; | ||
4482 | packageName = "postcss"; | ||
4483 | version = "6.0.1"; | ||
4484 | src = fetchurl { | ||
4485 | url = "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz"; | ||
4486 | sha1 = "000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2"; | ||
4487 | }; | ||
4488 | }; | ||
4489 | "postcss-6.0.23" = { | ||
4490 | name = "postcss"; | ||
4491 | packageName = "postcss"; | ||
4492 | version = "6.0.23"; | ||
4493 | src = fetchurl { | ||
4494 | url = "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz"; | ||
4495 | sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag=="; | ||
4496 | }; | ||
4497 | }; | ||
4498 | "postcss-7.0.27" = { | ||
4499 | name = "postcss"; | ||
4500 | packageName = "postcss"; | ||
4501 | version = "7.0.27"; | ||
4502 | src = fetchurl { | ||
4503 | url = "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz"; | ||
4504 | sha512 = "WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ=="; | ||
4505 | }; | ||
4506 | }; | ||
4507 | "postcss-calc-7.0.2" = { | ||
4508 | name = "postcss-calc"; | ||
4509 | packageName = "postcss-calc"; | ||
4510 | version = "7.0.2"; | ||
4511 | src = fetchurl { | ||
4512 | url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz"; | ||
4513 | sha512 = "rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ=="; | ||
4514 | }; | ||
4515 | }; | ||
4516 | "postcss-colormin-4.0.3" = { | ||
4517 | name = "postcss-colormin"; | ||
4518 | packageName = "postcss-colormin"; | ||
4519 | version = "4.0.3"; | ||
4520 | src = fetchurl { | ||
4521 | url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz"; | ||
4522 | sha512 = "WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw=="; | ||
4523 | }; | ||
4524 | }; | ||
4525 | "postcss-convert-values-4.0.1" = { | ||
4526 | name = "postcss-convert-values"; | ||
4527 | packageName = "postcss-convert-values"; | ||
4528 | version = "4.0.1"; | ||
4529 | src = fetchurl { | ||
4530 | url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz"; | ||
4531 | sha512 = "Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ=="; | ||
4532 | }; | ||
4533 | }; | ||
4534 | "postcss-discard-comments-4.0.2" = { | ||
4535 | name = "postcss-discard-comments"; | ||
4536 | packageName = "postcss-discard-comments"; | ||
4537 | version = "4.0.2"; | ||
4538 | src = fetchurl { | ||
4539 | url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz"; | ||
4540 | sha512 = "RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg=="; | ||
4541 | }; | ||
4542 | }; | ||
4543 | "postcss-discard-duplicates-4.0.2" = { | ||
4544 | name = "postcss-discard-duplicates"; | ||
4545 | packageName = "postcss-discard-duplicates"; | ||
4546 | version = "4.0.2"; | ||
4547 | src = fetchurl { | ||
4548 | url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz"; | ||
4549 | sha512 = "ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ=="; | ||
4550 | }; | ||
4551 | }; | ||
4552 | "postcss-discard-empty-4.0.1" = { | ||
4553 | name = "postcss-discard-empty"; | ||
4554 | packageName = "postcss-discard-empty"; | ||
4555 | version = "4.0.1"; | ||
4556 | src = fetchurl { | ||
4557 | url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz"; | ||
4558 | sha512 = "B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w=="; | ||
4559 | }; | ||
4560 | }; | ||
4561 | "postcss-discard-overridden-4.0.1" = { | ||
4562 | name = "postcss-discard-overridden"; | ||
4563 | packageName = "postcss-discard-overridden"; | ||
4564 | version = "4.0.1"; | ||
4565 | src = fetchurl { | ||
4566 | url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz"; | ||
4567 | sha512 = "IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg=="; | ||
4568 | }; | ||
4569 | }; | ||
4570 | "postcss-merge-longhand-4.0.11" = { | ||
4571 | name = "postcss-merge-longhand"; | ||
4572 | packageName = "postcss-merge-longhand"; | ||
4573 | version = "4.0.11"; | ||
4574 | src = fetchurl { | ||
4575 | url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz"; | ||
4576 | sha512 = "alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw=="; | ||
4577 | }; | ||
4578 | }; | ||
4579 | "postcss-merge-rules-4.0.3" = { | ||
4580 | name = "postcss-merge-rules"; | ||
4581 | packageName = "postcss-merge-rules"; | ||
4582 | version = "4.0.3"; | ||
4583 | src = fetchurl { | ||
4584 | url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz"; | ||
4585 | sha512 = "U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ=="; | ||
4586 | }; | ||
4587 | }; | ||
4588 | "postcss-minify-font-values-4.0.2" = { | ||
4589 | name = "postcss-minify-font-values"; | ||
4590 | packageName = "postcss-minify-font-values"; | ||
4591 | version = "4.0.2"; | ||
4592 | src = fetchurl { | ||
4593 | url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz"; | ||
4594 | sha512 = "j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg=="; | ||
4595 | }; | ||
4596 | }; | ||
4597 | "postcss-minify-gradients-4.0.2" = { | ||
4598 | name = "postcss-minify-gradients"; | ||
4599 | packageName = "postcss-minify-gradients"; | ||
4600 | version = "4.0.2"; | ||
4601 | src = fetchurl { | ||
4602 | url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz"; | ||
4603 | sha512 = "qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q=="; | ||
4604 | }; | ||
4605 | }; | ||
4606 | "postcss-minify-params-4.0.2" = { | ||
4607 | name = "postcss-minify-params"; | ||
4608 | packageName = "postcss-minify-params"; | ||
4609 | version = "4.0.2"; | ||
4610 | src = fetchurl { | ||
4611 | url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz"; | ||
4612 | sha512 = "G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg=="; | ||
4613 | }; | ||
4614 | }; | ||
4615 | "postcss-minify-selectors-4.0.2" = { | ||
4616 | name = "postcss-minify-selectors"; | ||
4617 | packageName = "postcss-minify-selectors"; | ||
4618 | version = "4.0.2"; | ||
4619 | src = fetchurl { | ||
4620 | url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz"; | ||
4621 | sha512 = "D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g=="; | ||
4622 | }; | ||
4623 | }; | ||
4624 | "postcss-modules-extract-imports-1.1.0" = { | ||
4625 | name = "postcss-modules-extract-imports"; | ||
4626 | packageName = "postcss-modules-extract-imports"; | ||
4627 | version = "1.1.0"; | ||
4628 | src = fetchurl { | ||
4629 | url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz"; | ||
4630 | sha1 = "b614c9720be6816eaee35fb3a5faa1dba6a05ddb"; | ||
4631 | }; | ||
4632 | }; | ||
4633 | "postcss-modules-local-by-default-1.2.0" = { | ||
4634 | name = "postcss-modules-local-by-default"; | ||
4635 | packageName = "postcss-modules-local-by-default"; | ||
4636 | version = "1.2.0"; | ||
4637 | src = fetchurl { | ||
4638 | url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz"; | ||
4639 | sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069"; | ||
4640 | }; | ||
4641 | }; | ||
4642 | "postcss-modules-scope-1.1.0" = { | ||
4643 | name = "postcss-modules-scope"; | ||
4644 | packageName = "postcss-modules-scope"; | ||
4645 | version = "1.1.0"; | ||
4646 | src = fetchurl { | ||
4647 | url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz"; | ||
4648 | sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90"; | ||
4649 | }; | ||
4650 | }; | ||
4651 | "postcss-modules-values-1.3.0" = { | ||
4652 | name = "postcss-modules-values"; | ||
4653 | packageName = "postcss-modules-values"; | ||
4654 | version = "1.3.0"; | ||
4655 | src = fetchurl { | ||
4656 | url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz"; | ||
4657 | sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20"; | ||
4658 | }; | ||
4659 | }; | ||
4660 | "postcss-normalize-charset-4.0.1" = { | ||
4661 | name = "postcss-normalize-charset"; | ||
4662 | packageName = "postcss-normalize-charset"; | ||
4663 | version = "4.0.1"; | ||
4664 | src = fetchurl { | ||
4665 | url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz"; | ||
4666 | sha512 = "gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g=="; | ||
4667 | }; | ||
4668 | }; | ||
4669 | "postcss-normalize-display-values-4.0.2" = { | ||
4670 | name = "postcss-normalize-display-values"; | ||
4671 | packageName = "postcss-normalize-display-values"; | ||
4672 | version = "4.0.2"; | ||
4673 | src = fetchurl { | ||
4674 | url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz"; | ||
4675 | sha512 = "3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ=="; | ||
4676 | }; | ||
4677 | }; | ||
4678 | "postcss-normalize-positions-4.0.2" = { | ||
4679 | name = "postcss-normalize-positions"; | ||
4680 | packageName = "postcss-normalize-positions"; | ||
4681 | version = "4.0.2"; | ||
4682 | src = fetchurl { | ||
4683 | url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz"; | ||
4684 | sha512 = "Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA=="; | ||
4685 | }; | ||
4686 | }; | ||
4687 | "postcss-normalize-repeat-style-4.0.2" = { | ||
4688 | name = "postcss-normalize-repeat-style"; | ||
4689 | packageName = "postcss-normalize-repeat-style"; | ||
4690 | version = "4.0.2"; | ||
4691 | src = fetchurl { | ||
4692 | url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz"; | ||
4693 | sha512 = "qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q=="; | ||
4694 | }; | ||
4695 | }; | ||
4696 | "postcss-normalize-string-4.0.2" = { | ||
4697 | name = "postcss-normalize-string"; | ||
4698 | packageName = "postcss-normalize-string"; | ||
4699 | version = "4.0.2"; | ||
4700 | src = fetchurl { | ||
4701 | url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz"; | ||
4702 | sha512 = "RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA=="; | ||
4703 | }; | ||
4704 | }; | ||
4705 | "postcss-normalize-timing-functions-4.0.2" = { | ||
4706 | name = "postcss-normalize-timing-functions"; | ||
4707 | packageName = "postcss-normalize-timing-functions"; | ||
4708 | version = "4.0.2"; | ||
4709 | src = fetchurl { | ||
4710 | url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz"; | ||
4711 | sha512 = "acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A=="; | ||
4712 | }; | ||
4713 | }; | ||
4714 | "postcss-normalize-unicode-4.0.1" = { | ||
4715 | name = "postcss-normalize-unicode"; | ||
4716 | packageName = "postcss-normalize-unicode"; | ||
4717 | version = "4.0.1"; | ||
4718 | src = fetchurl { | ||
4719 | url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz"; | ||
4720 | sha512 = "od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg=="; | ||
4721 | }; | ||
4722 | }; | ||
4723 | "postcss-normalize-url-4.0.1" = { | ||
4724 | name = "postcss-normalize-url"; | ||
4725 | packageName = "postcss-normalize-url"; | ||
4726 | version = "4.0.1"; | ||
4727 | src = fetchurl { | ||
4728 | url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz"; | ||
4729 | sha512 = "p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA=="; | ||
4730 | }; | ||
4731 | }; | ||
4732 | "postcss-normalize-whitespace-4.0.2" = { | ||
4733 | name = "postcss-normalize-whitespace"; | ||
4734 | packageName = "postcss-normalize-whitespace"; | ||
4735 | version = "4.0.2"; | ||
4736 | src = fetchurl { | ||
4737 | url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz"; | ||
4738 | sha512 = "tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA=="; | ||
4739 | }; | ||
4740 | }; | ||
4741 | "postcss-ordered-values-4.1.2" = { | ||
4742 | name = "postcss-ordered-values"; | ||
4743 | packageName = "postcss-ordered-values"; | ||
4744 | version = "4.1.2"; | ||
4745 | src = fetchurl { | ||
4746 | url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz"; | ||
4747 | sha512 = "2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw=="; | ||
4748 | }; | ||
4749 | }; | ||
4750 | "postcss-reduce-initial-4.0.3" = { | ||
4751 | name = "postcss-reduce-initial"; | ||
4752 | packageName = "postcss-reduce-initial"; | ||
4753 | version = "4.0.3"; | ||
4754 | src = fetchurl { | ||
4755 | url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz"; | ||
4756 | sha512 = "gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA=="; | ||
4757 | }; | ||
4758 | }; | ||
4759 | "postcss-reduce-transforms-4.0.2" = { | ||
4760 | name = "postcss-reduce-transforms"; | ||
4761 | packageName = "postcss-reduce-transforms"; | ||
4762 | version = "4.0.2"; | ||
4763 | src = fetchurl { | ||
4764 | url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz"; | ||
4765 | sha512 = "EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg=="; | ||
4766 | }; | ||
4767 | }; | ||
4768 | "postcss-selector-parser-3.1.2" = { | ||
4769 | name = "postcss-selector-parser"; | ||
4770 | packageName = "postcss-selector-parser"; | ||
4771 | version = "3.1.2"; | ||
4772 | src = fetchurl { | ||
4773 | url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz"; | ||
4774 | sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA=="; | ||
4775 | }; | ||
4776 | }; | ||
4777 | "postcss-selector-parser-6.0.2" = { | ||
4778 | name = "postcss-selector-parser"; | ||
4779 | packageName = "postcss-selector-parser"; | ||
4780 | version = "6.0.2"; | ||
4781 | src = fetchurl { | ||
4782 | url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz"; | ||
4783 | sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg=="; | ||
4784 | }; | ||
4785 | }; | ||
4786 | "postcss-svgo-4.0.2" = { | ||
4787 | name = "postcss-svgo"; | ||
4788 | packageName = "postcss-svgo"; | ||
4789 | version = "4.0.2"; | ||
4790 | src = fetchurl { | ||
4791 | url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz"; | ||
4792 | sha512 = "C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw=="; | ||
4793 | }; | ||
4794 | }; | ||
4795 | "postcss-unique-selectors-4.0.1" = { | ||
4796 | name = "postcss-unique-selectors"; | ||
4797 | packageName = "postcss-unique-selectors"; | ||
4798 | version = "4.0.1"; | ||
4799 | src = fetchurl { | ||
4800 | url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz"; | ||
4801 | sha512 = "+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg=="; | ||
4802 | }; | ||
4803 | }; | ||
4804 | "postcss-value-parser-3.3.1" = { | ||
4805 | name = "postcss-value-parser"; | ||
4806 | packageName = "postcss-value-parser"; | ||
4807 | version = "3.3.1"; | ||
4808 | src = fetchurl { | ||
4809 | url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz"; | ||
4810 | sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="; | ||
4811 | }; | ||
4812 | }; | ||
4813 | "postcss-value-parser-4.0.3" = { | ||
4814 | name = "postcss-value-parser"; | ||
4815 | packageName = "postcss-value-parser"; | ||
4816 | version = "4.0.3"; | ||
4817 | src = fetchurl { | ||
4818 | url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz"; | ||
4819 | sha512 = "N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg=="; | ||
4820 | }; | ||
4821 | }; | ||
4822 | "posthtml-0.11.6" = { | ||
4823 | name = "posthtml"; | ||
4824 | packageName = "posthtml"; | ||
4825 | version = "0.11.6"; | ||
4826 | src = fetchurl { | ||
4827 | url = "https://registry.npmjs.org/posthtml/-/posthtml-0.11.6.tgz"; | ||
4828 | sha512 = "C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw=="; | ||
4829 | }; | ||
4830 | }; | ||
4831 | "posthtml-0.12.3" = { | ||
4832 | name = "posthtml"; | ||
4833 | packageName = "posthtml"; | ||
4834 | version = "0.12.3"; | ||
4835 | src = fetchurl { | ||
4836 | url = "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz"; | ||
4837 | sha512 = "Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA=="; | ||
4838 | }; | ||
4839 | }; | ||
4840 | "posthtml-parser-0.4.2" = { | ||
4841 | name = "posthtml-parser"; | ||
4842 | packageName = "posthtml-parser"; | ||
4843 | version = "0.4.2"; | ||
4844 | src = fetchurl { | ||
4845 | url = "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz"; | ||
4846 | sha512 = "BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg=="; | ||
4847 | }; | ||
4848 | }; | ||
4849 | "posthtml-render-1.2.2" = { | ||
4850 | name = "posthtml-render"; | ||
4851 | packageName = "posthtml-render"; | ||
4852 | version = "1.2.2"; | ||
4853 | src = fetchurl { | ||
4854 | url = "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.2.tgz"; | ||
4855 | sha512 = "MbIXTWwAfJ9qET6Zl29UNwJcDJEEz9Zkr5oDhiujitJa7YBJwEpbkX2cmuklCDxubTMoRWpid3q8DrSyGnUUzQ=="; | ||
4856 | }; | ||
4857 | }; | ||
4858 | "prelude-ls-1.1.2" = { | ||
4859 | name = "prelude-ls"; | ||
4860 | packageName = "prelude-ls"; | ||
4861 | version = "1.1.2"; | ||
4862 | src = fetchurl { | ||
4863 | url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"; | ||
4864 | sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; | ||
4865 | }; | ||
4866 | }; | ||
4867 | "private-0.1.8" = { | ||
4868 | name = "private"; | ||
4869 | packageName = "private"; | ||
4870 | version = "0.1.8"; | ||
4871 | src = fetchurl { | ||
4872 | url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz"; | ||
4873 | sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="; | ||
4874 | }; | ||
4875 | }; | ||
4876 | "process-0.11.10" = { | ||
4877 | name = "process"; | ||
4878 | packageName = "process"; | ||
4879 | version = "0.11.10"; | ||
4880 | src = fetchurl { | ||
4881 | url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz"; | ||
4882 | sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; | ||
4883 | }; | ||
4884 | }; | ||
4885 | "process-nextick-args-2.0.1" = { | ||
4886 | name = "process-nextick-args"; | ||
4887 | packageName = "process-nextick-args"; | ||
4888 | version = "2.0.1"; | ||
4889 | src = fetchurl { | ||
4890 | url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; | ||
4891 | sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; | ||
4892 | }; | ||
4893 | }; | ||
4894 | "proto-list-1.2.4" = { | ||
4895 | name = "proto-list"; | ||
4896 | packageName = "proto-list"; | ||
4897 | version = "1.2.4"; | ||
4898 | src = fetchurl { | ||
4899 | url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz"; | ||
4900 | sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; | ||
4901 | }; | ||
4902 | }; | ||
4903 | "pseudomap-1.0.2" = { | ||
4904 | name = "pseudomap"; | ||
4905 | packageName = "pseudomap"; | ||
4906 | version = "1.0.2"; | ||
4907 | src = fetchurl { | ||
4908 | url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; | ||
4909 | sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; | ||
4910 | }; | ||
4911 | }; | ||
4912 | "psl-1.8.0" = { | ||
4913 | name = "psl"; | ||
4914 | packageName = "psl"; | ||
4915 | version = "1.8.0"; | ||
4916 | src = fetchurl { | ||
4917 | url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"; | ||
4918 | sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="; | ||
4919 | }; | ||
4920 | }; | ||
4921 | "public-encrypt-4.0.3" = { | ||
4922 | name = "public-encrypt"; | ||
4923 | packageName = "public-encrypt"; | ||
4924 | version = "4.0.3"; | ||
4925 | src = fetchurl { | ||
4926 | url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz"; | ||
4927 | sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q=="; | ||
4928 | }; | ||
4929 | }; | ||
4930 | "punycode-1.3.2" = { | ||
4931 | name = "punycode"; | ||
4932 | packageName = "punycode"; | ||
4933 | version = "1.3.2"; | ||
4934 | src = fetchurl { | ||
4935 | url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"; | ||
4936 | sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; | ||
4937 | }; | ||
4938 | }; | ||
4939 | "punycode-1.4.1" = { | ||
4940 | name = "punycode"; | ||
4941 | packageName = "punycode"; | ||
4942 | version = "1.4.1"; | ||
4943 | src = fetchurl { | ||
4944 | url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; | ||
4945 | sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; | ||
4946 | }; | ||
4947 | }; | ||
4948 | "punycode-2.1.1" = { | ||
4949 | name = "punycode"; | ||
4950 | packageName = "punycode"; | ||
4951 | version = "2.1.1"; | ||
4952 | src = fetchurl { | ||
4953 | url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; | ||
4954 | sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; | ||
4955 | }; | ||
4956 | }; | ||
4957 | "purgecss-1.4.2" = { | ||
4958 | name = "purgecss"; | ||
4959 | packageName = "purgecss"; | ||
4960 | version = "1.4.2"; | ||
4961 | src = fetchurl { | ||
4962 | url = "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz"; | ||
4963 | sha512 = "hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw=="; | ||
4964 | }; | ||
4965 | }; | ||
4966 | "q-1.5.1" = { | ||
4967 | name = "q"; | ||
4968 | packageName = "q"; | ||
4969 | version = "1.5.1"; | ||
4970 | src = fetchurl { | ||
4971 | url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz"; | ||
4972 | sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7"; | ||
4973 | }; | ||
4974 | }; | ||
4975 | "qs-6.5.2" = { | ||
4976 | name = "qs"; | ||
4977 | packageName = "qs"; | ||
4978 | version = "6.5.2"; | ||
4979 | src = fetchurl { | ||
4980 | url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; | ||
4981 | sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="; | ||
4982 | }; | ||
4983 | }; | ||
4984 | "querystring-0.2.0" = { | ||
4985 | name = "querystring"; | ||
4986 | packageName = "querystring"; | ||
4987 | version = "0.2.0"; | ||
4988 | src = fetchurl { | ||
4989 | url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"; | ||
4990 | sha1 = "b209849203bb25df820da756e747005878521620"; | ||
4991 | }; | ||
4992 | }; | ||
4993 | "querystring-es3-0.2.1" = { | ||
4994 | name = "querystring-es3"; | ||
4995 | packageName = "querystring-es3"; | ||
4996 | version = "0.2.1"; | ||
4997 | src = fetchurl { | ||
4998 | url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz"; | ||
4999 | sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; | ||
5000 | }; | ||
5001 | }; | ||
5002 | "quote-stream-1.0.2" = { | ||
5003 | name = "quote-stream"; | ||
5004 | packageName = "quote-stream"; | ||
5005 | version = "1.0.2"; | ||
5006 | src = fetchurl { | ||
5007 | url = "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz"; | ||
5008 | sha1 = "84963f8c9c26b942e153feeb53aae74652b7e0b2"; | ||
5009 | }; | ||
5010 | }; | ||
5011 | "randombytes-2.1.0" = { | ||
5012 | name = "randombytes"; | ||
5013 | packageName = "randombytes"; | ||
5014 | version = "2.1.0"; | ||
5015 | src = fetchurl { | ||
5016 | url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"; | ||
5017 | sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="; | ||
5018 | }; | ||
5019 | }; | ||
5020 | "randomfill-1.0.4" = { | ||
5021 | name = "randomfill"; | ||
5022 | packageName = "randomfill"; | ||
5023 | version = "1.0.4"; | ||
5024 | src = fetchurl { | ||
5025 | url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz"; | ||
5026 | sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw=="; | ||
5027 | }; | ||
5028 | }; | ||
5029 | "range-parser-1.2.1" = { | ||
5030 | name = "range-parser"; | ||
5031 | packageName = "range-parser"; | ||
5032 | version = "1.2.1"; | ||
5033 | src = fetchurl { | ||
5034 | url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; | ||
5035 | sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; | ||
5036 | }; | ||
5037 | }; | ||
5038 | "readable-stream-2.3.7" = { | ||
5039 | name = "readable-stream"; | ||
5040 | packageName = "readable-stream"; | ||
5041 | version = "2.3.7"; | ||
5042 | src = fetchurl { | ||
5043 | url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; | ||
5044 | sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; | ||
5045 | }; | ||
5046 | }; | ||
5047 | "readable-stream-3.6.0" = { | ||
5048 | name = "readable-stream"; | ||
5049 | packageName = "readable-stream"; | ||
5050 | version = "3.6.0"; | ||
5051 | src = fetchurl { | ||
5052 | url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; | ||
5053 | sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; | ||
5054 | }; | ||
5055 | }; | ||
5056 | "readdirp-2.2.1" = { | ||
5057 | name = "readdirp"; | ||
5058 | packageName = "readdirp"; | ||
5059 | version = "2.2.1"; | ||
5060 | src = fetchurl { | ||
5061 | url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz"; | ||
5062 | sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ=="; | ||
5063 | }; | ||
5064 | }; | ||
5065 | "regenerate-1.4.0" = { | ||
5066 | name = "regenerate"; | ||
5067 | packageName = "regenerate"; | ||
5068 | version = "1.4.0"; | ||
5069 | src = fetchurl { | ||
5070 | url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz"; | ||
5071 | sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg=="; | ||
5072 | }; | ||
5073 | }; | ||
5074 | "regenerate-unicode-properties-8.2.0" = { | ||
5075 | name = "regenerate-unicode-properties"; | ||
5076 | packageName = "regenerate-unicode-properties"; | ||
5077 | version = "8.2.0"; | ||
5078 | src = fetchurl { | ||
5079 | url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz"; | ||
5080 | sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA=="; | ||
5081 | }; | ||
5082 | }; | ||
5083 | "regenerator-runtime-0.11.1" = { | ||
5084 | name = "regenerator-runtime"; | ||
5085 | packageName = "regenerator-runtime"; | ||
5086 | version = "0.11.1"; | ||
5087 | src = fetchurl { | ||
5088 | url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"; | ||
5089 | sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="; | ||
5090 | }; | ||
5091 | }; | ||
5092 | "regenerator-runtime-0.12.1" = { | ||
5093 | name = "regenerator-runtime"; | ||
5094 | packageName = "regenerator-runtime"; | ||
5095 | version = "0.12.1"; | ||
5096 | src = fetchurl { | ||
5097 | url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz"; | ||
5098 | sha512 = "odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="; | ||
5099 | }; | ||
5100 | }; | ||
5101 | "regenerator-runtime-0.13.5" = { | ||
5102 | name = "regenerator-runtime"; | ||
5103 | packageName = "regenerator-runtime"; | ||
5104 | version = "0.13.5"; | ||
5105 | src = fetchurl { | ||
5106 | url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz"; | ||
5107 | sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="; | ||
5108 | }; | ||
5109 | }; | ||
5110 | "regenerator-transform-0.14.4" = { | ||
5111 | name = "regenerator-transform"; | ||
5112 | packageName = "regenerator-transform"; | ||
5113 | version = "0.14.4"; | ||
5114 | src = fetchurl { | ||
5115 | url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz"; | ||
5116 | sha512 = "EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw=="; | ||
5117 | }; | ||
5118 | }; | ||
5119 | "regex-not-1.0.2" = { | ||
5120 | name = "regex-not"; | ||
5121 | packageName = "regex-not"; | ||
5122 | version = "1.0.2"; | ||
5123 | src = fetchurl { | ||
5124 | url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"; | ||
5125 | sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A=="; | ||
5126 | }; | ||
5127 | }; | ||
5128 | "regexpu-core-4.7.0" = { | ||
5129 | name = "regexpu-core"; | ||
5130 | packageName = "regexpu-core"; | ||
5131 | version = "4.7.0"; | ||
5132 | src = fetchurl { | ||
5133 | url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz"; | ||
5134 | sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ=="; | ||
5135 | }; | ||
5136 | }; | ||
5137 | "regjsgen-0.5.1" = { | ||
5138 | name = "regjsgen"; | ||
5139 | packageName = "regjsgen"; | ||
5140 | version = "0.5.1"; | ||
5141 | src = fetchurl { | ||
5142 | url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz"; | ||
5143 | sha512 = "5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg=="; | ||
5144 | }; | ||
5145 | }; | ||
5146 | "regjsparser-0.6.4" = { | ||
5147 | name = "regjsparser"; | ||
5148 | packageName = "regjsparser"; | ||
5149 | version = "0.6.4"; | ||
5150 | src = fetchurl { | ||
5151 | url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz"; | ||
5152 | sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw=="; | ||
5153 | }; | ||
5154 | }; | ||
5155 | "remove-trailing-separator-1.1.0" = { | ||
5156 | name = "remove-trailing-separator"; | ||
5157 | packageName = "remove-trailing-separator"; | ||
5158 | version = "1.1.0"; | ||
5159 | src = fetchurl { | ||
5160 | url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; | ||
5161 | sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; | ||
5162 | }; | ||
5163 | }; | ||
5164 | "repeat-element-1.1.3" = { | ||
5165 | name = "repeat-element"; | ||
5166 | packageName = "repeat-element"; | ||
5167 | version = "1.1.3"; | ||
5168 | src = fetchurl { | ||
5169 | url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"; | ||
5170 | sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="; | ||
5171 | }; | ||
5172 | }; | ||
5173 | "repeat-string-1.6.1" = { | ||
5174 | name = "repeat-string"; | ||
5175 | packageName = "repeat-string"; | ||
5176 | version = "1.6.1"; | ||
5177 | src = fetchurl { | ||
5178 | url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"; | ||
5179 | sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; | ||
5180 | }; | ||
5181 | }; | ||
5182 | "request-2.88.2" = { | ||
5183 | name = "request"; | ||
5184 | packageName = "request"; | ||
5185 | version = "2.88.2"; | ||
5186 | src = fetchurl { | ||
5187 | url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz"; | ||
5188 | sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="; | ||
5189 | }; | ||
5190 | }; | ||
5191 | "request-promise-core-1.1.3" = { | ||
5192 | name = "request-promise-core"; | ||
5193 | packageName = "request-promise-core"; | ||
5194 | version = "1.1.3"; | ||
5195 | src = fetchurl { | ||
5196 | url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz"; | ||
5197 | sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ=="; | ||
5198 | }; | ||
5199 | }; | ||
5200 | "request-promise-native-1.0.8" = { | ||
5201 | name = "request-promise-native"; | ||
5202 | packageName = "request-promise-native"; | ||
5203 | version = "1.0.8"; | ||
5204 | src = fetchurl { | ||
5205 | url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz"; | ||
5206 | sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ=="; | ||
5207 | }; | ||
5208 | }; | ||
5209 | "require-directory-2.1.1" = { | ||
5210 | name = "require-directory"; | ||
5211 | packageName = "require-directory"; | ||
5212 | version = "2.1.1"; | ||
5213 | src = fetchurl { | ||
5214 | url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; | ||
5215 | sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; | ||
5216 | }; | ||
5217 | }; | ||
5218 | "require-main-filename-2.0.0" = { | ||
5219 | name = "require-main-filename"; | ||
5220 | packageName = "require-main-filename"; | ||
5221 | version = "2.0.0"; | ||
5222 | src = fetchurl { | ||
5223 | url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"; | ||
5224 | sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="; | ||
5225 | }; | ||
5226 | }; | ||
5227 | "resolve-1.17.0" = { | ||
5228 | name = "resolve"; | ||
5229 | packageName = "resolve"; | ||
5230 | version = "1.17.0"; | ||
5231 | src = fetchurl { | ||
5232 | url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz"; | ||
5233 | sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w=="; | ||
5234 | }; | ||
5235 | }; | ||
5236 | "resolve-from-3.0.0" = { | ||
5237 | name = "resolve-from"; | ||
5238 | packageName = "resolve-from"; | ||
5239 | version = "3.0.0"; | ||
5240 | src = fetchurl { | ||
5241 | url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz"; | ||
5242 | sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748"; | ||
5243 | }; | ||
5244 | }; | ||
5245 | "resolve-url-0.2.1" = { | ||
5246 | name = "resolve-url"; | ||
5247 | packageName = "resolve-url"; | ||
5248 | version = "0.2.1"; | ||
5249 | src = fetchurl { | ||
5250 | url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"; | ||
5251 | sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; | ||
5252 | }; | ||
5253 | }; | ||
5254 | "restore-cursor-2.0.0" = { | ||
5255 | name = "restore-cursor"; | ||
5256 | packageName = "restore-cursor"; | ||
5257 | version = "2.0.0"; | ||
5258 | src = fetchurl { | ||
5259 | url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"; | ||
5260 | sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf"; | ||
5261 | }; | ||
5262 | }; | ||
5263 | "ret-0.1.15" = { | ||
5264 | name = "ret"; | ||
5265 | packageName = "ret"; | ||
5266 | version = "0.1.15"; | ||
5267 | src = fetchurl { | ||
5268 | url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"; | ||
5269 | sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="; | ||
5270 | }; | ||
5271 | }; | ||
5272 | "rgb-regex-1.0.1" = { | ||
5273 | name = "rgb-regex"; | ||
5274 | packageName = "rgb-regex"; | ||
5275 | version = "1.0.1"; | ||
5276 | src = fetchurl { | ||
5277 | url = "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz"; | ||
5278 | sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1"; | ||
5279 | }; | ||
5280 | }; | ||
5281 | "rgba-regex-1.0.0" = { | ||
5282 | name = "rgba-regex"; | ||
5283 | packageName = "rgba-regex"; | ||
5284 | version = "1.0.0"; | ||
5285 | src = fetchurl { | ||
5286 | url = "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz"; | ||
5287 | sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3"; | ||
5288 | }; | ||
5289 | }; | ||
5290 | "rimraf-2.6.3" = { | ||
5291 | name = "rimraf"; | ||
5292 | packageName = "rimraf"; | ||
5293 | version = "2.6.3"; | ||
5294 | src = fetchurl { | ||
5295 | url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"; | ||
5296 | sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="; | ||
5297 | }; | ||
5298 | }; | ||
5299 | "ripemd160-2.0.2" = { | ||
5300 | name = "ripemd160"; | ||
5301 | packageName = "ripemd160"; | ||
5302 | version = "2.0.2"; | ||
5303 | src = fetchurl { | ||
5304 | url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz"; | ||
5305 | sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA=="; | ||
5306 | }; | ||
5307 | }; | ||
5308 | "safe-buffer-5.1.2" = { | ||
5309 | name = "safe-buffer"; | ||
5310 | packageName = "safe-buffer"; | ||
5311 | version = "5.1.2"; | ||
5312 | src = fetchurl { | ||
5313 | url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; | ||
5314 | sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; | ||
5315 | }; | ||
5316 | }; | ||
5317 | "safe-regex-1.1.0" = { | ||
5318 | name = "safe-regex"; | ||
5319 | packageName = "safe-regex"; | ||
5320 | version = "1.1.0"; | ||
5321 | src = fetchurl { | ||
5322 | url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"; | ||
5323 | sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; | ||
5324 | }; | ||
5325 | }; | ||
5326 | "safer-buffer-2.1.2" = { | ||
5327 | name = "safer-buffer"; | ||
5328 | packageName = "safer-buffer"; | ||
5329 | version = "2.1.2"; | ||
5330 | src = fetchurl { | ||
5331 | url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; | ||
5332 | sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; | ||
5333 | }; | ||
5334 | }; | ||
5335 | "safer-eval-1.3.6" = { | ||
5336 | name = "safer-eval"; | ||
5337 | packageName = "safer-eval"; | ||
5338 | version = "1.3.6"; | ||
5339 | src = fetchurl { | ||
5340 | url = "https://registry.npmjs.org/safer-eval/-/safer-eval-1.3.6.tgz"; | ||
5341 | sha512 = "DN9tBsZgtUOHODzSfO1nGCLhZtxc7Qq/d8/2SNxQZ9muYXZspSh1fO7HOsrf4lcelBNviAJLCxB/ggmG+jV1aw=="; | ||
5342 | }; | ||
5343 | }; | ||
5344 | "sax-1.2.4" = { | ||
5345 | name = "sax"; | ||
5346 | packageName = "sax"; | ||
5347 | version = "1.2.4"; | ||
5348 | src = fetchurl { | ||
5349 | url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; | ||
5350 | sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; | ||
5351 | }; | ||
5352 | }; | ||
5353 | "saxes-3.1.11" = { | ||
5354 | name = "saxes"; | ||
5355 | packageName = "saxes"; | ||
5356 | version = "3.1.11"; | ||
5357 | src = fetchurl { | ||
5358 | url = "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz"; | ||
5359 | sha512 = "Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g=="; | ||
5360 | }; | ||
5361 | }; | ||
5362 | "semver-5.7.1" = { | ||
5363 | name = "semver"; | ||
5364 | packageName = "semver"; | ||
5365 | version = "5.7.1"; | ||
5366 | src = fetchurl { | ||
5367 | url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; | ||
5368 | sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="; | ||
5369 | }; | ||
5370 | }; | ||
5371 | "send-0.17.1" = { | ||
5372 | name = "send"; | ||
5373 | packageName = "send"; | ||
5374 | version = "0.17.1"; | ||
5375 | src = fetchurl { | ||
5376 | url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; | ||
5377 | sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; | ||
5378 | }; | ||
5379 | }; | ||
5380 | "serialize-to-js-1.2.2" = { | ||
5381 | name = "serialize-to-js"; | ||
5382 | packageName = "serialize-to-js"; | ||
5383 | version = "1.2.2"; | ||
5384 | src = fetchurl { | ||
5385 | url = "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-1.2.2.tgz"; | ||
5386 | sha512 = "mUc8vA5iJghe+O+3s0YDGFLMJcqitVFk787YKiv8a4sf6RX5W0u81b+gcHrp15O0fFa010dRBVZvwcKXOWsL9Q=="; | ||
5387 | }; | ||
5388 | }; | ||
5389 | "serve-static-1.14.1" = { | ||
5390 | name = "serve-static"; | ||
5391 | packageName = "serve-static"; | ||
5392 | version = "1.14.1"; | ||
5393 | src = fetchurl { | ||
5394 | url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; | ||
5395 | sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; | ||
5396 | }; | ||
5397 | }; | ||
5398 | "set-blocking-2.0.0" = { | ||
5399 | name = "set-blocking"; | ||
5400 | packageName = "set-blocking"; | ||
5401 | version = "2.0.0"; | ||
5402 | src = fetchurl { | ||
5403 | url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; | ||
5404 | sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; | ||
5405 | }; | ||
5406 | }; | ||
5407 | "set-value-2.0.1" = { | ||
5408 | name = "set-value"; | ||
5409 | packageName = "set-value"; | ||
5410 | version = "2.0.1"; | ||
5411 | src = fetchurl { | ||
5412 | url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"; | ||
5413 | sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=="; | ||
5414 | }; | ||
5415 | }; | ||
5416 | "setimmediate-1.0.5" = { | ||
5417 | name = "setimmediate"; | ||
5418 | packageName = "setimmediate"; | ||
5419 | version = "1.0.5"; | ||
5420 | src = fetchurl { | ||
5421 | url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"; | ||
5422 | sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; | ||
5423 | }; | ||
5424 | }; | ||
5425 | "setprototypeof-1.1.1" = { | ||
5426 | name = "setprototypeof"; | ||
5427 | packageName = "setprototypeof"; | ||
5428 | version = "1.1.1"; | ||
5429 | src = fetchurl { | ||
5430 | url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; | ||
5431 | sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; | ||
5432 | }; | ||
5433 | }; | ||
5434 | "sha.js-2.4.11" = { | ||
5435 | name = "sha.js"; | ||
5436 | packageName = "sha.js"; | ||
5437 | version = "2.4.11"; | ||
5438 | src = fetchurl { | ||
5439 | url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz"; | ||
5440 | sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ=="; | ||
5441 | }; | ||
5442 | }; | ||
5443 | "shallow-copy-0.0.1" = { | ||
5444 | name = "shallow-copy"; | ||
5445 | packageName = "shallow-copy"; | ||
5446 | version = "0.0.1"; | ||
5447 | src = fetchurl { | ||
5448 | url = "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz"; | ||
5449 | sha1 = "415f42702d73d810330292cc5ee86eae1a11a170"; | ||
5450 | }; | ||
5451 | }; | ||
5452 | "shebang-command-1.2.0" = { | ||
5453 | name = "shebang-command"; | ||
5454 | packageName = "shebang-command"; | ||
5455 | version = "1.2.0"; | ||
5456 | src = fetchurl { | ||
5457 | url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"; | ||
5458 | sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; | ||
5459 | }; | ||
5460 | }; | ||
5461 | "shebang-regex-1.0.0" = { | ||
5462 | name = "shebang-regex"; | ||
5463 | packageName = "shebang-regex"; | ||
5464 | version = "1.0.0"; | ||
5465 | src = fetchurl { | ||
5466 | url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"; | ||
5467 | sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; | ||
5468 | }; | ||
5469 | }; | ||
5470 | "sigmund-1.0.1" = { | ||
5471 | name = "sigmund"; | ||
5472 | packageName = "sigmund"; | ||
5473 | version = "1.0.1"; | ||
5474 | src = fetchurl { | ||
5475 | url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"; | ||
5476 | sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590"; | ||
5477 | }; | ||
5478 | }; | ||
5479 | "signal-exit-3.0.3" = { | ||
5480 | name = "signal-exit"; | ||
5481 | packageName = "signal-exit"; | ||
5482 | version = "3.0.3"; | ||
5483 | src = fetchurl { | ||
5484 | url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"; | ||
5485 | sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="; | ||
5486 | }; | ||
5487 | }; | ||
5488 | "simple-swizzle-0.2.2" = { | ||
5489 | name = "simple-swizzle"; | ||
5490 | packageName = "simple-swizzle"; | ||
5491 | version = "0.2.2"; | ||
5492 | src = fetchurl { | ||
5493 | url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; | ||
5494 | sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a"; | ||
5495 | }; | ||
5496 | }; | ||
5497 | "snapdragon-0.8.2" = { | ||
5498 | name = "snapdragon"; | ||
5499 | packageName = "snapdragon"; | ||
5500 | version = "0.8.2"; | ||
5501 | src = fetchurl { | ||
5502 | url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"; | ||
5503 | sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg=="; | ||
5504 | }; | ||
5505 | }; | ||
5506 | "snapdragon-node-2.1.1" = { | ||
5507 | name = "snapdragon-node"; | ||
5508 | packageName = "snapdragon-node"; | ||
5509 | version = "2.1.1"; | ||
5510 | src = fetchurl { | ||
5511 | url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; | ||
5512 | sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw=="; | ||
5513 | }; | ||
5514 | }; | ||
5515 | "snapdragon-util-3.0.1" = { | ||
5516 | name = "snapdragon-util"; | ||
5517 | packageName = "snapdragon-util"; | ||
5518 | version = "3.0.1"; | ||
5519 | src = fetchurl { | ||
5520 | url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; | ||
5521 | sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ=="; | ||
5522 | }; | ||
5523 | }; | ||
5524 | "source-map-0.5.7" = { | ||
5525 | name = "source-map"; | ||
5526 | packageName = "source-map"; | ||
5527 | version = "0.5.7"; | ||
5528 | src = fetchurl { | ||
5529 | url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"; | ||
5530 | sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; | ||
5531 | }; | ||
5532 | }; | ||
5533 | "source-map-0.6.1" = { | ||
5534 | name = "source-map"; | ||
5535 | packageName = "source-map"; | ||
5536 | version = "0.6.1"; | ||
5537 | src = fetchurl { | ||
5538 | url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; | ||
5539 | sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; | ||
5540 | }; | ||
5541 | }; | ||
5542 | "source-map-resolve-0.5.3" = { | ||
5543 | name = "source-map-resolve"; | ||
5544 | packageName = "source-map-resolve"; | ||
5545 | version = "0.5.3"; | ||
5546 | src = fetchurl { | ||
5547 | url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"; | ||
5548 | sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw=="; | ||
5549 | }; | ||
5550 | }; | ||
5551 | "source-map-support-0.5.19" = { | ||
5552 | name = "source-map-support"; | ||
5553 | packageName = "source-map-support"; | ||
5554 | version = "0.5.19"; | ||
5555 | src = fetchurl { | ||
5556 | url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz"; | ||
5557 | sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw=="; | ||
5558 | }; | ||
5559 | }; | ||
5560 | "source-map-url-0.4.0" = { | ||
5561 | name = "source-map-url"; | ||
5562 | packageName = "source-map-url"; | ||
5563 | version = "0.4.0"; | ||
5564 | src = fetchurl { | ||
5565 | url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"; | ||
5566 | sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3"; | ||
5567 | }; | ||
5568 | }; | ||
5569 | "split-string-3.1.0" = { | ||
5570 | name = "split-string"; | ||
5571 | packageName = "split-string"; | ||
5572 | version = "3.1.0"; | ||
5573 | src = fetchurl { | ||
5574 | url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"; | ||
5575 | sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="; | ||
5576 | }; | ||
5577 | }; | ||
5578 | "sprintf-js-1.0.3" = { | ||
5579 | name = "sprintf-js"; | ||
5580 | packageName = "sprintf-js"; | ||
5581 | version = "1.0.3"; | ||
5582 | src = fetchurl { | ||
5583 | url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; | ||
5584 | sha1 = "04e6926f662895354f3dd015203633b857297e2c"; | ||
5585 | }; | ||
5586 | }; | ||
5587 | "sshpk-1.16.1" = { | ||
5588 | name = "sshpk"; | ||
5589 | packageName = "sshpk"; | ||
5590 | version = "1.16.1"; | ||
5591 | src = fetchurl { | ||
5592 | url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; | ||
5593 | sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; | ||
5594 | }; | ||
5595 | }; | ||
5596 | "stable-0.1.8" = { | ||
5597 | name = "stable"; | ||
5598 | packageName = "stable"; | ||
5599 | version = "0.1.8"; | ||
5600 | src = fetchurl { | ||
5601 | url = "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz"; | ||
5602 | sha512 = "ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="; | ||
5603 | }; | ||
5604 | }; | ||
5605 | "static-eval-2.0.5" = { | ||
5606 | name = "static-eval"; | ||
5607 | packageName = "static-eval"; | ||
5608 | version = "2.0.5"; | ||
5609 | src = fetchurl { | ||
5610 | url = "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz"; | ||
5611 | sha512 = "nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA=="; | ||
5612 | }; | ||
5613 | }; | ||
5614 | "static-extend-0.1.2" = { | ||
5615 | name = "static-extend"; | ||
5616 | packageName = "static-extend"; | ||
5617 | version = "0.1.2"; | ||
5618 | src = fetchurl { | ||
5619 | url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"; | ||
5620 | sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; | ||
5621 | }; | ||
5622 | }; | ||
5623 | "static-module-2.2.5" = { | ||
5624 | name = "static-module"; | ||
5625 | packageName = "static-module"; | ||
5626 | version = "2.2.5"; | ||
5627 | src = fetchurl { | ||
5628 | url = "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz"; | ||
5629 | sha512 = "D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ=="; | ||
5630 | }; | ||
5631 | }; | ||
5632 | "statuses-1.5.0" = { | ||
5633 | name = "statuses"; | ||
5634 | packageName = "statuses"; | ||
5635 | version = "1.5.0"; | ||
5636 | src = fetchurl { | ||
5637 | url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; | ||
5638 | sha1 = "161c7dac177659fd9811f43771fa99381478628c"; | ||
5639 | }; | ||
5640 | }; | ||
5641 | "stealthy-require-1.1.1" = { | ||
5642 | name = "stealthy-require"; | ||
5643 | packageName = "stealthy-require"; | ||
5644 | version = "1.1.1"; | ||
5645 | src = fetchurl { | ||
5646 | url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"; | ||
5647 | sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b"; | ||
5648 | }; | ||
5649 | }; | ||
5650 | "stream-browserify-2.0.2" = { | ||
5651 | name = "stream-browserify"; | ||
5652 | packageName = "stream-browserify"; | ||
5653 | version = "2.0.2"; | ||
5654 | src = fetchurl { | ||
5655 | url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz"; | ||
5656 | sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg=="; | ||
5657 | }; | ||
5658 | }; | ||
5659 | "stream-http-2.8.3" = { | ||
5660 | name = "stream-http"; | ||
5661 | packageName = "stream-http"; | ||
5662 | version = "2.8.3"; | ||
5663 | src = fetchurl { | ||
5664 | url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz"; | ||
5665 | sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw=="; | ||
5666 | }; | ||
5667 | }; | ||
5668 | "string-width-3.1.0" = { | ||
5669 | name = "string-width"; | ||
5670 | packageName = "string-width"; | ||
5671 | version = "3.1.0"; | ||
5672 | src = fetchurl { | ||
5673 | url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"; | ||
5674 | sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; | ||
5675 | }; | ||
5676 | }; | ||
5677 | "string.prototype.trimend-1.0.1" = { | ||
5678 | name = "string.prototype.trimend"; | ||
5679 | packageName = "string.prototype.trimend"; | ||
5680 | version = "1.0.1"; | ||
5681 | src = fetchurl { | ||
5682 | url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz"; | ||
5683 | sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g=="; | ||
5684 | }; | ||
5685 | }; | ||
5686 | "string.prototype.trimleft-2.1.2" = { | ||
5687 | name = "string.prototype.trimleft"; | ||
5688 | packageName = "string.prototype.trimleft"; | ||
5689 | version = "2.1.2"; | ||
5690 | src = fetchurl { | ||
5691 | url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz"; | ||
5692 | sha512 = "gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw=="; | ||
5693 | }; | ||
5694 | }; | ||
5695 | "string.prototype.trimright-2.1.2" = { | ||
5696 | name = "string.prototype.trimright"; | ||
5697 | packageName = "string.prototype.trimright"; | ||
5698 | version = "2.1.2"; | ||
5699 | src = fetchurl { | ||
5700 | url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz"; | ||
5701 | sha512 = "ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg=="; | ||
5702 | }; | ||
5703 | }; | ||
5704 | "string.prototype.trimstart-1.0.1" = { | ||
5705 | name = "string.prototype.trimstart"; | ||
5706 | packageName = "string.prototype.trimstart"; | ||
5707 | version = "1.0.1"; | ||
5708 | src = fetchurl { | ||
5709 | url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz"; | ||
5710 | sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw=="; | ||
5711 | }; | ||
5712 | }; | ||
5713 | "string_decoder-1.1.1" = { | ||
5714 | name = "string_decoder"; | ||
5715 | packageName = "string_decoder"; | ||
5716 | version = "1.1.1"; | ||
5717 | src = fetchurl { | ||
5718 | url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; | ||
5719 | sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; | ||
5720 | }; | ||
5721 | }; | ||
5722 | "strip-ansi-3.0.1" = { | ||
5723 | name = "strip-ansi"; | ||
5724 | packageName = "strip-ansi"; | ||
5725 | version = "3.0.1"; | ||
5726 | src = fetchurl { | ||
5727 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; | ||
5728 | sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; | ||
5729 | }; | ||
5730 | }; | ||
5731 | "strip-ansi-4.0.0" = { | ||
5732 | name = "strip-ansi"; | ||
5733 | packageName = "strip-ansi"; | ||
5734 | version = "4.0.0"; | ||
5735 | src = fetchurl { | ||
5736 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; | ||
5737 | sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; | ||
5738 | }; | ||
5739 | }; | ||
5740 | "strip-ansi-5.2.0" = { | ||
5741 | name = "strip-ansi"; | ||
5742 | packageName = "strip-ansi"; | ||
5743 | version = "5.2.0"; | ||
5744 | src = fetchurl { | ||
5745 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"; | ||
5746 | sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="; | ||
5747 | }; | ||
5748 | }; | ||
5749 | "stylehacks-4.0.3" = { | ||
5750 | name = "stylehacks"; | ||
5751 | packageName = "stylehacks"; | ||
5752 | version = "4.0.3"; | ||
5753 | src = fetchurl { | ||
5754 | url = "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz"; | ||
5755 | sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g=="; | ||
5756 | }; | ||
5757 | }; | ||
5758 | "supports-color-2.0.0" = { | ||
5759 | name = "supports-color"; | ||
5760 | packageName = "supports-color"; | ||
5761 | version = "2.0.0"; | ||
5762 | src = fetchurl { | ||
5763 | url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; | ||
5764 | sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; | ||
5765 | }; | ||
5766 | }; | ||
5767 | "supports-color-3.2.3" = { | ||
5768 | name = "supports-color"; | ||
5769 | packageName = "supports-color"; | ||
5770 | version = "3.2.3"; | ||
5771 | src = fetchurl { | ||
5772 | url = "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"; | ||
5773 | sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"; | ||
5774 | }; | ||
5775 | }; | ||
5776 | "supports-color-5.5.0" = { | ||
5777 | name = "supports-color"; | ||
5778 | packageName = "supports-color"; | ||
5779 | version = "5.5.0"; | ||
5780 | src = fetchurl { | ||
5781 | url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; | ||
5782 | sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; | ||
5783 | }; | ||
5784 | }; | ||
5785 | "supports-color-6.1.0" = { | ||
5786 | name = "supports-color"; | ||
5787 | packageName = "supports-color"; | ||
5788 | version = "6.1.0"; | ||
5789 | src = fetchurl { | ||
5790 | url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"; | ||
5791 | sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ=="; | ||
5792 | }; | ||
5793 | }; | ||
5794 | "svgo-1.3.2" = { | ||
5795 | name = "svgo"; | ||
5796 | packageName = "svgo"; | ||
5797 | version = "1.3.2"; | ||
5798 | src = fetchurl { | ||
5799 | url = "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz"; | ||
5800 | sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw=="; | ||
5801 | }; | ||
5802 | }; | ||
5803 | "symbol-tree-3.2.4" = { | ||
5804 | name = "symbol-tree"; | ||
5805 | packageName = "symbol-tree"; | ||
5806 | version = "3.2.4"; | ||
5807 | src = fetchurl { | ||
5808 | url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"; | ||
5809 | sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="; | ||
5810 | }; | ||
5811 | }; | ||
5812 | "temp-0.9.0" = { | ||
5813 | name = "temp"; | ||
5814 | packageName = "temp"; | ||
5815 | version = "0.9.0"; | ||
5816 | src = fetchurl { | ||
5817 | url = "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz"; | ||
5818 | sha512 = "YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ=="; | ||
5819 | }; | ||
5820 | }; | ||
5821 | "terser-3.17.0" = { | ||
5822 | name = "terser"; | ||
5823 | packageName = "terser"; | ||
5824 | version = "3.17.0"; | ||
5825 | src = fetchurl { | ||
5826 | url = "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz"; | ||
5827 | sha512 = "/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ=="; | ||
5828 | }; | ||
5829 | }; | ||
5830 | "terser-4.6.12" = { | ||
5831 | name = "terser"; | ||
5832 | packageName = "terser"; | ||
5833 | version = "4.6.12"; | ||
5834 | src = fetchurl { | ||
5835 | url = "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz"; | ||
5836 | sha512 = "fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww=="; | ||
5837 | }; | ||
5838 | }; | ||
5839 | "through2-2.0.5" = { | ||
5840 | name = "through2"; | ||
5841 | packageName = "through2"; | ||
5842 | version = "2.0.5"; | ||
5843 | src = fetchurl { | ||
5844 | url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"; | ||
5845 | sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="; | ||
5846 | }; | ||
5847 | }; | ||
5848 | "timers-browserify-2.0.11" = { | ||
5849 | name = "timers-browserify"; | ||
5850 | packageName = "timers-browserify"; | ||
5851 | version = "2.0.11"; | ||
5852 | src = fetchurl { | ||
5853 | url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz"; | ||
5854 | sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ=="; | ||
5855 | }; | ||
5856 | }; | ||
5857 | "timsort-0.3.0" = { | ||
5858 | name = "timsort"; | ||
5859 | packageName = "timsort"; | ||
5860 | version = "0.3.0"; | ||
5861 | src = fetchurl { | ||
5862 | url = "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz"; | ||
5863 | sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4"; | ||
5864 | }; | ||
5865 | }; | ||
5866 | "tiny-inflate-1.0.3" = { | ||
5867 | name = "tiny-inflate"; | ||
5868 | packageName = "tiny-inflate"; | ||
5869 | version = "1.0.3"; | ||
5870 | src = fetchurl { | ||
5871 | url = "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz"; | ||
5872 | sha512 = "pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="; | ||
5873 | }; | ||
5874 | }; | ||
5875 | "to-arraybuffer-1.0.1" = { | ||
5876 | name = "to-arraybuffer"; | ||
5877 | packageName = "to-arraybuffer"; | ||
5878 | version = "1.0.1"; | ||
5879 | src = fetchurl { | ||
5880 | url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; | ||
5881 | sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; | ||
5882 | }; | ||
5883 | }; | ||
5884 | "to-fast-properties-1.0.3" = { | ||
5885 | name = "to-fast-properties"; | ||
5886 | packageName = "to-fast-properties"; | ||
5887 | version = "1.0.3"; | ||
5888 | src = fetchurl { | ||
5889 | url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"; | ||
5890 | sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47"; | ||
5891 | }; | ||
5892 | }; | ||
5893 | "to-fast-properties-2.0.0" = { | ||
5894 | name = "to-fast-properties"; | ||
5895 | packageName = "to-fast-properties"; | ||
5896 | version = "2.0.0"; | ||
5897 | src = fetchurl { | ||
5898 | url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"; | ||
5899 | sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e"; | ||
5900 | }; | ||
5901 | }; | ||
5902 | "to-object-path-0.3.0" = { | ||
5903 | name = "to-object-path"; | ||
5904 | packageName = "to-object-path"; | ||
5905 | version = "0.3.0"; | ||
5906 | src = fetchurl { | ||
5907 | url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"; | ||
5908 | sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af"; | ||
5909 | }; | ||
5910 | }; | ||
5911 | "to-regex-3.0.2" = { | ||
5912 | name = "to-regex"; | ||
5913 | packageName = "to-regex"; | ||
5914 | version = "3.0.2"; | ||
5915 | src = fetchurl { | ||
5916 | url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"; | ||
5917 | sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw=="; | ||
5918 | }; | ||
5919 | }; | ||
5920 | "to-regex-range-2.1.1" = { | ||
5921 | name = "to-regex-range"; | ||
5922 | packageName = "to-regex-range"; | ||
5923 | version = "2.1.1"; | ||
5924 | src = fetchurl { | ||
5925 | url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"; | ||
5926 | sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38"; | ||
5927 | }; | ||
5928 | }; | ||
5929 | "toidentifier-1.0.0" = { | ||
5930 | name = "toidentifier"; | ||
5931 | packageName = "toidentifier"; | ||
5932 | version = "1.0.0"; | ||
5933 | src = fetchurl { | ||
5934 | url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; | ||
5935 | sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; | ||
5936 | }; | ||
5937 | }; | ||
5938 | "tough-cookie-2.5.0" = { | ||
5939 | name = "tough-cookie"; | ||
5940 | packageName = "tough-cookie"; | ||
5941 | version = "2.5.0"; | ||
5942 | src = fetchurl { | ||
5943 | url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; | ||
5944 | sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; | ||
5945 | }; | ||
5946 | }; | ||
5947 | "tr46-1.0.1" = { | ||
5948 | name = "tr46"; | ||
5949 | packageName = "tr46"; | ||
5950 | version = "1.0.1"; | ||
5951 | src = fetchurl { | ||
5952 | url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz"; | ||
5953 | sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09"; | ||
5954 | }; | ||
5955 | }; | ||
5956 | "trim-right-1.0.1" = { | ||
5957 | name = "trim-right"; | ||
5958 | packageName = "trim-right"; | ||
5959 | version = "1.0.1"; | ||
5960 | src = fetchurl { | ||
5961 | url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"; | ||
5962 | sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003"; | ||
5963 | }; | ||
5964 | }; | ||
5965 | "tty-browserify-0.0.0" = { | ||
5966 | name = "tty-browserify"; | ||
5967 | packageName = "tty-browserify"; | ||
5968 | version = "0.0.0"; | ||
5969 | src = fetchurl { | ||
5970 | url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz"; | ||
5971 | sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6"; | ||
5972 | }; | ||
5973 | }; | ||
5974 | "tunnel-agent-0.6.0" = { | ||
5975 | name = "tunnel-agent"; | ||
5976 | packageName = "tunnel-agent"; | ||
5977 | version = "0.6.0"; | ||
5978 | src = fetchurl { | ||
5979 | url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; | ||
5980 | sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; | ||
5981 | }; | ||
5982 | }; | ||
5983 | "tweetnacl-0.14.5" = { | ||
5984 | name = "tweetnacl"; | ||
5985 | packageName = "tweetnacl"; | ||
5986 | version = "0.14.5"; | ||
5987 | src = fetchurl { | ||
5988 | url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; | ||
5989 | sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; | ||
5990 | }; | ||
5991 | }; | ||
5992 | "type-check-0.3.2" = { | ||
5993 | name = "type-check"; | ||
5994 | packageName = "type-check"; | ||
5995 | version = "0.3.2"; | ||
5996 | src = fetchurl { | ||
5997 | url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"; | ||
5998 | sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; | ||
5999 | }; | ||
6000 | }; | ||
6001 | "typedarray-0.0.6" = { | ||
6002 | name = "typedarray"; | ||
6003 | packageName = "typedarray"; | ||
6004 | version = "0.0.6"; | ||
6005 | src = fetchurl { | ||
6006 | url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"; | ||
6007 | sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; | ||
6008 | }; | ||
6009 | }; | ||
6010 | "uncss-0.17.3" = { | ||
6011 | name = "uncss"; | ||
6012 | packageName = "uncss"; | ||
6013 | version = "0.17.3"; | ||
6014 | src = fetchurl { | ||
6015 | url = "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz"; | ||
6016 | sha512 = "ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog=="; | ||
6017 | }; | ||
6018 | }; | ||
6019 | "unicode-canonical-property-names-ecmascript-1.0.4" = { | ||
6020 | name = "unicode-canonical-property-names-ecmascript"; | ||
6021 | packageName = "unicode-canonical-property-names-ecmascript"; | ||
6022 | version = "1.0.4"; | ||
6023 | src = fetchurl { | ||
6024 | url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz"; | ||
6025 | sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="; | ||
6026 | }; | ||
6027 | }; | ||
6028 | "unicode-match-property-ecmascript-1.0.4" = { | ||
6029 | name = "unicode-match-property-ecmascript"; | ||
6030 | packageName = "unicode-match-property-ecmascript"; | ||
6031 | version = "1.0.4"; | ||
6032 | src = fetchurl { | ||
6033 | url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz"; | ||
6034 | sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg=="; | ||
6035 | }; | ||
6036 | }; | ||
6037 | "unicode-match-property-value-ecmascript-1.2.0" = { | ||
6038 | name = "unicode-match-property-value-ecmascript"; | ||
6039 | packageName = "unicode-match-property-value-ecmascript"; | ||
6040 | version = "1.2.0"; | ||
6041 | src = fetchurl { | ||
6042 | url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz"; | ||
6043 | sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ=="; | ||
6044 | }; | ||
6045 | }; | ||
6046 | "unicode-property-aliases-ecmascript-1.1.0" = { | ||
6047 | name = "unicode-property-aliases-ecmascript"; | ||
6048 | packageName = "unicode-property-aliases-ecmascript"; | ||
6049 | version = "1.1.0"; | ||
6050 | src = fetchurl { | ||
6051 | url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz"; | ||
6052 | sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="; | ||
6053 | }; | ||
6054 | }; | ||
6055 | "unicode-trie-0.3.1" = { | ||
6056 | name = "unicode-trie"; | ||
6057 | packageName = "unicode-trie"; | ||
6058 | version = "0.3.1"; | ||
6059 | src = fetchurl { | ||
6060 | url = "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz"; | ||
6061 | sha1 = "d671dddd89101a08bac37b6a5161010602052085"; | ||
6062 | }; | ||
6063 | }; | ||
6064 | "union-value-1.0.1" = { | ||
6065 | name = "union-value"; | ||
6066 | packageName = "union-value"; | ||
6067 | version = "1.0.1"; | ||
6068 | src = fetchurl { | ||
6069 | url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"; | ||
6070 | sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg=="; | ||
6071 | }; | ||
6072 | }; | ||
6073 | "uniq-1.0.1" = { | ||
6074 | name = "uniq"; | ||
6075 | packageName = "uniq"; | ||
6076 | version = "1.0.1"; | ||
6077 | src = fetchurl { | ||
6078 | url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"; | ||
6079 | sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff"; | ||
6080 | }; | ||
6081 | }; | ||
6082 | "uniqs-2.0.0" = { | ||
6083 | name = "uniqs"; | ||
6084 | packageName = "uniqs"; | ||
6085 | version = "2.0.0"; | ||
6086 | src = fetchurl { | ||
6087 | url = "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz"; | ||
6088 | sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02"; | ||
6089 | }; | ||
6090 | }; | ||
6091 | "unquote-1.1.1" = { | ||
6092 | name = "unquote"; | ||
6093 | packageName = "unquote"; | ||
6094 | version = "1.1.1"; | ||
6095 | src = fetchurl { | ||
6096 | url = "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz"; | ||
6097 | sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544"; | ||
6098 | }; | ||
6099 | }; | ||
6100 | "unset-value-1.0.0" = { | ||
6101 | name = "unset-value"; | ||
6102 | packageName = "unset-value"; | ||
6103 | version = "1.0.0"; | ||
6104 | src = fetchurl { | ||
6105 | url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"; | ||
6106 | sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; | ||
6107 | }; | ||
6108 | }; | ||
6109 | "upath-1.2.0" = { | ||
6110 | name = "upath"; | ||
6111 | packageName = "upath"; | ||
6112 | version = "1.2.0"; | ||
6113 | src = fetchurl { | ||
6114 | url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"; | ||
6115 | sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="; | ||
6116 | }; | ||
6117 | }; | ||
6118 | "uri-js-4.2.2" = { | ||
6119 | name = "uri-js"; | ||
6120 | packageName = "uri-js"; | ||
6121 | version = "4.2.2"; | ||
6122 | src = fetchurl { | ||
6123 | url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"; | ||
6124 | sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="; | ||
6125 | }; | ||
6126 | }; | ||
6127 | "urix-0.1.0" = { | ||
6128 | name = "urix"; | ||
6129 | packageName = "urix"; | ||
6130 | version = "0.1.0"; | ||
6131 | src = fetchurl { | ||
6132 | url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"; | ||
6133 | sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; | ||
6134 | }; | ||
6135 | }; | ||
6136 | "url-0.11.0" = { | ||
6137 | name = "url"; | ||
6138 | packageName = "url"; | ||
6139 | version = "0.11.0"; | ||
6140 | src = fetchurl { | ||
6141 | url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz"; | ||
6142 | sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; | ||
6143 | }; | ||
6144 | }; | ||
6145 | "use-3.1.1" = { | ||
6146 | name = "use"; | ||
6147 | packageName = "use"; | ||
6148 | version = "3.1.1"; | ||
6149 | src = fetchurl { | ||
6150 | url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz"; | ||
6151 | sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="; | ||
6152 | }; | ||
6153 | }; | ||
6154 | "util-0.10.3" = { | ||
6155 | name = "util"; | ||
6156 | packageName = "util"; | ||
6157 | version = "0.10.3"; | ||
6158 | src = fetchurl { | ||
6159 | url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz"; | ||
6160 | sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; | ||
6161 | }; | ||
6162 | }; | ||
6163 | "util-0.11.1" = { | ||
6164 | name = "util"; | ||
6165 | packageName = "util"; | ||
6166 | version = "0.11.1"; | ||
6167 | src = fetchurl { | ||
6168 | url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz"; | ||
6169 | sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ=="; | ||
6170 | }; | ||
6171 | }; | ||
6172 | "util-deprecate-1.0.2" = { | ||
6173 | name = "util-deprecate"; | ||
6174 | packageName = "util-deprecate"; | ||
6175 | version = "1.0.2"; | ||
6176 | src = fetchurl { | ||
6177 | url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; | ||
6178 | sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; | ||
6179 | }; | ||
6180 | }; | ||
6181 | "util.promisify-1.0.1" = { | ||
6182 | name = "util.promisify"; | ||
6183 | packageName = "util.promisify"; | ||
6184 | version = "1.0.1"; | ||
6185 | src = fetchurl { | ||
6186 | url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz"; | ||
6187 | sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA=="; | ||
6188 | }; | ||
6189 | }; | ||
6190 | "uuid-3.4.0" = { | ||
6191 | name = "uuid"; | ||
6192 | packageName = "uuid"; | ||
6193 | version = "3.4.0"; | ||
6194 | src = fetchurl { | ||
6195 | url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; | ||
6196 | sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; | ||
6197 | }; | ||
6198 | }; | ||
6199 | "v8-compile-cache-2.1.0" = { | ||
6200 | name = "v8-compile-cache"; | ||
6201 | packageName = "v8-compile-cache"; | ||
6202 | version = "2.1.0"; | ||
6203 | src = fetchurl { | ||
6204 | url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz"; | ||
6205 | sha512 = "usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g=="; | ||
6206 | }; | ||
6207 | }; | ||
6208 | "vendors-1.0.4" = { | ||
6209 | name = "vendors"; | ||
6210 | packageName = "vendors"; | ||
6211 | version = "1.0.4"; | ||
6212 | src = fetchurl { | ||
6213 | url = "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz"; | ||
6214 | sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w=="; | ||
6215 | }; | ||
6216 | }; | ||
6217 | "verror-1.10.0" = { | ||
6218 | name = "verror"; | ||
6219 | packageName = "verror"; | ||
6220 | version = "1.10.0"; | ||
6221 | src = fetchurl { | ||
6222 | url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; | ||
6223 | sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; | ||
6224 | }; | ||
6225 | }; | ||
6226 | "vlq-0.2.3" = { | ||
6227 | name = "vlq"; | ||
6228 | packageName = "vlq"; | ||
6229 | version = "0.2.3"; | ||
6230 | src = fetchurl { | ||
6231 | url = "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz"; | ||
6232 | sha512 = "DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow=="; | ||
6233 | }; | ||
6234 | }; | ||
6235 | "vm-browserify-1.1.2" = { | ||
6236 | name = "vm-browserify"; | ||
6237 | packageName = "vm-browserify"; | ||
6238 | version = "1.1.2"; | ||
6239 | src = fetchurl { | ||
6240 | url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz"; | ||
6241 | sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="; | ||
6242 | }; | ||
6243 | }; | ||
6244 | "w3c-hr-time-1.0.2" = { | ||
6245 | name = "w3c-hr-time"; | ||
6246 | packageName = "w3c-hr-time"; | ||
6247 | version = "1.0.2"; | ||
6248 | src = fetchurl { | ||
6249 | url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz"; | ||
6250 | sha512 = "z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ=="; | ||
6251 | }; | ||
6252 | }; | ||
6253 | "w3c-xmlserializer-1.1.2" = { | ||
6254 | name = "w3c-xmlserializer"; | ||
6255 | packageName = "w3c-xmlserializer"; | ||
6256 | version = "1.1.2"; | ||
6257 | src = fetchurl { | ||
6258 | url = "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz"; | ||
6259 | sha512 = "p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg=="; | ||
6260 | }; | ||
6261 | }; | ||
6262 | "wcwidth-1.0.1" = { | ||
6263 | name = "wcwidth"; | ||
6264 | packageName = "wcwidth"; | ||
6265 | version = "1.0.1"; | ||
6266 | src = fetchurl { | ||
6267 | url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz"; | ||
6268 | sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"; | ||
6269 | }; | ||
6270 | }; | ||
6271 | "webidl-conversions-4.0.2" = { | ||
6272 | name = "webidl-conversions"; | ||
6273 | packageName = "webidl-conversions"; | ||
6274 | version = "4.0.2"; | ||
6275 | src = fetchurl { | ||
6276 | url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz"; | ||
6277 | sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="; | ||
6278 | }; | ||
6279 | }; | ||
6280 | "whatwg-encoding-1.0.5" = { | ||
6281 | name = "whatwg-encoding"; | ||
6282 | packageName = "whatwg-encoding"; | ||
6283 | version = "1.0.5"; | ||
6284 | src = fetchurl { | ||
6285 | url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz"; | ||
6286 | sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw=="; | ||
6287 | }; | ||
6288 | }; | ||
6289 | "whatwg-mimetype-2.3.0" = { | ||
6290 | name = "whatwg-mimetype"; | ||
6291 | packageName = "whatwg-mimetype"; | ||
6292 | version = "2.3.0"; | ||
6293 | src = fetchurl { | ||
6294 | url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz"; | ||
6295 | sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="; | ||
6296 | }; | ||
6297 | }; | ||
6298 | "whatwg-url-7.1.0" = { | ||
6299 | name = "whatwg-url"; | ||
6300 | packageName = "whatwg-url"; | ||
6301 | version = "7.1.0"; | ||
6302 | src = fetchurl { | ||
6303 | url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz"; | ||
6304 | sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="; | ||
6305 | }; | ||
6306 | }; | ||
6307 | "which-1.3.1" = { | ||
6308 | name = "which"; | ||
6309 | packageName = "which"; | ||
6310 | version = "1.3.1"; | ||
6311 | src = fetchurl { | ||
6312 | url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz"; | ||
6313 | sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="; | ||
6314 | }; | ||
6315 | }; | ||
6316 | "which-module-2.0.0" = { | ||
6317 | name = "which-module"; | ||
6318 | packageName = "which-module"; | ||
6319 | version = "2.0.0"; | ||
6320 | src = fetchurl { | ||
6321 | url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"; | ||
6322 | sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; | ||
6323 | }; | ||
6324 | }; | ||
6325 | "word-wrap-1.2.3" = { | ||
6326 | name = "word-wrap"; | ||
6327 | packageName = "word-wrap"; | ||
6328 | version = "1.2.3"; | ||
6329 | src = fetchurl { | ||
6330 | url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"; | ||
6331 | sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; | ||
6332 | }; | ||
6333 | }; | ||
6334 | "wrap-ansi-5.1.0" = { | ||
6335 | name = "wrap-ansi"; | ||
6336 | packageName = "wrap-ansi"; | ||
6337 | version = "5.1.0"; | ||
6338 | src = fetchurl { | ||
6339 | url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"; | ||
6340 | sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="; | ||
6341 | }; | ||
6342 | }; | ||
6343 | "wrappy-1.0.2" = { | ||
6344 | name = "wrappy"; | ||
6345 | packageName = "wrappy"; | ||
6346 | version = "1.0.2"; | ||
6347 | src = fetchurl { | ||
6348 | url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; | ||
6349 | sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; | ||
6350 | }; | ||
6351 | }; | ||
6352 | "ws-5.2.2" = { | ||
6353 | name = "ws"; | ||
6354 | packageName = "ws"; | ||
6355 | version = "5.2.2"; | ||
6356 | src = fetchurl { | ||
6357 | url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz"; | ||
6358 | sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA=="; | ||
6359 | }; | ||
6360 | }; | ||
6361 | "ws-6.2.1" = { | ||
6362 | name = "ws"; | ||
6363 | packageName = "ws"; | ||
6364 | version = "6.2.1"; | ||
6365 | src = fetchurl { | ||
6366 | url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz"; | ||
6367 | sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA=="; | ||
6368 | }; | ||
6369 | }; | ||
6370 | "xml-name-validator-3.0.0" = { | ||
6371 | name = "xml-name-validator"; | ||
6372 | packageName = "xml-name-validator"; | ||
6373 | version = "3.0.0"; | ||
6374 | src = fetchurl { | ||
6375 | url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz"; | ||
6376 | sha512 = "A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="; | ||
6377 | }; | ||
6378 | }; | ||
6379 | "xmlchars-2.2.0" = { | ||
6380 | name = "xmlchars"; | ||
6381 | packageName = "xmlchars"; | ||
6382 | version = "2.2.0"; | ||
6383 | src = fetchurl { | ||
6384 | url = "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz"; | ||
6385 | sha512 = "JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="; | ||
6386 | }; | ||
6387 | }; | ||
6388 | "xtend-4.0.2" = { | ||
6389 | name = "xtend"; | ||
6390 | packageName = "xtend"; | ||
6391 | version = "4.0.2"; | ||
6392 | src = fetchurl { | ||
6393 | url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; | ||
6394 | sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; | ||
6395 | }; | ||
6396 | }; | ||
6397 | "y18n-4.0.0" = { | ||
6398 | name = "y18n"; | ||
6399 | packageName = "y18n"; | ||
6400 | version = "4.0.0"; | ||
6401 | src = fetchurl { | ||
6402 | url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz"; | ||
6403 | sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="; | ||
6404 | }; | ||
6405 | }; | ||
6406 | "yallist-2.1.2" = { | ||
6407 | name = "yallist"; | ||
6408 | packageName = "yallist"; | ||
6409 | version = "2.1.2"; | ||
6410 | src = fetchurl { | ||
6411 | url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; | ||
6412 | sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; | ||
6413 | }; | ||
6414 | }; | ||
6415 | "yargs-14.2.3" = { | ||
6416 | name = "yargs"; | ||
6417 | packageName = "yargs"; | ||
6418 | version = "14.2.3"; | ||
6419 | src = fetchurl { | ||
6420 | url = "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz"; | ||
6421 | sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg=="; | ||
6422 | }; | ||
6423 | }; | ||
6424 | "yargs-parser-15.0.1" = { | ||
6425 | name = "yargs-parser"; | ||
6426 | packageName = "yargs-parser"; | ||
6427 | version = "15.0.1"; | ||
6428 | src = fetchurl { | ||
6429 | url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz"; | ||
6430 | sha512 = "0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw=="; | ||
6431 | }; | ||
6432 | }; | ||
6433 | }; | ||
6434 | args = { | ||
6435 | name = "codenamesgreen"; | ||
6436 | packageName = "codenamesgreen"; | ||
6437 | version = "1.0.0"; | ||
6438 | src = let | ||
6439 | upstream = fetchFromGitHub { | ||
6440 | owner = "jbowens"; | ||
6441 | repo = "codenamesgreen"; | ||
6442 | rev = "6d014d0df14bee72495e01f12885ef31cba3bd6b"; | ||
6443 | sha256 = "0bkaf52rnjw792q0755in4k5jbcrmgq06cl03fdl6zdr8kq2mhm0"; | ||
6444 | }; | ||
6445 | in | ||
6446 | runCommand "codenamesgreen-src" {} '' | ||
6447 | cp -a ${upstream} $out | ||
6448 | chmod -R u+w $out | ||
6449 | cd $out | ||
6450 | patch -p1 < ${./codenames.patch} | ||
6451 | ''; | ||
6452 | dependencies = [ | ||
6453 | sources."@babel/code-frame-7.0.0" | ||
6454 | (sources."@babel/core-7.3.4" // { | ||
6455 | dependencies = [ | ||
6456 | sources."json5-2.1.3" | ||
6457 | sources."source-map-0.5.7" | ||
6458 | ]; | ||
6459 | }) | ||
6460 | (sources."@babel/generator-7.3.4" // { | ||
6461 | dependencies = [ | ||
6462 | sources."source-map-0.5.7" | ||
6463 | ]; | ||
6464 | }) | ||
6465 | (sources."@babel/helper-annotate-as-pure-7.8.3" // { | ||
6466 | dependencies = [ | ||
6467 | sources."@babel/types-7.9.5" | ||
6468 | ]; | ||
6469 | }) | ||
6470 | (sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3" // { | ||
6471 | dependencies = [ | ||
6472 | sources."@babel/types-7.9.5" | ||
6473 | ]; | ||
6474 | }) | ||
6475 | (sources."@babel/helper-builder-react-jsx-7.9.0" // { | ||
6476 | dependencies = [ | ||
6477 | sources."@babel/types-7.9.5" | ||
6478 | ]; | ||
6479 | }) | ||
6480 | sources."@babel/helper-create-regexp-features-plugin-7.8.8" | ||
6481 | (sources."@babel/helper-define-map-7.8.3" // { | ||
6482 | dependencies = [ | ||
6483 | sources."@babel/types-7.9.5" | ||
6484 | ]; | ||
6485 | }) | ||
6486 | (sources."@babel/helper-explode-assignable-expression-7.8.3" // { | ||
6487 | dependencies = [ | ||
6488 | sources."@babel/code-frame-7.8.3" | ||
6489 | sources."@babel/generator-7.9.5" | ||
6490 | sources."@babel/parser-7.9.4" | ||
6491 | sources."@babel/traverse-7.9.5" | ||
6492 | sources."@babel/types-7.9.5" | ||
6493 | sources."source-map-0.5.7" | ||
6494 | ]; | ||
6495 | }) | ||
6496 | (sources."@babel/helper-function-name-7.9.5" // { | ||
6497 | dependencies = [ | ||
6498 | sources."@babel/code-frame-7.8.3" | ||
6499 | sources."@babel/parser-7.9.4" | ||
6500 | sources."@babel/template-7.8.6" | ||
6501 | sources."@babel/types-7.9.5" | ||
6502 | ]; | ||
6503 | }) | ||
6504 | (sources."@babel/helper-get-function-arity-7.8.3" // { | ||
6505 | dependencies = [ | ||
6506 | sources."@babel/types-7.9.5" | ||
6507 | ]; | ||
6508 | }) | ||
6509 | (sources."@babel/helper-hoist-variables-7.8.3" // { | ||
6510 | dependencies = [ | ||
6511 | sources."@babel/types-7.9.5" | ||
6512 | ]; | ||
6513 | }) | ||
6514 | (sources."@babel/helper-member-expression-to-functions-7.8.3" // { | ||
6515 | dependencies = [ | ||
6516 | sources."@babel/types-7.9.5" | ||
6517 | ]; | ||
6518 | }) | ||
6519 | (sources."@babel/helper-module-imports-7.8.3" // { | ||
6520 | dependencies = [ | ||
6521 | sources."@babel/types-7.9.5" | ||
6522 | ]; | ||
6523 | }) | ||
6524 | (sources."@babel/helper-module-transforms-7.9.0" // { | ||
6525 | dependencies = [ | ||
6526 | sources."@babel/code-frame-7.8.3" | ||
6527 | sources."@babel/parser-7.9.4" | ||
6528 | sources."@babel/template-7.8.6" | ||
6529 | sources."@babel/types-7.9.5" | ||
6530 | ]; | ||
6531 | }) | ||
6532 | (sources."@babel/helper-optimise-call-expression-7.8.3" // { | ||
6533 | dependencies = [ | ||
6534 | sources."@babel/types-7.9.5" | ||
6535 | ]; | ||
6536 | }) | ||
6537 | sources."@babel/helper-plugin-utils-7.8.3" | ||
6538 | sources."@babel/helper-regex-7.8.3" | ||
6539 | (sources."@babel/helper-remap-async-to-generator-7.8.3" // { | ||
6540 | dependencies = [ | ||
6541 | sources."@babel/code-frame-7.8.3" | ||
6542 | sources."@babel/generator-7.9.5" | ||
6543 | sources."@babel/parser-7.9.4" | ||
6544 | sources."@babel/template-7.8.6" | ||
6545 | sources."@babel/traverse-7.9.5" | ||
6546 | sources."@babel/types-7.9.5" | ||
6547 | sources."source-map-0.5.7" | ||
6548 | ]; | ||
6549 | }) | ||
6550 | (sources."@babel/helper-replace-supers-7.8.6" // { | ||
6551 | dependencies = [ | ||
6552 | sources."@babel/code-frame-7.8.3" | ||
6553 | sources."@babel/generator-7.9.5" | ||
6554 | sources."@babel/parser-7.9.4" | ||
6555 | sources."@babel/traverse-7.9.5" | ||
6556 | sources."@babel/types-7.9.5" | ||
6557 | sources."source-map-0.5.7" | ||
6558 | ]; | ||
6559 | }) | ||
6560 | (sources."@babel/helper-simple-access-7.8.3" // { | ||
6561 | dependencies = [ | ||
6562 | sources."@babel/code-frame-7.8.3" | ||
6563 | sources."@babel/parser-7.9.4" | ||
6564 | sources."@babel/template-7.8.6" | ||
6565 | sources."@babel/types-7.9.5" | ||
6566 | ]; | ||
6567 | }) | ||
6568 | (sources."@babel/helper-split-export-declaration-7.8.3" // { | ||
6569 | dependencies = [ | ||
6570 | sources."@babel/types-7.9.5" | ||
6571 | ]; | ||
6572 | }) | ||
6573 | sources."@babel/helper-validator-identifier-7.9.5" | ||
6574 | (sources."@babel/helper-wrap-function-7.8.3" // { | ||
6575 | dependencies = [ | ||
6576 | sources."@babel/code-frame-7.8.3" | ||
6577 | sources."@babel/generator-7.9.5" | ||
6578 | sources."@babel/parser-7.9.4" | ||
6579 | sources."@babel/template-7.8.6" | ||
6580 | sources."@babel/traverse-7.9.5" | ||
6581 | sources."@babel/types-7.9.5" | ||
6582 | sources."source-map-0.5.7" | ||
6583 | ]; | ||
6584 | }) | ||
6585 | (sources."@babel/helpers-7.9.2" // { | ||
6586 | dependencies = [ | ||
6587 | sources."@babel/code-frame-7.8.3" | ||
6588 | sources."@babel/generator-7.9.5" | ||
6589 | sources."@babel/parser-7.9.4" | ||
6590 | sources."@babel/template-7.8.6" | ||
6591 | sources."@babel/traverse-7.9.5" | ||
6592 | sources."@babel/types-7.9.5" | ||
6593 | sources."source-map-0.5.7" | ||
6594 | ]; | ||
6595 | }) | ||
6596 | sources."@babel/highlight-7.9.0" | ||
6597 | sources."@babel/parser-7.3.4" | ||
6598 | sources."@babel/plugin-proposal-async-generator-functions-7.8.3" | ||
6599 | sources."@babel/plugin-proposal-json-strings-7.8.3" | ||
6600 | sources."@babel/plugin-proposal-object-rest-spread-7.9.5" | ||
6601 | sources."@babel/plugin-proposal-optional-catch-binding-7.8.3" | ||
6602 | sources."@babel/plugin-proposal-unicode-property-regex-7.8.8" | ||
6603 | sources."@babel/plugin-syntax-async-generators-7.8.4" | ||
6604 | sources."@babel/plugin-syntax-flow-7.8.3" | ||
6605 | sources."@babel/plugin-syntax-json-strings-7.8.3" | ||
6606 | sources."@babel/plugin-syntax-jsx-7.8.3" | ||
6607 | sources."@babel/plugin-syntax-object-rest-spread-7.8.3" | ||
6608 | sources."@babel/plugin-syntax-optional-catch-binding-7.8.3" | ||
6609 | sources."@babel/plugin-transform-arrow-functions-7.8.3" | ||
6610 | sources."@babel/plugin-transform-async-to-generator-7.8.3" | ||
6611 | sources."@babel/plugin-transform-block-scoped-functions-7.8.3" | ||
6612 | sources."@babel/plugin-transform-block-scoping-7.8.3" | ||
6613 | sources."@babel/plugin-transform-classes-7.9.5" | ||
6614 | sources."@babel/plugin-transform-computed-properties-7.8.3" | ||
6615 | sources."@babel/plugin-transform-destructuring-7.9.5" | ||
6616 | sources."@babel/plugin-transform-dotall-regex-7.8.3" | ||
6617 | sources."@babel/plugin-transform-duplicate-keys-7.8.3" | ||
6618 | sources."@babel/plugin-transform-exponentiation-operator-7.8.3" | ||
6619 | sources."@babel/plugin-transform-flow-strip-types-7.3.4" | ||
6620 | sources."@babel/plugin-transform-for-of-7.9.0" | ||
6621 | sources."@babel/plugin-transform-function-name-7.8.3" | ||
6622 | sources."@babel/plugin-transform-literals-7.8.3" | ||
6623 | sources."@babel/plugin-transform-modules-amd-7.9.0" | ||
6624 | sources."@babel/plugin-transform-modules-commonjs-7.2.0" | ||
6625 | sources."@babel/plugin-transform-modules-systemjs-7.9.0" | ||
6626 | sources."@babel/plugin-transform-modules-umd-7.9.0" | ||
6627 | sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3" | ||
6628 | sources."@babel/plugin-transform-new-target-7.8.3" | ||
6629 | sources."@babel/plugin-transform-object-super-7.8.3" | ||
6630 | sources."@babel/plugin-transform-parameters-7.9.5" | ||
6631 | sources."@babel/plugin-transform-react-jsx-7.3.0" | ||
6632 | sources."@babel/plugin-transform-regenerator-7.8.7" | ||
6633 | sources."@babel/plugin-transform-shorthand-properties-7.8.3" | ||
6634 | sources."@babel/plugin-transform-spread-7.8.3" | ||
6635 | sources."@babel/plugin-transform-sticky-regex-7.8.3" | ||
6636 | sources."@babel/plugin-transform-template-literals-7.8.3" | ||
6637 | sources."@babel/plugin-transform-typeof-symbol-7.8.4" | ||
6638 | sources."@babel/plugin-transform-unicode-regex-7.8.3" | ||
6639 | sources."@babel/preset-env-7.3.4" | ||
6640 | (sources."@babel/runtime-7.3.4" // { | ||
6641 | dependencies = [ | ||
6642 | sources."regenerator-runtime-0.12.1" | ||
6643 | ]; | ||
6644 | }) | ||
6645 | sources."@babel/template-7.2.2" | ||
6646 | sources."@babel/traverse-7.3.4" | ||
6647 | sources."@babel/types-7.3.4" | ||
6648 | sources."@iarna/toml-2.2.5" | ||
6649 | sources."@mrmlnc/readdir-enhanced-2.2.1" | ||
6650 | sources."@nodelib/fs.stat-1.1.3" | ||
6651 | sources."@parcel/fs-1.11.0" | ||
6652 | sources."@parcel/logger-1.11.1" | ||
6653 | sources."@parcel/utils-1.11.0" | ||
6654 | sources."@parcel/watcher-1.12.1" | ||
6655 | sources."@parcel/workers-1.11.0" | ||
6656 | sources."@types/q-1.5.2" | ||
6657 | sources."abab-2.0.3" | ||
6658 | sources."abbrev-1.1.1" | ||
6659 | sources."acorn-7.1.1" | ||
6660 | (sources."acorn-globals-4.3.4" // { | ||
6661 | dependencies = [ | ||
6662 | sources."acorn-6.4.1" | ||
6663 | ]; | ||
6664 | }) | ||
6665 | sources."acorn-walk-6.2.0" | ||
6666 | sources."ajv-6.12.2" | ||
6667 | sources."alphanum-sort-1.0.2" | ||
6668 | sources."ansi-regex-3.0.0" | ||
6669 | sources."ansi-styles-3.2.1" | ||
6670 | (sources."ansi-to-html-0.6.14" // { | ||
6671 | dependencies = [ | ||
6672 | sources."entities-1.1.2" | ||
6673 | ]; | ||
6674 | }) | ||
6675 | (sources."anymatch-2.0.0" // { | ||
6676 | dependencies = [ | ||
6677 | sources."normalize-path-2.1.1" | ||
6678 | ]; | ||
6679 | }) | ||
6680 | sources."argparse-1.0.10" | ||
6681 | sources."arr-diff-4.0.0" | ||
6682 | sources."arr-flatten-1.1.0" | ||
6683 | sources."arr-union-3.1.0" | ||
6684 | sources."array-equal-1.0.0" | ||
6685 | sources."array-unique-0.3.2" | ||
6686 | sources."asn1-0.2.4" | ||
6687 | sources."asn1.js-4.10.1" | ||
6688 | (sources."assert-1.5.0" // { | ||
6689 | dependencies = [ | ||
6690 | sources."inherits-2.0.1" | ||
6691 | sources."util-0.10.3" | ||
6692 | ]; | ||
6693 | }) | ||
6694 | sources."assert-plus-1.0.0" | ||
6695 | sources."assign-symbols-1.0.0" | ||
6696 | sources."async-each-1.0.3" | ||
6697 | sources."async-limiter-1.0.1" | ||
6698 | sources."asynckit-0.4.0" | ||
6699 | sources."atob-2.1.2" | ||
6700 | sources."aws-sign2-0.7.0" | ||
6701 | sources."aws4-1.9.1" | ||
6702 | sources."babel-plugin-dynamic-import-node-2.3.3" | ||
6703 | (sources."babel-runtime-6.26.0" // { | ||
6704 | dependencies = [ | ||
6705 | sources."regenerator-runtime-0.11.1" | ||
6706 | ]; | ||
6707 | }) | ||
6708 | (sources."babel-types-6.26.0" // { | ||
6709 | dependencies = [ | ||
6710 | sources."to-fast-properties-1.0.3" | ||
6711 | ]; | ||
6712 | }) | ||
6713 | sources."babylon-walk-1.0.2" | ||
6714 | sources."balanced-match-1.0.0" | ||
6715 | (sources."base-0.11.2" // { | ||
6716 | dependencies = [ | ||
6717 | sources."define-property-1.0.0" | ||
6718 | sources."is-accessor-descriptor-1.0.0" | ||
6719 | sources."is-data-descriptor-1.0.0" | ||
6720 | sources."is-descriptor-1.0.2" | ||
6721 | ]; | ||
6722 | }) | ||
6723 | sources."base64-js-1.3.1" | ||
6724 | sources."bcrypt-pbkdf-1.0.2" | ||
6725 | sources."binary-extensions-1.13.1" | ||
6726 | sources."bindings-1.5.0" | ||
6727 | sources."bn.js-4.11.8" | ||
6728 | sources."boolbase-1.0.0" | ||
6729 | sources."brace-expansion-1.1.11" | ||
6730 | (sources."braces-2.3.2" // { | ||
6731 | dependencies = [ | ||
6732 | sources."extend-shallow-2.0.1" | ||
6733 | ]; | ||
6734 | }) | ||
6735 | sources."brfs-1.6.1" | ||
6736 | sources."brorand-1.1.0" | ||
6737 | sources."browser-process-hrtime-1.0.0" | ||
6738 | sources."browserify-aes-1.2.0" | ||
6739 | sources."browserify-cipher-1.0.1" | ||
6740 | sources."browserify-des-1.0.2" | ||
6741 | sources."browserify-rsa-4.0.1" | ||
6742 | sources."browserify-sign-4.0.4" | ||
6743 | (sources."browserify-zlib-0.2.0" // { | ||
6744 | dependencies = [ | ||
6745 | sources."pako-1.0.11" | ||
6746 | ]; | ||
6747 | }) | ||
6748 | sources."browserslist-4.12.0" | ||
6749 | sources."buffer-4.9.2" | ||
6750 | sources."buffer-equal-0.0.1" | ||
6751 | sources."buffer-from-1.1.1" | ||
6752 | sources."buffer-xor-1.0.3" | ||
6753 | sources."builtin-status-codes-3.0.0" | ||
6754 | sources."cache-base-1.0.1" | ||
6755 | sources."call-me-maybe-1.0.1" | ||
6756 | sources."caller-callsite-2.0.0" | ||
6757 | sources."caller-path-2.0.0" | ||
6758 | sources."callsites-2.0.0" | ||
6759 | sources."camelcase-5.3.1" | ||
6760 | sources."caniuse-api-3.0.0" | ||
6761 | sources."caniuse-lite-1.0.30001048" | ||
6762 | sources."caseless-0.12.0" | ||
6763 | (sources."chalk-2.4.2" // { | ||
6764 | dependencies = [ | ||
6765 | sources."supports-color-5.5.0" | ||
6766 | ]; | ||
6767 | }) | ||
6768 | (sources."chokidar-2.1.8" // { | ||
6769 | dependencies = [ | ||
6770 | sources."fsevents-1.2.12" | ||
6771 | ]; | ||
6772 | }) | ||
6773 | sources."cipher-base-1.0.4" | ||
6774 | (sources."class-utils-0.3.6" // { | ||
6775 | dependencies = [ | ||
6776 | sources."define-property-0.2.5" | ||
6777 | ]; | ||
6778 | }) | ||
6779 | sources."cli-cursor-2.1.0" | ||
6780 | sources."cli-spinners-1.3.1" | ||
6781 | (sources."cliui-5.0.0" // { | ||
6782 | dependencies = [ | ||
6783 | sources."ansi-regex-4.1.0" | ||
6784 | sources."strip-ansi-5.2.0" | ||
6785 | ]; | ||
6786 | }) | ||
6787 | sources."clone-2.1.2" | ||
6788 | sources."clones-1.2.0" | ||
6789 | sources."coa-2.0.2" | ||
6790 | sources."collection-visit-1.0.0" | ||
6791 | sources."color-3.1.2" | ||
6792 | sources."color-convert-1.9.3" | ||
6793 | sources."color-name-1.1.3" | ||
6794 | sources."color-string-1.5.3" | ||
6795 | sources."combined-stream-1.0.8" | ||
6796 | sources."command-exists-1.2.9" | ||
6797 | sources."commander-2.20.3" | ||
6798 | sources."component-emitter-1.3.0" | ||
6799 | sources."concat-map-0.0.1" | ||
6800 | sources."concat-stream-1.6.2" | ||
6801 | sources."config-chain-1.1.12" | ||
6802 | sources."console-browserify-1.2.0" | ||
6803 | sources."constants-browserify-1.0.0" | ||
6804 | sources."convert-source-map-1.7.0" | ||
6805 | sources."copy-descriptor-0.1.1" | ||
6806 | sources."core-js-2.6.11" | ||
6807 | sources."core-util-is-1.0.2" | ||
6808 | sources."cosmiconfig-5.2.1" | ||
6809 | sources."create-ecdh-4.0.3" | ||
6810 | sources."create-hash-1.2.0" | ||
6811 | sources."create-hmac-1.1.7" | ||
6812 | sources."cross-spawn-6.0.5" | ||
6813 | sources."crypto-browserify-3.12.0" | ||
6814 | sources."css-color-names-0.0.4" | ||
6815 | sources."css-declaration-sorter-4.0.1" | ||
6816 | (sources."css-modules-loader-core-1.1.0" // { | ||
6817 | dependencies = [ | ||
6818 | sources."ansi-regex-2.1.1" | ||
6819 | sources."ansi-styles-2.2.1" | ||
6820 | (sources."chalk-1.1.3" // { | ||
6821 | dependencies = [ | ||
6822 | sources."supports-color-2.0.0" | ||
6823 | ]; | ||
6824 | }) | ||
6825 | sources."has-flag-1.0.0" | ||
6826 | sources."postcss-6.0.1" | ||
6827 | sources."source-map-0.5.7" | ||
6828 | sources."strip-ansi-3.0.1" | ||
6829 | sources."supports-color-3.2.3" | ||
6830 | ]; | ||
6831 | }) | ||
6832 | sources."css-select-2.1.0" | ||
6833 | sources."css-select-base-adapter-0.1.1" | ||
6834 | sources."css-selector-tokenizer-0.7.2" | ||
6835 | sources."css-tree-1.0.0-alpha.37" | ||
6836 | sources."css-what-3.2.1" | ||
6837 | sources."cssesc-3.0.0" | ||
6838 | sources."cssnano-4.1.10" | ||
6839 | sources."cssnano-preset-default-4.0.7" | ||
6840 | sources."cssnano-util-get-arguments-4.0.0" | ||
6841 | sources."cssnano-util-get-match-4.0.0" | ||
6842 | sources."cssnano-util-raw-cache-4.0.1" | ||
6843 | sources."cssnano-util-same-parent-4.0.1" | ||
6844 | (sources."csso-4.0.3" // { | ||
6845 | dependencies = [ | ||
6846 | sources."css-tree-1.0.0-alpha.39" | ||
6847 | sources."mdn-data-2.0.6" | ||
6848 | ]; | ||
6849 | }) | ||
6850 | sources."cssom-0.3.8" | ||
6851 | sources."cssstyle-1.4.0" | ||
6852 | sources."dashdash-1.14.1" | ||
6853 | sources."data-urls-1.1.0" | ||
6854 | sources."deasync-0.1.19" | ||
6855 | sources."debug-4.1.1" | ||
6856 | sources."decamelize-1.2.0" | ||
6857 | sources."decode-uri-component-0.2.0" | ||
6858 | sources."deep-is-0.1.3" | ||
6859 | (sources."defaults-1.0.3" // { | ||
6860 | dependencies = [ | ||
6861 | sources."clone-1.0.4" | ||
6862 | ]; | ||
6863 | }) | ||
6864 | sources."define-properties-1.1.3" | ||
6865 | (sources."define-property-2.0.2" // { | ||
6866 | dependencies = [ | ||
6867 | sources."is-accessor-descriptor-1.0.0" | ||
6868 | sources."is-data-descriptor-1.0.0" | ||
6869 | sources."is-descriptor-1.0.2" | ||
6870 | ]; | ||
6871 | }) | ||
6872 | sources."delayed-stream-1.0.0" | ||
6873 | sources."depd-1.1.2" | ||
6874 | sources."des.js-1.0.1" | ||
6875 | sources."destroy-1.0.4" | ||
6876 | sources."diffie-hellman-5.0.3" | ||
6877 | (sources."dom-serializer-0.2.2" // { | ||
6878 | dependencies = [ | ||
6879 | sources."domelementtype-2.0.1" | ||
6880 | ]; | ||
6881 | }) | ||
6882 | sources."domain-browser-1.2.0" | ||
6883 | sources."domelementtype-1.3.1" | ||
6884 | sources."domexception-1.0.1" | ||
6885 | sources."domhandler-2.4.2" | ||
6886 | sources."domutils-1.7.0" | ||
6887 | sources."dot-prop-5.2.0" | ||
6888 | sources."dotenv-5.0.1" | ||
6889 | sources."dotenv-expand-4.2.0" | ||
6890 | sources."duplexer2-0.1.4" | ||
6891 | sources."ecc-jsbn-0.1.2" | ||
6892 | sources."editorconfig-0.15.3" | ||
6893 | sources."ee-first-1.1.1" | ||
6894 | sources."electron-to-chromium-1.3.418" | ||
6895 | sources."elliptic-6.5.2" | ||
6896 | sources."elm-hot-1.1.1" | ||
6897 | sources."emoji-regex-7.0.3" | ||
6898 | sources."encodeurl-1.0.2" | ||
6899 | sources."entities-2.0.0" | ||
6900 | sources."error-ex-1.3.2" | ||
6901 | sources."es-abstract-1.17.5" | ||
6902 | sources."es-to-primitive-1.2.1" | ||
6903 | sources."escape-html-1.0.3" | ||
6904 | sources."escape-string-regexp-1.0.5" | ||
6905 | (sources."escodegen-1.9.1" // { | ||
6906 | dependencies = [ | ||
6907 | sources."esprima-3.1.3" | ||
6908 | ]; | ||
6909 | }) | ||
6910 | sources."esprima-4.0.1" | ||
6911 | sources."estraverse-4.3.0" | ||
6912 | sources."esutils-2.0.3" | ||
6913 | sources."etag-1.8.1" | ||
6914 | sources."events-3.1.0" | ||
6915 | sources."evp_bytestokey-1.0.3" | ||
6916 | (sources."expand-brackets-2.1.4" // { | ||
6917 | dependencies = [ | ||
6918 | sources."debug-2.6.9" | ||
6919 | sources."define-property-0.2.5" | ||
6920 | sources."extend-shallow-2.0.1" | ||
6921 | sources."ms-2.0.0" | ||
6922 | ]; | ||
6923 | }) | ||
6924 | sources."extend-3.0.2" | ||
6925 | (sources."extend-shallow-3.0.2" // { | ||
6926 | dependencies = [ | ||
6927 | sources."is-extendable-1.0.1" | ||
6928 | ]; | ||
6929 | }) | ||
6930 | (sources."extglob-2.0.4" // { | ||
6931 | dependencies = [ | ||
6932 | sources."define-property-1.0.0" | ||
6933 | sources."extend-shallow-2.0.1" | ||
6934 | sources."is-accessor-descriptor-1.0.0" | ||
6935 | sources."is-data-descriptor-1.0.0" | ||
6936 | sources."is-descriptor-1.0.2" | ||
6937 | ]; | ||
6938 | }) | ||
6939 | sources."extsprintf-1.3.0" | ||
6940 | (sources."falafel-2.2.4" // { | ||
6941 | dependencies = [ | ||
6942 | sources."isarray-2.0.5" | ||
6943 | ]; | ||
6944 | }) | ||
6945 | sources."fast-deep-equal-3.1.1" | ||
6946 | sources."fast-glob-2.2.7" | ||
6947 | sources."fast-json-stable-stringify-2.1.0" | ||
6948 | sources."fast-levenshtein-2.0.6" | ||
6949 | sources."fastparse-1.1.2" | ||
6950 | sources."file-uri-to-path-1.0.0" | ||
6951 | sources."filesize-3.6.1" | ||
6952 | (sources."fill-range-4.0.0" // { | ||
6953 | dependencies = [ | ||
6954 | sources."extend-shallow-2.0.1" | ||
6955 | ]; | ||
6956 | }) | ||
6957 | sources."find-elm-dependencies-2.0.2" | ||
6958 | sources."find-up-2.1.0" | ||
6959 | sources."firstline-1.2.0" | ||
6960 | sources."for-in-1.0.2" | ||
6961 | sources."foreach-2.0.5" | ||
6962 | sources."forever-agent-0.6.1" | ||
6963 | sources."form-data-2.3.3" | ||
6964 | sources."fragment-cache-0.2.1" | ||
6965 | sources."fresh-0.5.2" | ||
6966 | sources."fs.realpath-1.0.0" | ||
6967 | sources."function-bind-1.1.1" | ||
6968 | sources."get-caller-file-2.0.5" | ||
6969 | sources."get-port-3.2.0" | ||
6970 | sources."get-value-2.0.6" | ||
6971 | sources."getpass-0.1.7" | ||
6972 | sources."glob-7.1.4" | ||
6973 | (sources."glob-parent-3.1.0" // { | ||
6974 | dependencies = [ | ||
6975 | sources."is-glob-3.1.0" | ||
6976 | ]; | ||
6977 | }) | ||
6978 | sources."glob-to-regexp-0.3.0" | ||
6979 | sources."globals-11.12.0" | ||
6980 | sources."graceful-fs-4.2.3" | ||
6981 | sources."grapheme-breaker-0.3.2" | ||
6982 | sources."har-schema-2.0.0" | ||
6983 | sources."har-validator-5.1.3" | ||
6984 | sources."has-1.0.3" | ||
6985 | (sources."has-ansi-2.0.0" // { | ||
6986 | dependencies = [ | ||
6987 | sources."ansi-regex-2.1.1" | ||
6988 | ]; | ||
6989 | }) | ||
6990 | sources."has-flag-3.0.0" | ||
6991 | sources."has-symbols-1.0.1" | ||
6992 | sources."has-value-1.0.0" | ||
6993 | (sources."has-values-1.0.0" // { | ||
6994 | dependencies = [ | ||
6995 | sources."kind-of-4.0.0" | ||
6996 | ]; | ||
6997 | }) | ||
6998 | sources."hash-base-3.0.4" | ||
6999 | sources."hash.js-1.1.7" | ||
7000 | sources."hex-color-regex-1.1.0" | ||
7001 | sources."hmac-drbg-1.0.1" | ||
7002 | sources."hsl-regex-1.0.0" | ||
7003 | sources."hsla-regex-1.0.0" | ||
7004 | sources."html-comment-regex-1.1.2" | ||
7005 | sources."html-encoding-sniffer-1.0.2" | ||
7006 | sources."html-tags-1.2.0" | ||
7007 | (sources."htmlnano-0.2.5" // { | ||
7008 | dependencies = [ | ||
7009 | sources."posthtml-0.12.3" | ||
7010 | sources."terser-4.6.12" | ||
7011 | ]; | ||
7012 | }) | ||
7013 | (sources."htmlparser2-3.10.1" // { | ||
7014 | dependencies = [ | ||
7015 | sources."entities-1.1.2" | ||
7016 | sources."readable-stream-3.6.0" | ||
7017 | ]; | ||
7018 | }) | ||
7019 | sources."http-errors-1.7.3" | ||
7020 | sources."http-signature-1.2.0" | ||
7021 | sources."https-browserify-1.0.0" | ||
7022 | sources."iconv-lite-0.4.24" | ||
7023 | sources."icss-replace-symbols-1.1.0" | ||
7024 | sources."ieee754-1.1.13" | ||
7025 | sources."import-fresh-2.0.0" | ||
7026 | sources."indexes-of-1.0.1" | ||
7027 | sources."inflight-1.0.6" | ||
7028 | sources."inherits-2.0.4" | ||
7029 | sources."ini-1.3.5" | ||
7030 | sources."invariant-2.2.4" | ||
7031 | sources."is-absolute-url-2.1.0" | ||
7032 | (sources."is-accessor-descriptor-0.1.6" // { | ||
7033 | dependencies = [ | ||
7034 | sources."kind-of-3.2.2" | ||
7035 | ]; | ||
7036 | }) | ||
7037 | sources."is-arrayish-0.2.1" | ||
7038 | sources."is-binary-path-1.0.1" | ||
7039 | sources."is-buffer-1.1.6" | ||
7040 | sources."is-callable-1.1.5" | ||
7041 | sources."is-color-stop-1.1.0" | ||
7042 | (sources."is-data-descriptor-0.1.4" // { | ||
7043 | dependencies = [ | ||
7044 | sources."kind-of-3.2.2" | ||
7045 | ]; | ||
7046 | }) | ||
7047 | sources."is-date-object-1.0.2" | ||
7048 | (sources."is-descriptor-0.1.6" // { | ||
7049 | dependencies = [ | ||
7050 | sources."kind-of-5.1.0" | ||
7051 | ]; | ||
7052 | }) | ||
7053 | sources."is-directory-0.3.1" | ||
7054 | sources."is-extendable-0.1.1" | ||
7055 | sources."is-extglob-2.1.1" | ||
7056 | sources."is-fullwidth-code-point-2.0.0" | ||
7057 | sources."is-glob-4.0.1" | ||
7058 | sources."is-html-1.1.0" | ||
7059 | (sources."is-number-3.0.0" // { | ||
7060 | dependencies = [ | ||
7061 | sources."kind-of-3.2.2" | ||
7062 | ]; | ||
7063 | }) | ||
7064 | sources."is-obj-2.0.0" | ||
7065 | sources."is-plain-object-2.0.4" | ||
7066 | sources."is-regex-1.0.5" | ||
7067 | sources."is-resolvable-1.1.0" | ||
7068 | sources."is-svg-3.0.0" | ||
7069 | sources."is-symbol-1.0.3" | ||
7070 | sources."is-typedarray-1.0.0" | ||
7071 | sources."is-url-1.2.4" | ||
7072 | sources."is-windows-1.0.2" | ||
7073 | sources."is-wsl-1.1.0" | ||
7074 | sources."isarray-1.0.0" | ||
7075 | sources."isexe-2.0.0" | ||
7076 | sources."isobject-3.0.1" | ||
7077 | sources."isstream-0.1.2" | ||
7078 | (sources."js-beautify-1.11.0" // { | ||
7079 | dependencies = [ | ||
7080 | sources."mkdirp-1.0.4" | ||
7081 | ]; | ||
7082 | }) | ||
7083 | sources."js-levenshtein-1.1.6" | ||
7084 | sources."js-tokens-4.0.0" | ||
7085 | sources."js-yaml-3.13.1" | ||
7086 | sources."jsbn-0.1.1" | ||
7087 | (sources."jsdom-14.1.0" // { | ||
7088 | dependencies = [ | ||
7089 | sources."acorn-6.4.1" | ||
7090 | sources."escodegen-1.14.1" | ||
7091 | sources."ws-6.2.1" | ||
7092 | ]; | ||
7093 | }) | ||
7094 | sources."jsesc-2.5.2" | ||
7095 | sources."json-parse-better-errors-1.0.2" | ||
7096 | sources."json-schema-0.2.3" | ||
7097 | sources."json-schema-traverse-0.4.1" | ||
7098 | sources."json-stringify-safe-5.0.1" | ||
7099 | sources."json5-1.0.1" | ||
7100 | sources."jsprim-1.4.1" | ||
7101 | sources."kind-of-6.0.3" | ||
7102 | sources."levn-0.3.0" | ||
7103 | sources."locate-path-2.0.0" | ||
7104 | sources."lodash-4.17.15" | ||
7105 | sources."lodash.clone-4.5.0" | ||
7106 | sources."lodash.memoize-4.1.2" | ||
7107 | sources."lodash.sortby-4.7.0" | ||
7108 | sources."lodash.uniq-4.5.0" | ||
7109 | sources."log-symbols-2.2.0" | ||
7110 | sources."loose-envify-1.4.0" | ||
7111 | sources."lru-cache-4.1.5" | ||
7112 | sources."magic-string-0.22.5" | ||
7113 | sources."map-cache-0.2.2" | ||
7114 | sources."map-visit-1.0.0" | ||
7115 | sources."md5.js-1.3.5" | ||
7116 | sources."mdn-data-2.0.4" | ||
7117 | (sources."merge-source-map-1.0.4" // { | ||
7118 | dependencies = [ | ||
7119 | sources."source-map-0.5.7" | ||
7120 | ]; | ||
7121 | }) | ||
7122 | sources."merge2-1.3.0" | ||
7123 | sources."micromatch-3.1.10" | ||
7124 | sources."miller-rabin-4.0.1" | ||
7125 | sources."mime-1.6.0" | ||
7126 | sources."mime-db-1.44.0" | ||
7127 | sources."mime-types-2.1.27" | ||
7128 | sources."mimic-fn-1.2.0" | ||
7129 | sources."minimalistic-assert-1.0.1" | ||
7130 | sources."minimalistic-crypto-utils-1.0.1" | ||
7131 | sources."minimatch-3.0.4" | ||
7132 | sources."minimist-1.2.5" | ||
7133 | (sources."mixin-deep-1.3.2" // { | ||
7134 | dependencies = [ | ||
7135 | sources."is-extendable-1.0.1" | ||
7136 | ]; | ||
7137 | }) | ||
7138 | sources."mkdirp-0.5.5" | ||
7139 | sources."ms-2.1.2" | ||
7140 | sources."nan-2.14.1" | ||
7141 | sources."nanomatch-1.2.13" | ||
7142 | sources."nice-try-1.0.5" | ||
7143 | sources."node-addon-api-1.7.1" | ||
7144 | sources."node-elm-compiler-5.0.4" | ||
7145 | sources."node-forge-0.7.6" | ||
7146 | (sources."node-libs-browser-2.2.1" // { | ||
7147 | dependencies = [ | ||
7148 | sources."punycode-1.4.1" | ||
7149 | ]; | ||
7150 | }) | ||
7151 | sources."node-releases-1.1.53" | ||
7152 | sources."nopt-4.0.3" | ||
7153 | sources."normalize-html-whitespace-1.0.0" | ||
7154 | sources."normalize-path-3.0.0" | ||
7155 | sources."normalize-url-3.3.0" | ||
7156 | sources."nth-check-1.0.2" | ||
7157 | sources."nwsapi-2.2.0" | ||
7158 | sources."oauth-sign-0.9.0" | ||
7159 | sources."object-assign-4.1.1" | ||
7160 | (sources."object-copy-0.1.0" // { | ||
7161 | dependencies = [ | ||
7162 | sources."define-property-0.2.5" | ||
7163 | sources."kind-of-3.2.2" | ||
7164 | ]; | ||
7165 | }) | ||
7166 | sources."object-inspect-1.7.0" | ||
7167 | sources."object-keys-1.1.1" | ||
7168 | sources."object-visit-1.0.1" | ||
7169 | sources."object.assign-4.1.0" | ||
7170 | sources."object.getownpropertydescriptors-2.1.0" | ||
7171 | sources."object.pick-1.3.0" | ||
7172 | sources."object.values-1.1.1" | ||
7173 | sources."on-finished-2.3.0" | ||
7174 | sources."once-1.4.0" | ||
7175 | sources."onetime-2.0.1" | ||
7176 | sources."opn-5.5.0" | ||
7177 | sources."optionator-0.8.3" | ||
7178 | sources."ora-2.1.0" | ||
7179 | sources."os-browserify-0.3.0" | ||
7180 | sources."os-homedir-1.0.2" | ||
7181 | sources."os-tmpdir-1.0.2" | ||
7182 | sources."osenv-0.1.5" | ||
7183 | sources."p-limit-1.3.0" | ||
7184 | sources."p-locate-2.0.0" | ||
7185 | sources."p-try-1.0.0" | ||
7186 | sources."pako-0.2.9" | ||
7187 | (sources."parcel-bundler-1.12.3" // { | ||
7188 | dependencies = [ | ||
7189 | sources."postcss-value-parser-3.3.1" | ||
7190 | ]; | ||
7191 | }) | ||
7192 | sources."parse-asn1-5.1.5" | ||
7193 | sources."parse-json-4.0.0" | ||
7194 | sources."parse5-5.1.0" | ||
7195 | sources."parseurl-1.3.3" | ||
7196 | sources."pascalcase-0.1.1" | ||
7197 | sources."path-browserify-0.0.1" | ||
7198 | sources."path-dirname-1.0.2" | ||
7199 | sources."path-exists-3.0.0" | ||
7200 | sources."path-is-absolute-1.0.1" | ||
7201 | sources."path-key-2.0.1" | ||
7202 | sources."path-parse-1.0.6" | ||
7203 | sources."pbkdf2-3.0.17" | ||
7204 | sources."performance-now-2.1.0" | ||
7205 | sources."physical-cpu-count-2.0.0" | ||
7206 | sources."pkg-up-2.0.0" | ||
7207 | sources."pn-1.1.0" | ||
7208 | sources."posix-character-classes-0.1.1" | ||
7209 | sources."postcss-7.0.27" | ||
7210 | sources."postcss-calc-7.0.2" | ||
7211 | (sources."postcss-colormin-4.0.3" // { | ||
7212 | dependencies = [ | ||
7213 | sources."postcss-value-parser-3.3.1" | ||
7214 | ]; | ||
7215 | }) | ||
7216 | (sources."postcss-convert-values-4.0.1" // { | ||
7217 | dependencies = [ | ||
7218 | sources."postcss-value-parser-3.3.1" | ||
7219 | ]; | ||
7220 | }) | ||
7221 | sources."postcss-discard-comments-4.0.2" | ||
7222 | sources."postcss-discard-duplicates-4.0.2" | ||
7223 | sources."postcss-discard-empty-4.0.1" | ||
7224 | sources."postcss-discard-overridden-4.0.1" | ||
7225 | (sources."postcss-merge-longhand-4.0.11" // { | ||
7226 | dependencies = [ | ||
7227 | sources."postcss-value-parser-3.3.1" | ||
7228 | ]; | ||
7229 | }) | ||
7230 | (sources."postcss-merge-rules-4.0.3" // { | ||
7231 | dependencies = [ | ||
7232 | sources."postcss-selector-parser-3.1.2" | ||
7233 | ]; | ||
7234 | }) | ||
7235 | (sources."postcss-minify-font-values-4.0.2" // { | ||
7236 | dependencies = [ | ||
7237 | sources."postcss-value-parser-3.3.1" | ||
7238 | ]; | ||
7239 | }) | ||
7240 | (sources."postcss-minify-gradients-4.0.2" // { | ||
7241 | dependencies = [ | ||
7242 | sources."postcss-value-parser-3.3.1" | ||
7243 | ]; | ||
7244 | }) | ||
7245 | (sources."postcss-minify-params-4.0.2" // { | ||
7246 | dependencies = [ | ||
7247 | sources."postcss-value-parser-3.3.1" | ||
7248 | ]; | ||
7249 | }) | ||
7250 | (sources."postcss-minify-selectors-4.0.2" // { | ||
7251 | dependencies = [ | ||
7252 | sources."postcss-selector-parser-3.1.2" | ||
7253 | ]; | ||
7254 | }) | ||
7255 | (sources."postcss-modules-extract-imports-1.1.0" // { | ||
7256 | dependencies = [ | ||
7257 | sources."postcss-6.0.23" | ||
7258 | sources."supports-color-5.5.0" | ||
7259 | ]; | ||
7260 | }) | ||
7261 | (sources."postcss-modules-local-by-default-1.2.0" // { | ||
7262 | dependencies = [ | ||
7263 | sources."postcss-6.0.23" | ||
7264 | sources."supports-color-5.5.0" | ||
7265 | ]; | ||
7266 | }) | ||
7267 | (sources."postcss-modules-scope-1.1.0" // { | ||
7268 | dependencies = [ | ||
7269 | sources."postcss-6.0.23" | ||
7270 | sources."supports-color-5.5.0" | ||
7271 | ]; | ||
7272 | }) | ||
7273 | (sources."postcss-modules-values-1.3.0" // { | ||
7274 | dependencies = [ | ||
7275 | sources."postcss-6.0.23" | ||
7276 | sources."supports-color-5.5.0" | ||
7277 | ]; | ||
7278 | }) | ||
7279 | sources."postcss-normalize-charset-4.0.1" | ||
7280 | (sources."postcss-normalize-display-values-4.0.2" // { | ||
7281 | dependencies = [ | ||
7282 | sources."postcss-value-parser-3.3.1" | ||
7283 | ]; | ||
7284 | }) | ||
7285 | (sources."postcss-normalize-positions-4.0.2" // { | ||
7286 | dependencies = [ | ||
7287 | sources."postcss-value-parser-3.3.1" | ||
7288 | ]; | ||
7289 | }) | ||
7290 | (sources."postcss-normalize-repeat-style-4.0.2" // { | ||
7291 | dependencies = [ | ||
7292 | sources."postcss-value-parser-3.3.1" | ||
7293 | ]; | ||
7294 | }) | ||
7295 | (sources."postcss-normalize-string-4.0.2" // { | ||
7296 | dependencies = [ | ||
7297 | sources."postcss-value-parser-3.3.1" | ||
7298 | ]; | ||
7299 | }) | ||
7300 | (sources."postcss-normalize-timing-functions-4.0.2" // { | ||
7301 | dependencies = [ | ||
7302 | sources."postcss-value-parser-3.3.1" | ||
7303 | ]; | ||
7304 | }) | ||
7305 | (sources."postcss-normalize-unicode-4.0.1" // { | ||
7306 | dependencies = [ | ||
7307 | sources."postcss-value-parser-3.3.1" | ||
7308 | ]; | ||
7309 | }) | ||
7310 | (sources."postcss-normalize-url-4.0.1" // { | ||
7311 | dependencies = [ | ||
7312 | sources."postcss-value-parser-3.3.1" | ||
7313 | ]; | ||
7314 | }) | ||
7315 | (sources."postcss-normalize-whitespace-4.0.2" // { | ||
7316 | dependencies = [ | ||
7317 | sources."postcss-value-parser-3.3.1" | ||
7318 | ]; | ||
7319 | }) | ||
7320 | (sources."postcss-ordered-values-4.1.2" // { | ||
7321 | dependencies = [ | ||
7322 | sources."postcss-value-parser-3.3.1" | ||
7323 | ]; | ||
7324 | }) | ||
7325 | sources."postcss-reduce-initial-4.0.3" | ||
7326 | (sources."postcss-reduce-transforms-4.0.2" // { | ||
7327 | dependencies = [ | ||
7328 | sources."postcss-value-parser-3.3.1" | ||
7329 | ]; | ||
7330 | }) | ||
7331 | sources."postcss-selector-parser-6.0.2" | ||
7332 | (sources."postcss-svgo-4.0.2" // { | ||
7333 | dependencies = [ | ||
7334 | sources."postcss-value-parser-3.3.1" | ||
7335 | ]; | ||
7336 | }) | ||
7337 | sources."postcss-unique-selectors-4.0.1" | ||
7338 | sources."postcss-value-parser-4.0.3" | ||
7339 | sources."posthtml-0.11.6" | ||
7340 | sources."posthtml-parser-0.4.2" | ||
7341 | sources."posthtml-render-1.2.2" | ||
7342 | sources."prelude-ls-1.1.2" | ||
7343 | sources."private-0.1.8" | ||
7344 | sources."process-0.11.10" | ||
7345 | sources."process-nextick-args-2.0.1" | ||
7346 | sources."proto-list-1.2.4" | ||
7347 | sources."pseudomap-1.0.2" | ||
7348 | sources."psl-1.8.0" | ||
7349 | sources."public-encrypt-4.0.3" | ||
7350 | sources."punycode-2.1.1" | ||
7351 | sources."purgecss-1.4.2" | ||
7352 | sources."q-1.5.1" | ||
7353 | sources."qs-6.5.2" | ||
7354 | sources."querystring-0.2.0" | ||
7355 | sources."querystring-es3-0.2.1" | ||
7356 | sources."quote-stream-1.0.2" | ||
7357 | sources."randombytes-2.1.0" | ||
7358 | sources."randomfill-1.0.4" | ||
7359 | sources."range-parser-1.2.1" | ||
7360 | sources."readable-stream-2.3.7" | ||
7361 | sources."readdirp-2.2.1" | ||
7362 | sources."regenerate-1.4.0" | ||
7363 | sources."regenerate-unicode-properties-8.2.0" | ||
7364 | sources."regenerator-runtime-0.13.5" | ||
7365 | (sources."regenerator-transform-0.14.4" // { | ||
7366 | dependencies = [ | ||
7367 | sources."@babel/runtime-7.9.2" | ||
7368 | ]; | ||
7369 | }) | ||
7370 | sources."regex-not-1.0.2" | ||
7371 | sources."regexpu-core-4.7.0" | ||
7372 | sources."regjsgen-0.5.1" | ||
7373 | (sources."regjsparser-0.6.4" // { | ||
7374 | dependencies = [ | ||
7375 | sources."jsesc-0.5.0" | ||
7376 | ]; | ||
7377 | }) | ||
7378 | sources."remove-trailing-separator-1.1.0" | ||
7379 | sources."repeat-element-1.1.3" | ||
7380 | sources."repeat-string-1.6.1" | ||
7381 | sources."request-2.88.2" | ||
7382 | sources."request-promise-core-1.1.3" | ||
7383 | sources."request-promise-native-1.0.8" | ||
7384 | sources."require-directory-2.1.1" | ||
7385 | sources."require-main-filename-2.0.0" | ||
7386 | sources."resolve-1.17.0" | ||
7387 | sources."resolve-from-3.0.0" | ||
7388 | sources."resolve-url-0.2.1" | ||
7389 | sources."restore-cursor-2.0.0" | ||
7390 | sources."ret-0.1.15" | ||
7391 | sources."rgb-regex-1.0.1" | ||
7392 | sources."rgba-regex-1.0.0" | ||
7393 | sources."rimraf-2.6.3" | ||
7394 | sources."ripemd160-2.0.2" | ||
7395 | sources."safe-buffer-5.1.2" | ||
7396 | sources."safe-regex-1.1.0" | ||
7397 | sources."safer-buffer-2.1.2" | ||
7398 | sources."safer-eval-1.3.6" | ||
7399 | sources."sax-1.2.4" | ||
7400 | sources."saxes-3.1.11" | ||
7401 | sources."semver-5.7.1" | ||
7402 | (sources."send-0.17.1" // { | ||
7403 | dependencies = [ | ||
7404 | (sources."debug-2.6.9" // { | ||
7405 | dependencies = [ | ||
7406 | sources."ms-2.0.0" | ||
7407 | ]; | ||
7408 | }) | ||
7409 | sources."ms-2.1.1" | ||
7410 | ]; | ||
7411 | }) | ||
7412 | sources."serialize-to-js-1.2.2" | ||
7413 | sources."serve-static-1.14.1" | ||
7414 | sources."set-blocking-2.0.0" | ||
7415 | (sources."set-value-2.0.1" // { | ||
7416 | dependencies = [ | ||
7417 | sources."extend-shallow-2.0.1" | ||
7418 | ]; | ||
7419 | }) | ||
7420 | sources."setimmediate-1.0.5" | ||
7421 | sources."setprototypeof-1.1.1" | ||
7422 | sources."sha.js-2.4.11" | ||
7423 | sources."shallow-copy-0.0.1" | ||
7424 | sources."shebang-command-1.2.0" | ||
7425 | sources."shebang-regex-1.0.0" | ||
7426 | sources."sigmund-1.0.1" | ||
7427 | sources."signal-exit-3.0.3" | ||
7428 | (sources."simple-swizzle-0.2.2" // { | ||
7429 | dependencies = [ | ||
7430 | sources."is-arrayish-0.3.2" | ||
7431 | ]; | ||
7432 | }) | ||
7433 | (sources."snapdragon-0.8.2" // { | ||
7434 | dependencies = [ | ||
7435 | sources."debug-2.6.9" | ||
7436 | sources."define-property-0.2.5" | ||
7437 | sources."extend-shallow-2.0.1" | ||
7438 | sources."ms-2.0.0" | ||
7439 | sources."source-map-0.5.7" | ||
7440 | ]; | ||
7441 | }) | ||
7442 | (sources."snapdragon-node-2.1.1" // { | ||
7443 | dependencies = [ | ||
7444 | sources."define-property-1.0.0" | ||
7445 | sources."is-accessor-descriptor-1.0.0" | ||
7446 | sources."is-data-descriptor-1.0.0" | ||
7447 | sources."is-descriptor-1.0.2" | ||
7448 | ]; | ||
7449 | }) | ||
7450 | (sources."snapdragon-util-3.0.1" // { | ||
7451 | dependencies = [ | ||
7452 | sources."kind-of-3.2.2" | ||
7453 | ]; | ||
7454 | }) | ||
7455 | sources."source-map-0.6.1" | ||
7456 | sources."source-map-resolve-0.5.3" | ||
7457 | sources."source-map-support-0.5.19" | ||
7458 | sources."source-map-url-0.4.0" | ||
7459 | sources."split-string-3.1.0" | ||
7460 | sources."sprintf-js-1.0.3" | ||
7461 | sources."sshpk-1.16.1" | ||
7462 | sources."stable-0.1.8" | ||
7463 | (sources."static-eval-2.0.5" // { | ||
7464 | dependencies = [ | ||
7465 | sources."escodegen-1.14.1" | ||
7466 | ]; | ||
7467 | }) | ||
7468 | (sources."static-extend-0.1.2" // { | ||
7469 | dependencies = [ | ||
7470 | sources."define-property-0.2.5" | ||
7471 | ]; | ||
7472 | }) | ||
7473 | (sources."static-module-2.2.5" // { | ||
7474 | dependencies = [ | ||
7475 | sources."object-inspect-1.4.1" | ||
7476 | ]; | ||
7477 | }) | ||
7478 | sources."statuses-1.5.0" | ||
7479 | sources."stealthy-require-1.1.1" | ||
7480 | sources."stream-browserify-2.0.2" | ||
7481 | sources."stream-http-2.8.3" | ||
7482 | (sources."string-width-3.1.0" // { | ||
7483 | dependencies = [ | ||
7484 | sources."ansi-regex-4.1.0" | ||
7485 | sources."strip-ansi-5.2.0" | ||
7486 | ]; | ||
7487 | }) | ||
7488 | sources."string.prototype.trimend-1.0.1" | ||
7489 | sources."string.prototype.trimleft-2.1.2" | ||
7490 | sources."string.prototype.trimright-2.1.2" | ||
7491 | sources."string.prototype.trimstart-1.0.1" | ||
7492 | sources."string_decoder-1.1.1" | ||
7493 | sources."strip-ansi-4.0.0" | ||
7494 | (sources."stylehacks-4.0.3" // { | ||
7495 | dependencies = [ | ||
7496 | sources."postcss-selector-parser-3.1.2" | ||
7497 | ]; | ||
7498 | }) | ||
7499 | sources."supports-color-6.1.0" | ||
7500 | sources."svgo-1.3.2" | ||
7501 | sources."symbol-tree-3.2.4" | ||
7502 | sources."temp-0.9.0" | ||
7503 | sources."terser-3.17.0" | ||
7504 | sources."through2-2.0.5" | ||
7505 | sources."timers-browserify-2.0.11" | ||
7506 | sources."timsort-0.3.0" | ||
7507 | sources."tiny-inflate-1.0.3" | ||
7508 | sources."to-arraybuffer-1.0.1" | ||
7509 | sources."to-fast-properties-2.0.0" | ||
7510 | (sources."to-object-path-0.3.0" // { | ||
7511 | dependencies = [ | ||
7512 | sources."kind-of-3.2.2" | ||
7513 | ]; | ||
7514 | }) | ||
7515 | sources."to-regex-3.0.2" | ||
7516 | sources."to-regex-range-2.1.1" | ||
7517 | sources."toidentifier-1.0.0" | ||
7518 | sources."tough-cookie-2.5.0" | ||
7519 | sources."tr46-1.0.1" | ||
7520 | sources."trim-right-1.0.1" | ||
7521 | sources."tty-browserify-0.0.0" | ||
7522 | sources."tunnel-agent-0.6.0" | ||
7523 | sources."tweetnacl-0.14.5" | ||
7524 | sources."type-check-0.3.2" | ||
7525 | sources."typedarray-0.0.6" | ||
7526 | (sources."uncss-0.17.3" // { | ||
7527 | dependencies = [ | ||
7528 | sources."is-absolute-url-3.0.3" | ||
7529 | ]; | ||
7530 | }) | ||
7531 | sources."unicode-canonical-property-names-ecmascript-1.0.4" | ||
7532 | sources."unicode-match-property-ecmascript-1.0.4" | ||
7533 | sources."unicode-match-property-value-ecmascript-1.2.0" | ||
7534 | sources."unicode-property-aliases-ecmascript-1.1.0" | ||
7535 | sources."unicode-trie-0.3.1" | ||
7536 | sources."union-value-1.0.1" | ||
7537 | sources."uniq-1.0.1" | ||
7538 | sources."uniqs-2.0.0" | ||
7539 | sources."unquote-1.1.1" | ||
7540 | (sources."unset-value-1.0.0" // { | ||
7541 | dependencies = [ | ||
7542 | (sources."has-value-0.3.1" // { | ||
7543 | dependencies = [ | ||
7544 | sources."isobject-2.1.0" | ||
7545 | ]; | ||
7546 | }) | ||
7547 | sources."has-values-0.1.4" | ||
7548 | ]; | ||
7549 | }) | ||
7550 | sources."upath-1.2.0" | ||
7551 | sources."uri-js-4.2.2" | ||
7552 | sources."urix-0.1.0" | ||
7553 | (sources."url-0.11.0" // { | ||
7554 | dependencies = [ | ||
7555 | sources."punycode-1.3.2" | ||
7556 | ]; | ||
7557 | }) | ||
7558 | sources."use-3.1.1" | ||
7559 | (sources."util-0.11.1" // { | ||
7560 | dependencies = [ | ||
7561 | sources."inherits-2.0.3" | ||
7562 | ]; | ||
7563 | }) | ||
7564 | sources."util-deprecate-1.0.2" | ||
7565 | sources."util.promisify-1.0.1" | ||
7566 | sources."uuid-3.4.0" | ||
7567 | sources."v8-compile-cache-2.1.0" | ||
7568 | sources."vendors-1.0.4" | ||
7569 | sources."verror-1.10.0" | ||
7570 | sources."vlq-0.2.3" | ||
7571 | sources."vm-browserify-1.1.2" | ||
7572 | sources."w3c-hr-time-1.0.2" | ||
7573 | sources."w3c-xmlserializer-1.1.2" | ||
7574 | sources."wcwidth-1.0.1" | ||
7575 | sources."webidl-conversions-4.0.2" | ||
7576 | sources."whatwg-encoding-1.0.5" | ||
7577 | sources."whatwg-mimetype-2.3.0" | ||
7578 | sources."whatwg-url-7.1.0" | ||
7579 | sources."which-1.3.1" | ||
7580 | sources."which-module-2.0.0" | ||
7581 | sources."word-wrap-1.2.3" | ||
7582 | (sources."wrap-ansi-5.1.0" // { | ||
7583 | dependencies = [ | ||
7584 | sources."ansi-regex-4.1.0" | ||
7585 | sources."strip-ansi-5.2.0" | ||
7586 | ]; | ||
7587 | }) | ||
7588 | sources."wrappy-1.0.2" | ||
7589 | sources."ws-5.2.2" | ||
7590 | sources."xml-name-validator-3.0.0" | ||
7591 | sources."xmlchars-2.2.0" | ||
7592 | sources."xtend-4.0.2" | ||
7593 | sources."y18n-4.0.0" | ||
7594 | sources."yallist-2.1.2" | ||
7595 | (sources."yargs-14.2.3" // { | ||
7596 | dependencies = [ | ||
7597 | sources."find-up-3.0.0" | ||
7598 | sources."locate-path-3.0.0" | ||
7599 | sources."p-limit-2.3.0" | ||
7600 | sources."p-locate-3.0.0" | ||
7601 | sources."p-try-2.2.0" | ||
7602 | ]; | ||
7603 | }) | ||
7604 | sources."yargs-parser-15.0.1" | ||
7605 | ]; | ||
7606 | buildInputs = globalBuildInputs; | ||
7607 | meta = { | ||
7608 | license = "MIT"; | ||
7609 | }; | ||
7610 | production = false; | ||
7611 | bypassCache = true; | ||
7612 | reconstructLock = false; | ||
7613 | }; | ||
7614 | in | ||
7615 | { | ||
7616 | args = args; | ||
7617 | sources = sources; | ||
7618 | tarball = nodeEnv.buildNodeSourceDist args; | ||
7619 | package = nodeEnv.buildNodePackage args; | ||
7620 | shell = nodeEnv.buildNodeShell args; | ||
7621 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/registry.dat b/modules/private/websites/tools/games/codenames/registry.dat deleted file mode 100644 index a8585a8..0000000 --- a/modules/private/websites/tools/games/codenames/registry.dat +++ /dev/null | |||
Binary files differ | |||
diff --git a/modules/private/websites/tools/games/codenames/shell.nix b/modules/private/websites/tools/games/codenames/shell.nix deleted file mode 100644 index 053696b..0000000 --- a/modules/private/websites/tools/games/codenames/shell.nix +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | { pkgs ? import <nixpkgs> {} }: with pkgs; | ||
2 | let | ||
3 | greenapid = callPackage ./greenapid.nix {}; | ||
4 | frontend = callPackage ./frontend.nix {}; | ||
5 | nginx_conf = writeText "nginx.conf" '' | ||
6 | pid ./nginx.pid; | ||
7 | error_log stderr; | ||
8 | daemon off; | ||
9 | events { | ||
10 | } | ||
11 | http { | ||
12 | include ${mailcap}/etc/nginx/mime.types; | ||
13 | server { | ||
14 | listen 0.0.0.0:8081; | ||
15 | listen [::]:8081; | ||
16 | location /api/ { | ||
17 | proxy_set_header X-Real-IP $remote_addr; | ||
18 | proxy_set_header Host $host; | ||
19 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
20 | proxy_pass http://127.0.0.1:8080/; | ||
21 | } | ||
22 | location / { | ||
23 | root ${frontend}; | ||
24 | try_files $uri $uri/ /index.html; | ||
25 | } | ||
26 | } | ||
27 | } | ||
28 | ''; | ||
29 | in | ||
30 | pkgs.mkShell { | ||
31 | buildInputs = [ | ||
32 | greenapid | ||
33 | frontend | ||
34 | python2 | ||
35 | nginx | ||
36 | ]; | ||
37 | shellHook = '' | ||
38 | greenapid & | ||
39 | pid=$! | ||
40 | |||
41 | finish() { | ||
42 | kill $pid; | ||
43 | } | ||
44 | |||
45 | trap finish EXIT | ||
46 | |||
47 | nginx -c ${nginx_conf} -p ./nginx/ | ||
48 | exit | ||
49 | ''; | ||
50 | } | ||
diff --git a/modules/private/websites/tools/games/codenames/wordlists/french.txt b/modules/private/websites/tools/games/codenames/wordlists/french.txt deleted file mode 100644 index 462ddc4..0000000 --- a/modules/private/websites/tools/games/codenames/wordlists/french.txt +++ /dev/null | |||
@@ -1,694 +0,0 @@ | |||
1 | ACCIDENT | ||
2 | ACHAT | ||
3 | ACNÉ | ||
4 | ACTION | ||
5 | ADOLESCENT | ||
6 | AFRIQUE | ||
7 | AIGUILLE | ||
8 | ALLUMER | ||
9 | ALPES | ||
10 | ALPHABET | ||
11 | ALTITUDE | ||
12 | AMÉRIQUE | ||
13 | AMI | ||
14 | AMOUR | ||
15 | AMPOULE | ||
16 | ANNIVERSAIRE | ||
17 | APPÉTIT | ||
18 | ARAIGNÉE | ||
19 | ARBRE | ||
20 | ARC | ||
21 | ARC-EN-CIEL | ||
22 | ARGENT | ||
23 | ARME | ||
24 | ARMÉE | ||
25 | ASCENSEUR | ||
26 | ASIE | ||
27 | ASSIS | ||
28 | ASTRONAUTE | ||
29 | ATCHOUM | ||
30 | ATHLÈTE | ||
31 | ATLANTIDE | ||
32 | AUBE | ||
33 | AUSTRALIE | ||
34 | AVEC | ||
35 | AVENTURE | ||
36 | AVION | ||
37 | AVOCAT | ||
38 | BAC | ||
39 | BAGUETTE | ||
40 | BAIN | ||
41 | BAISER | ||
42 | BALAI | ||
43 | BALLE | ||
44 | BALLON | ||
45 | BAMBOU | ||
46 | BANANE | ||
47 | BANNIR | ||
48 | BARBE | ||
49 | BARRIÈRE | ||
50 | BAS | ||
51 | BASKET | ||
52 | BATEAU | ||
53 | BÂTON | ||
54 | BATTERIE | ||
55 | BÉBÉ | ||
56 | BEETHOVEN | ||
57 | BÊTE | ||
58 | BIBERON | ||
59 | BIÈRE | ||
60 | BLANC | ||
61 | BLÉ | ||
62 | BLEU | ||
63 | BOB | ||
64 | BOISSON | ||
65 | BOÎTE | ||
66 | BOMBE | ||
67 | BONBON | ||
68 | BONNET | ||
69 | BORD | ||
70 | BORDEAUX | ||
71 | BOTTE | ||
72 | BOUE | ||
73 | BOUGIE | ||
74 | BOULE | ||
75 | BOUTEILLE | ||
76 | BOUTON | ||
77 | BRANCHE | ||
78 | BRAS | ||
79 | BRAVO | ||
80 | BRETAGNE | ||
81 | BRISE | ||
82 | BROSSE | ||
83 | BRUIT | ||
84 | BRUME | ||
85 | BRUN | ||
86 | BÛCHE | ||
87 | BULLE | ||
88 | BUREAU | ||
89 | BUT | ||
90 | CABANE | ||
91 | CABINE | ||
92 | CACHER | ||
93 | CADEAU | ||
94 | CAFARD | ||
95 | CAFÉ | ||
96 | CAISSE | ||
97 | CALCULER | ||
98 | CALME | ||
99 | CAMÉRA | ||
100 | CAMION | ||
101 | CAMPING | ||
102 | CANADA | ||
103 | CANARD | ||
104 | CANETTE | ||
105 | CANINE | ||
106 | CAP | ||
107 | CAPITALISME | ||
108 | CAR | ||
109 | CAROTTE | ||
110 | CARRÉ | ||
111 | CARTE | ||
112 | CARTON | ||
113 | CASQUE | ||
114 | CASSER | ||
115 | CASSETTE | ||
116 | CAUCHEMAR | ||
117 | CAUSE | ||
118 | CEINTURE | ||
119 | CELLULE | ||
120 | CERCLE | ||
121 | CHAÎNE | ||
122 | CHAIR | ||
123 | CHAISE | ||
124 | CHAMP | ||
125 | CHAMPION | ||
126 | CHANT | ||
127 | CHAPEAU | ||
128 | CHARBON | ||
129 | CHARGE | ||
130 | CHASSE | ||
131 | CHAT | ||
132 | CHÂTEAU | ||
133 | CHAUD | ||
134 | CHAUSSURE | ||
135 | CHAUVE | ||
136 | CHEF | ||
137 | CHEMISE | ||
138 | CHÊNE | ||
139 | CHER | ||
140 | CHEVAL | ||
141 | CHEVALIER | ||
142 | CHEVEU | ||
143 | CHIEN | ||
144 | CHIFFRE | ||
145 | CHINE | ||
146 | CHOCOLAT | ||
147 | CHÔMAGE | ||
148 | CIEL | ||
149 | CIL | ||
150 | CINÉMA | ||
151 | CIRE | ||
152 | CIRQUE | ||
153 | CITRON | ||
154 | CLÉ | ||
155 | CLOU | ||
156 | CLOWN | ||
157 | COACH | ||
158 | COCCINELLE | ||
159 | CODE | ||
160 | CŒUR | ||
161 | COL | ||
162 | COLLE | ||
163 | COLLINE | ||
164 | COLONNE | ||
165 | CÔNE | ||
166 | CONFORT | ||
167 | CONTINU | ||
168 | CONTRE | ||
169 | CONVERSATION | ||
170 | COPAIN | ||
171 | COQ | ||
172 | COQUILLAGE | ||
173 | CORBEAU | ||
174 | CORDE | ||
175 | CORPS | ||
176 | CÔTE | ||
177 | COUDE | ||
178 | COULOIR | ||
179 | COUP | ||
180 | COUR | ||
181 | COURANT | ||
182 | COURRIER | ||
183 | COURS | ||
184 | COURSE | ||
185 | COURT | ||
186 | COUTEAU | ||
187 | COUVERT | ||
188 | COUVERTURE | ||
189 | COWBOY | ||
190 | CRAC | ||
191 | CRAYON | ||
192 | CRÈME | ||
193 | CRITIQUE | ||
194 | CROCHET | ||
195 | CROIX | ||
196 | CROÛTE | ||
197 | CUILLÈRE | ||
198 | CUIR | ||
199 | CUISINE | ||
200 | CULOTTE | ||
201 | CYCLE | ||
202 | DARD | ||
203 | DÉ | ||
204 | DEBOUT | ||
205 | DÉFAUT | ||
206 | DEHORS | ||
207 | DÉMOCRATIE | ||
208 | DENT | ||
209 | DENTISTE | ||
210 | DESSIN | ||
211 | DEVOIR | ||
212 | DIAMANT | ||
213 | DICTIONNAIRE | ||
214 | DIEU | ||
215 | DINOSAURE | ||
216 | DISCOURS | ||
217 | DISQUE | ||
218 | DIX | ||
219 | DOCTEUR | ||
220 | DOIGT | ||
221 | DOMINO | ||
222 | DORMIR | ||
223 | DROIT | ||
224 | EAU | ||
225 | ÉCHEC | ||
226 | ÉCHELLE | ||
227 | ÉCLAIR | ||
228 | ÉCOLE | ||
229 | ÉCRAN | ||
230 | ÉCRASER | ||
231 | ÉCRIT | ||
232 | ÉGLISE | ||
233 | ÉGOUT | ||
234 | ÉLECTRICITÉ | ||
235 | ÉLÉPHANT | ||
236 | ÉLÈVE | ||
237 | ELFE | ||
238 | EMPREINTE | ||
239 | ENCEINTE | ||
240 | ÉPICE | ||
241 | ÉPINE | ||
242 | ERREUR | ||
243 | ESPACE | ||
244 | ESPION | ||
245 | ESSENCE | ||
246 | ÉTAT | ||
247 | ÉTÉ | ||
248 | ÉTOILE | ||
249 | ÉTRANGER | ||
250 | ÉVENTAIL | ||
251 | ÉVOLUTION | ||
252 | EXPLOSION | ||
253 | EXTENSION | ||
254 | FACE | ||
255 | FAN | ||
256 | FARCE | ||
257 | FATIGUE | ||
258 | FAUTEUIL | ||
259 | FEMME | ||
260 | FENÊTRE | ||
261 | FER | ||
262 | FÊTE | ||
263 | FEU | ||
264 | FEUILLE | ||
265 | FIDÈLE | ||
266 | FIL | ||
267 | FILLE | ||
268 | FLAMME | ||
269 | FLÈCHE | ||
270 | FLEUR | ||
271 | FLEUVE | ||
272 | FOND | ||
273 | FOOTBALL | ||
274 | FORÊT | ||
275 | FORGER | ||
276 | FOUDRE | ||
277 | FOUET | ||
278 | FOUR | ||
279 | FOURMI | ||
280 | FROID | ||
281 | FROMAGE | ||
282 | FRONT | ||
283 | FRUIT | ||
284 | FUIR | ||
285 | FUTUR | ||
286 | GARÇON | ||
287 | GÂTEAU | ||
288 | GAUCHE | ||
289 | GAZ | ||
290 | GAZON | ||
291 | GEL | ||
292 | GENOU | ||
293 | GLACE | ||
294 | GOMME | ||
295 | GORGE | ||
296 | GOUTTE | ||
297 | GRAND | ||
298 | GRÈCE | ||
299 | GRENOUILLE | ||
300 | GRIPPE | ||
301 | GRIS | ||
302 | GROS | ||
303 | GROUPE | ||
304 | GUITARE | ||
305 | HASARD | ||
306 | HAUT | ||
307 | HÉLICOPTÈRE | ||
308 | HERBE | ||
309 | HEUREUX | ||
310 | HISTOIRE | ||
311 | HIVER | ||
312 | HÔTEL | ||
313 | HUGO | ||
314 | HUILE | ||
315 | HUMIDE | ||
316 | HUMOUR | ||
317 | INDICE | ||
318 | INTERNET | ||
319 | INVITER | ||
320 | ITALIE | ||
321 | JACQUES | ||
322 | JAMBE | ||
323 | JAMBON | ||
324 | JARDIN | ||
325 | JAUNE | ||
326 | JEAN | ||
327 | JEANNE | ||
328 | JET | ||
329 | JEU | ||
330 | JOGGING | ||
331 | JOUR | ||
332 | JOURNAL | ||
333 | JUPITER | ||
334 | KILO | ||
335 | KIWI | ||
336 | LAINE | ||
337 | LAIT | ||
338 | LANGUE | ||
339 | LAPIN | ||
340 | LATIN | ||
341 | LAVER | ||
342 | LECTEUR | ||
343 | LÉGER | ||
344 | LENT | ||
345 | LETTRE | ||
346 | LIEN | ||
347 | LIGNE | ||
348 | LINGE | ||
349 | LION | ||
350 | LIT | ||
351 | LIVRE | ||
352 | LOI | ||
353 | LONG | ||
354 | LOUIS | ||
355 | LOUP | ||
356 | LUMIÈRE | ||
357 | LUNDI | ||
358 | LUNE | ||
359 | LUNETTE | ||
360 | MACHINE | ||
361 | MACHO | ||
362 | MAIN | ||
363 | MAISON | ||
364 | MAÎTRESSE | ||
365 | MAL | ||
366 | MALADIE | ||
367 | MAMAN | ||
368 | MAMMOUTH | ||
369 | MANGER | ||
370 | MARAIS | ||
371 | MARC | ||
372 | MARCHE | ||
373 | MARIAGE | ||
374 | MARIE | ||
375 | MARIÉE | ||
376 | MARQUE | ||
377 | MARSEILLE | ||
378 | MASSE | ||
379 | MER | ||
380 | MESSE | ||
381 | MÈTRE | ||
382 | MÉTRO | ||
383 | MIAOU | ||
384 | MICRO | ||
385 | MIEUX | ||
386 | MILLE | ||
387 | MINE | ||
388 | MIROIR | ||
389 | MODERNE | ||
390 | MOITIÉ | ||
391 | MONDE | ||
392 | MONSTRE | ||
393 | MONTAGNE | ||
394 | MONTRE | ||
395 | MORT | ||
396 | MOTEUR | ||
397 | MOTO | ||
398 | MOU | ||
399 | MOUCHE | ||
400 | MOULIN | ||
401 | MOUSTACHE | ||
402 | MOUTON | ||
403 | MUR | ||
404 | MUSCLE | ||
405 | MUSIQUE | ||
406 | MYSTÈRE | ||
407 | NAGE | ||
408 | NATURE | ||
409 | NEIGE | ||
410 | NEUTRE | ||
411 | NEW YORK | ||
412 | NEZ | ||
413 | NID | ||
414 | NINJA | ||
415 | NIVEAU | ||
416 | NOËL | ||
417 | NŒUD | ||
418 | NOIR | ||
419 | NOUS | ||
420 | NUAGE | ||
421 | NUIT | ||
422 | NUMÉRO | ||
423 | ŒIL | ||
424 | ŒUF | ||
425 | OISEAU | ||
426 | OLYMPIQUE | ||
427 | OMBRE | ||
428 | ONGLE | ||
429 | OR | ||
430 | ORAL | ||
431 | ORANGE | ||
432 | ORDINATEUR | ||
433 | ORDRE | ||
434 | ORDURE | ||
435 | OREILLE | ||
436 | ORGANE | ||
437 | ORGUEIL | ||
438 | OURS | ||
439 | OUTIL | ||
440 | OUVERT | ||
441 | OVALE | ||
442 | PAIN | ||
443 | PALAIS | ||
444 | PANNEAU | ||
445 | PANTALON | ||
446 | PANTIN | ||
447 | PAPA | ||
448 | PAPIER | ||
449 | PAPILLON | ||
450 | PARADIS | ||
451 | PARC | ||
452 | PARIS | ||
453 | PAROLE | ||
454 | PARTIE | ||
455 | PASSE | ||
456 | PÂTE | ||
457 | PATIN | ||
458 | PATTE | ||
459 | PAUL | ||
460 | PAYER | ||
461 | PÊCHE | ||
462 | PEINTURE | ||
463 | PENDULE | ||
464 | PENSER | ||
465 | PERSONNE | ||
466 | PETIT | ||
467 | PEUR | ||
468 | PHILOSOPHE | ||
469 | PHOTO | ||
470 | PHRASE | ||
471 | PIANO | ||
472 | PIÈCE | ||
473 | PIED | ||
474 | PIERRE | ||
475 | PILE | ||
476 | PILOTE | ||
477 | PINCE | ||
478 | PIOCHE | ||
479 | PION | ||
480 | PIRATE | ||
481 | PIRE | ||
482 | PISCINE | ||
483 | PLACE | ||
484 | PLAFOND | ||
485 | PLAGE | ||
486 | PLAIE | ||
487 | PLAN | ||
488 | PLANCHE | ||
489 | PLANÈTE | ||
490 | PLANTE | ||
491 | PLASTIQUE | ||
492 | PLAT | ||
493 | PLOMB | ||
494 | PLONGER | ||
495 | PLUIE | ||
496 | POCHE | ||
497 | POÈTE | ||
498 | POIDS | ||
499 | POING | ||
500 | POINT | ||
501 | POIVRE | ||
502 | POLICE | ||
503 | POLITIQUE | ||
504 | POLLEN | ||
505 | POLO | ||
506 | POMME | ||
507 | POMPE | ||
508 | PONT | ||
509 | POPULATION | ||
510 | PORT | ||
511 | PORTE | ||
512 | PORTEFEUILLE | ||
513 | POSITIF | ||
514 | POSTE | ||
515 | POUBELLE | ||
516 | POULE | ||
517 | POUPÉE | ||
518 | POUSSER | ||
519 | POUSSIÈRE | ||
520 | POUVOIR | ||
521 | PRÉHISTOIRE | ||
522 | PREMIER | ||
523 | PRÉSENT | ||
524 | PRESSE | ||
525 | PRIER | ||
526 | PRINCESSE | ||
527 | PRISE | ||
528 | PRIVÉ | ||
529 | PROFESSEUR | ||
530 | PSYCHOLOGIE | ||
531 | PUBLIC | ||
532 | PULL | ||
533 | PUNK | ||
534 | PUZZLE | ||
535 | PYJAMA | ||
536 | QUATRE | ||
537 | QUINZE | ||
538 | RACE | ||
539 | RADIO | ||
540 | RAISIN | ||
541 | RAP | ||
542 | RAYÉ | ||
543 | RAYON | ||
544 | RÉFLÉCHIR | ||
545 | REINE | ||
546 | REPAS | ||
547 | REPTILE | ||
548 | REQUIN | ||
549 | RÊVE | ||
550 | RICHE | ||
551 | RIDEAU | ||
552 | RIEN | ||
553 | RIRE | ||
554 | ROBINET | ||
555 | ROCHE | ||
556 | ROI | ||
557 | ROND | ||
558 | ROSE | ||
559 | ROUE | ||
560 | ROUGE | ||
561 | ROUILLE | ||
562 | ROUX | ||
563 | RUSSIE | ||
564 | SABLE | ||
565 | SABRE | ||
566 | SAC | ||
567 | SAIN | ||
568 | SAISON | ||
569 | SALE | ||
570 | SALLE | ||
571 | SALUT | ||
572 | SAMU | ||
573 | SANDWICH | ||
574 | SANG | ||
575 | SAPIN | ||
576 | SATELLITE | ||
577 | SAUMON | ||
578 | SAUT | ||
579 | SAVOIR | ||
580 | SCHTROUMPF | ||
581 | SCIENCE | ||
582 | SCOUT | ||
583 | SEC | ||
584 | SEINE | ||
585 | SEL | ||
586 | SEPT | ||
587 | SERPENT | ||
588 | SERRER | ||
589 | SEXE | ||
590 | SHAMPOOING | ||
591 | SIÈCLE | ||
592 | SIÈGE | ||
593 | SIESTE | ||
594 | SILHOUETTE | ||
595 | SIRÈNE | ||
596 | SKI | ||
597 | SOLEIL | ||
598 | SOMMEIL | ||
599 | SON | ||
600 | SONNER | ||
601 | SORCIÈRE | ||
602 | SOURD | ||
603 | SOURIS | ||
604 | SPORT | ||
605 | STAR | ||
606 | STATION | ||
607 | STYLO | ||
608 | SUR | ||
609 | SURFACE | ||
610 | SUSHI | ||
611 | SWING | ||
612 | TABLEAU | ||
613 | TACHE | ||
614 | TAILLE | ||
615 | TANTE | ||
616 | TAPIS | ||
617 | TARD | ||
618 | TAXI | ||
619 | TÉLÉPHONE | ||
620 | TÉLÉVISION | ||
621 | TEMPLE | ||
622 | TEMPS | ||
623 | TENNIS | ||
624 | TÊTE | ||
625 | THÉ | ||
626 | TIGRE | ||
627 | TINTIN | ||
628 | TISSU | ||
629 | TITRE | ||
630 | TOAST | ||
631 | TOILETTE | ||
632 | TOKYO | ||
633 | TOMBE | ||
634 | TON | ||
635 | TOP | ||
636 | TOUCHE | ||
637 | TOUJOURS | ||
638 | TOUR | ||
639 | TOURNOI | ||
640 | TOUT | ||
641 | TRACE | ||
642 | TRAIN | ||
643 | TRAÎNER | ||
644 | TRANSPORT | ||
645 | TRAVAIL | ||
646 | TRÉSOR | ||
647 | TRIANGLE | ||
648 | TRISTE | ||
649 | TRÔNE | ||
650 | TROUPEAU | ||
651 | TSAR | ||
652 | TUBE | ||
653 | TUER | ||
654 | TUPPERWARE | ||
655 | TUYAU | ||
656 | |||
657 | TYPE | ||
658 | UNIVERSITÉ | ||
659 | VACHE | ||
660 | VAGUE | ||
661 | VAISSELLE | ||
662 | VALEUR | ||
663 | VER | ||
664 | VERDICT | ||
665 | VERRE | ||
666 | VERS | ||
667 | VERT | ||
668 | VESTE | ||
669 | VIANDE | ||
670 | VIDE | ||
671 | VIE | ||
672 | VIEUX | ||
673 | VILLE | ||
674 | VIN | ||
675 | VINGT | ||
676 | VIOLON | ||
677 | VIPÈRE | ||
678 | VISION | ||
679 | VITE | ||
680 | VIVE | ||
681 | VŒU | ||
682 | VOILE | ||
683 | VOISIN | ||
684 | VOITURE | ||
685 | VOL | ||
686 | VOLUME | ||
687 | VOTE | ||
688 | VOULOIR | ||
689 | VOYAGE | ||
690 | ZEN | ||
691 | ZÉRO | ||
692 | ZODIAQUE | ||
693 | ZONE | ||
694 | ZOO | ||
diff --git a/modules/private/websites/tools/games/terraforming-mars/default.nix b/modules/private/websites/tools/games/terraforming-mars/default.nix deleted file mode 100644 index 0df5363..0000000 --- a/modules/private/websites/tools/games/terraforming-mars/default.nix +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.games.terraforming-mars; | ||
4 | terraforming-mars = pkgs.callPackage ./terraforming-mars.nix {}; | ||
5 | in | ||
6 | { | ||
7 | options.myServices.websites.games.terraforming-mars.enable = lib.mkEnableOption "Enable Terraforming mars game"; | ||
8 | config = lib.mkIf cfg.enable { | ||
9 | systemd.services.terraforming-mars = { | ||
10 | path = [ pkgs.nodejs pkgs.bashInteractive ]; | ||
11 | description = "Terraforming mars game"; | ||
12 | wantedBy = [ "multi-user.target" ]; | ||
13 | script = '' | ||
14 | export PORT=/run/terraforming-mars/socket.sock | ||
15 | export NODE_ENV=production | ||
16 | mkdir -p /var/lib/terraforming-mars/db | ||
17 | npm run start | ||
18 | ''; | ||
19 | postStart = '' | ||
20 | sleep 5; | ||
21 | chown :wwwrun /run/terraforming-mars/socket.sock | ||
22 | chmod g+w /run/terraforming-mars/socket.sock | ||
23 | ''; | ||
24 | serviceConfig = { | ||
25 | User = "terraformingmars"; | ||
26 | DynamicUser = true; | ||
27 | SupplementaryGroups = [ "wwwrun" ]; | ||
28 | Type = "simple"; | ||
29 | WorkingDirectory = terraforming-mars; | ||
30 | RuntimeDirectory = "terraforming-mars"; | ||
31 | StateDirectory = "terraforming-mars"; | ||
32 | }; | ||
33 | }; | ||
34 | |||
35 | services.websites.env.tools.vhostConfs.games_terraforming-mars = { | ||
36 | certName = "games"; | ||
37 | certMainHost = "games.immae.eu"; | ||
38 | hosts = [ "terraforming-mars.games.immae.eu" ]; | ||
39 | root = null; | ||
40 | extraConfig = [ | ||
41 | '' | ||
42 | ProxyPass / unix:///run/terraforming-mars/socket.sock|http://terraforming-mars.games.immae.eu/ | ||
43 | ProxyPassReverse / unix:///run/terraforming-mars/socket.sock|http://terraforming-mars.games.immae.eu/ | ||
44 | '' | ||
45 | ]; | ||
46 | }; | ||
47 | }; | ||
48 | } | ||
diff --git a/modules/private/websites/tools/games/terraforming-mars/node-packages.nix b/modules/private/websites/tools/games/terraforming-mars/node-packages.nix deleted file mode 100644 index e5fac49..0000000 --- a/modules/private/websites/tools/games/terraforming-mars/node-packages.nix +++ /dev/null | |||
@@ -1,4353 +0,0 @@ | |||
1 | # This file has been generated by node2nix 1.8.0. Do not edit! | ||
2 | |||
3 | {nodeEnv, fetchurl, fetchgit, globalBuildInputs ? [], src}: | ||
4 | |||
5 | let | ||
6 | sources = { | ||
7 | "@babel/code-frame-7.12.13" = { | ||
8 | name = "_at_babel_slash_code-frame"; | ||
9 | packageName = "@babel/code-frame"; | ||
10 | version = "7.12.13"; | ||
11 | src = fetchurl { | ||
12 | url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz"; | ||
13 | sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g=="; | ||
14 | }; | ||
15 | }; | ||
16 | "@babel/helper-validator-identifier-7.12.11" = { | ||
17 | name = "_at_babel_slash_helper-validator-identifier"; | ||
18 | packageName = "@babel/helper-validator-identifier"; | ||
19 | version = "7.12.11"; | ||
20 | src = fetchurl { | ||
21 | url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz"; | ||
22 | sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="; | ||
23 | }; | ||
24 | }; | ||
25 | "@babel/highlight-7.13.10" = { | ||
26 | name = "_at_babel_slash_highlight"; | ||
27 | packageName = "@babel/highlight"; | ||
28 | version = "7.13.10"; | ||
29 | src = fetchurl { | ||
30 | url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz"; | ||
31 | sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg=="; | ||
32 | }; | ||
33 | }; | ||
34 | "@discoveryjs/json-ext-0.5.2" = { | ||
35 | name = "_at_discoveryjs_slash_json-ext"; | ||
36 | packageName = "@discoveryjs/json-ext"; | ||
37 | version = "0.5.2"; | ||
38 | src = fetchurl { | ||
39 | url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz"; | ||
40 | sha512 = "HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg=="; | ||
41 | }; | ||
42 | }; | ||
43 | "@nodelib/fs.scandir-2.1.4" = { | ||
44 | name = "_at_nodelib_slash_fs.scandir"; | ||
45 | packageName = "@nodelib/fs.scandir"; | ||
46 | version = "2.1.4"; | ||
47 | src = fetchurl { | ||
48 | url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz"; | ||
49 | sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA=="; | ||
50 | }; | ||
51 | }; | ||
52 | "@nodelib/fs.stat-2.0.4" = { | ||
53 | name = "_at_nodelib_slash_fs.stat"; | ||
54 | packageName = "@nodelib/fs.stat"; | ||
55 | version = "2.0.4"; | ||
56 | src = fetchurl { | ||
57 | url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz"; | ||
58 | sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q=="; | ||
59 | }; | ||
60 | }; | ||
61 | "@nodelib/fs.walk-1.2.6" = { | ||
62 | name = "_at_nodelib_slash_fs.walk"; | ||
63 | packageName = "@nodelib/fs.walk"; | ||
64 | version = "1.2.6"; | ||
65 | src = fetchurl { | ||
66 | url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz"; | ||
67 | sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow=="; | ||
68 | }; | ||
69 | }; | ||
70 | "@types/eslint-7.2.10" = { | ||
71 | name = "_at_types_slash_eslint"; | ||
72 | packageName = "@types/eslint"; | ||
73 | version = "7.2.10"; | ||
74 | src = fetchurl { | ||
75 | url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz"; | ||
76 | sha512 = "kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ=="; | ||
77 | }; | ||
78 | }; | ||
79 | "@types/eslint-scope-3.7.0" = { | ||
80 | name = "_at_types_slash_eslint-scope"; | ||
81 | packageName = "@types/eslint-scope"; | ||
82 | version = "3.7.0"; | ||
83 | src = fetchurl { | ||
84 | url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz"; | ||
85 | sha512 = "O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw=="; | ||
86 | }; | ||
87 | }; | ||
88 | "@types/estree-0.0.46" = { | ||
89 | name = "_at_types_slash_estree"; | ||
90 | packageName = "@types/estree"; | ||
91 | version = "0.0.46"; | ||
92 | src = fetchurl { | ||
93 | url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz"; | ||
94 | sha512 = "laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg=="; | ||
95 | }; | ||
96 | }; | ||
97 | "@types/json-schema-7.0.7" = { | ||
98 | name = "_at_types_slash_json-schema"; | ||
99 | packageName = "@types/json-schema"; | ||
100 | version = "7.0.7"; | ||
101 | src = fetchurl { | ||
102 | url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz"; | ||
103 | sha512 = "cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA=="; | ||
104 | }; | ||
105 | }; | ||
106 | "@types/node-10.17.58" = { | ||
107 | name = "_at_types_slash_node"; | ||
108 | packageName = "@types/node"; | ||
109 | version = "10.17.58"; | ||
110 | src = fetchurl { | ||
111 | url = "https://registry.npmjs.org/@types/node/-/node-10.17.58.tgz"; | ||
112 | sha512 = "Dn5RBxLohjdHFj17dVVw3rtrZAeXeWg+LQfvxDIW/fdPkSiuQk7h3frKMYtsQhtIW42wkErDcy9UMVxhGW4O7w=="; | ||
113 | }; | ||
114 | }; | ||
115 | "@types/pg-7.14.11" = { | ||
116 | name = "_at_types_slash_pg"; | ||
117 | packageName = "@types/pg"; | ||
118 | version = "7.14.11"; | ||
119 | src = fetchurl { | ||
120 | url = "https://registry.npmjs.org/@types/pg/-/pg-7.14.11.tgz"; | ||
121 | sha512 = "EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA=="; | ||
122 | }; | ||
123 | }; | ||
124 | "@types/sqlite3-3.1.7" = { | ||
125 | name = "_at_types_slash_sqlite3"; | ||
126 | packageName = "@types/sqlite3"; | ||
127 | version = "3.1.7"; | ||
128 | src = fetchurl { | ||
129 | url = "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.7.tgz"; | ||
130 | sha512 = "8FHV/8Uzd7IwdHm5mvmF2Aif4aC/gjrt4axWD9SmfaxITnOjtOhCbOSTuqv/VbH1uq0QrwlaTj9aTz3gmR6u4w=="; | ||
131 | }; | ||
132 | }; | ||
133 | "@typescript-eslint/eslint-plugin-4.22.0" = { | ||
134 | name = "_at_typescript-eslint_slash_eslint-plugin"; | ||
135 | packageName = "@typescript-eslint/eslint-plugin"; | ||
136 | version = "4.22.0"; | ||
137 | src = fetchurl { | ||
138 | url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz"; | ||
139 | sha512 = "U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA=="; | ||
140 | }; | ||
141 | }; | ||
142 | "@typescript-eslint/experimental-utils-4.22.0" = { | ||
143 | name = "_at_typescript-eslint_slash_experimental-utils"; | ||
144 | packageName = "@typescript-eslint/experimental-utils"; | ||
145 | version = "4.22.0"; | ||
146 | src = fetchurl { | ||
147 | url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz"; | ||
148 | sha512 = "xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg=="; | ||
149 | }; | ||
150 | }; | ||
151 | "@typescript-eslint/parser-4.22.0" = { | ||
152 | name = "_at_typescript-eslint_slash_parser"; | ||
153 | packageName = "@typescript-eslint/parser"; | ||
154 | version = "4.22.0"; | ||
155 | src = fetchurl { | ||
156 | url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz"; | ||
157 | sha512 = "z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q=="; | ||
158 | }; | ||
159 | }; | ||
160 | "@typescript-eslint/scope-manager-4.22.0" = { | ||
161 | name = "_at_typescript-eslint_slash_scope-manager"; | ||
162 | packageName = "@typescript-eslint/scope-manager"; | ||
163 | version = "4.22.0"; | ||
164 | src = fetchurl { | ||
165 | url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz"; | ||
166 | sha512 = "OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q=="; | ||
167 | }; | ||
168 | }; | ||
169 | "@typescript-eslint/types-4.22.0" = { | ||
170 | name = "_at_typescript-eslint_slash_types"; | ||
171 | packageName = "@typescript-eslint/types"; | ||
172 | version = "4.22.0"; | ||
173 | src = fetchurl { | ||
174 | url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz"; | ||
175 | sha512 = "sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA=="; | ||
176 | }; | ||
177 | }; | ||
178 | "@typescript-eslint/typescript-estree-4.22.0" = { | ||
179 | name = "_at_typescript-eslint_slash_typescript-estree"; | ||
180 | packageName = "@typescript-eslint/typescript-estree"; | ||
181 | version = "4.22.0"; | ||
182 | src = fetchurl { | ||
183 | url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz"; | ||
184 | sha512 = "TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg=="; | ||
185 | }; | ||
186 | }; | ||
187 | "@typescript-eslint/visitor-keys-4.22.0" = { | ||
188 | name = "_at_typescript-eslint_slash_visitor-keys"; | ||
189 | packageName = "@typescript-eslint/visitor-keys"; | ||
190 | version = "4.22.0"; | ||
191 | src = fetchurl { | ||
192 | url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz"; | ||
193 | sha512 = "nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw=="; | ||
194 | }; | ||
195 | }; | ||
196 | "@webassemblyjs/ast-1.11.0" = { | ||
197 | name = "_at_webassemblyjs_slash_ast"; | ||
198 | packageName = "@webassemblyjs/ast"; | ||
199 | version = "1.11.0"; | ||
200 | src = fetchurl { | ||
201 | url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz"; | ||
202 | sha512 = "kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg=="; | ||
203 | }; | ||
204 | }; | ||
205 | "@webassemblyjs/floating-point-hex-parser-1.11.0" = { | ||
206 | name = "_at_webassemblyjs_slash_floating-point-hex-parser"; | ||
207 | packageName = "@webassemblyjs/floating-point-hex-parser"; | ||
208 | version = "1.11.0"; | ||
209 | src = fetchurl { | ||
210 | url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz"; | ||
211 | sha512 = "Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA=="; | ||
212 | }; | ||
213 | }; | ||
214 | "@webassemblyjs/helper-api-error-1.11.0" = { | ||
215 | name = "_at_webassemblyjs_slash_helper-api-error"; | ||
216 | packageName = "@webassemblyjs/helper-api-error"; | ||
217 | version = "1.11.0"; | ||
218 | src = fetchurl { | ||
219 | url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz"; | ||
220 | sha512 = "baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w=="; | ||
221 | }; | ||
222 | }; | ||
223 | "@webassemblyjs/helper-buffer-1.11.0" = { | ||
224 | name = "_at_webassemblyjs_slash_helper-buffer"; | ||
225 | packageName = "@webassemblyjs/helper-buffer"; | ||
226 | version = "1.11.0"; | ||
227 | src = fetchurl { | ||
228 | url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz"; | ||
229 | sha512 = "u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA=="; | ||
230 | }; | ||
231 | }; | ||
232 | "@webassemblyjs/helper-numbers-1.11.0" = { | ||
233 | name = "_at_webassemblyjs_slash_helper-numbers"; | ||
234 | packageName = "@webassemblyjs/helper-numbers"; | ||
235 | version = "1.11.0"; | ||
236 | src = fetchurl { | ||
237 | url = "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz"; | ||
238 | sha512 = "DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ=="; | ||
239 | }; | ||
240 | }; | ||
241 | "@webassemblyjs/helper-wasm-bytecode-1.11.0" = { | ||
242 | name = "_at_webassemblyjs_slash_helper-wasm-bytecode"; | ||
243 | packageName = "@webassemblyjs/helper-wasm-bytecode"; | ||
244 | version = "1.11.0"; | ||
245 | src = fetchurl { | ||
246 | url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz"; | ||
247 | sha512 = "MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA=="; | ||
248 | }; | ||
249 | }; | ||
250 | "@webassemblyjs/helper-wasm-section-1.11.0" = { | ||
251 | name = "_at_webassemblyjs_slash_helper-wasm-section"; | ||
252 | packageName = "@webassemblyjs/helper-wasm-section"; | ||
253 | version = "1.11.0"; | ||
254 | src = fetchurl { | ||
255 | url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz"; | ||
256 | sha512 = "3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew=="; | ||
257 | }; | ||
258 | }; | ||
259 | "@webassemblyjs/ieee754-1.11.0" = { | ||
260 | name = "_at_webassemblyjs_slash_ieee754"; | ||
261 | packageName = "@webassemblyjs/ieee754"; | ||
262 | version = "1.11.0"; | ||
263 | src = fetchurl { | ||
264 | url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz"; | ||
265 | sha512 = "KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA=="; | ||
266 | }; | ||
267 | }; | ||
268 | "@webassemblyjs/leb128-1.11.0" = { | ||
269 | name = "_at_webassemblyjs_slash_leb128"; | ||
270 | packageName = "@webassemblyjs/leb128"; | ||
271 | version = "1.11.0"; | ||
272 | src = fetchurl { | ||
273 | url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz"; | ||
274 | sha512 = "aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g=="; | ||
275 | }; | ||
276 | }; | ||
277 | "@webassemblyjs/utf8-1.11.0" = { | ||
278 | name = "_at_webassemblyjs_slash_utf8"; | ||
279 | packageName = "@webassemblyjs/utf8"; | ||
280 | version = "1.11.0"; | ||
281 | src = fetchurl { | ||
282 | url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz"; | ||
283 | sha512 = "A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw=="; | ||
284 | }; | ||
285 | }; | ||
286 | "@webassemblyjs/wasm-edit-1.11.0" = { | ||
287 | name = "_at_webassemblyjs_slash_wasm-edit"; | ||
288 | packageName = "@webassemblyjs/wasm-edit"; | ||
289 | version = "1.11.0"; | ||
290 | src = fetchurl { | ||
291 | url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz"; | ||
292 | sha512 = "JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ=="; | ||
293 | }; | ||
294 | }; | ||
295 | "@webassemblyjs/wasm-gen-1.11.0" = { | ||
296 | name = "_at_webassemblyjs_slash_wasm-gen"; | ||
297 | packageName = "@webassemblyjs/wasm-gen"; | ||
298 | version = "1.11.0"; | ||
299 | src = fetchurl { | ||
300 | url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz"; | ||
301 | sha512 = "BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ=="; | ||
302 | }; | ||
303 | }; | ||
304 | "@webassemblyjs/wasm-opt-1.11.0" = { | ||
305 | name = "_at_webassemblyjs_slash_wasm-opt"; | ||
306 | packageName = "@webassemblyjs/wasm-opt"; | ||
307 | version = "1.11.0"; | ||
308 | src = fetchurl { | ||
309 | url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz"; | ||
310 | sha512 = "tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg=="; | ||
311 | }; | ||
312 | }; | ||
313 | "@webassemblyjs/wasm-parser-1.11.0" = { | ||
314 | name = "_at_webassemblyjs_slash_wasm-parser"; | ||
315 | packageName = "@webassemblyjs/wasm-parser"; | ||
316 | version = "1.11.0"; | ||
317 | src = fetchurl { | ||
318 | url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz"; | ||
319 | sha512 = "6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw=="; | ||
320 | }; | ||
321 | }; | ||
322 | "@webassemblyjs/wast-printer-1.11.0" = { | ||
323 | name = "_at_webassemblyjs_slash_wast-printer"; | ||
324 | packageName = "@webassemblyjs/wast-printer"; | ||
325 | version = "1.11.0"; | ||
326 | src = fetchurl { | ||
327 | url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz"; | ||
328 | sha512 = "Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ=="; | ||
329 | }; | ||
330 | }; | ||
331 | "@webpack-cli/configtest-1.0.2" = { | ||
332 | name = "_at_webpack-cli_slash_configtest"; | ||
333 | packageName = "@webpack-cli/configtest"; | ||
334 | version = "1.0.2"; | ||
335 | src = fetchurl { | ||
336 | url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz"; | ||
337 | sha512 = "3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA=="; | ||
338 | }; | ||
339 | }; | ||
340 | "@webpack-cli/info-1.2.3" = { | ||
341 | name = "_at_webpack-cli_slash_info"; | ||
342 | packageName = "@webpack-cli/info"; | ||
343 | version = "1.2.3"; | ||
344 | src = fetchurl { | ||
345 | url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz"; | ||
346 | sha512 = "lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q=="; | ||
347 | }; | ||
348 | }; | ||
349 | "@webpack-cli/serve-1.3.1" = { | ||
350 | name = "_at_webpack-cli_slash_serve"; | ||
351 | packageName = "@webpack-cli/serve"; | ||
352 | version = "1.3.1"; | ||
353 | src = fetchurl { | ||
354 | url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz"; | ||
355 | sha512 = "0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw=="; | ||
356 | }; | ||
357 | }; | ||
358 | "@xtuc/ieee754-1.2.0" = { | ||
359 | name = "_at_xtuc_slash_ieee754"; | ||
360 | packageName = "@xtuc/ieee754"; | ||
361 | version = "1.2.0"; | ||
362 | src = fetchurl { | ||
363 | url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz"; | ||
364 | sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="; | ||
365 | }; | ||
366 | }; | ||
367 | "@xtuc/long-4.2.2" = { | ||
368 | name = "_at_xtuc_slash_long"; | ||
369 | packageName = "@xtuc/long"; | ||
370 | version = "4.2.2"; | ||
371 | src = fetchurl { | ||
372 | url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz"; | ||
373 | sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="; | ||
374 | }; | ||
375 | }; | ||
376 | "abbrev-1.1.1" = { | ||
377 | name = "abbrev"; | ||
378 | packageName = "abbrev"; | ||
379 | version = "1.1.1"; | ||
380 | src = fetchurl { | ||
381 | url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; | ||
382 | sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; | ||
383 | }; | ||
384 | }; | ||
385 | "acorn-7.4.1" = { | ||
386 | name = "acorn"; | ||
387 | packageName = "acorn"; | ||
388 | version = "7.4.1"; | ||
389 | src = fetchurl { | ||
390 | url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"; | ||
391 | sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="; | ||
392 | }; | ||
393 | }; | ||
394 | "acorn-8.1.1" = { | ||
395 | name = "acorn"; | ||
396 | packageName = "acorn"; | ||
397 | version = "8.1.1"; | ||
398 | src = fetchurl { | ||
399 | url = "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz"; | ||
400 | sha512 = "xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g=="; | ||
401 | }; | ||
402 | }; | ||
403 | "acorn-jsx-5.3.1" = { | ||
404 | name = "acorn-jsx"; | ||
405 | packageName = "acorn-jsx"; | ||
406 | version = "5.3.1"; | ||
407 | src = fetchurl { | ||
408 | url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz"; | ||
409 | sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng=="; | ||
410 | }; | ||
411 | }; | ||
412 | "ajv-6.12.6" = { | ||
413 | name = "ajv"; | ||
414 | packageName = "ajv"; | ||
415 | version = "6.12.6"; | ||
416 | src = fetchurl { | ||
417 | url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"; | ||
418 | sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="; | ||
419 | }; | ||
420 | }; | ||
421 | "ajv-keywords-3.5.2" = { | ||
422 | name = "ajv-keywords"; | ||
423 | packageName = "ajv-keywords"; | ||
424 | version = "3.5.2"; | ||
425 | src = fetchurl { | ||
426 | url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"; | ||
427 | sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="; | ||
428 | }; | ||
429 | }; | ||
430 | "ansi-colors-4.1.1" = { | ||
431 | name = "ansi-colors"; | ||
432 | packageName = "ansi-colors"; | ||
433 | version = "4.1.1"; | ||
434 | src = fetchurl { | ||
435 | url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"; | ||
436 | sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="; | ||
437 | }; | ||
438 | }; | ||
439 | "ansi-escapes-4.3.2" = { | ||
440 | name = "ansi-escapes"; | ||
441 | packageName = "ansi-escapes"; | ||
442 | version = "4.3.2"; | ||
443 | src = fetchurl { | ||
444 | url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"; | ||
445 | sha512 = "gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="; | ||
446 | }; | ||
447 | }; | ||
448 | "ansi-regex-2.1.1" = { | ||
449 | name = "ansi-regex"; | ||
450 | packageName = "ansi-regex"; | ||
451 | version = "2.1.1"; | ||
452 | src = fetchurl { | ||
453 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; | ||
454 | sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; | ||
455 | }; | ||
456 | }; | ||
457 | "ansi-regex-3.0.0" = { | ||
458 | name = "ansi-regex"; | ||
459 | packageName = "ansi-regex"; | ||
460 | version = "3.0.0"; | ||
461 | src = fetchurl { | ||
462 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; | ||
463 | sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; | ||
464 | }; | ||
465 | }; | ||
466 | "ansi-regex-4.1.0" = { | ||
467 | name = "ansi-regex"; | ||
468 | packageName = "ansi-regex"; | ||
469 | version = "4.1.0"; | ||
470 | src = fetchurl { | ||
471 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"; | ||
472 | sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="; | ||
473 | }; | ||
474 | }; | ||
475 | "ansi-regex-5.0.0" = { | ||
476 | name = "ansi-regex"; | ||
477 | packageName = "ansi-regex"; | ||
478 | version = "5.0.0"; | ||
479 | src = fetchurl { | ||
480 | url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"; | ||
481 | sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="; | ||
482 | }; | ||
483 | }; | ||
484 | "ansi-styles-3.2.1" = { | ||
485 | name = "ansi-styles"; | ||
486 | packageName = "ansi-styles"; | ||
487 | version = "3.2.1"; | ||
488 | src = fetchurl { | ||
489 | url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; | ||
490 | sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; | ||
491 | }; | ||
492 | }; | ||
493 | "ansi-styles-4.3.0" = { | ||
494 | name = "ansi-styles"; | ||
495 | packageName = "ansi-styles"; | ||
496 | version = "4.3.0"; | ||
497 | src = fetchurl { | ||
498 | url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; | ||
499 | sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; | ||
500 | }; | ||
501 | }; | ||
502 | "aproba-1.2.0" = { | ||
503 | name = "aproba"; | ||
504 | packageName = "aproba"; | ||
505 | version = "1.2.0"; | ||
506 | src = fetchurl { | ||
507 | url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; | ||
508 | sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; | ||
509 | }; | ||
510 | }; | ||
511 | "are-we-there-yet-1.1.5" = { | ||
512 | name = "are-we-there-yet"; | ||
513 | packageName = "are-we-there-yet"; | ||
514 | version = "1.1.5"; | ||
515 | src = fetchurl { | ||
516 | url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; | ||
517 | sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w=="; | ||
518 | }; | ||
519 | }; | ||
520 | "argparse-1.0.10" = { | ||
521 | name = "argparse"; | ||
522 | packageName = "argparse"; | ||
523 | version = "1.0.10"; | ||
524 | src = fetchurl { | ||
525 | url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; | ||
526 | sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; | ||
527 | }; | ||
528 | }; | ||
529 | "array-union-2.1.0" = { | ||
530 | name = "array-union"; | ||
531 | packageName = "array-union"; | ||
532 | version = "2.1.0"; | ||
533 | src = fetchurl { | ||
534 | url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"; | ||
535 | sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="; | ||
536 | }; | ||
537 | }; | ||
538 | "asn1-0.2.4" = { | ||
539 | name = "asn1"; | ||
540 | packageName = "asn1"; | ||
541 | version = "0.2.4"; | ||
542 | src = fetchurl { | ||
543 | url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; | ||
544 | sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; | ||
545 | }; | ||
546 | }; | ||
547 | "assert-plus-1.0.0" = { | ||
548 | name = "assert-plus"; | ||
549 | packageName = "assert-plus"; | ||
550 | version = "1.0.0"; | ||
551 | src = fetchurl { | ||
552 | url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; | ||
553 | sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; | ||
554 | }; | ||
555 | }; | ||
556 | "astral-regex-1.0.0" = { | ||
557 | name = "astral-regex"; | ||
558 | packageName = "astral-regex"; | ||
559 | version = "1.0.0"; | ||
560 | src = fetchurl { | ||
561 | url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz"; | ||
562 | sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="; | ||
563 | }; | ||
564 | }; | ||
565 | "asynckit-0.4.0" = { | ||
566 | name = "asynckit"; | ||
567 | packageName = "asynckit"; | ||
568 | version = "0.4.0"; | ||
569 | src = fetchurl { | ||
570 | url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; | ||
571 | sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; | ||
572 | }; | ||
573 | }; | ||
574 | "aws-sign2-0.7.0" = { | ||
575 | name = "aws-sign2"; | ||
576 | packageName = "aws-sign2"; | ||
577 | version = "0.7.0"; | ||
578 | src = fetchurl { | ||
579 | url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; | ||
580 | sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; | ||
581 | }; | ||
582 | }; | ||
583 | "aws4-1.11.0" = { | ||
584 | name = "aws4"; | ||
585 | packageName = "aws4"; | ||
586 | version = "1.11.0"; | ||
587 | src = fetchurl { | ||
588 | url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"; | ||
589 | sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="; | ||
590 | }; | ||
591 | }; | ||
592 | "balanced-match-1.0.2" = { | ||
593 | name = "balanced-match"; | ||
594 | packageName = "balanced-match"; | ||
595 | version = "1.0.2"; | ||
596 | src = fetchurl { | ||
597 | url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"; | ||
598 | sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; | ||
599 | }; | ||
600 | }; | ||
601 | "bcrypt-pbkdf-1.0.2" = { | ||
602 | name = "bcrypt-pbkdf"; | ||
603 | packageName = "bcrypt-pbkdf"; | ||
604 | version = "1.0.2"; | ||
605 | src = fetchurl { | ||
606 | url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; | ||
607 | sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; | ||
608 | }; | ||
609 | }; | ||
610 | "block-stream-0.0.9" = { | ||
611 | name = "block-stream"; | ||
612 | packageName = "block-stream"; | ||
613 | version = "0.0.9"; | ||
614 | src = fetchurl { | ||
615 | url = "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"; | ||
616 | sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a"; | ||
617 | }; | ||
618 | }; | ||
619 | "brace-expansion-1.1.11" = { | ||
620 | name = "brace-expansion"; | ||
621 | packageName = "brace-expansion"; | ||
622 | version = "1.1.11"; | ||
623 | src = fetchurl { | ||
624 | url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; | ||
625 | sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; | ||
626 | }; | ||
627 | }; | ||
628 | "braces-3.0.2" = { | ||
629 | name = "braces"; | ||
630 | packageName = "braces"; | ||
631 | version = "3.0.2"; | ||
632 | src = fetchurl { | ||
633 | url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"; | ||
634 | sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="; | ||
635 | }; | ||
636 | }; | ||
637 | "browserslist-4.16.4" = { | ||
638 | name = "browserslist"; | ||
639 | packageName = "browserslist"; | ||
640 | version = "4.16.4"; | ||
641 | src = fetchurl { | ||
642 | url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz"; | ||
643 | sha512 = "d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ=="; | ||
644 | }; | ||
645 | }; | ||
646 | "buffer-from-1.1.1" = { | ||
647 | name = "buffer-from"; | ||
648 | packageName = "buffer-from"; | ||
649 | version = "1.1.1"; | ||
650 | src = fetchurl { | ||
651 | url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"; | ||
652 | sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="; | ||
653 | }; | ||
654 | }; | ||
655 | "buffer-writer-2.0.0" = { | ||
656 | name = "buffer-writer"; | ||
657 | packageName = "buffer-writer"; | ||
658 | version = "2.0.0"; | ||
659 | src = fetchurl { | ||
660 | url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; | ||
661 | sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; | ||
662 | }; | ||
663 | }; | ||
664 | "callsites-3.1.0" = { | ||
665 | name = "callsites"; | ||
666 | packageName = "callsites"; | ||
667 | version = "3.1.0"; | ||
668 | src = fetchurl { | ||
669 | url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"; | ||
670 | sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="; | ||
671 | }; | ||
672 | }; | ||
673 | "caniuse-lite-1.0.30001209" = { | ||
674 | name = "caniuse-lite"; | ||
675 | packageName = "caniuse-lite"; | ||
676 | version = "1.0.30001209"; | ||
677 | src = fetchurl { | ||
678 | url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001209.tgz"; | ||
679 | sha512 = "2Ktt4OeRM7EM/JaOZjuLzPYAIqmbwQMNnYbgooT+icoRGrKOyAxA1xhlnotBD1KArRSPsuJp3TdYcZYrL7qNxA=="; | ||
680 | }; | ||
681 | }; | ||
682 | "caseless-0.12.0" = { | ||
683 | name = "caseless"; | ||
684 | packageName = "caseless"; | ||
685 | version = "0.12.0"; | ||
686 | src = fetchurl { | ||
687 | url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; | ||
688 | sha1 = "1b681c21ff84033c826543090689420d187151dc"; | ||
689 | }; | ||
690 | }; | ||
691 | "chalk-2.4.2" = { | ||
692 | name = "chalk"; | ||
693 | packageName = "chalk"; | ||
694 | version = "2.4.2"; | ||
695 | src = fetchurl { | ||
696 | url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; | ||
697 | sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; | ||
698 | }; | ||
699 | }; | ||
700 | "chalk-4.1.0" = { | ||
701 | name = "chalk"; | ||
702 | packageName = "chalk"; | ||
703 | version = "4.1.0"; | ||
704 | src = fetchurl { | ||
705 | url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"; | ||
706 | sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A=="; | ||
707 | }; | ||
708 | }; | ||
709 | "chardet-0.7.0" = { | ||
710 | name = "chardet"; | ||
711 | packageName = "chardet"; | ||
712 | version = "0.7.0"; | ||
713 | src = fetchurl { | ||
714 | url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz"; | ||
715 | sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="; | ||
716 | }; | ||
717 | }; | ||
718 | "chownr-1.1.4" = { | ||
719 | name = "chownr"; | ||
720 | packageName = "chownr"; | ||
721 | version = "1.1.4"; | ||
722 | src = fetchurl { | ||
723 | url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; | ||
724 | sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; | ||
725 | }; | ||
726 | }; | ||
727 | "chrome-trace-event-1.0.3" = { | ||
728 | name = "chrome-trace-event"; | ||
729 | packageName = "chrome-trace-event"; | ||
730 | version = "1.0.3"; | ||
731 | src = fetchurl { | ||
732 | url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"; | ||
733 | sha512 = "p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="; | ||
734 | }; | ||
735 | }; | ||
736 | "cli-cursor-3.1.0" = { | ||
737 | name = "cli-cursor"; | ||
738 | packageName = "cli-cursor"; | ||
739 | version = "3.1.0"; | ||
740 | src = fetchurl { | ||
741 | url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"; | ||
742 | sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="; | ||
743 | }; | ||
744 | }; | ||
745 | "cli-width-3.0.0" = { | ||
746 | name = "cli-width"; | ||
747 | packageName = "cli-width"; | ||
748 | version = "3.0.0"; | ||
749 | src = fetchurl { | ||
750 | url = "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz"; | ||
751 | sha512 = "FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="; | ||
752 | }; | ||
753 | }; | ||
754 | "clone-deep-4.0.1" = { | ||
755 | name = "clone-deep"; | ||
756 | packageName = "clone-deep"; | ||
757 | version = "4.0.1"; | ||
758 | src = fetchurl { | ||
759 | url = "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz"; | ||
760 | sha512 = "neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ=="; | ||
761 | }; | ||
762 | }; | ||
763 | "code-point-at-1.1.0" = { | ||
764 | name = "code-point-at"; | ||
765 | packageName = "code-point-at"; | ||
766 | version = "1.1.0"; | ||
767 | src = fetchurl { | ||
768 | url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; | ||
769 | sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; | ||
770 | }; | ||
771 | }; | ||
772 | "color-convert-1.9.3" = { | ||
773 | name = "color-convert"; | ||
774 | packageName = "color-convert"; | ||
775 | version = "1.9.3"; | ||
776 | src = fetchurl { | ||
777 | url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; | ||
778 | sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; | ||
779 | }; | ||
780 | }; | ||
781 | "color-convert-2.0.1" = { | ||
782 | name = "color-convert"; | ||
783 | packageName = "color-convert"; | ||
784 | version = "2.0.1"; | ||
785 | src = fetchurl { | ||
786 | url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; | ||
787 | sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; | ||
788 | }; | ||
789 | }; | ||
790 | "color-name-1.1.3" = { | ||
791 | name = "color-name"; | ||
792 | packageName = "color-name"; | ||
793 | version = "1.1.3"; | ||
794 | src = fetchurl { | ||
795 | url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; | ||
796 | sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; | ||
797 | }; | ||
798 | }; | ||
799 | "color-name-1.1.4" = { | ||
800 | name = "color-name"; | ||
801 | packageName = "color-name"; | ||
802 | version = "1.1.4"; | ||
803 | src = fetchurl { | ||
804 | url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; | ||
805 | sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; | ||
806 | }; | ||
807 | }; | ||
808 | "colorette-1.2.2" = { | ||
809 | name = "colorette"; | ||
810 | packageName = "colorette"; | ||
811 | version = "1.2.2"; | ||
812 | src = fetchurl { | ||
813 | url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz"; | ||
814 | sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="; | ||
815 | }; | ||
816 | }; | ||
817 | "combined-stream-1.0.8" = { | ||
818 | name = "combined-stream"; | ||
819 | packageName = "combined-stream"; | ||
820 | version = "1.0.8"; | ||
821 | src = fetchurl { | ||
822 | url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; | ||
823 | sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; | ||
824 | }; | ||
825 | }; | ||
826 | "commander-2.20.3" = { | ||
827 | name = "commander"; | ||
828 | packageName = "commander"; | ||
829 | version = "2.20.3"; | ||
830 | src = fetchurl { | ||
831 | url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"; | ||
832 | sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; | ||
833 | }; | ||
834 | }; | ||
835 | "commander-7.2.0" = { | ||
836 | name = "commander"; | ||
837 | packageName = "commander"; | ||
838 | version = "7.2.0"; | ||
839 | src = fetchurl { | ||
840 | url = "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"; | ||
841 | sha512 = "QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="; | ||
842 | }; | ||
843 | }; | ||
844 | "compression-webpack-plugin-7.1.2" = { | ||
845 | name = "compression-webpack-plugin"; | ||
846 | packageName = "compression-webpack-plugin"; | ||
847 | version = "7.1.2"; | ||
848 | src = fetchurl { | ||
849 | url = "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-7.1.2.tgz"; | ||
850 | sha512 = "9DKNW6ILLjx+bNBoviHDgLx6swBhWWH9ApClC9sTH2NoFfQM47BapQfovCm9zjD9v1uZwInF5a925FB9ErGQeQ=="; | ||
851 | }; | ||
852 | }; | ||
853 | "concat-map-0.0.1" = { | ||
854 | name = "concat-map"; | ||
855 | packageName = "concat-map"; | ||
856 | version = "0.0.1"; | ||
857 | src = fetchurl { | ||
858 | url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; | ||
859 | sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; | ||
860 | }; | ||
861 | }; | ||
862 | "config-chain-1.1.12" = { | ||
863 | name = "config-chain"; | ||
864 | packageName = "config-chain"; | ||
865 | version = "1.1.12"; | ||
866 | src = fetchurl { | ||
867 | url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz"; | ||
868 | sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA=="; | ||
869 | }; | ||
870 | }; | ||
871 | "console-control-strings-1.1.0" = { | ||
872 | name = "console-control-strings"; | ||
873 | packageName = "console-control-strings"; | ||
874 | version = "1.1.0"; | ||
875 | src = fetchurl { | ||
876 | url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; | ||
877 | sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; | ||
878 | }; | ||
879 | }; | ||
880 | "console-stamp-3.0.0-rc4.2" = { | ||
881 | name = "console-stamp"; | ||
882 | packageName = "console-stamp"; | ||
883 | version = "3.0.0-rc4.2"; | ||
884 | src = fetchurl { | ||
885 | url = "https://registry.npmjs.org/console-stamp/-/console-stamp-3.0.0-rc4.2.tgz"; | ||
886 | sha512 = "ncGYdZsfDbBYYiaPXr9NHfZbSSkoVzYyh8nHji9/3ovw35Jn4ozo0btcirtfIznXT4xNgBQW+IyTVLISnNumdQ=="; | ||
887 | }; | ||
888 | }; | ||
889 | "copy-anything-2.0.3" = { | ||
890 | name = "copy-anything"; | ||
891 | packageName = "copy-anything"; | ||
892 | version = "2.0.3"; | ||
893 | src = fetchurl { | ||
894 | url = "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz"; | ||
895 | sha512 = "GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ=="; | ||
896 | }; | ||
897 | }; | ||
898 | "core-util-is-1.0.2" = { | ||
899 | name = "core-util-is"; | ||
900 | packageName = "core-util-is"; | ||
901 | version = "1.0.2"; | ||
902 | src = fetchurl { | ||
903 | url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; | ||
904 | sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; | ||
905 | }; | ||
906 | }; | ||
907 | "cross-spawn-6.0.5" = { | ||
908 | name = "cross-spawn"; | ||
909 | packageName = "cross-spawn"; | ||
910 | version = "6.0.5"; | ||
911 | src = fetchurl { | ||
912 | url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"; | ||
913 | sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ=="; | ||
914 | }; | ||
915 | }; | ||
916 | "cross-spawn-7.0.3" = { | ||
917 | name = "cross-spawn"; | ||
918 | packageName = "cross-spawn"; | ||
919 | version = "7.0.3"; | ||
920 | src = fetchurl { | ||
921 | url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"; | ||
922 | sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="; | ||
923 | }; | ||
924 | }; | ||
925 | "dashdash-1.14.1" = { | ||
926 | name = "dashdash"; | ||
927 | packageName = "dashdash"; | ||
928 | version = "1.14.1"; | ||
929 | src = fetchurl { | ||
930 | url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; | ||
931 | sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; | ||
932 | }; | ||
933 | }; | ||
934 | "dateformat-3.0.3" = { | ||
935 | name = "dateformat"; | ||
936 | packageName = "dateformat"; | ||
937 | version = "3.0.3"; | ||
938 | src = fetchurl { | ||
939 | url = "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz"; | ||
940 | sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="; | ||
941 | }; | ||
942 | }; | ||
943 | "de-indent-1.0.2" = { | ||
944 | name = "de-indent"; | ||
945 | packageName = "de-indent"; | ||
946 | version = "1.0.2"; | ||
947 | src = fetchurl { | ||
948 | url = "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz"; | ||
949 | sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d"; | ||
950 | }; | ||
951 | }; | ||
952 | "debug-3.2.7" = { | ||
953 | name = "debug"; | ||
954 | packageName = "debug"; | ||
955 | version = "3.2.7"; | ||
956 | src = fetchurl { | ||
957 | url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"; | ||
958 | sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="; | ||
959 | }; | ||
960 | }; | ||
961 | "debug-4.3.1" = { | ||
962 | name = "debug"; | ||
963 | packageName = "debug"; | ||
964 | version = "4.3.1"; | ||
965 | src = fetchurl { | ||
966 | url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz"; | ||
967 | sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ=="; | ||
968 | }; | ||
969 | }; | ||
970 | "deep-extend-0.6.0" = { | ||
971 | name = "deep-extend"; | ||
972 | packageName = "deep-extend"; | ||
973 | version = "0.6.0"; | ||
974 | src = fetchurl { | ||
975 | url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; | ||
976 | sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="; | ||
977 | }; | ||
978 | }; | ||
979 | "deep-is-0.1.3" = { | ||
980 | name = "deep-is"; | ||
981 | packageName = "deep-is"; | ||
982 | version = "0.1.3"; | ||
983 | src = fetchurl { | ||
984 | url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"; | ||
985 | sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; | ||
986 | }; | ||
987 | }; | ||
988 | "delayed-stream-1.0.0" = { | ||
989 | name = "delayed-stream"; | ||
990 | packageName = "delayed-stream"; | ||
991 | version = "1.0.0"; | ||
992 | src = fetchurl { | ||
993 | url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; | ||
994 | sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; | ||
995 | }; | ||
996 | }; | ||
997 | "delegates-1.0.0" = { | ||
998 | name = "delegates"; | ||
999 | packageName = "delegates"; | ||
1000 | version = "1.0.0"; | ||
1001 | src = fetchurl { | ||
1002 | url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; | ||
1003 | sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; | ||
1004 | }; | ||
1005 | }; | ||
1006 | "detect-libc-1.0.3" = { | ||
1007 | name = "detect-libc"; | ||
1008 | packageName = "detect-libc"; | ||
1009 | version = "1.0.3"; | ||
1010 | src = fetchurl { | ||
1011 | url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; | ||
1012 | sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; | ||
1013 | }; | ||
1014 | }; | ||
1015 | "dialog-polyfill-0.5.6" = { | ||
1016 | name = "dialog-polyfill"; | ||
1017 | packageName = "dialog-polyfill"; | ||
1018 | version = "0.5.6"; | ||
1019 | src = fetchurl { | ||
1020 | url = "https://registry.npmjs.org/dialog-polyfill/-/dialog-polyfill-0.5.6.tgz"; | ||
1021 | sha512 = "ZbVDJI9uvxPAKze6z146rmfUZjBqNEwcnFTVamQzXH+svluiV7swmVIGr7miwADgfgt1G2JQIytypM9fbyhX4w=="; | ||
1022 | }; | ||
1023 | }; | ||
1024 | "dir-glob-3.0.1" = { | ||
1025 | name = "dir-glob"; | ||
1026 | packageName = "dir-glob"; | ||
1027 | version = "3.0.1"; | ||
1028 | src = fetchurl { | ||
1029 | url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"; | ||
1030 | sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="; | ||
1031 | }; | ||
1032 | }; | ||
1033 | "doctrine-3.0.0" = { | ||
1034 | name = "doctrine"; | ||
1035 | packageName = "doctrine"; | ||
1036 | version = "3.0.0"; | ||
1037 | src = fetchurl { | ||
1038 | url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"; | ||
1039 | sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="; | ||
1040 | }; | ||
1041 | }; | ||
1042 | "dotenv-8.2.0" = { | ||
1043 | name = "dotenv"; | ||
1044 | packageName = "dotenv"; | ||
1045 | version = "8.2.0"; | ||
1046 | src = fetchurl { | ||
1047 | url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz"; | ||
1048 | sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="; | ||
1049 | }; | ||
1050 | }; | ||
1051 | "ecc-jsbn-0.1.2" = { | ||
1052 | name = "ecc-jsbn"; | ||
1053 | packageName = "ecc-jsbn"; | ||
1054 | version = "0.1.2"; | ||
1055 | src = fetchurl { | ||
1056 | url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; | ||
1057 | sha1 = "3a83a904e54353287874c564b7549386849a98c9"; | ||
1058 | }; | ||
1059 | }; | ||
1060 | "editorconfig-0.15.3" = { | ||
1061 | name = "editorconfig"; | ||
1062 | packageName = "editorconfig"; | ||
1063 | version = "0.15.3"; | ||
1064 | src = fetchurl { | ||
1065 | url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz"; | ||
1066 | sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g=="; | ||
1067 | }; | ||
1068 | }; | ||
1069 | "electron-to-chromium-1.3.717" = { | ||
1070 | name = "electron-to-chromium"; | ||
1071 | packageName = "electron-to-chromium"; | ||
1072 | version = "1.3.717"; | ||
1073 | src = fetchurl { | ||
1074 | url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz"; | ||
1075 | sha512 = "OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ=="; | ||
1076 | }; | ||
1077 | }; | ||
1078 | "emoji-regex-7.0.3" = { | ||
1079 | name = "emoji-regex"; | ||
1080 | packageName = "emoji-regex"; | ||
1081 | version = "7.0.3"; | ||
1082 | src = fetchurl { | ||
1083 | url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"; | ||
1084 | sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="; | ||
1085 | }; | ||
1086 | }; | ||
1087 | "emoji-regex-8.0.0" = { | ||
1088 | name = "emoji-regex"; | ||
1089 | packageName = "emoji-regex"; | ||
1090 | version = "8.0.0"; | ||
1091 | src = fetchurl { | ||
1092 | url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"; | ||
1093 | sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="; | ||
1094 | }; | ||
1095 | }; | ||
1096 | "enhanced-resolve-5.7.0" = { | ||
1097 | name = "enhanced-resolve"; | ||
1098 | packageName = "enhanced-resolve"; | ||
1099 | version = "5.7.0"; | ||
1100 | src = fetchurl { | ||
1101 | url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz"; | ||
1102 | sha512 = "6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw=="; | ||
1103 | }; | ||
1104 | }; | ||
1105 | "enquirer-2.3.6" = { | ||
1106 | name = "enquirer"; | ||
1107 | packageName = "enquirer"; | ||
1108 | version = "2.3.6"; | ||
1109 | src = fetchurl { | ||
1110 | url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"; | ||
1111 | sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg=="; | ||
1112 | }; | ||
1113 | }; | ||
1114 | "envinfo-7.8.1" = { | ||
1115 | name = "envinfo"; | ||
1116 | packageName = "envinfo"; | ||
1117 | version = "7.8.1"; | ||
1118 | src = fetchurl { | ||
1119 | url = "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz"; | ||
1120 | sha512 = "/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw=="; | ||
1121 | }; | ||
1122 | }; | ||
1123 | "errno-0.1.8" = { | ||
1124 | name = "errno"; | ||
1125 | packageName = "errno"; | ||
1126 | version = "0.1.8"; | ||
1127 | src = fetchurl { | ||
1128 | url = "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz"; | ||
1129 | sha512 = "dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A=="; | ||
1130 | }; | ||
1131 | }; | ||
1132 | "es-module-lexer-0.4.1" = { | ||
1133 | name = "es-module-lexer"; | ||
1134 | packageName = "es-module-lexer"; | ||
1135 | version = "0.4.1"; | ||
1136 | src = fetchurl { | ||
1137 | url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz"; | ||
1138 | sha512 = "ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA=="; | ||
1139 | }; | ||
1140 | }; | ||
1141 | "escalade-3.1.1" = { | ||
1142 | name = "escalade"; | ||
1143 | packageName = "escalade"; | ||
1144 | version = "3.1.1"; | ||
1145 | src = fetchurl { | ||
1146 | url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"; | ||
1147 | sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="; | ||
1148 | }; | ||
1149 | }; | ||
1150 | "escape-string-regexp-1.0.5" = { | ||
1151 | name = "escape-string-regexp"; | ||
1152 | packageName = "escape-string-regexp"; | ||
1153 | version = "1.0.5"; | ||
1154 | src = fetchurl { | ||
1155 | url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; | ||
1156 | sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; | ||
1157 | }; | ||
1158 | }; | ||
1159 | "eslint-6.8.0" = { | ||
1160 | name = "eslint"; | ||
1161 | packageName = "eslint"; | ||
1162 | version = "6.8.0"; | ||
1163 | src = fetchurl { | ||
1164 | url = "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz"; | ||
1165 | sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig=="; | ||
1166 | }; | ||
1167 | }; | ||
1168 | "eslint-config-google-0.14.0" = { | ||
1169 | name = "eslint-config-google"; | ||
1170 | packageName = "eslint-config-google"; | ||
1171 | version = "0.14.0"; | ||
1172 | src = fetchurl { | ||
1173 | url = "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz"; | ||
1174 | sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw=="; | ||
1175 | }; | ||
1176 | }; | ||
1177 | "eslint-plugin-vue-6.2.2" = { | ||
1178 | name = "eslint-plugin-vue"; | ||
1179 | packageName = "eslint-plugin-vue"; | ||
1180 | version = "6.2.2"; | ||
1181 | src = fetchurl { | ||
1182 | url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz"; | ||
1183 | sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ=="; | ||
1184 | }; | ||
1185 | }; | ||
1186 | "eslint-scope-5.1.1" = { | ||
1187 | name = "eslint-scope"; | ||
1188 | packageName = "eslint-scope"; | ||
1189 | version = "5.1.1"; | ||
1190 | src = fetchurl { | ||
1191 | url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"; | ||
1192 | sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="; | ||
1193 | }; | ||
1194 | }; | ||
1195 | "eslint-utils-1.4.3" = { | ||
1196 | name = "eslint-utils"; | ||
1197 | packageName = "eslint-utils"; | ||
1198 | version = "1.4.3"; | ||
1199 | src = fetchurl { | ||
1200 | url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz"; | ||
1201 | sha512 = "fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q=="; | ||
1202 | }; | ||
1203 | }; | ||
1204 | "eslint-utils-2.1.0" = { | ||
1205 | name = "eslint-utils"; | ||
1206 | packageName = "eslint-utils"; | ||
1207 | version = "2.1.0"; | ||
1208 | src = fetchurl { | ||
1209 | url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz"; | ||
1210 | sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg=="; | ||
1211 | }; | ||
1212 | }; | ||
1213 | "eslint-visitor-keys-1.3.0" = { | ||
1214 | name = "eslint-visitor-keys"; | ||
1215 | packageName = "eslint-visitor-keys"; | ||
1216 | version = "1.3.0"; | ||
1217 | src = fetchurl { | ||
1218 | url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"; | ||
1219 | sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="; | ||
1220 | }; | ||
1221 | }; | ||
1222 | "eslint-visitor-keys-2.0.0" = { | ||
1223 | name = "eslint-visitor-keys"; | ||
1224 | packageName = "eslint-visitor-keys"; | ||
1225 | version = "2.0.0"; | ||
1226 | src = fetchurl { | ||
1227 | url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz"; | ||
1228 | sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ=="; | ||
1229 | }; | ||
1230 | }; | ||
1231 | "espree-6.2.1" = { | ||
1232 | name = "espree"; | ||
1233 | packageName = "espree"; | ||
1234 | version = "6.2.1"; | ||
1235 | src = fetchurl { | ||
1236 | url = "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz"; | ||
1237 | sha512 = "ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw=="; | ||
1238 | }; | ||
1239 | }; | ||
1240 | "esprima-4.0.1" = { | ||
1241 | name = "esprima"; | ||
1242 | packageName = "esprima"; | ||
1243 | version = "4.0.1"; | ||
1244 | src = fetchurl { | ||
1245 | url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; | ||
1246 | sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; | ||
1247 | }; | ||
1248 | }; | ||
1249 | "esquery-1.4.0" = { | ||
1250 | name = "esquery"; | ||
1251 | packageName = "esquery"; | ||
1252 | version = "1.4.0"; | ||
1253 | src = fetchurl { | ||
1254 | url = "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"; | ||
1255 | sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w=="; | ||
1256 | }; | ||
1257 | }; | ||
1258 | "esrecurse-4.3.0" = { | ||
1259 | name = "esrecurse"; | ||
1260 | packageName = "esrecurse"; | ||
1261 | version = "4.3.0"; | ||
1262 | src = fetchurl { | ||
1263 | url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"; | ||
1264 | sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="; | ||
1265 | }; | ||
1266 | }; | ||
1267 | "estraverse-4.3.0" = { | ||
1268 | name = "estraverse"; | ||
1269 | packageName = "estraverse"; | ||
1270 | version = "4.3.0"; | ||
1271 | src = fetchurl { | ||
1272 | url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"; | ||
1273 | sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="; | ||
1274 | }; | ||
1275 | }; | ||
1276 | "estraverse-5.2.0" = { | ||
1277 | name = "estraverse"; | ||
1278 | packageName = "estraverse"; | ||
1279 | version = "5.2.0"; | ||
1280 | src = fetchurl { | ||
1281 | url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz"; | ||
1282 | sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="; | ||
1283 | }; | ||
1284 | }; | ||
1285 | "esutils-2.0.3" = { | ||
1286 | name = "esutils"; | ||
1287 | packageName = "esutils"; | ||
1288 | version = "2.0.3"; | ||
1289 | src = fetchurl { | ||
1290 | url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"; | ||
1291 | sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="; | ||
1292 | }; | ||
1293 | }; | ||
1294 | "events-3.3.0" = { | ||
1295 | name = "events"; | ||
1296 | packageName = "events"; | ||
1297 | version = "3.3.0"; | ||
1298 | src = fetchurl { | ||
1299 | url = "https://registry.npmjs.org/events/-/events-3.3.0.tgz"; | ||
1300 | sha512 = "mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="; | ||
1301 | }; | ||
1302 | }; | ||
1303 | "execa-5.0.0" = { | ||
1304 | name = "execa"; | ||
1305 | packageName = "execa"; | ||
1306 | version = "5.0.0"; | ||
1307 | src = fetchurl { | ||
1308 | url = "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz"; | ||
1309 | sha512 = "ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ=="; | ||
1310 | }; | ||
1311 | }; | ||
1312 | "extend-3.0.2" = { | ||
1313 | name = "extend"; | ||
1314 | packageName = "extend"; | ||
1315 | version = "3.0.2"; | ||
1316 | src = fetchurl { | ||
1317 | url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; | ||
1318 | sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; | ||
1319 | }; | ||
1320 | }; | ||
1321 | "external-editor-3.1.0" = { | ||
1322 | name = "external-editor"; | ||
1323 | packageName = "external-editor"; | ||
1324 | version = "3.1.0"; | ||
1325 | src = fetchurl { | ||
1326 | url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz"; | ||
1327 | sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew=="; | ||
1328 | }; | ||
1329 | }; | ||
1330 | "extsprintf-1.3.0" = { | ||
1331 | name = "extsprintf"; | ||
1332 | packageName = "extsprintf"; | ||
1333 | version = "1.3.0"; | ||
1334 | src = fetchurl { | ||
1335 | url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; | ||
1336 | sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; | ||
1337 | }; | ||
1338 | }; | ||
1339 | "fast-deep-equal-3.1.3" = { | ||
1340 | name = "fast-deep-equal"; | ||
1341 | packageName = "fast-deep-equal"; | ||
1342 | version = "3.1.3"; | ||
1343 | src = fetchurl { | ||
1344 | url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"; | ||
1345 | sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="; | ||
1346 | }; | ||
1347 | }; | ||
1348 | "fast-glob-3.2.5" = { | ||
1349 | name = "fast-glob"; | ||
1350 | packageName = "fast-glob"; | ||
1351 | version = "3.2.5"; | ||
1352 | src = fetchurl { | ||
1353 | url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz"; | ||
1354 | sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg=="; | ||
1355 | }; | ||
1356 | }; | ||
1357 | "fast-json-stable-stringify-2.1.0" = { | ||
1358 | name = "fast-json-stable-stringify"; | ||
1359 | packageName = "fast-json-stable-stringify"; | ||
1360 | version = "2.1.0"; | ||
1361 | src = fetchurl { | ||
1362 | url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; | ||
1363 | sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; | ||
1364 | }; | ||
1365 | }; | ||
1366 | "fast-levenshtein-2.0.6" = { | ||
1367 | name = "fast-levenshtein"; | ||
1368 | packageName = "fast-levenshtein"; | ||
1369 | version = "2.0.6"; | ||
1370 | src = fetchurl { | ||
1371 | url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; | ||
1372 | sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; | ||
1373 | }; | ||
1374 | }; | ||
1375 | "fastest-levenshtein-1.0.12" = { | ||
1376 | name = "fastest-levenshtein"; | ||
1377 | packageName = "fastest-levenshtein"; | ||
1378 | version = "1.0.12"; | ||
1379 | src = fetchurl { | ||
1380 | url = "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz"; | ||
1381 | sha512 = "On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow=="; | ||
1382 | }; | ||
1383 | }; | ||
1384 | "fastq-1.11.0" = { | ||
1385 | name = "fastq"; | ||
1386 | packageName = "fastq"; | ||
1387 | version = "1.11.0"; | ||
1388 | src = fetchurl { | ||
1389 | url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz"; | ||
1390 | sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g=="; | ||
1391 | }; | ||
1392 | }; | ||
1393 | "figures-3.2.0" = { | ||
1394 | name = "figures"; | ||
1395 | packageName = "figures"; | ||
1396 | version = "3.2.0"; | ||
1397 | src = fetchurl { | ||
1398 | url = "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz"; | ||
1399 | sha512 = "yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="; | ||
1400 | }; | ||
1401 | }; | ||
1402 | "file-entry-cache-5.0.1" = { | ||
1403 | name = "file-entry-cache"; | ||
1404 | packageName = "file-entry-cache"; | ||
1405 | version = "5.0.1"; | ||
1406 | src = fetchurl { | ||
1407 | url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz"; | ||
1408 | sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g=="; | ||
1409 | }; | ||
1410 | }; | ||
1411 | "fill-range-7.0.1" = { | ||
1412 | name = "fill-range"; | ||
1413 | packageName = "fill-range"; | ||
1414 | version = "7.0.1"; | ||
1415 | src = fetchurl { | ||
1416 | url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"; | ||
1417 | sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="; | ||
1418 | }; | ||
1419 | }; | ||
1420 | "find-up-4.1.0" = { | ||
1421 | name = "find-up"; | ||
1422 | packageName = "find-up"; | ||
1423 | version = "4.1.0"; | ||
1424 | src = fetchurl { | ||
1425 | url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"; | ||
1426 | sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="; | ||
1427 | }; | ||
1428 | }; | ||
1429 | "flat-cache-2.0.1" = { | ||
1430 | name = "flat-cache"; | ||
1431 | packageName = "flat-cache"; | ||
1432 | version = "2.0.1"; | ||
1433 | src = fetchurl { | ||
1434 | url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz"; | ||
1435 | sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA=="; | ||
1436 | }; | ||
1437 | }; | ||
1438 | "flatted-2.0.2" = { | ||
1439 | name = "flatted"; | ||
1440 | packageName = "flatted"; | ||
1441 | version = "2.0.2"; | ||
1442 | src = fetchurl { | ||
1443 | url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz"; | ||
1444 | sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="; | ||
1445 | }; | ||
1446 | }; | ||
1447 | "forever-agent-0.6.1" = { | ||
1448 | name = "forever-agent"; | ||
1449 | packageName = "forever-agent"; | ||
1450 | version = "0.6.1"; | ||
1451 | src = fetchurl { | ||
1452 | url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; | ||
1453 | sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; | ||
1454 | }; | ||
1455 | }; | ||
1456 | "form-data-2.3.3" = { | ||
1457 | name = "form-data"; | ||
1458 | packageName = "form-data"; | ||
1459 | version = "2.3.3"; | ||
1460 | src = fetchurl { | ||
1461 | url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; | ||
1462 | sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; | ||
1463 | }; | ||
1464 | }; | ||
1465 | "fs-minipass-1.2.7" = { | ||
1466 | name = "fs-minipass"; | ||
1467 | packageName = "fs-minipass"; | ||
1468 | version = "1.2.7"; | ||
1469 | src = fetchurl { | ||
1470 | url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; | ||
1471 | sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA=="; | ||
1472 | }; | ||
1473 | }; | ||
1474 | "fs.realpath-1.0.0" = { | ||
1475 | name = "fs.realpath"; | ||
1476 | packageName = "fs.realpath"; | ||
1477 | version = "1.0.0"; | ||
1478 | src = fetchurl { | ||
1479 | url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; | ||
1480 | sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; | ||
1481 | }; | ||
1482 | }; | ||
1483 | "fstream-1.0.12" = { | ||
1484 | name = "fstream"; | ||
1485 | packageName = "fstream"; | ||
1486 | version = "1.0.12"; | ||
1487 | src = fetchurl { | ||
1488 | url = "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz"; | ||
1489 | sha512 = "WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg=="; | ||
1490 | }; | ||
1491 | }; | ||
1492 | "function-bind-1.1.1" = { | ||
1493 | name = "function-bind"; | ||
1494 | packageName = "function-bind"; | ||
1495 | version = "1.1.1"; | ||
1496 | src = fetchurl { | ||
1497 | url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"; | ||
1498 | sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="; | ||
1499 | }; | ||
1500 | }; | ||
1501 | "functional-red-black-tree-1.0.1" = { | ||
1502 | name = "functional-red-black-tree"; | ||
1503 | packageName = "functional-red-black-tree"; | ||
1504 | version = "1.0.1"; | ||
1505 | src = fetchurl { | ||
1506 | url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"; | ||
1507 | sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"; | ||
1508 | }; | ||
1509 | }; | ||
1510 | "gauge-2.7.4" = { | ||
1511 | name = "gauge"; | ||
1512 | packageName = "gauge"; | ||
1513 | version = "2.7.4"; | ||
1514 | src = fetchurl { | ||
1515 | url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; | ||
1516 | sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; | ||
1517 | }; | ||
1518 | }; | ||
1519 | "get-stream-6.0.1" = { | ||
1520 | name = "get-stream"; | ||
1521 | packageName = "get-stream"; | ||
1522 | version = "6.0.1"; | ||
1523 | src = fetchurl { | ||
1524 | url = "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"; | ||
1525 | sha512 = "ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="; | ||
1526 | }; | ||
1527 | }; | ||
1528 | "getpass-0.1.7" = { | ||
1529 | name = "getpass"; | ||
1530 | packageName = "getpass"; | ||
1531 | version = "0.1.7"; | ||
1532 | src = fetchurl { | ||
1533 | url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; | ||
1534 | sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; | ||
1535 | }; | ||
1536 | }; | ||
1537 | "glob-7.1.6" = { | ||
1538 | name = "glob"; | ||
1539 | packageName = "glob"; | ||
1540 | version = "7.1.6"; | ||
1541 | src = fetchurl { | ||
1542 | url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"; | ||
1543 | sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA=="; | ||
1544 | }; | ||
1545 | }; | ||
1546 | "glob-parent-5.1.2" = { | ||
1547 | name = "glob-parent"; | ||
1548 | packageName = "glob-parent"; | ||
1549 | version = "5.1.2"; | ||
1550 | src = fetchurl { | ||
1551 | url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"; | ||
1552 | sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="; | ||
1553 | }; | ||
1554 | }; | ||
1555 | "glob-to-regexp-0.4.1" = { | ||
1556 | name = "glob-to-regexp"; | ||
1557 | packageName = "glob-to-regexp"; | ||
1558 | version = "0.4.1"; | ||
1559 | src = fetchurl { | ||
1560 | url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"; | ||
1561 | sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="; | ||
1562 | }; | ||
1563 | }; | ||
1564 | "globals-12.4.0" = { | ||
1565 | name = "globals"; | ||
1566 | packageName = "globals"; | ||
1567 | version = "12.4.0"; | ||
1568 | src = fetchurl { | ||
1569 | url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz"; | ||
1570 | sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg=="; | ||
1571 | }; | ||
1572 | }; | ||
1573 | "globby-11.0.3" = { | ||
1574 | name = "globby"; | ||
1575 | packageName = "globby"; | ||
1576 | version = "11.0.3"; | ||
1577 | src = fetchurl { | ||
1578 | url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz"; | ||
1579 | sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg=="; | ||
1580 | }; | ||
1581 | }; | ||
1582 | "graceful-fs-4.2.6" = { | ||
1583 | name = "graceful-fs"; | ||
1584 | packageName = "graceful-fs"; | ||
1585 | version = "4.2.6"; | ||
1586 | src = fetchurl { | ||
1587 | url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"; | ||
1588 | sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="; | ||
1589 | }; | ||
1590 | }; | ||
1591 | "har-schema-2.0.0" = { | ||
1592 | name = "har-schema"; | ||
1593 | packageName = "har-schema"; | ||
1594 | version = "2.0.0"; | ||
1595 | src = fetchurl { | ||
1596 | url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; | ||
1597 | sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; | ||
1598 | }; | ||
1599 | }; | ||
1600 | "har-validator-5.1.5" = { | ||
1601 | name = "har-validator"; | ||
1602 | packageName = "har-validator"; | ||
1603 | version = "5.1.5"; | ||
1604 | src = fetchurl { | ||
1605 | url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"; | ||
1606 | sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="; | ||
1607 | }; | ||
1608 | }; | ||
1609 | "has-1.0.3" = { | ||
1610 | name = "has"; | ||
1611 | packageName = "has"; | ||
1612 | version = "1.0.3"; | ||
1613 | src = fetchurl { | ||
1614 | url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz"; | ||
1615 | sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="; | ||
1616 | }; | ||
1617 | }; | ||
1618 | "has-flag-3.0.0" = { | ||
1619 | name = "has-flag"; | ||
1620 | packageName = "has-flag"; | ||
1621 | version = "3.0.0"; | ||
1622 | src = fetchurl { | ||
1623 | url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; | ||
1624 | sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; | ||
1625 | }; | ||
1626 | }; | ||
1627 | "has-flag-4.0.0" = { | ||
1628 | name = "has-flag"; | ||
1629 | packageName = "has-flag"; | ||
1630 | version = "4.0.0"; | ||
1631 | src = fetchurl { | ||
1632 | url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; | ||
1633 | sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; | ||
1634 | }; | ||
1635 | }; | ||
1636 | "has-unicode-2.0.1" = { | ||
1637 | name = "has-unicode"; | ||
1638 | packageName = "has-unicode"; | ||
1639 | version = "2.0.1"; | ||
1640 | src = fetchurl { | ||
1641 | url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; | ||
1642 | sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; | ||
1643 | }; | ||
1644 | }; | ||
1645 | "he-1.2.0" = { | ||
1646 | name = "he"; | ||
1647 | packageName = "he"; | ||
1648 | version = "1.2.0"; | ||
1649 | src = fetchurl { | ||
1650 | url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; | ||
1651 | sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; | ||
1652 | }; | ||
1653 | }; | ||
1654 | "http-signature-1.2.0" = { | ||
1655 | name = "http-signature"; | ||
1656 | packageName = "http-signature"; | ||
1657 | version = "1.2.0"; | ||
1658 | src = fetchurl { | ||
1659 | url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; | ||
1660 | sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; | ||
1661 | }; | ||
1662 | }; | ||
1663 | "human-signals-2.1.0" = { | ||
1664 | name = "human-signals"; | ||
1665 | packageName = "human-signals"; | ||
1666 | version = "2.1.0"; | ||
1667 | src = fetchurl { | ||
1668 | url = "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"; | ||
1669 | sha512 = "B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="; | ||
1670 | }; | ||
1671 | }; | ||
1672 | "iconv-lite-0.4.24" = { | ||
1673 | name = "iconv-lite"; | ||
1674 | packageName = "iconv-lite"; | ||
1675 | version = "0.4.24"; | ||
1676 | src = fetchurl { | ||
1677 | url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; | ||
1678 | sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; | ||
1679 | }; | ||
1680 | }; | ||
1681 | "ignore-4.0.6" = { | ||
1682 | name = "ignore"; | ||
1683 | packageName = "ignore"; | ||
1684 | version = "4.0.6"; | ||
1685 | src = fetchurl { | ||
1686 | url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz"; | ||
1687 | sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="; | ||
1688 | }; | ||
1689 | }; | ||
1690 | "ignore-5.1.8" = { | ||
1691 | name = "ignore"; | ||
1692 | packageName = "ignore"; | ||
1693 | version = "5.1.8"; | ||
1694 | src = fetchurl { | ||
1695 | url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz"; | ||
1696 | sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="; | ||
1697 | }; | ||
1698 | }; | ||
1699 | "ignore-walk-3.0.3" = { | ||
1700 | name = "ignore-walk"; | ||
1701 | packageName = "ignore-walk"; | ||
1702 | version = "3.0.3"; | ||
1703 | src = fetchurl { | ||
1704 | url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; | ||
1705 | sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw=="; | ||
1706 | }; | ||
1707 | }; | ||
1708 | "image-size-0.5.5" = { | ||
1709 | name = "image-size"; | ||
1710 | packageName = "image-size"; | ||
1711 | version = "0.5.5"; | ||
1712 | src = fetchurl { | ||
1713 | url = "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz"; | ||
1714 | sha1 = "09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"; | ||
1715 | }; | ||
1716 | }; | ||
1717 | "import-fresh-3.3.0" = { | ||
1718 | name = "import-fresh"; | ||
1719 | packageName = "import-fresh"; | ||
1720 | version = "3.3.0"; | ||
1721 | src = fetchurl { | ||
1722 | url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"; | ||
1723 | sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="; | ||
1724 | }; | ||
1725 | }; | ||
1726 | "import-local-3.0.2" = { | ||
1727 | name = "import-local"; | ||
1728 | packageName = "import-local"; | ||
1729 | version = "3.0.2"; | ||
1730 | src = fetchurl { | ||
1731 | url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz"; | ||
1732 | sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA=="; | ||
1733 | }; | ||
1734 | }; | ||
1735 | "imurmurhash-0.1.4" = { | ||
1736 | name = "imurmurhash"; | ||
1737 | packageName = "imurmurhash"; | ||
1738 | version = "0.1.4"; | ||
1739 | src = fetchurl { | ||
1740 | url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"; | ||
1741 | sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; | ||
1742 | }; | ||
1743 | }; | ||
1744 | "inflight-1.0.6" = { | ||
1745 | name = "inflight"; | ||
1746 | packageName = "inflight"; | ||
1747 | version = "1.0.6"; | ||
1748 | src = fetchurl { | ||
1749 | url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; | ||
1750 | sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; | ||
1751 | }; | ||
1752 | }; | ||
1753 | "inherits-2.0.4" = { | ||
1754 | name = "inherits"; | ||
1755 | packageName = "inherits"; | ||
1756 | version = "2.0.4"; | ||
1757 | src = fetchurl { | ||
1758 | url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; | ||
1759 | sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; | ||
1760 | }; | ||
1761 | }; | ||
1762 | "ini-1.3.8" = { | ||
1763 | name = "ini"; | ||
1764 | packageName = "ini"; | ||
1765 | version = "1.3.8"; | ||
1766 | src = fetchurl { | ||
1767 | url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"; | ||
1768 | sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="; | ||
1769 | }; | ||
1770 | }; | ||
1771 | "inquirer-7.3.3" = { | ||
1772 | name = "inquirer"; | ||
1773 | packageName = "inquirer"; | ||
1774 | version = "7.3.3"; | ||
1775 | src = fetchurl { | ||
1776 | url = "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz"; | ||
1777 | sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA=="; | ||
1778 | }; | ||
1779 | }; | ||
1780 | "interpret-2.2.0" = { | ||
1781 | name = "interpret"; | ||
1782 | packageName = "interpret"; | ||
1783 | version = "2.2.0"; | ||
1784 | src = fetchurl { | ||
1785 | url = "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz"; | ||
1786 | sha512 = "Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw=="; | ||
1787 | }; | ||
1788 | }; | ||
1789 | "is-core-module-2.2.0" = { | ||
1790 | name = "is-core-module"; | ||
1791 | packageName = "is-core-module"; | ||
1792 | version = "2.2.0"; | ||
1793 | src = fetchurl { | ||
1794 | url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz"; | ||
1795 | sha512 = "XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ=="; | ||
1796 | }; | ||
1797 | }; | ||
1798 | "is-extglob-2.1.1" = { | ||
1799 | name = "is-extglob"; | ||
1800 | packageName = "is-extglob"; | ||
1801 | version = "2.1.1"; | ||
1802 | src = fetchurl { | ||
1803 | url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; | ||
1804 | sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; | ||
1805 | }; | ||
1806 | }; | ||
1807 | "is-fullwidth-code-point-1.0.0" = { | ||
1808 | name = "is-fullwidth-code-point"; | ||
1809 | packageName = "is-fullwidth-code-point"; | ||
1810 | version = "1.0.0"; | ||
1811 | src = fetchurl { | ||
1812 | url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; | ||
1813 | sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; | ||
1814 | }; | ||
1815 | }; | ||
1816 | "is-fullwidth-code-point-2.0.0" = { | ||
1817 | name = "is-fullwidth-code-point"; | ||
1818 | packageName = "is-fullwidth-code-point"; | ||
1819 | version = "2.0.0"; | ||
1820 | src = fetchurl { | ||
1821 | url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; | ||
1822 | sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; | ||
1823 | }; | ||
1824 | }; | ||
1825 | "is-fullwidth-code-point-3.0.0" = { | ||
1826 | name = "is-fullwidth-code-point"; | ||
1827 | packageName = "is-fullwidth-code-point"; | ||
1828 | version = "3.0.0"; | ||
1829 | src = fetchurl { | ||
1830 | url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; | ||
1831 | sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="; | ||
1832 | }; | ||
1833 | }; | ||
1834 | "is-glob-4.0.1" = { | ||
1835 | name = "is-glob"; | ||
1836 | packageName = "is-glob"; | ||
1837 | version = "4.0.1"; | ||
1838 | src = fetchurl { | ||
1839 | url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"; | ||
1840 | sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg=="; | ||
1841 | }; | ||
1842 | }; | ||
1843 | "is-number-7.0.0" = { | ||
1844 | name = "is-number"; | ||
1845 | packageName = "is-number"; | ||
1846 | version = "7.0.0"; | ||
1847 | src = fetchurl { | ||
1848 | url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"; | ||
1849 | sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="; | ||
1850 | }; | ||
1851 | }; | ||
1852 | "is-plain-object-2.0.4" = { | ||
1853 | name = "is-plain-object"; | ||
1854 | packageName = "is-plain-object"; | ||
1855 | version = "2.0.4"; | ||
1856 | src = fetchurl { | ||
1857 | url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"; | ||
1858 | sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="; | ||
1859 | }; | ||
1860 | }; | ||
1861 | "is-stream-2.0.0" = { | ||
1862 | name = "is-stream"; | ||
1863 | packageName = "is-stream"; | ||
1864 | version = "2.0.0"; | ||
1865 | src = fetchurl { | ||
1866 | url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"; | ||
1867 | sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="; | ||
1868 | }; | ||
1869 | }; | ||
1870 | "is-typedarray-1.0.0" = { | ||
1871 | name = "is-typedarray"; | ||
1872 | packageName = "is-typedarray"; | ||
1873 | version = "1.0.0"; | ||
1874 | src = fetchurl { | ||
1875 | url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; | ||
1876 | sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; | ||
1877 | }; | ||
1878 | }; | ||
1879 | "is-what-3.14.1" = { | ||
1880 | name = "is-what"; | ||
1881 | packageName = "is-what"; | ||
1882 | version = "3.14.1"; | ||
1883 | src = fetchurl { | ||
1884 | url = "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz"; | ||
1885 | sha512 = "sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA=="; | ||
1886 | }; | ||
1887 | }; | ||
1888 | "isarray-1.0.0" = { | ||
1889 | name = "isarray"; | ||
1890 | packageName = "isarray"; | ||
1891 | version = "1.0.0"; | ||
1892 | src = fetchurl { | ||
1893 | url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; | ||
1894 | sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; | ||
1895 | }; | ||
1896 | }; | ||
1897 | "isexe-2.0.0" = { | ||
1898 | name = "isexe"; | ||
1899 | packageName = "isexe"; | ||
1900 | version = "2.0.0"; | ||
1901 | src = fetchurl { | ||
1902 | url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; | ||
1903 | sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; | ||
1904 | }; | ||
1905 | }; | ||
1906 | "isobject-3.0.1" = { | ||
1907 | name = "isobject"; | ||
1908 | packageName = "isobject"; | ||
1909 | version = "3.0.1"; | ||
1910 | src = fetchurl { | ||
1911 | url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"; | ||
1912 | sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; | ||
1913 | }; | ||
1914 | }; | ||
1915 | "isstream-0.1.2" = { | ||
1916 | name = "isstream"; | ||
1917 | packageName = "isstream"; | ||
1918 | version = "0.1.2"; | ||
1919 | src = fetchurl { | ||
1920 | url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; | ||
1921 | sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; | ||
1922 | }; | ||
1923 | }; | ||
1924 | "jest-worker-26.6.2" = { | ||
1925 | name = "jest-worker"; | ||
1926 | packageName = "jest-worker"; | ||
1927 | version = "26.6.2"; | ||
1928 | src = fetchurl { | ||
1929 | url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz"; | ||
1930 | sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ=="; | ||
1931 | }; | ||
1932 | }; | ||
1933 | "js-beautify-1.13.13" = { | ||
1934 | name = "js-beautify"; | ||
1935 | packageName = "js-beautify"; | ||
1936 | version = "1.13.13"; | ||
1937 | src = fetchurl { | ||
1938 | url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.13.tgz"; | ||
1939 | sha512 = "oH+nc0U5mOAqX8M5JO1J0Pw/7Q35sAdOsM5W3i87pir9Ntx6P/5Gx1xLNoK+MGyvHk4rqqRCE4Oq58H6xl2W7A=="; | ||
1940 | }; | ||
1941 | }; | ||
1942 | "js-tokens-4.0.0" = { | ||
1943 | name = "js-tokens"; | ||
1944 | packageName = "js-tokens"; | ||
1945 | version = "4.0.0"; | ||
1946 | src = fetchurl { | ||
1947 | url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; | ||
1948 | sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; | ||
1949 | }; | ||
1950 | }; | ||
1951 | "js-yaml-3.14.1" = { | ||
1952 | name = "js-yaml"; | ||
1953 | packageName = "js-yaml"; | ||
1954 | version = "3.14.1"; | ||
1955 | src = fetchurl { | ||
1956 | url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"; | ||
1957 | sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="; | ||
1958 | }; | ||
1959 | }; | ||
1960 | "jsbn-0.1.1" = { | ||
1961 | name = "jsbn"; | ||
1962 | packageName = "jsbn"; | ||
1963 | version = "0.1.1"; | ||
1964 | src = fetchurl { | ||
1965 | url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; | ||
1966 | sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; | ||
1967 | }; | ||
1968 | }; | ||
1969 | "json-parse-better-errors-1.0.2" = { | ||
1970 | name = "json-parse-better-errors"; | ||
1971 | packageName = "json-parse-better-errors"; | ||
1972 | version = "1.0.2"; | ||
1973 | src = fetchurl { | ||
1974 | url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; | ||
1975 | sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="; | ||
1976 | }; | ||
1977 | }; | ||
1978 | "json-schema-0.2.3" = { | ||
1979 | name = "json-schema"; | ||
1980 | packageName = "json-schema"; | ||
1981 | version = "0.2.3"; | ||
1982 | src = fetchurl { | ||
1983 | url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; | ||
1984 | sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; | ||
1985 | }; | ||
1986 | }; | ||
1987 | "json-schema-traverse-0.4.1" = { | ||
1988 | name = "json-schema-traverse"; | ||
1989 | packageName = "json-schema-traverse"; | ||
1990 | version = "0.4.1"; | ||
1991 | src = fetchurl { | ||
1992 | url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; | ||
1993 | sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; | ||
1994 | }; | ||
1995 | }; | ||
1996 | "json-stable-stringify-without-jsonify-1.0.1" = { | ||
1997 | name = "json-stable-stringify-without-jsonify"; | ||
1998 | packageName = "json-stable-stringify-without-jsonify"; | ||
1999 | version = "1.0.1"; | ||
2000 | src = fetchurl { | ||
2001 | url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"; | ||
2002 | sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651"; | ||
2003 | }; | ||
2004 | }; | ||
2005 | "json-stringify-safe-5.0.1" = { | ||
2006 | name = "json-stringify-safe"; | ||
2007 | packageName = "json-stringify-safe"; | ||
2008 | version = "5.0.1"; | ||
2009 | src = fetchurl { | ||
2010 | url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; | ||
2011 | sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; | ||
2012 | }; | ||
2013 | }; | ||
2014 | "jsprim-1.4.1" = { | ||
2015 | name = "jsprim"; | ||
2016 | packageName = "jsprim"; | ||
2017 | version = "1.4.1"; | ||
2018 | src = fetchurl { | ||
2019 | url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; | ||
2020 | sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; | ||
2021 | }; | ||
2022 | }; | ||
2023 | "kind-of-6.0.3" = { | ||
2024 | name = "kind-of"; | ||
2025 | packageName = "kind-of"; | ||
2026 | version = "6.0.3"; | ||
2027 | src = fetchurl { | ||
2028 | url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"; | ||
2029 | sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="; | ||
2030 | }; | ||
2031 | }; | ||
2032 | "less-3.13.1" = { | ||
2033 | name = "less"; | ||
2034 | packageName = "less"; | ||
2035 | version = "3.13.1"; | ||
2036 | src = fetchurl { | ||
2037 | url = "https://registry.npmjs.org/less/-/less-3.13.1.tgz"; | ||
2038 | sha512 = "SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw=="; | ||
2039 | }; | ||
2040 | }; | ||
2041 | "levn-0.3.0" = { | ||
2042 | name = "levn"; | ||
2043 | packageName = "levn"; | ||
2044 | version = "0.3.0"; | ||
2045 | src = fetchurl { | ||
2046 | url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"; | ||
2047 | sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; | ||
2048 | }; | ||
2049 | }; | ||
2050 | "loader-runner-4.2.0" = { | ||
2051 | name = "loader-runner"; | ||
2052 | packageName = "loader-runner"; | ||
2053 | version = "4.2.0"; | ||
2054 | src = fetchurl { | ||
2055 | url = "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz"; | ||
2056 | sha512 = "92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw=="; | ||
2057 | }; | ||
2058 | }; | ||
2059 | "locate-path-5.0.0" = { | ||
2060 | name = "locate-path"; | ||
2061 | packageName = "locate-path"; | ||
2062 | version = "5.0.0"; | ||
2063 | src = fetchurl { | ||
2064 | url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"; | ||
2065 | sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="; | ||
2066 | }; | ||
2067 | }; | ||
2068 | "lodash-4.17.21" = { | ||
2069 | name = "lodash"; | ||
2070 | packageName = "lodash"; | ||
2071 | version = "4.17.21"; | ||
2072 | src = fetchurl { | ||
2073 | url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"; | ||
2074 | sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="; | ||
2075 | }; | ||
2076 | }; | ||
2077 | "lru-cache-4.1.5" = { | ||
2078 | name = "lru-cache"; | ||
2079 | packageName = "lru-cache"; | ||
2080 | version = "4.1.5"; | ||
2081 | src = fetchurl { | ||
2082 | url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; | ||
2083 | sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; | ||
2084 | }; | ||
2085 | }; | ||
2086 | "lru-cache-6.0.0" = { | ||
2087 | name = "lru-cache"; | ||
2088 | packageName = "lru-cache"; | ||
2089 | version = "6.0.0"; | ||
2090 | src = fetchurl { | ||
2091 | url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"; | ||
2092 | sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="; | ||
2093 | }; | ||
2094 | }; | ||
2095 | "make-dir-2.1.0" = { | ||
2096 | name = "make-dir"; | ||
2097 | packageName = "make-dir"; | ||
2098 | version = "2.1.0"; | ||
2099 | src = fetchurl { | ||
2100 | url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz"; | ||
2101 | sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="; | ||
2102 | }; | ||
2103 | }; | ||
2104 | "merge-stream-2.0.0" = { | ||
2105 | name = "merge-stream"; | ||
2106 | packageName = "merge-stream"; | ||
2107 | version = "2.0.0"; | ||
2108 | src = fetchurl { | ||
2109 | url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"; | ||
2110 | sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="; | ||
2111 | }; | ||
2112 | }; | ||
2113 | "merge2-1.4.1" = { | ||
2114 | name = "merge2"; | ||
2115 | packageName = "merge2"; | ||
2116 | version = "1.4.1"; | ||
2117 | src = fetchurl { | ||
2118 | url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"; | ||
2119 | sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="; | ||
2120 | }; | ||
2121 | }; | ||
2122 | "micromatch-4.0.4" = { | ||
2123 | name = "micromatch"; | ||
2124 | packageName = "micromatch"; | ||
2125 | version = "4.0.4"; | ||
2126 | src = fetchurl { | ||
2127 | url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"; | ||
2128 | sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg=="; | ||
2129 | }; | ||
2130 | }; | ||
2131 | "mime-1.6.0" = { | ||
2132 | name = "mime"; | ||
2133 | packageName = "mime"; | ||
2134 | version = "1.6.0"; | ||
2135 | src = fetchurl { | ||
2136 | url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; | ||
2137 | sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; | ||
2138 | }; | ||
2139 | }; | ||
2140 | "mime-db-1.47.0" = { | ||
2141 | name = "mime-db"; | ||
2142 | packageName = "mime-db"; | ||
2143 | version = "1.47.0"; | ||
2144 | src = fetchurl { | ||
2145 | url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz"; | ||
2146 | sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="; | ||
2147 | }; | ||
2148 | }; | ||
2149 | "mime-types-2.1.30" = { | ||
2150 | name = "mime-types"; | ||
2151 | packageName = "mime-types"; | ||
2152 | version = "2.1.30"; | ||
2153 | src = fetchurl { | ||
2154 | url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz"; | ||
2155 | sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg=="; | ||
2156 | }; | ||
2157 | }; | ||
2158 | "mimic-fn-2.1.0" = { | ||
2159 | name = "mimic-fn"; | ||
2160 | packageName = "mimic-fn"; | ||
2161 | version = "2.1.0"; | ||
2162 | src = fetchurl { | ||
2163 | url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"; | ||
2164 | sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="; | ||
2165 | }; | ||
2166 | }; | ||
2167 | "minimatch-3.0.4" = { | ||
2168 | name = "minimatch"; | ||
2169 | packageName = "minimatch"; | ||
2170 | version = "3.0.4"; | ||
2171 | src = fetchurl { | ||
2172 | url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; | ||
2173 | sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; | ||
2174 | }; | ||
2175 | }; | ||
2176 | "minimist-1.2.5" = { | ||
2177 | name = "minimist"; | ||
2178 | packageName = "minimist"; | ||
2179 | version = "1.2.5"; | ||
2180 | src = fetchurl { | ||
2181 | url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; | ||
2182 | sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; | ||
2183 | }; | ||
2184 | }; | ||
2185 | "minipass-2.9.0" = { | ||
2186 | name = "minipass"; | ||
2187 | packageName = "minipass"; | ||
2188 | version = "2.9.0"; | ||
2189 | src = fetchurl { | ||
2190 | url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; | ||
2191 | sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; | ||
2192 | }; | ||
2193 | }; | ||
2194 | "minizlib-1.3.3" = { | ||
2195 | name = "minizlib"; | ||
2196 | packageName = "minizlib"; | ||
2197 | version = "1.3.3"; | ||
2198 | src = fetchurl { | ||
2199 | url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; | ||
2200 | sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q=="; | ||
2201 | }; | ||
2202 | }; | ||
2203 | "mkdirp-0.5.5" = { | ||
2204 | name = "mkdirp"; | ||
2205 | packageName = "mkdirp"; | ||
2206 | version = "0.5.5"; | ||
2207 | src = fetchurl { | ||
2208 | url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; | ||
2209 | sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; | ||
2210 | }; | ||
2211 | }; | ||
2212 | "mkdirp-1.0.4" = { | ||
2213 | name = "mkdirp"; | ||
2214 | packageName = "mkdirp"; | ||
2215 | version = "1.0.4"; | ||
2216 | src = fetchurl { | ||
2217 | url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; | ||
2218 | sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; | ||
2219 | }; | ||
2220 | }; | ||
2221 | "mnemonist-0.38.3" = { | ||
2222 | name = "mnemonist"; | ||
2223 | packageName = "mnemonist"; | ||
2224 | version = "0.38.3"; | ||
2225 | src = fetchurl { | ||
2226 | url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz"; | ||
2227 | sha512 = "2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw=="; | ||
2228 | }; | ||
2229 | }; | ||
2230 | "ms-2.1.2" = { | ||
2231 | name = "ms"; | ||
2232 | packageName = "ms"; | ||
2233 | version = "2.1.2"; | ||
2234 | src = fetchurl { | ||
2235 | url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; | ||
2236 | sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; | ||
2237 | }; | ||
2238 | }; | ||
2239 | "mute-stream-0.0.8" = { | ||
2240 | name = "mute-stream"; | ||
2241 | packageName = "mute-stream"; | ||
2242 | version = "0.0.8"; | ||
2243 | src = fetchurl { | ||
2244 | url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz"; | ||
2245 | sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="; | ||
2246 | }; | ||
2247 | }; | ||
2248 | "native-request-1.0.8" = { | ||
2249 | name = "native-request"; | ||
2250 | packageName = "native-request"; | ||
2251 | version = "1.0.8"; | ||
2252 | src = fetchurl { | ||
2253 | url = "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz"; | ||
2254 | sha512 = "vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag=="; | ||
2255 | }; | ||
2256 | }; | ||
2257 | "natural-compare-1.4.0" = { | ||
2258 | name = "natural-compare"; | ||
2259 | packageName = "natural-compare"; | ||
2260 | version = "1.4.0"; | ||
2261 | src = fetchurl { | ||
2262 | url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"; | ||
2263 | sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; | ||
2264 | }; | ||
2265 | }; | ||
2266 | "needle-2.6.0" = { | ||
2267 | name = "needle"; | ||
2268 | packageName = "needle"; | ||
2269 | version = "2.6.0"; | ||
2270 | src = fetchurl { | ||
2271 | url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz"; | ||
2272 | sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg=="; | ||
2273 | }; | ||
2274 | }; | ||
2275 | "neo-async-2.6.2" = { | ||
2276 | name = "neo-async"; | ||
2277 | packageName = "neo-async"; | ||
2278 | version = "2.6.2"; | ||
2279 | src = fetchurl { | ||
2280 | url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"; | ||
2281 | sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="; | ||
2282 | }; | ||
2283 | }; | ||
2284 | "nice-try-1.0.5" = { | ||
2285 | name = "nice-try"; | ||
2286 | packageName = "nice-try"; | ||
2287 | version = "1.0.5"; | ||
2288 | src = fetchurl { | ||
2289 | url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"; | ||
2290 | sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="; | ||
2291 | }; | ||
2292 | }; | ||
2293 | "node-addon-api-3.1.0" = { | ||
2294 | name = "node-addon-api"; | ||
2295 | packageName = "node-addon-api"; | ||
2296 | version = "3.1.0"; | ||
2297 | src = fetchurl { | ||
2298 | url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz"; | ||
2299 | sha512 = "flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="; | ||
2300 | }; | ||
2301 | }; | ||
2302 | "node-gyp-3.8.0" = { | ||
2303 | name = "node-gyp"; | ||
2304 | packageName = "node-gyp"; | ||
2305 | version = "3.8.0"; | ||
2306 | src = fetchurl { | ||
2307 | url = "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz"; | ||
2308 | sha512 = "3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA=="; | ||
2309 | }; | ||
2310 | }; | ||
2311 | "node-pre-gyp-0.11.0" = { | ||
2312 | name = "node-pre-gyp"; | ||
2313 | packageName = "node-pre-gyp"; | ||
2314 | version = "0.11.0"; | ||
2315 | src = fetchurl { | ||
2316 | url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; | ||
2317 | sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q=="; | ||
2318 | }; | ||
2319 | }; | ||
2320 | "node-releases-1.1.71" = { | ||
2321 | name = "node-releases"; | ||
2322 | packageName = "node-releases"; | ||
2323 | version = "1.1.71"; | ||
2324 | src = fetchurl { | ||
2325 | url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz"; | ||
2326 | sha512 = "zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="; | ||
2327 | }; | ||
2328 | }; | ||
2329 | "nopt-3.0.6" = { | ||
2330 | name = "nopt"; | ||
2331 | packageName = "nopt"; | ||
2332 | version = "3.0.6"; | ||
2333 | src = fetchurl { | ||
2334 | url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"; | ||
2335 | sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9"; | ||
2336 | }; | ||
2337 | }; | ||
2338 | "nopt-4.0.3" = { | ||
2339 | name = "nopt"; | ||
2340 | packageName = "nopt"; | ||
2341 | version = "4.0.3"; | ||
2342 | src = fetchurl { | ||
2343 | url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; | ||
2344 | sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; | ||
2345 | }; | ||
2346 | }; | ||
2347 | "nopt-5.0.0" = { | ||
2348 | name = "nopt"; | ||
2349 | packageName = "nopt"; | ||
2350 | version = "5.0.0"; | ||
2351 | src = fetchurl { | ||
2352 | url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz"; | ||
2353 | sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ=="; | ||
2354 | }; | ||
2355 | }; | ||
2356 | "npm-bundled-1.1.1" = { | ||
2357 | name = "npm-bundled"; | ||
2358 | packageName = "npm-bundled"; | ||
2359 | version = "1.1.1"; | ||
2360 | src = fetchurl { | ||
2361 | url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz"; | ||
2362 | sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA=="; | ||
2363 | }; | ||
2364 | }; | ||
2365 | "npm-normalize-package-bin-1.0.1" = { | ||
2366 | name = "npm-normalize-package-bin"; | ||
2367 | packageName = "npm-normalize-package-bin"; | ||
2368 | version = "1.0.1"; | ||
2369 | src = fetchurl { | ||
2370 | url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"; | ||
2371 | sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="; | ||
2372 | }; | ||
2373 | }; | ||
2374 | "npm-packlist-1.4.8" = { | ||
2375 | name = "npm-packlist"; | ||
2376 | packageName = "npm-packlist"; | ||
2377 | version = "1.4.8"; | ||
2378 | src = fetchurl { | ||
2379 | url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz"; | ||
2380 | sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A=="; | ||
2381 | }; | ||
2382 | }; | ||
2383 | "npm-run-path-4.0.1" = { | ||
2384 | name = "npm-run-path"; | ||
2385 | packageName = "npm-run-path"; | ||
2386 | version = "4.0.1"; | ||
2387 | src = fetchurl { | ||
2388 | url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"; | ||
2389 | sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="; | ||
2390 | }; | ||
2391 | }; | ||
2392 | "npmlog-4.1.2" = { | ||
2393 | name = "npmlog"; | ||
2394 | packageName = "npmlog"; | ||
2395 | version = "4.1.2"; | ||
2396 | src = fetchurl { | ||
2397 | url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; | ||
2398 | sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="; | ||
2399 | }; | ||
2400 | }; | ||
2401 | "number-is-nan-1.0.1" = { | ||
2402 | name = "number-is-nan"; | ||
2403 | packageName = "number-is-nan"; | ||
2404 | version = "1.0.1"; | ||
2405 | src = fetchurl { | ||
2406 | url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; | ||
2407 | sha1 = "097b602b53422a522c1afb8790318336941a011d"; | ||
2408 | }; | ||
2409 | }; | ||
2410 | "oauth-sign-0.9.0" = { | ||
2411 | name = "oauth-sign"; | ||
2412 | packageName = "oauth-sign"; | ||
2413 | version = "0.9.0"; | ||
2414 | src = fetchurl { | ||
2415 | url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; | ||
2416 | sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; | ||
2417 | }; | ||
2418 | }; | ||
2419 | "object-assign-4.1.1" = { | ||
2420 | name = "object-assign"; | ||
2421 | packageName = "object-assign"; | ||
2422 | version = "4.1.1"; | ||
2423 | src = fetchurl { | ||
2424 | url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; | ||
2425 | sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; | ||
2426 | }; | ||
2427 | }; | ||
2428 | "obliterator-1.6.1" = { | ||
2429 | name = "obliterator"; | ||
2430 | packageName = "obliterator"; | ||
2431 | version = "1.6.1"; | ||
2432 | src = fetchurl { | ||
2433 | url = "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz"; | ||
2434 | sha512 = "9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig=="; | ||
2435 | }; | ||
2436 | }; | ||
2437 | "once-1.4.0" = { | ||
2438 | name = "once"; | ||
2439 | packageName = "once"; | ||
2440 | version = "1.4.0"; | ||
2441 | src = fetchurl { | ||
2442 | url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; | ||
2443 | sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; | ||
2444 | }; | ||
2445 | }; | ||
2446 | "onetime-5.1.2" = { | ||
2447 | name = "onetime"; | ||
2448 | packageName = "onetime"; | ||
2449 | version = "5.1.2"; | ||
2450 | src = fetchurl { | ||
2451 | url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"; | ||
2452 | sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="; | ||
2453 | }; | ||
2454 | }; | ||
2455 | "optionator-0.8.3" = { | ||
2456 | name = "optionator"; | ||
2457 | packageName = "optionator"; | ||
2458 | version = "0.8.3"; | ||
2459 | src = fetchurl { | ||
2460 | url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"; | ||
2461 | sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="; | ||
2462 | }; | ||
2463 | }; | ||
2464 | "os-homedir-1.0.2" = { | ||
2465 | name = "os-homedir"; | ||
2466 | packageName = "os-homedir"; | ||
2467 | version = "1.0.2"; | ||
2468 | src = fetchurl { | ||
2469 | url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; | ||
2470 | sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; | ||
2471 | }; | ||
2472 | }; | ||
2473 | "os-tmpdir-1.0.2" = { | ||
2474 | name = "os-tmpdir"; | ||
2475 | packageName = "os-tmpdir"; | ||
2476 | version = "1.0.2"; | ||
2477 | src = fetchurl { | ||
2478 | url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; | ||
2479 | sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; | ||
2480 | }; | ||
2481 | }; | ||
2482 | "osenv-0.1.5" = { | ||
2483 | name = "osenv"; | ||
2484 | packageName = "osenv"; | ||
2485 | version = "0.1.5"; | ||
2486 | src = fetchurl { | ||
2487 | url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; | ||
2488 | sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; | ||
2489 | }; | ||
2490 | }; | ||
2491 | "p-limit-2.3.0" = { | ||
2492 | name = "p-limit"; | ||
2493 | packageName = "p-limit"; | ||
2494 | version = "2.3.0"; | ||
2495 | src = fetchurl { | ||
2496 | url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"; | ||
2497 | sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="; | ||
2498 | }; | ||
2499 | }; | ||
2500 | "p-limit-3.1.0" = { | ||
2501 | name = "p-limit"; | ||
2502 | packageName = "p-limit"; | ||
2503 | version = "3.1.0"; | ||
2504 | src = fetchurl { | ||
2505 | url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"; | ||
2506 | sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="; | ||
2507 | }; | ||
2508 | }; | ||
2509 | "p-locate-4.1.0" = { | ||
2510 | name = "p-locate"; | ||
2511 | packageName = "p-locate"; | ||
2512 | version = "4.1.0"; | ||
2513 | src = fetchurl { | ||
2514 | url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"; | ||
2515 | sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="; | ||
2516 | }; | ||
2517 | }; | ||
2518 | "p-try-2.2.0" = { | ||
2519 | name = "p-try"; | ||
2520 | packageName = "p-try"; | ||
2521 | version = "2.2.0"; | ||
2522 | src = fetchurl { | ||
2523 | url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"; | ||
2524 | sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="; | ||
2525 | }; | ||
2526 | }; | ||
2527 | "packet-reader-1.0.0" = { | ||
2528 | name = "packet-reader"; | ||
2529 | packageName = "packet-reader"; | ||
2530 | version = "1.0.0"; | ||
2531 | src = fetchurl { | ||
2532 | url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; | ||
2533 | sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; | ||
2534 | }; | ||
2535 | }; | ||
2536 | "parent-module-1.0.1" = { | ||
2537 | name = "parent-module"; | ||
2538 | packageName = "parent-module"; | ||
2539 | version = "1.0.1"; | ||
2540 | src = fetchurl { | ||
2541 | url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"; | ||
2542 | sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="; | ||
2543 | }; | ||
2544 | }; | ||
2545 | "path-exists-4.0.0" = { | ||
2546 | name = "path-exists"; | ||
2547 | packageName = "path-exists"; | ||
2548 | version = "4.0.0"; | ||
2549 | src = fetchurl { | ||
2550 | url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"; | ||
2551 | sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="; | ||
2552 | }; | ||
2553 | }; | ||
2554 | "path-is-absolute-1.0.1" = { | ||
2555 | name = "path-is-absolute"; | ||
2556 | packageName = "path-is-absolute"; | ||
2557 | version = "1.0.1"; | ||
2558 | src = fetchurl { | ||
2559 | url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; | ||
2560 | sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; | ||
2561 | }; | ||
2562 | }; | ||
2563 | "path-key-2.0.1" = { | ||
2564 | name = "path-key"; | ||
2565 | packageName = "path-key"; | ||
2566 | version = "2.0.1"; | ||
2567 | src = fetchurl { | ||
2568 | url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"; | ||
2569 | sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; | ||
2570 | }; | ||
2571 | }; | ||
2572 | "path-key-3.1.1" = { | ||
2573 | name = "path-key"; | ||
2574 | packageName = "path-key"; | ||
2575 | version = "3.1.1"; | ||
2576 | src = fetchurl { | ||
2577 | url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"; | ||
2578 | sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="; | ||
2579 | }; | ||
2580 | }; | ||
2581 | "path-parse-1.0.6" = { | ||
2582 | name = "path-parse"; | ||
2583 | packageName = "path-parse"; | ||
2584 | version = "1.0.6"; | ||
2585 | src = fetchurl { | ||
2586 | url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; | ||
2587 | sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; | ||
2588 | }; | ||
2589 | }; | ||
2590 | "path-type-4.0.0" = { | ||
2591 | name = "path-type"; | ||
2592 | packageName = "path-type"; | ||
2593 | version = "4.0.0"; | ||
2594 | src = fetchurl { | ||
2595 | url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"; | ||
2596 | sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="; | ||
2597 | }; | ||
2598 | }; | ||
2599 | "performance-now-2.1.0" = { | ||
2600 | name = "performance-now"; | ||
2601 | packageName = "performance-now"; | ||
2602 | version = "2.1.0"; | ||
2603 | src = fetchurl { | ||
2604 | url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; | ||
2605 | sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; | ||
2606 | }; | ||
2607 | }; | ||
2608 | "pg-8.6.0" = { | ||
2609 | name = "pg"; | ||
2610 | packageName = "pg"; | ||
2611 | version = "8.6.0"; | ||
2612 | src = fetchurl { | ||
2613 | url = "https://registry.npmjs.org/pg/-/pg-8.6.0.tgz"; | ||
2614 | sha512 = "qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ=="; | ||
2615 | }; | ||
2616 | }; | ||
2617 | "pg-connection-string-2.5.0" = { | ||
2618 | name = "pg-connection-string"; | ||
2619 | packageName = "pg-connection-string"; | ||
2620 | version = "2.5.0"; | ||
2621 | src = fetchurl { | ||
2622 | url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz"; | ||
2623 | sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="; | ||
2624 | }; | ||
2625 | }; | ||
2626 | "pg-int8-1.0.1" = { | ||
2627 | name = "pg-int8"; | ||
2628 | packageName = "pg-int8"; | ||
2629 | version = "1.0.1"; | ||
2630 | src = fetchurl { | ||
2631 | url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; | ||
2632 | sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; | ||
2633 | }; | ||
2634 | }; | ||
2635 | "pg-pool-3.3.0" = { | ||
2636 | name = "pg-pool"; | ||
2637 | packageName = "pg-pool"; | ||
2638 | version = "3.3.0"; | ||
2639 | src = fetchurl { | ||
2640 | url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.3.0.tgz"; | ||
2641 | sha512 = "0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg=="; | ||
2642 | }; | ||
2643 | }; | ||
2644 | "pg-protocol-1.5.0" = { | ||
2645 | name = "pg-protocol"; | ||
2646 | packageName = "pg-protocol"; | ||
2647 | version = "1.5.0"; | ||
2648 | src = fetchurl { | ||
2649 | url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz"; | ||
2650 | sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="; | ||
2651 | }; | ||
2652 | }; | ||
2653 | "pg-types-2.2.0" = { | ||
2654 | name = "pg-types"; | ||
2655 | packageName = "pg-types"; | ||
2656 | version = "2.2.0"; | ||
2657 | src = fetchurl { | ||
2658 | url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; | ||
2659 | sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; | ||
2660 | }; | ||
2661 | }; | ||
2662 | "pgpass-1.0.4" = { | ||
2663 | name = "pgpass"; | ||
2664 | packageName = "pgpass"; | ||
2665 | version = "1.0.4"; | ||
2666 | src = fetchurl { | ||
2667 | url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz"; | ||
2668 | sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w=="; | ||
2669 | }; | ||
2670 | }; | ||
2671 | "picomatch-2.2.3" = { | ||
2672 | name = "picomatch"; | ||
2673 | packageName = "picomatch"; | ||
2674 | version = "2.2.3"; | ||
2675 | src = fetchurl { | ||
2676 | url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz"; | ||
2677 | sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg=="; | ||
2678 | }; | ||
2679 | }; | ||
2680 | "pify-4.0.1" = { | ||
2681 | name = "pify"; | ||
2682 | packageName = "pify"; | ||
2683 | version = "4.0.1"; | ||
2684 | src = fetchurl { | ||
2685 | url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"; | ||
2686 | sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="; | ||
2687 | }; | ||
2688 | }; | ||
2689 | "pkg-dir-4.2.0" = { | ||
2690 | name = "pkg-dir"; | ||
2691 | packageName = "pkg-dir"; | ||
2692 | version = "4.2.0"; | ||
2693 | src = fetchurl { | ||
2694 | url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz"; | ||
2695 | sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="; | ||
2696 | }; | ||
2697 | }; | ||
2698 | "postgres-array-2.0.0" = { | ||
2699 | name = "postgres-array"; | ||
2700 | packageName = "postgres-array"; | ||
2701 | version = "2.0.0"; | ||
2702 | src = fetchurl { | ||
2703 | url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; | ||
2704 | sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; | ||
2705 | }; | ||
2706 | }; | ||
2707 | "postgres-bytea-1.0.0" = { | ||
2708 | name = "postgres-bytea"; | ||
2709 | packageName = "postgres-bytea"; | ||
2710 | version = "1.0.0"; | ||
2711 | src = fetchurl { | ||
2712 | url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; | ||
2713 | sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35"; | ||
2714 | }; | ||
2715 | }; | ||
2716 | "postgres-date-1.0.7" = { | ||
2717 | name = "postgres-date"; | ||
2718 | packageName = "postgres-date"; | ||
2719 | version = "1.0.7"; | ||
2720 | src = fetchurl { | ||
2721 | url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; | ||
2722 | sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; | ||
2723 | }; | ||
2724 | }; | ||
2725 | "postgres-interval-1.2.0" = { | ||
2726 | name = "postgres-interval"; | ||
2727 | packageName = "postgres-interval"; | ||
2728 | version = "1.2.0"; | ||
2729 | src = fetchurl { | ||
2730 | url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; | ||
2731 | sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; | ||
2732 | }; | ||
2733 | }; | ||
2734 | "prelude-ls-1.1.2" = { | ||
2735 | name = "prelude-ls"; | ||
2736 | packageName = "prelude-ls"; | ||
2737 | version = "1.1.2"; | ||
2738 | src = fetchurl { | ||
2739 | url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"; | ||
2740 | sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; | ||
2741 | }; | ||
2742 | }; | ||
2743 | "process-nextick-args-2.0.1" = { | ||
2744 | name = "process-nextick-args"; | ||
2745 | packageName = "process-nextick-args"; | ||
2746 | version = "2.0.1"; | ||
2747 | src = fetchurl { | ||
2748 | url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; | ||
2749 | sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; | ||
2750 | }; | ||
2751 | }; | ||
2752 | "progress-2.0.3" = { | ||
2753 | name = "progress"; | ||
2754 | packageName = "progress"; | ||
2755 | version = "2.0.3"; | ||
2756 | src = fetchurl { | ||
2757 | url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"; | ||
2758 | sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="; | ||
2759 | }; | ||
2760 | }; | ||
2761 | "proto-list-1.2.4" = { | ||
2762 | name = "proto-list"; | ||
2763 | packageName = "proto-list"; | ||
2764 | version = "1.2.4"; | ||
2765 | src = fetchurl { | ||
2766 | url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz"; | ||
2767 | sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; | ||
2768 | }; | ||
2769 | }; | ||
2770 | "prr-1.0.1" = { | ||
2771 | name = "prr"; | ||
2772 | packageName = "prr"; | ||
2773 | version = "1.0.1"; | ||
2774 | src = fetchurl { | ||
2775 | url = "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz"; | ||
2776 | sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; | ||
2777 | }; | ||
2778 | }; | ||
2779 | "pseudomap-1.0.2" = { | ||
2780 | name = "pseudomap"; | ||
2781 | packageName = "pseudomap"; | ||
2782 | version = "1.0.2"; | ||
2783 | src = fetchurl { | ||
2784 | url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; | ||
2785 | sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; | ||
2786 | }; | ||
2787 | }; | ||
2788 | "psl-1.8.0" = { | ||
2789 | name = "psl"; | ||
2790 | packageName = "psl"; | ||
2791 | version = "1.8.0"; | ||
2792 | src = fetchurl { | ||
2793 | url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"; | ||
2794 | sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="; | ||
2795 | }; | ||
2796 | }; | ||
2797 | "punycode-2.1.1" = { | ||
2798 | name = "punycode"; | ||
2799 | packageName = "punycode"; | ||
2800 | version = "2.1.1"; | ||
2801 | src = fetchurl { | ||
2802 | url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; | ||
2803 | sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; | ||
2804 | }; | ||
2805 | }; | ||
2806 | "qs-6.5.2" = { | ||
2807 | name = "qs"; | ||
2808 | packageName = "qs"; | ||
2809 | version = "6.5.2"; | ||
2810 | src = fetchurl { | ||
2811 | url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; | ||
2812 | sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="; | ||
2813 | }; | ||
2814 | }; | ||
2815 | "queue-microtask-1.2.3" = { | ||
2816 | name = "queue-microtask"; | ||
2817 | packageName = "queue-microtask"; | ||
2818 | version = "1.2.3"; | ||
2819 | src = fetchurl { | ||
2820 | url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"; | ||
2821 | sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="; | ||
2822 | }; | ||
2823 | }; | ||
2824 | "randombytes-2.1.0" = { | ||
2825 | name = "randombytes"; | ||
2826 | packageName = "randombytes"; | ||
2827 | version = "2.1.0"; | ||
2828 | src = fetchurl { | ||
2829 | url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"; | ||
2830 | sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="; | ||
2831 | }; | ||
2832 | }; | ||
2833 | "rc-1.2.8" = { | ||
2834 | name = "rc"; | ||
2835 | packageName = "rc"; | ||
2836 | version = "1.2.8"; | ||
2837 | src = fetchurl { | ||
2838 | url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; | ||
2839 | sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; | ||
2840 | }; | ||
2841 | }; | ||
2842 | "readable-stream-2.3.7" = { | ||
2843 | name = "readable-stream"; | ||
2844 | packageName = "readable-stream"; | ||
2845 | version = "2.3.7"; | ||
2846 | src = fetchurl { | ||
2847 | url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; | ||
2848 | sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; | ||
2849 | }; | ||
2850 | }; | ||
2851 | "readable-stream-3.6.0" = { | ||
2852 | name = "readable-stream"; | ||
2853 | packageName = "readable-stream"; | ||
2854 | version = "3.6.0"; | ||
2855 | src = fetchurl { | ||
2856 | url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; | ||
2857 | sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; | ||
2858 | }; | ||
2859 | }; | ||
2860 | "rechoir-0.7.0" = { | ||
2861 | name = "rechoir"; | ||
2862 | packageName = "rechoir"; | ||
2863 | version = "0.7.0"; | ||
2864 | src = fetchurl { | ||
2865 | url = "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz"; | ||
2866 | sha512 = "ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q=="; | ||
2867 | }; | ||
2868 | }; | ||
2869 | "regexpp-2.0.1" = { | ||
2870 | name = "regexpp"; | ||
2871 | packageName = "regexpp"; | ||
2872 | version = "2.0.1"; | ||
2873 | src = fetchurl { | ||
2874 | url = "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz"; | ||
2875 | sha512 = "lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw=="; | ||
2876 | }; | ||
2877 | }; | ||
2878 | "regexpp-3.1.0" = { | ||
2879 | name = "regexpp"; | ||
2880 | packageName = "regexpp"; | ||
2881 | version = "3.1.0"; | ||
2882 | src = fetchurl { | ||
2883 | url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz"; | ||
2884 | sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q=="; | ||
2885 | }; | ||
2886 | }; | ||
2887 | "request-2.88.2" = { | ||
2888 | name = "request"; | ||
2889 | packageName = "request"; | ||
2890 | version = "2.88.2"; | ||
2891 | src = fetchurl { | ||
2892 | url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz"; | ||
2893 | sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="; | ||
2894 | }; | ||
2895 | }; | ||
2896 | "resolve-1.20.0" = { | ||
2897 | name = "resolve"; | ||
2898 | packageName = "resolve"; | ||
2899 | version = "1.20.0"; | ||
2900 | src = fetchurl { | ||
2901 | url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz"; | ||
2902 | sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A=="; | ||
2903 | }; | ||
2904 | }; | ||
2905 | "resolve-cwd-3.0.0" = { | ||
2906 | name = "resolve-cwd"; | ||
2907 | packageName = "resolve-cwd"; | ||
2908 | version = "3.0.0"; | ||
2909 | src = fetchurl { | ||
2910 | url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"; | ||
2911 | sha512 = "OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="; | ||
2912 | }; | ||
2913 | }; | ||
2914 | "resolve-from-4.0.0" = { | ||
2915 | name = "resolve-from"; | ||
2916 | packageName = "resolve-from"; | ||
2917 | version = "4.0.0"; | ||
2918 | src = fetchurl { | ||
2919 | url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"; | ||
2920 | sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="; | ||
2921 | }; | ||
2922 | }; | ||
2923 | "resolve-from-5.0.0" = { | ||
2924 | name = "resolve-from"; | ||
2925 | packageName = "resolve-from"; | ||
2926 | version = "5.0.0"; | ||
2927 | src = fetchurl { | ||
2928 | url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"; | ||
2929 | sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="; | ||
2930 | }; | ||
2931 | }; | ||
2932 | "restore-cursor-3.1.0" = { | ||
2933 | name = "restore-cursor"; | ||
2934 | packageName = "restore-cursor"; | ||
2935 | version = "3.1.0"; | ||
2936 | src = fetchurl { | ||
2937 | url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"; | ||
2938 | sha512 = "l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="; | ||
2939 | }; | ||
2940 | }; | ||
2941 | "reusify-1.0.4" = { | ||
2942 | name = "reusify"; | ||
2943 | packageName = "reusify"; | ||
2944 | version = "1.0.4"; | ||
2945 | src = fetchurl { | ||
2946 | url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"; | ||
2947 | sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="; | ||
2948 | }; | ||
2949 | }; | ||
2950 | "rimraf-2.6.3" = { | ||
2951 | name = "rimraf"; | ||
2952 | packageName = "rimraf"; | ||
2953 | version = "2.6.3"; | ||
2954 | src = fetchurl { | ||
2955 | url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"; | ||
2956 | sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="; | ||
2957 | }; | ||
2958 | }; | ||
2959 | "run-async-2.4.1" = { | ||
2960 | name = "run-async"; | ||
2961 | packageName = "run-async"; | ||
2962 | version = "2.4.1"; | ||
2963 | src = fetchurl { | ||
2964 | url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz"; | ||
2965 | sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="; | ||
2966 | }; | ||
2967 | }; | ||
2968 | "run-parallel-1.2.0" = { | ||
2969 | name = "run-parallel"; | ||
2970 | packageName = "run-parallel"; | ||
2971 | version = "1.2.0"; | ||
2972 | src = fetchurl { | ||
2973 | url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"; | ||
2974 | sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="; | ||
2975 | }; | ||
2976 | }; | ||
2977 | "rxjs-6.6.7" = { | ||
2978 | name = "rxjs"; | ||
2979 | packageName = "rxjs"; | ||
2980 | version = "6.6.7"; | ||
2981 | src = fetchurl { | ||
2982 | url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz"; | ||
2983 | sha512 = "hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="; | ||
2984 | }; | ||
2985 | }; | ||
2986 | "safe-buffer-5.1.2" = { | ||
2987 | name = "safe-buffer"; | ||
2988 | packageName = "safe-buffer"; | ||
2989 | version = "5.1.2"; | ||
2990 | src = fetchurl { | ||
2991 | url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; | ||
2992 | sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; | ||
2993 | }; | ||
2994 | }; | ||
2995 | "safe-buffer-5.2.1" = { | ||
2996 | name = "safe-buffer"; | ||
2997 | packageName = "safe-buffer"; | ||
2998 | version = "5.2.1"; | ||
2999 | src = fetchurl { | ||
3000 | url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"; | ||
3001 | sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="; | ||
3002 | }; | ||
3003 | }; | ||
3004 | "safer-buffer-2.1.2" = { | ||
3005 | name = "safer-buffer"; | ||
3006 | packageName = "safer-buffer"; | ||
3007 | version = "2.1.2"; | ||
3008 | src = fetchurl { | ||
3009 | url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; | ||
3010 | sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; | ||
3011 | }; | ||
3012 | }; | ||
3013 | "sax-1.2.4" = { | ||
3014 | name = "sax"; | ||
3015 | packageName = "sax"; | ||
3016 | version = "1.2.4"; | ||
3017 | src = fetchurl { | ||
3018 | url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; | ||
3019 | sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; | ||
3020 | }; | ||
3021 | }; | ||
3022 | "schema-utils-3.0.0" = { | ||
3023 | name = "schema-utils"; | ||
3024 | packageName = "schema-utils"; | ||
3025 | version = "3.0.0"; | ||
3026 | src = fetchurl { | ||
3027 | url = "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz"; | ||
3028 | sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA=="; | ||
3029 | }; | ||
3030 | }; | ||
3031 | "semver-5.3.0" = { | ||
3032 | name = "semver"; | ||
3033 | packageName = "semver"; | ||
3034 | version = "5.3.0"; | ||
3035 | src = fetchurl { | ||
3036 | url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"; | ||
3037 | sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"; | ||
3038 | }; | ||
3039 | }; | ||
3040 | "semver-5.7.1" = { | ||
3041 | name = "semver"; | ||
3042 | packageName = "semver"; | ||
3043 | version = "5.7.1"; | ||
3044 | src = fetchurl { | ||
3045 | url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; | ||
3046 | sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="; | ||
3047 | }; | ||
3048 | }; | ||
3049 | "semver-6.3.0" = { | ||
3050 | name = "semver"; | ||
3051 | packageName = "semver"; | ||
3052 | version = "6.3.0"; | ||
3053 | src = fetchurl { | ||
3054 | url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"; | ||
3055 | sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; | ||
3056 | }; | ||
3057 | }; | ||
3058 | "semver-7.3.5" = { | ||
3059 | name = "semver"; | ||
3060 | packageName = "semver"; | ||
3061 | version = "7.3.5"; | ||
3062 | src = fetchurl { | ||
3063 | url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"; | ||
3064 | sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ=="; | ||
3065 | }; | ||
3066 | }; | ||
3067 | "serialize-javascript-5.0.1" = { | ||
3068 | name = "serialize-javascript"; | ||
3069 | packageName = "serialize-javascript"; | ||
3070 | version = "5.0.1"; | ||
3071 | src = fetchurl { | ||
3072 | url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz"; | ||
3073 | sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA=="; | ||
3074 | }; | ||
3075 | }; | ||
3076 | "set-blocking-2.0.0" = { | ||
3077 | name = "set-blocking"; | ||
3078 | packageName = "set-blocking"; | ||
3079 | version = "2.0.0"; | ||
3080 | src = fetchurl { | ||
3081 | url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; | ||
3082 | sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; | ||
3083 | }; | ||
3084 | }; | ||
3085 | "shallow-clone-3.0.1" = { | ||
3086 | name = "shallow-clone"; | ||
3087 | packageName = "shallow-clone"; | ||
3088 | version = "3.0.1"; | ||
3089 | src = fetchurl { | ||
3090 | url = "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz"; | ||
3091 | sha512 = "/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA=="; | ||
3092 | }; | ||
3093 | }; | ||
3094 | "shebang-command-1.2.0" = { | ||
3095 | name = "shebang-command"; | ||
3096 | packageName = "shebang-command"; | ||
3097 | version = "1.2.0"; | ||
3098 | src = fetchurl { | ||
3099 | url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"; | ||
3100 | sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; | ||
3101 | }; | ||
3102 | }; | ||
3103 | "shebang-command-2.0.0" = { | ||
3104 | name = "shebang-command"; | ||
3105 | packageName = "shebang-command"; | ||
3106 | version = "2.0.0"; | ||
3107 | src = fetchurl { | ||
3108 | url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"; | ||
3109 | sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="; | ||
3110 | }; | ||
3111 | }; | ||
3112 | "shebang-regex-1.0.0" = { | ||
3113 | name = "shebang-regex"; | ||
3114 | packageName = "shebang-regex"; | ||
3115 | version = "1.0.0"; | ||
3116 | src = fetchurl { | ||
3117 | url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"; | ||
3118 | sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; | ||
3119 | }; | ||
3120 | }; | ||
3121 | "shebang-regex-3.0.0" = { | ||
3122 | name = "shebang-regex"; | ||
3123 | packageName = "shebang-regex"; | ||
3124 | version = "3.0.0"; | ||
3125 | src = fetchurl { | ||
3126 | url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"; | ||
3127 | sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="; | ||
3128 | }; | ||
3129 | }; | ||
3130 | "sigmund-1.0.1" = { | ||
3131 | name = "sigmund"; | ||
3132 | packageName = "sigmund"; | ||
3133 | version = "1.0.1"; | ||
3134 | src = fetchurl { | ||
3135 | url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"; | ||
3136 | sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590"; | ||
3137 | }; | ||
3138 | }; | ||
3139 | "signal-exit-3.0.3" = { | ||
3140 | name = "signal-exit"; | ||
3141 | packageName = "signal-exit"; | ||
3142 | version = "3.0.3"; | ||
3143 | src = fetchurl { | ||
3144 | url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"; | ||
3145 | sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="; | ||
3146 | }; | ||
3147 | }; | ||
3148 | "slash-3.0.0" = { | ||
3149 | name = "slash"; | ||
3150 | packageName = "slash"; | ||
3151 | version = "3.0.0"; | ||
3152 | src = fetchurl { | ||
3153 | url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"; | ||
3154 | sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="; | ||
3155 | }; | ||
3156 | }; | ||
3157 | "slice-ansi-2.1.0" = { | ||
3158 | name = "slice-ansi"; | ||
3159 | packageName = "slice-ansi"; | ||
3160 | version = "2.1.0"; | ||
3161 | src = fetchurl { | ||
3162 | url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz"; | ||
3163 | sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ=="; | ||
3164 | }; | ||
3165 | }; | ||
3166 | "source-list-map-2.0.1" = { | ||
3167 | name = "source-list-map"; | ||
3168 | packageName = "source-list-map"; | ||
3169 | version = "2.0.1"; | ||
3170 | src = fetchurl { | ||
3171 | url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"; | ||
3172 | sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="; | ||
3173 | }; | ||
3174 | }; | ||
3175 | "source-map-0.6.1" = { | ||
3176 | name = "source-map"; | ||
3177 | packageName = "source-map"; | ||
3178 | version = "0.6.1"; | ||
3179 | src = fetchurl { | ||
3180 | url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; | ||
3181 | sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; | ||
3182 | }; | ||
3183 | }; | ||
3184 | "source-map-0.7.3" = { | ||
3185 | name = "source-map"; | ||
3186 | packageName = "source-map"; | ||
3187 | version = "0.7.3"; | ||
3188 | src = fetchurl { | ||
3189 | url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz"; | ||
3190 | sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="; | ||
3191 | }; | ||
3192 | }; | ||
3193 | "source-map-support-0.5.19" = { | ||
3194 | name = "source-map-support"; | ||
3195 | packageName = "source-map-support"; | ||
3196 | version = "0.5.19"; | ||
3197 | src = fetchurl { | ||
3198 | url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz"; | ||
3199 | sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw=="; | ||
3200 | }; | ||
3201 | }; | ||
3202 | "spectre.css-0.5.9" = { | ||
3203 | name = "spectre.css"; | ||
3204 | packageName = "spectre.css"; | ||
3205 | version = "0.5.9"; | ||
3206 | src = fetchurl { | ||
3207 | url = "https://registry.npmjs.org/spectre.css/-/spectre.css-0.5.9.tgz"; | ||
3208 | sha512 = "9jUqwZmCnvflrxFGcK+ize43TvjwDjqMwZPVubEtSIHzvinH0TBUESm1LcOJx3Ur7bdPaeOHQIjOqBl1Y5kLFw=="; | ||
3209 | }; | ||
3210 | }; | ||
3211 | "split2-3.2.2" = { | ||
3212 | name = "split2"; | ||
3213 | packageName = "split2"; | ||
3214 | version = "3.2.2"; | ||
3215 | src = fetchurl { | ||
3216 | url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz"; | ||
3217 | sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="; | ||
3218 | }; | ||
3219 | }; | ||
3220 | "sprintf-js-1.0.3" = { | ||
3221 | name = "sprintf-js"; | ||
3222 | packageName = "sprintf-js"; | ||
3223 | version = "1.0.3"; | ||
3224 | src = fetchurl { | ||
3225 | url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; | ||
3226 | sha1 = "04e6926f662895354f3dd015203633b857297e2c"; | ||
3227 | }; | ||
3228 | }; | ||
3229 | "sqlite3-5.0.2" = { | ||
3230 | name = "sqlite3"; | ||
3231 | packageName = "sqlite3"; | ||
3232 | version = "5.0.2"; | ||
3233 | src = fetchurl { | ||
3234 | url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.2.tgz"; | ||
3235 | sha512 = "1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA=="; | ||
3236 | }; | ||
3237 | }; | ||
3238 | "sshpk-1.16.1" = { | ||
3239 | name = "sshpk"; | ||
3240 | packageName = "sshpk"; | ||
3241 | version = "1.16.1"; | ||
3242 | src = fetchurl { | ||
3243 | url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; | ||
3244 | sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; | ||
3245 | }; | ||
3246 | }; | ||
3247 | "string-width-1.0.2" = { | ||
3248 | name = "string-width"; | ||
3249 | packageName = "string-width"; | ||
3250 | version = "1.0.2"; | ||
3251 | src = fetchurl { | ||
3252 | url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; | ||
3253 | sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; | ||
3254 | }; | ||
3255 | }; | ||
3256 | "string-width-2.1.1" = { | ||
3257 | name = "string-width"; | ||
3258 | packageName = "string-width"; | ||
3259 | version = "2.1.1"; | ||
3260 | src = fetchurl { | ||
3261 | url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; | ||
3262 | sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; | ||
3263 | }; | ||
3264 | }; | ||
3265 | "string-width-3.1.0" = { | ||
3266 | name = "string-width"; | ||
3267 | packageName = "string-width"; | ||
3268 | version = "3.1.0"; | ||
3269 | src = fetchurl { | ||
3270 | url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"; | ||
3271 | sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; | ||
3272 | }; | ||
3273 | }; | ||
3274 | "string-width-4.2.2" = { | ||
3275 | name = "string-width"; | ||
3276 | packageName = "string-width"; | ||
3277 | version = "4.2.2"; | ||
3278 | src = fetchurl { | ||
3279 | url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz"; | ||
3280 | sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA=="; | ||
3281 | }; | ||
3282 | }; | ||
3283 | "string_decoder-1.1.1" = { | ||
3284 | name = "string_decoder"; | ||
3285 | packageName = "string_decoder"; | ||
3286 | version = "1.1.1"; | ||
3287 | src = fetchurl { | ||
3288 | url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; | ||
3289 | sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; | ||
3290 | }; | ||
3291 | }; | ||
3292 | "string_decoder-1.3.0" = { | ||
3293 | name = "string_decoder"; | ||
3294 | packageName = "string_decoder"; | ||
3295 | version = "1.3.0"; | ||
3296 | src = fetchurl { | ||
3297 | url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"; | ||
3298 | sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="; | ||
3299 | }; | ||
3300 | }; | ||
3301 | "strip-ansi-3.0.1" = { | ||
3302 | name = "strip-ansi"; | ||
3303 | packageName = "strip-ansi"; | ||
3304 | version = "3.0.1"; | ||
3305 | src = fetchurl { | ||
3306 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; | ||
3307 | sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; | ||
3308 | }; | ||
3309 | }; | ||
3310 | "strip-ansi-4.0.0" = { | ||
3311 | name = "strip-ansi"; | ||
3312 | packageName = "strip-ansi"; | ||
3313 | version = "4.0.0"; | ||
3314 | src = fetchurl { | ||
3315 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; | ||
3316 | sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; | ||
3317 | }; | ||
3318 | }; | ||
3319 | "strip-ansi-5.2.0" = { | ||
3320 | name = "strip-ansi"; | ||
3321 | packageName = "strip-ansi"; | ||
3322 | version = "5.2.0"; | ||
3323 | src = fetchurl { | ||
3324 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"; | ||
3325 | sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="; | ||
3326 | }; | ||
3327 | }; | ||
3328 | "strip-ansi-6.0.0" = { | ||
3329 | name = "strip-ansi"; | ||
3330 | packageName = "strip-ansi"; | ||
3331 | version = "6.0.0"; | ||
3332 | src = fetchurl { | ||
3333 | url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz"; | ||
3334 | sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w=="; | ||
3335 | }; | ||
3336 | }; | ||
3337 | "strip-final-newline-2.0.0" = { | ||
3338 | name = "strip-final-newline"; | ||
3339 | packageName = "strip-final-newline"; | ||
3340 | version = "2.0.0"; | ||
3341 | src = fetchurl { | ||
3342 | url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"; | ||
3343 | sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="; | ||
3344 | }; | ||
3345 | }; | ||
3346 | "strip-json-comments-2.0.1" = { | ||
3347 | name = "strip-json-comments"; | ||
3348 | packageName = "strip-json-comments"; | ||
3349 | version = "2.0.1"; | ||
3350 | src = fetchurl { | ||
3351 | url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; | ||
3352 | sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; | ||
3353 | }; | ||
3354 | }; | ||
3355 | "strip-json-comments-3.1.1" = { | ||
3356 | name = "strip-json-comments"; | ||
3357 | packageName = "strip-json-comments"; | ||
3358 | version = "3.1.1"; | ||
3359 | src = fetchurl { | ||
3360 | url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"; | ||
3361 | sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="; | ||
3362 | }; | ||
3363 | }; | ||
3364 | "supports-color-5.5.0" = { | ||
3365 | name = "supports-color"; | ||
3366 | packageName = "supports-color"; | ||
3367 | version = "5.5.0"; | ||
3368 | src = fetchurl { | ||
3369 | url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; | ||
3370 | sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; | ||
3371 | }; | ||
3372 | }; | ||
3373 | "supports-color-7.2.0" = { | ||
3374 | name = "supports-color"; | ||
3375 | packageName = "supports-color"; | ||
3376 | version = "7.2.0"; | ||
3377 | src = fetchurl { | ||
3378 | url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; | ||
3379 | sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; | ||
3380 | }; | ||
3381 | }; | ||
3382 | "table-5.4.6" = { | ||
3383 | name = "table"; | ||
3384 | packageName = "table"; | ||
3385 | version = "5.4.6"; | ||
3386 | src = fetchurl { | ||
3387 | url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz"; | ||
3388 | sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug=="; | ||
3389 | }; | ||
3390 | }; | ||
3391 | "tapable-2.2.0" = { | ||
3392 | name = "tapable"; | ||
3393 | packageName = "tapable"; | ||
3394 | version = "2.2.0"; | ||
3395 | src = fetchurl { | ||
3396 | url = "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz"; | ||
3397 | sha512 = "FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw=="; | ||
3398 | }; | ||
3399 | }; | ||
3400 | "tar-2.2.2" = { | ||
3401 | name = "tar"; | ||
3402 | packageName = "tar"; | ||
3403 | version = "2.2.2"; | ||
3404 | src = fetchurl { | ||
3405 | url = "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz"; | ||
3406 | sha512 = "FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA=="; | ||
3407 | }; | ||
3408 | }; | ||
3409 | "tar-4.4.13" = { | ||
3410 | name = "tar"; | ||
3411 | packageName = "tar"; | ||
3412 | version = "4.4.13"; | ||
3413 | src = fetchurl { | ||
3414 | url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz"; | ||
3415 | sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA=="; | ||
3416 | }; | ||
3417 | }; | ||
3418 | "terser-5.6.1" = { | ||
3419 | name = "terser"; | ||
3420 | packageName = "terser"; | ||
3421 | version = "5.6.1"; | ||
3422 | src = fetchurl { | ||
3423 | url = "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz"; | ||
3424 | sha512 = "yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw=="; | ||
3425 | }; | ||
3426 | }; | ||
3427 | "terser-webpack-plugin-5.1.1" = { | ||
3428 | name = "terser-webpack-plugin"; | ||
3429 | packageName = "terser-webpack-plugin"; | ||
3430 | version = "5.1.1"; | ||
3431 | src = fetchurl { | ||
3432 | url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz"; | ||
3433 | sha512 = "5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q=="; | ||
3434 | }; | ||
3435 | }; | ||
3436 | "text-table-0.2.0" = { | ||
3437 | name = "text-table"; | ||
3438 | packageName = "text-table"; | ||
3439 | version = "0.2.0"; | ||
3440 | src = fetchurl { | ||
3441 | url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"; | ||
3442 | sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4"; | ||
3443 | }; | ||
3444 | }; | ||
3445 | "through-2.3.8" = { | ||
3446 | name = "through"; | ||
3447 | packageName = "through"; | ||
3448 | version = "2.3.8"; | ||
3449 | src = fetchurl { | ||
3450 | url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz"; | ||
3451 | sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; | ||
3452 | }; | ||
3453 | }; | ||
3454 | "tmp-0.0.33" = { | ||
3455 | name = "tmp"; | ||
3456 | packageName = "tmp"; | ||
3457 | version = "0.0.33"; | ||
3458 | src = fetchurl { | ||
3459 | url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz"; | ||
3460 | sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="; | ||
3461 | }; | ||
3462 | }; | ||
3463 | "to-regex-range-5.0.1" = { | ||
3464 | name = "to-regex-range"; | ||
3465 | packageName = "to-regex-range"; | ||
3466 | version = "5.0.1"; | ||
3467 | src = fetchurl { | ||
3468 | url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"; | ||
3469 | sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="; | ||
3470 | }; | ||
3471 | }; | ||
3472 | "tough-cookie-2.5.0" = { | ||
3473 | name = "tough-cookie"; | ||
3474 | packageName = "tough-cookie"; | ||
3475 | version = "2.5.0"; | ||
3476 | src = fetchurl { | ||
3477 | url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; | ||
3478 | sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; | ||
3479 | }; | ||
3480 | }; | ||
3481 | "tslib-1.14.1" = { | ||
3482 | name = "tslib"; | ||
3483 | packageName = "tslib"; | ||
3484 | version = "1.14.1"; | ||
3485 | src = fetchurl { | ||
3486 | url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"; | ||
3487 | sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="; | ||
3488 | }; | ||
3489 | }; | ||
3490 | "tsutils-3.21.0" = { | ||
3491 | name = "tsutils"; | ||
3492 | packageName = "tsutils"; | ||
3493 | version = "3.21.0"; | ||
3494 | src = fetchurl { | ||
3495 | url = "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"; | ||
3496 | sha512 = "mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="; | ||
3497 | }; | ||
3498 | }; | ||
3499 | "tunnel-agent-0.6.0" = { | ||
3500 | name = "tunnel-agent"; | ||
3501 | packageName = "tunnel-agent"; | ||
3502 | version = "0.6.0"; | ||
3503 | src = fetchurl { | ||
3504 | url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; | ||
3505 | sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; | ||
3506 | }; | ||
3507 | }; | ||
3508 | "tweetnacl-0.14.5" = { | ||
3509 | name = "tweetnacl"; | ||
3510 | packageName = "tweetnacl"; | ||
3511 | version = "0.14.5"; | ||
3512 | src = fetchurl { | ||
3513 | url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; | ||
3514 | sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; | ||
3515 | }; | ||
3516 | }; | ||
3517 | "type-check-0.3.2" = { | ||
3518 | name = "type-check"; | ||
3519 | packageName = "type-check"; | ||
3520 | version = "0.3.2"; | ||
3521 | src = fetchurl { | ||
3522 | url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"; | ||
3523 | sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; | ||
3524 | }; | ||
3525 | }; | ||
3526 | "type-fest-0.21.3" = { | ||
3527 | name = "type-fest"; | ||
3528 | packageName = "type-fest"; | ||
3529 | version = "0.21.3"; | ||
3530 | src = fetchurl { | ||
3531 | url = "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"; | ||
3532 | sha512 = "t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="; | ||
3533 | }; | ||
3534 | }; | ||
3535 | "type-fest-0.8.1" = { | ||
3536 | name = "type-fest"; | ||
3537 | packageName = "type-fest"; | ||
3538 | version = "0.8.1"; | ||
3539 | src = fetchurl { | ||
3540 | url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"; | ||
3541 | sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="; | ||
3542 | }; | ||
3543 | }; | ||
3544 | "typescript-4.2.4" = { | ||
3545 | name = "typescript"; | ||
3546 | packageName = "typescript"; | ||
3547 | version = "4.2.4"; | ||
3548 | src = fetchurl { | ||
3549 | url = "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz"; | ||
3550 | sha512 = "V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg=="; | ||
3551 | }; | ||
3552 | }; | ||
3553 | "uri-js-4.4.1" = { | ||
3554 | name = "uri-js"; | ||
3555 | packageName = "uri-js"; | ||
3556 | version = "4.4.1"; | ||
3557 | src = fetchurl { | ||
3558 | url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"; | ||
3559 | sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="; | ||
3560 | }; | ||
3561 | }; | ||
3562 | "util-deprecate-1.0.2" = { | ||
3563 | name = "util-deprecate"; | ||
3564 | packageName = "util-deprecate"; | ||
3565 | version = "1.0.2"; | ||
3566 | src = fetchurl { | ||
3567 | url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; | ||
3568 | sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; | ||
3569 | }; | ||
3570 | }; | ||
3571 | "uuid-3.4.0" = { | ||
3572 | name = "uuid"; | ||
3573 | packageName = "uuid"; | ||
3574 | version = "3.4.0"; | ||
3575 | src = fetchurl { | ||
3576 | url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; | ||
3577 | sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; | ||
3578 | }; | ||
3579 | }; | ||
3580 | "v8-compile-cache-2.3.0" = { | ||
3581 | name = "v8-compile-cache"; | ||
3582 | packageName = "v8-compile-cache"; | ||
3583 | version = "2.3.0"; | ||
3584 | src = fetchurl { | ||
3585 | url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"; | ||
3586 | sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="; | ||
3587 | }; | ||
3588 | }; | ||
3589 | "verror-1.10.0" = { | ||
3590 | name = "verror"; | ||
3591 | packageName = "verror"; | ||
3592 | version = "1.10.0"; | ||
3593 | src = fetchurl { | ||
3594 | url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; | ||
3595 | sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; | ||
3596 | }; | ||
3597 | }; | ||
3598 | "vue-2.6.10" = { | ||
3599 | name = "vue"; | ||
3600 | packageName = "vue"; | ||
3601 | version = "2.6.10"; | ||
3602 | src = fetchurl { | ||
3603 | url = "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz"; | ||
3604 | sha512 = "ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ=="; | ||
3605 | }; | ||
3606 | }; | ||
3607 | "vue-eslint-parser-7.6.0" = { | ||
3608 | name = "vue-eslint-parser"; | ||
3609 | packageName = "vue-eslint-parser"; | ||
3610 | version = "7.6.0"; | ||
3611 | src = fetchurl { | ||
3612 | url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz"; | ||
3613 | sha512 = "QXxqH8ZevBrtiZMZK0LpwaMfevQi9UL7lY6Kcp+ogWHC88AuwUPwwCIzkOUc1LR4XsYAt/F9yHXAB/QoD17QXA=="; | ||
3614 | }; | ||
3615 | }; | ||
3616 | "vue-template-compiler-2.6.10" = { | ||
3617 | name = "vue-template-compiler"; | ||
3618 | packageName = "vue-template-compiler"; | ||
3619 | version = "2.6.10"; | ||
3620 | src = fetchurl { | ||
3621 | url = "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz"; | ||
3622 | sha512 = "jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg=="; | ||
3623 | }; | ||
3624 | }; | ||
3625 | "watchpack-2.1.1" = { | ||
3626 | name = "watchpack"; | ||
3627 | packageName = "watchpack"; | ||
3628 | version = "2.1.1"; | ||
3629 | src = fetchurl { | ||
3630 | url = "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz"; | ||
3631 | sha512 = "Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw=="; | ||
3632 | }; | ||
3633 | }; | ||
3634 | "webpack-5.33.2" = { | ||
3635 | name = "webpack"; | ||
3636 | packageName = "webpack"; | ||
3637 | version = "5.33.2"; | ||
3638 | src = fetchurl { | ||
3639 | url = "https://registry.npmjs.org/webpack/-/webpack-5.33.2.tgz"; | ||
3640 | sha512 = "X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg=="; | ||
3641 | }; | ||
3642 | }; | ||
3643 | "webpack-cli-4.6.0" = { | ||
3644 | name = "webpack-cli"; | ||
3645 | packageName = "webpack-cli"; | ||
3646 | version = "4.6.0"; | ||
3647 | src = fetchurl { | ||
3648 | url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz"; | ||
3649 | sha512 = "9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA=="; | ||
3650 | }; | ||
3651 | }; | ||
3652 | "webpack-merge-5.7.3" = { | ||
3653 | name = "webpack-merge"; | ||
3654 | packageName = "webpack-merge"; | ||
3655 | version = "5.7.3"; | ||
3656 | src = fetchurl { | ||
3657 | url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz"; | ||
3658 | sha512 = "6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA=="; | ||
3659 | }; | ||
3660 | }; | ||
3661 | "webpack-sources-2.2.0" = { | ||
3662 | name = "webpack-sources"; | ||
3663 | packageName = "webpack-sources"; | ||
3664 | version = "2.2.0"; | ||
3665 | src = fetchurl { | ||
3666 | url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz"; | ||
3667 | sha512 = "bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w=="; | ||
3668 | }; | ||
3669 | }; | ||
3670 | "which-1.3.1" = { | ||
3671 | name = "which"; | ||
3672 | packageName = "which"; | ||
3673 | version = "1.3.1"; | ||
3674 | src = fetchurl { | ||
3675 | url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz"; | ||
3676 | sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="; | ||
3677 | }; | ||
3678 | }; | ||
3679 | "which-2.0.2" = { | ||
3680 | name = "which"; | ||
3681 | packageName = "which"; | ||
3682 | version = "2.0.2"; | ||
3683 | src = fetchurl { | ||
3684 | url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz"; | ||
3685 | sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="; | ||
3686 | }; | ||
3687 | }; | ||
3688 | "wide-align-1.1.3" = { | ||
3689 | name = "wide-align"; | ||
3690 | packageName = "wide-align"; | ||
3691 | version = "1.1.3"; | ||
3692 | src = fetchurl { | ||
3693 | url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; | ||
3694 | sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; | ||
3695 | }; | ||
3696 | }; | ||
3697 | "wildcard-2.0.0" = { | ||
3698 | name = "wildcard"; | ||
3699 | packageName = "wildcard"; | ||
3700 | version = "2.0.0"; | ||
3701 | src = fetchurl { | ||
3702 | url = "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz"; | ||
3703 | sha512 = "JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw=="; | ||
3704 | }; | ||
3705 | }; | ||
3706 | "word-wrap-1.2.3" = { | ||
3707 | name = "word-wrap"; | ||
3708 | packageName = "word-wrap"; | ||
3709 | version = "1.2.3"; | ||
3710 | src = fetchurl { | ||
3711 | url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"; | ||
3712 | sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; | ||
3713 | }; | ||
3714 | }; | ||
3715 | "wrappy-1.0.2" = { | ||
3716 | name = "wrappy"; | ||
3717 | packageName = "wrappy"; | ||
3718 | version = "1.0.2"; | ||
3719 | src = fetchurl { | ||
3720 | url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; | ||
3721 | sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; | ||
3722 | }; | ||
3723 | }; | ||
3724 | "write-1.0.3" = { | ||
3725 | name = "write"; | ||
3726 | packageName = "write"; | ||
3727 | version = "1.0.3"; | ||
3728 | src = fetchurl { | ||
3729 | url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz"; | ||
3730 | sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig=="; | ||
3731 | }; | ||
3732 | }; | ||
3733 | "xtend-4.0.2" = { | ||
3734 | name = "xtend"; | ||
3735 | packageName = "xtend"; | ||
3736 | version = "4.0.2"; | ||
3737 | src = fetchurl { | ||
3738 | url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; | ||
3739 | sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; | ||
3740 | }; | ||
3741 | }; | ||
3742 | "yallist-2.1.2" = { | ||
3743 | name = "yallist"; | ||
3744 | packageName = "yallist"; | ||
3745 | version = "2.1.2"; | ||
3746 | src = fetchurl { | ||
3747 | url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; | ||
3748 | sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; | ||
3749 | }; | ||
3750 | }; | ||
3751 | "yallist-3.1.1" = { | ||
3752 | name = "yallist"; | ||
3753 | packageName = "yallist"; | ||
3754 | version = "3.1.1"; | ||
3755 | src = fetchurl { | ||
3756 | url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; | ||
3757 | sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; | ||
3758 | }; | ||
3759 | }; | ||
3760 | "yallist-4.0.0" = { | ||
3761 | name = "yallist"; | ||
3762 | packageName = "yallist"; | ||
3763 | version = "4.0.0"; | ||
3764 | src = fetchurl { | ||
3765 | url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"; | ||
3766 | sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="; | ||
3767 | }; | ||
3768 | }; | ||
3769 | "yocto-queue-0.1.0" = { | ||
3770 | name = "yocto-queue"; | ||
3771 | packageName = "yocto-queue"; | ||
3772 | version = "0.1.0"; | ||
3773 | src = fetchurl { | ||
3774 | url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"; | ||
3775 | sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="; | ||
3776 | }; | ||
3777 | }; | ||
3778 | }; | ||
3779 | args = { | ||
3780 | name = "terraforming-mars"; | ||
3781 | packageName = "terraforming-mars"; | ||
3782 | version = "1.0.0"; | ||
3783 | inherit src; | ||
3784 | dependencies = [ | ||
3785 | sources."@babel/code-frame-7.12.13" | ||
3786 | sources."@babel/helper-validator-identifier-7.12.11" | ||
3787 | sources."@babel/highlight-7.13.10" | ||
3788 | sources."@discoveryjs/json-ext-0.5.2" | ||
3789 | sources."@nodelib/fs.scandir-2.1.4" | ||
3790 | sources."@nodelib/fs.stat-2.0.4" | ||
3791 | sources."@nodelib/fs.walk-1.2.6" | ||
3792 | sources."@types/eslint-7.2.10" | ||
3793 | sources."@types/eslint-scope-3.7.0" | ||
3794 | sources."@types/estree-0.0.46" | ||
3795 | sources."@types/json-schema-7.0.7" | ||
3796 | sources."@types/node-10.17.58" | ||
3797 | sources."@types/pg-7.14.11" | ||
3798 | sources."@types/sqlite3-3.1.7" | ||
3799 | sources."@typescript-eslint/eslint-plugin-4.22.0" | ||
3800 | sources."@typescript-eslint/experimental-utils-4.22.0" | ||
3801 | sources."@typescript-eslint/parser-4.22.0" | ||
3802 | sources."@typescript-eslint/scope-manager-4.22.0" | ||
3803 | sources."@typescript-eslint/types-4.22.0" | ||
3804 | sources."@typescript-eslint/typescript-estree-4.22.0" | ||
3805 | sources."@typescript-eslint/visitor-keys-4.22.0" | ||
3806 | sources."@webassemblyjs/ast-1.11.0" | ||
3807 | sources."@webassemblyjs/floating-point-hex-parser-1.11.0" | ||
3808 | sources."@webassemblyjs/helper-api-error-1.11.0" | ||
3809 | sources."@webassemblyjs/helper-buffer-1.11.0" | ||
3810 | sources."@webassemblyjs/helper-numbers-1.11.0" | ||
3811 | sources."@webassemblyjs/helper-wasm-bytecode-1.11.0" | ||
3812 | sources."@webassemblyjs/helper-wasm-section-1.11.0" | ||
3813 | sources."@webassemblyjs/ieee754-1.11.0" | ||
3814 | sources."@webassemblyjs/leb128-1.11.0" | ||
3815 | sources."@webassemblyjs/utf8-1.11.0" | ||
3816 | sources."@webassemblyjs/wasm-edit-1.11.0" | ||
3817 | sources."@webassemblyjs/wasm-gen-1.11.0" | ||
3818 | sources."@webassemblyjs/wasm-opt-1.11.0" | ||
3819 | sources."@webassemblyjs/wasm-parser-1.11.0" | ||
3820 | sources."@webassemblyjs/wast-printer-1.11.0" | ||
3821 | sources."@webpack-cli/configtest-1.0.2" | ||
3822 | sources."@webpack-cli/info-1.2.3" | ||
3823 | sources."@webpack-cli/serve-1.3.1" | ||
3824 | sources."@xtuc/ieee754-1.2.0" | ||
3825 | sources."@xtuc/long-4.2.2" | ||
3826 | sources."abbrev-1.1.1" | ||
3827 | sources."acorn-7.4.1" | ||
3828 | sources."acorn-jsx-5.3.1" | ||
3829 | sources."ajv-6.12.6" | ||
3830 | sources."ajv-keywords-3.5.2" | ||
3831 | sources."ansi-colors-4.1.1" | ||
3832 | (sources."ansi-escapes-4.3.2" // { | ||
3833 | dependencies = [ | ||
3834 | sources."type-fest-0.21.3" | ||
3835 | ]; | ||
3836 | }) | ||
3837 | sources."ansi-regex-4.1.0" | ||
3838 | sources."ansi-styles-3.2.1" | ||
3839 | sources."aproba-1.2.0" | ||
3840 | (sources."are-we-there-yet-1.1.5" // { | ||
3841 | dependencies = [ | ||
3842 | sources."readable-stream-2.3.7" | ||
3843 | sources."string_decoder-1.1.1" | ||
3844 | ]; | ||
3845 | }) | ||
3846 | sources."argparse-1.0.10" | ||
3847 | sources."array-union-2.1.0" | ||
3848 | sources."asn1-0.2.4" | ||
3849 | sources."assert-plus-1.0.0" | ||
3850 | sources."astral-regex-1.0.0" | ||
3851 | sources."asynckit-0.4.0" | ||
3852 | sources."aws-sign2-0.7.0" | ||
3853 | sources."aws4-1.11.0" | ||
3854 | sources."balanced-match-1.0.2" | ||
3855 | sources."bcrypt-pbkdf-1.0.2" | ||
3856 | sources."block-stream-0.0.9" | ||
3857 | sources."brace-expansion-1.1.11" | ||
3858 | sources."braces-3.0.2" | ||
3859 | sources."browserslist-4.16.4" | ||
3860 | sources."buffer-from-1.1.1" | ||
3861 | sources."buffer-writer-2.0.0" | ||
3862 | sources."callsites-3.1.0" | ||
3863 | sources."caniuse-lite-1.0.30001209" | ||
3864 | sources."caseless-0.12.0" | ||
3865 | sources."chalk-2.4.2" | ||
3866 | sources."chardet-0.7.0" | ||
3867 | sources."chownr-1.1.4" | ||
3868 | sources."chrome-trace-event-1.0.3" | ||
3869 | sources."cli-cursor-3.1.0" | ||
3870 | sources."cli-width-3.0.0" | ||
3871 | (sources."clone-deep-4.0.1" // { | ||
3872 | dependencies = [ | ||
3873 | sources."kind-of-6.0.3" | ||
3874 | ]; | ||
3875 | }) | ||
3876 | sources."code-point-at-1.1.0" | ||
3877 | sources."color-convert-1.9.3" | ||
3878 | sources."color-name-1.1.3" | ||
3879 | sources."colorette-1.2.2" | ||
3880 | sources."combined-stream-1.0.8" | ||
3881 | sources."commander-2.20.3" | ||
3882 | sources."compression-webpack-plugin-7.1.2" | ||
3883 | sources."concat-map-0.0.1" | ||
3884 | sources."config-chain-1.1.12" | ||
3885 | sources."console-control-strings-1.1.0" | ||
3886 | sources."console-stamp-3.0.0-rc4.2" | ||
3887 | sources."copy-anything-2.0.3" | ||
3888 | sources."core-util-is-1.0.2" | ||
3889 | (sources."cross-spawn-6.0.5" // { | ||
3890 | dependencies = [ | ||
3891 | sources."semver-5.7.1" | ||
3892 | ]; | ||
3893 | }) | ||
3894 | sources."dashdash-1.14.1" | ||
3895 | sources."dateformat-3.0.3" | ||
3896 | sources."de-indent-1.0.2" | ||
3897 | sources."debug-4.3.1" | ||
3898 | sources."deep-extend-0.6.0" | ||
3899 | sources."deep-is-0.1.3" | ||
3900 | sources."delayed-stream-1.0.0" | ||
3901 | sources."delegates-1.0.0" | ||
3902 | sources."detect-libc-1.0.3" | ||
3903 | sources."dialog-polyfill-0.5.6" | ||
3904 | sources."dir-glob-3.0.1" | ||
3905 | sources."doctrine-3.0.0" | ||
3906 | sources."dotenv-8.2.0" | ||
3907 | sources."ecc-jsbn-0.1.2" | ||
3908 | (sources."editorconfig-0.15.3" // { | ||
3909 | dependencies = [ | ||
3910 | sources."semver-5.7.1" | ||
3911 | ]; | ||
3912 | }) | ||
3913 | sources."electron-to-chromium-1.3.717" | ||
3914 | sources."emoji-regex-8.0.0" | ||
3915 | sources."enhanced-resolve-5.7.0" | ||
3916 | sources."enquirer-2.3.6" | ||
3917 | sources."envinfo-7.8.1" | ||
3918 | sources."errno-0.1.8" | ||
3919 | sources."es-module-lexer-0.4.1" | ||
3920 | sources."escalade-3.1.1" | ||
3921 | sources."escape-string-regexp-1.0.5" | ||
3922 | (sources."eslint-6.8.0" // { | ||
3923 | dependencies = [ | ||
3924 | sources."eslint-utils-1.4.3" | ||
3925 | sources."eslint-visitor-keys-1.3.0" | ||
3926 | sources."regexpp-2.0.1" | ||
3927 | sources."semver-6.3.0" | ||
3928 | ]; | ||
3929 | }) | ||
3930 | sources."eslint-config-google-0.14.0" | ||
3931 | (sources."eslint-plugin-vue-6.2.2" // { | ||
3932 | dependencies = [ | ||
3933 | sources."semver-5.7.1" | ||
3934 | ]; | ||
3935 | }) | ||
3936 | sources."eslint-scope-5.1.1" | ||
3937 | (sources."eslint-utils-2.1.0" // { | ||
3938 | dependencies = [ | ||
3939 | sources."eslint-visitor-keys-1.3.0" | ||
3940 | ]; | ||
3941 | }) | ||
3942 | sources."eslint-visitor-keys-2.0.0" | ||
3943 | (sources."espree-6.2.1" // { | ||
3944 | dependencies = [ | ||
3945 | sources."eslint-visitor-keys-1.3.0" | ||
3946 | ]; | ||
3947 | }) | ||
3948 | sources."esprima-4.0.1" | ||
3949 | (sources."esquery-1.4.0" // { | ||
3950 | dependencies = [ | ||
3951 | sources."estraverse-5.2.0" | ||
3952 | ]; | ||
3953 | }) | ||
3954 | (sources."esrecurse-4.3.0" // { | ||
3955 | dependencies = [ | ||
3956 | sources."estraverse-5.2.0" | ||
3957 | ]; | ||
3958 | }) | ||
3959 | sources."estraverse-4.3.0" | ||
3960 | sources."esutils-2.0.3" | ||
3961 | sources."events-3.3.0" | ||
3962 | (sources."execa-5.0.0" // { | ||
3963 | dependencies = [ | ||
3964 | sources."cross-spawn-7.0.3" | ||
3965 | sources."is-stream-2.0.0" | ||
3966 | sources."path-key-3.1.1" | ||
3967 | sources."shebang-command-2.0.0" | ||
3968 | sources."shebang-regex-3.0.0" | ||
3969 | sources."which-2.0.2" | ||
3970 | ]; | ||
3971 | }) | ||
3972 | sources."extend-3.0.2" | ||
3973 | sources."external-editor-3.1.0" | ||
3974 | sources."extsprintf-1.3.0" | ||
3975 | sources."fast-deep-equal-3.1.3" | ||
3976 | sources."fast-glob-3.2.5" | ||
3977 | sources."fast-json-stable-stringify-2.1.0" | ||
3978 | sources."fast-levenshtein-2.0.6" | ||
3979 | sources."fastest-levenshtein-1.0.12" | ||
3980 | sources."fastq-1.11.0" | ||
3981 | sources."figures-3.2.0" | ||
3982 | sources."file-entry-cache-5.0.1" | ||
3983 | sources."fill-range-7.0.1" | ||
3984 | sources."flat-cache-2.0.1" | ||
3985 | sources."flatted-2.0.2" | ||
3986 | sources."forever-agent-0.6.1" | ||
3987 | sources."form-data-2.3.3" | ||
3988 | sources."fs-minipass-1.2.7" | ||
3989 | sources."fs.realpath-1.0.0" | ||
3990 | sources."fstream-1.0.12" | ||
3991 | sources."function-bind-1.1.1" | ||
3992 | sources."functional-red-black-tree-1.0.1" | ||
3993 | (sources."gauge-2.7.4" // { | ||
3994 | dependencies = [ | ||
3995 | sources."ansi-regex-2.1.1" | ||
3996 | sources."is-fullwidth-code-point-1.0.0" | ||
3997 | sources."string-width-1.0.2" | ||
3998 | sources."strip-ansi-3.0.1" | ||
3999 | ]; | ||
4000 | }) | ||
4001 | sources."get-stream-6.0.1" | ||
4002 | sources."getpass-0.1.7" | ||
4003 | sources."glob-7.1.6" | ||
4004 | sources."glob-parent-5.1.2" | ||
4005 | sources."glob-to-regexp-0.4.1" | ||
4006 | sources."globals-12.4.0" | ||
4007 | (sources."globby-11.0.3" // { | ||
4008 | dependencies = [ | ||
4009 | sources."ignore-5.1.8" | ||
4010 | ]; | ||
4011 | }) | ||
4012 | sources."graceful-fs-4.2.6" | ||
4013 | sources."har-schema-2.0.0" | ||
4014 | sources."har-validator-5.1.5" | ||
4015 | sources."has-1.0.3" | ||
4016 | sources."has-flag-3.0.0" | ||
4017 | sources."has-unicode-2.0.1" | ||
4018 | sources."he-1.2.0" | ||
4019 | sources."http-signature-1.2.0" | ||
4020 | sources."human-signals-2.1.0" | ||
4021 | sources."iconv-lite-0.4.24" | ||
4022 | sources."ignore-4.0.6" | ||
4023 | sources."ignore-walk-3.0.3" | ||
4024 | sources."image-size-0.5.5" | ||
4025 | sources."import-fresh-3.3.0" | ||
4026 | (sources."import-local-3.0.2" // { | ||
4027 | dependencies = [ | ||
4028 | sources."find-up-4.1.0" | ||
4029 | sources."locate-path-5.0.0" | ||
4030 | sources."p-limit-2.3.0" | ||
4031 | sources."p-locate-4.1.0" | ||
4032 | sources."pkg-dir-4.2.0" | ||
4033 | ]; | ||
4034 | }) | ||
4035 | sources."imurmurhash-0.1.4" | ||
4036 | sources."inflight-1.0.6" | ||
4037 | sources."inherits-2.0.4" | ||
4038 | sources."ini-1.3.8" | ||
4039 | (sources."inquirer-7.3.3" // { | ||
4040 | dependencies = [ | ||
4041 | sources."ansi-regex-5.0.0" | ||
4042 | sources."ansi-styles-4.3.0" | ||
4043 | sources."chalk-4.1.0" | ||
4044 | sources."color-convert-2.0.1" | ||
4045 | sources."color-name-1.1.4" | ||
4046 | sources."has-flag-4.0.0" | ||
4047 | sources."strip-ansi-6.0.0" | ||
4048 | sources."supports-color-7.2.0" | ||
4049 | ]; | ||
4050 | }) | ||
4051 | sources."interpret-2.2.0" | ||
4052 | sources."is-core-module-2.2.0" | ||
4053 | sources."is-extglob-2.1.1" | ||
4054 | sources."is-fullwidth-code-point-3.0.0" | ||
4055 | sources."is-glob-4.0.1" | ||
4056 | sources."is-number-7.0.0" | ||
4057 | sources."is-plain-object-2.0.4" | ||
4058 | sources."is-typedarray-1.0.0" | ||
4059 | sources."is-what-3.14.1" | ||
4060 | sources."isarray-1.0.0" | ||
4061 | sources."isexe-2.0.0" | ||
4062 | sources."isobject-3.0.1" | ||
4063 | sources."isstream-0.1.2" | ||
4064 | (sources."jest-worker-26.6.2" // { | ||
4065 | dependencies = [ | ||
4066 | sources."has-flag-4.0.0" | ||
4067 | sources."supports-color-7.2.0" | ||
4068 | ]; | ||
4069 | }) | ||
4070 | (sources."js-beautify-1.13.13" // { | ||
4071 | dependencies = [ | ||
4072 | sources."mkdirp-1.0.4" | ||
4073 | ]; | ||
4074 | }) | ||
4075 | sources."js-tokens-4.0.0" | ||
4076 | sources."js-yaml-3.14.1" | ||
4077 | sources."jsbn-0.1.1" | ||
4078 | sources."json-parse-better-errors-1.0.2" | ||
4079 | sources."json-schema-0.2.3" | ||
4080 | sources."json-schema-traverse-0.4.1" | ||
4081 | sources."json-stable-stringify-without-jsonify-1.0.1" | ||
4082 | sources."json-stringify-safe-5.0.1" | ||
4083 | sources."jsprim-1.4.1" | ||
4084 | sources."less-3.13.1" | ||
4085 | sources."levn-0.3.0" | ||
4086 | sources."loader-runner-4.2.0" | ||
4087 | sources."lodash-4.17.21" | ||
4088 | sources."lru-cache-4.1.5" | ||
4089 | (sources."make-dir-2.1.0" // { | ||
4090 | dependencies = [ | ||
4091 | sources."semver-5.7.1" | ||
4092 | ]; | ||
4093 | }) | ||
4094 | sources."merge-stream-2.0.0" | ||
4095 | sources."merge2-1.4.1" | ||
4096 | sources."micromatch-4.0.4" | ||
4097 | sources."mime-1.6.0" | ||
4098 | sources."mime-db-1.47.0" | ||
4099 | sources."mime-types-2.1.30" | ||
4100 | sources."mimic-fn-2.1.0" | ||
4101 | sources."minimatch-3.0.4" | ||
4102 | sources."minimist-1.2.5" | ||
4103 | (sources."minipass-2.9.0" // { | ||
4104 | dependencies = [ | ||
4105 | sources."yallist-3.1.1" | ||
4106 | ]; | ||
4107 | }) | ||
4108 | sources."minizlib-1.3.3" | ||
4109 | sources."mkdirp-0.5.5" | ||
4110 | sources."mnemonist-0.38.3" | ||
4111 | sources."ms-2.1.2" | ||
4112 | sources."mute-stream-0.0.8" | ||
4113 | sources."native-request-1.0.8" | ||
4114 | sources."natural-compare-1.4.0" | ||
4115 | (sources."needle-2.6.0" // { | ||
4116 | dependencies = [ | ||
4117 | sources."debug-3.2.7" | ||
4118 | ]; | ||
4119 | }) | ||
4120 | sources."neo-async-2.6.2" | ||
4121 | sources."nice-try-1.0.5" | ||
4122 | sources."node-addon-api-3.1.0" | ||
4123 | (sources."node-gyp-3.8.0" // { | ||
4124 | dependencies = [ | ||
4125 | sources."nopt-3.0.6" | ||
4126 | sources."semver-5.3.0" | ||
4127 | ]; | ||
4128 | }) | ||
4129 | (sources."node-pre-gyp-0.11.0" // { | ||
4130 | dependencies = [ | ||
4131 | sources."nopt-4.0.3" | ||
4132 | sources."semver-5.7.1" | ||
4133 | sources."tar-4.4.13" | ||
4134 | sources."yallist-3.1.1" | ||
4135 | ]; | ||
4136 | }) | ||
4137 | sources."node-releases-1.1.71" | ||
4138 | sources."nopt-5.0.0" | ||
4139 | sources."npm-bundled-1.1.1" | ||
4140 | sources."npm-normalize-package-bin-1.0.1" | ||
4141 | sources."npm-packlist-1.4.8" | ||
4142 | (sources."npm-run-path-4.0.1" // { | ||
4143 | dependencies = [ | ||
4144 | sources."path-key-3.1.1" | ||
4145 | ]; | ||
4146 | }) | ||
4147 | sources."npmlog-4.1.2" | ||
4148 | sources."number-is-nan-1.0.1" | ||
4149 | sources."oauth-sign-0.9.0" | ||
4150 | sources."object-assign-4.1.1" | ||
4151 | sources."obliterator-1.6.1" | ||
4152 | sources."once-1.4.0" | ||
4153 | sources."onetime-5.1.2" | ||
4154 | sources."optionator-0.8.3" | ||
4155 | sources."os-homedir-1.0.2" | ||
4156 | sources."os-tmpdir-1.0.2" | ||
4157 | sources."osenv-0.1.5" | ||
4158 | sources."p-limit-3.1.0" | ||
4159 | sources."p-try-2.2.0" | ||
4160 | sources."packet-reader-1.0.0" | ||
4161 | sources."parent-module-1.0.1" | ||
4162 | sources."path-exists-4.0.0" | ||
4163 | sources."path-is-absolute-1.0.1" | ||
4164 | sources."path-key-2.0.1" | ||
4165 | sources."path-parse-1.0.6" | ||
4166 | sources."path-type-4.0.0" | ||
4167 | sources."performance-now-2.1.0" | ||
4168 | sources."pg-8.6.0" | ||
4169 | sources."pg-connection-string-2.5.0" | ||
4170 | sources."pg-int8-1.0.1" | ||
4171 | sources."pg-pool-3.3.0" | ||
4172 | sources."pg-protocol-1.5.0" | ||
4173 | sources."pg-types-2.2.0" | ||
4174 | sources."pgpass-1.0.4" | ||
4175 | sources."picomatch-2.2.3" | ||
4176 | sources."pify-4.0.1" | ||
4177 | sources."postgres-array-2.0.0" | ||
4178 | sources."postgres-bytea-1.0.0" | ||
4179 | sources."postgres-date-1.0.7" | ||
4180 | sources."postgres-interval-1.2.0" | ||
4181 | sources."prelude-ls-1.1.2" | ||
4182 | sources."process-nextick-args-2.0.1" | ||
4183 | sources."progress-2.0.3" | ||
4184 | sources."proto-list-1.2.4" | ||
4185 | sources."prr-1.0.1" | ||
4186 | sources."pseudomap-1.0.2" | ||
4187 | sources."psl-1.8.0" | ||
4188 | sources."punycode-2.1.1" | ||
4189 | sources."qs-6.5.2" | ||
4190 | sources."queue-microtask-1.2.3" | ||
4191 | sources."randombytes-2.1.0" | ||
4192 | (sources."rc-1.2.8" // { | ||
4193 | dependencies = [ | ||
4194 | sources."strip-json-comments-2.0.1" | ||
4195 | ]; | ||
4196 | }) | ||
4197 | sources."readable-stream-3.6.0" | ||
4198 | sources."rechoir-0.7.0" | ||
4199 | sources."regexpp-3.1.0" | ||
4200 | (sources."request-2.88.2" // { | ||
4201 | dependencies = [ | ||
4202 | sources."tough-cookie-2.5.0" | ||
4203 | ]; | ||
4204 | }) | ||
4205 | sources."resolve-1.20.0" | ||
4206 | (sources."resolve-cwd-3.0.0" // { | ||
4207 | dependencies = [ | ||
4208 | sources."resolve-from-5.0.0" | ||
4209 | ]; | ||
4210 | }) | ||
4211 | sources."resolve-from-4.0.0" | ||
4212 | sources."restore-cursor-3.1.0" | ||
4213 | sources."reusify-1.0.4" | ||
4214 | sources."rimraf-2.6.3" | ||
4215 | sources."run-async-2.4.1" | ||
4216 | sources."run-parallel-1.2.0" | ||
4217 | sources."rxjs-6.6.7" | ||
4218 | sources."safe-buffer-5.1.2" | ||
4219 | sources."safer-buffer-2.1.2" | ||
4220 | sources."sax-1.2.4" | ||
4221 | sources."schema-utils-3.0.0" | ||
4222 | (sources."semver-7.3.5" // { | ||
4223 | dependencies = [ | ||
4224 | sources."lru-cache-6.0.0" | ||
4225 | sources."yallist-4.0.0" | ||
4226 | ]; | ||
4227 | }) | ||
4228 | sources."serialize-javascript-5.0.1" | ||
4229 | sources."set-blocking-2.0.0" | ||
4230 | (sources."shallow-clone-3.0.1" // { | ||
4231 | dependencies = [ | ||
4232 | sources."kind-of-6.0.3" | ||
4233 | ]; | ||
4234 | }) | ||
4235 | sources."shebang-command-1.2.0" | ||
4236 | sources."shebang-regex-1.0.0" | ||
4237 | sources."sigmund-1.0.1" | ||
4238 | sources."signal-exit-3.0.3" | ||
4239 | sources."slash-3.0.0" | ||
4240 | (sources."slice-ansi-2.1.0" // { | ||
4241 | dependencies = [ | ||
4242 | sources."is-fullwidth-code-point-2.0.0" | ||
4243 | ]; | ||
4244 | }) | ||
4245 | sources."source-list-map-2.0.1" | ||
4246 | sources."source-map-0.6.1" | ||
4247 | sources."source-map-support-0.5.19" | ||
4248 | sources."spectre.css-0.5.9" | ||
4249 | sources."split2-3.2.2" | ||
4250 | sources."sprintf-js-1.0.3" | ||
4251 | sources."sqlite3-5.0.2" | ||
4252 | sources."sshpk-1.16.1" | ||
4253 | (sources."string-width-4.2.2" // { | ||
4254 | dependencies = [ | ||
4255 | sources."ansi-regex-5.0.0" | ||
4256 | sources."strip-ansi-6.0.0" | ||
4257 | ]; | ||
4258 | }) | ||
4259 | (sources."string_decoder-1.3.0" // { | ||
4260 | dependencies = [ | ||
4261 | sources."safe-buffer-5.2.1" | ||
4262 | ]; | ||
4263 | }) | ||
4264 | sources."strip-ansi-5.2.0" | ||
4265 | sources."strip-final-newline-2.0.0" | ||
4266 | sources."strip-json-comments-3.1.1" | ||
4267 | sources."supports-color-5.5.0" | ||
4268 | (sources."table-5.4.6" // { | ||
4269 | dependencies = [ | ||
4270 | sources."emoji-regex-7.0.3" | ||
4271 | sources."is-fullwidth-code-point-2.0.0" | ||
4272 | sources."string-width-3.1.0" | ||
4273 | ]; | ||
4274 | }) | ||
4275 | sources."tapable-2.2.0" | ||
4276 | sources."tar-2.2.2" | ||
4277 | (sources."terser-5.6.1" // { | ||
4278 | dependencies = [ | ||
4279 | sources."source-map-0.7.3" | ||
4280 | ]; | ||
4281 | }) | ||
4282 | sources."terser-webpack-plugin-5.1.1" | ||
4283 | sources."text-table-0.2.0" | ||
4284 | sources."through-2.3.8" | ||
4285 | sources."tmp-0.0.33" | ||
4286 | sources."to-regex-range-5.0.1" | ||
4287 | sources."tslib-1.14.1" | ||
4288 | sources."tsutils-3.21.0" | ||
4289 | sources."tunnel-agent-0.6.0" | ||
4290 | sources."tweetnacl-0.14.5" | ||
4291 | sources."type-check-0.3.2" | ||
4292 | sources."type-fest-0.8.1" | ||
4293 | sources."typescript-4.2.4" | ||
4294 | sources."uri-js-4.4.1" | ||
4295 | sources."util-deprecate-1.0.2" | ||
4296 | sources."uuid-3.4.0" | ||
4297 | sources."v8-compile-cache-2.3.0" | ||
4298 | sources."verror-1.10.0" | ||
4299 | sources."vue-2.6.10" | ||
4300 | (sources."vue-eslint-parser-7.6.0" // { | ||
4301 | dependencies = [ | ||
4302 | sources."eslint-visitor-keys-1.3.0" | ||
4303 | ]; | ||
4304 | }) | ||
4305 | sources."vue-template-compiler-2.6.10" | ||
4306 | sources."watchpack-2.1.1" | ||
4307 | (sources."webpack-5.33.2" // { | ||
4308 | dependencies = [ | ||
4309 | sources."acorn-8.1.1" | ||
4310 | ]; | ||
4311 | }) | ||
4312 | (sources."webpack-cli-4.6.0" // { | ||
4313 | dependencies = [ | ||
4314 | sources."commander-7.2.0" | ||
4315 | ]; | ||
4316 | }) | ||
4317 | sources."webpack-merge-5.7.3" | ||
4318 | sources."webpack-sources-2.2.0" | ||
4319 | sources."which-1.3.1" | ||
4320 | (sources."wide-align-1.1.3" // { | ||
4321 | dependencies = [ | ||
4322 | sources."ansi-regex-3.0.0" | ||
4323 | sources."is-fullwidth-code-point-2.0.0" | ||
4324 | sources."string-width-2.1.1" | ||
4325 | sources."strip-ansi-4.0.0" | ||
4326 | ]; | ||
4327 | }) | ||
4328 | sources."wildcard-2.0.0" | ||
4329 | sources."word-wrap-1.2.3" | ||
4330 | sources."wrappy-1.0.2" | ||
4331 | sources."write-1.0.3" | ||
4332 | sources."xtend-4.0.2" | ||
4333 | sources."yallist-2.1.2" | ||
4334 | sources."yocto-queue-0.1.0" | ||
4335 | ]; | ||
4336 | buildInputs = globalBuildInputs; | ||
4337 | meta = { | ||
4338 | description = "Terraforming Mars Game"; | ||
4339 | homepage = "https://github.com/bafolts/terraforming-mars#readme"; | ||
4340 | license = "ISC"; | ||
4341 | }; | ||
4342 | production = true; | ||
4343 | bypassCache = true; | ||
4344 | reconstructLock = false; | ||
4345 | }; | ||
4346 | in | ||
4347 | { | ||
4348 | args = args; | ||
4349 | sources = sources; | ||
4350 | tarball = nodeEnv.buildNodeSourceDist args; | ||
4351 | package = nodeEnv.buildNodePackage args; | ||
4352 | shell = nodeEnv.buildNodeShell args; | ||
4353 | } | ||
diff --git a/modules/private/websites/tools/games/terraforming-mars/terraforming-mars.nix b/modules/private/websites/tools/games/terraforming-mars/terraforming-mars.nix deleted file mode 100644 index 502a553..0000000 --- a/modules/private/websites/tools/games/terraforming-mars/terraforming-mars.nix +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | { fetchgit, runCommand, callPackage, mylibs, nodePackages, nodejs, git }: | ||
2 | let | ||
3 | source = fetchgit { | ||
4 | url = "https://github.com/bafolts/terraforming-mars"; | ||
5 | rev = "25b3f80e276cc0c1fc283a78b6ae94b13c545ab6"; | ||
6 | sha256 = "03xcwvxv2mlmswngklzqp3lf30hgkvdilqq7p1z4h8xmy50cy12k"; | ||
7 | leaveDotGit = true; | ||
8 | fetchSubmodules = true; | ||
9 | }; | ||
10 | patchedSource = runCommand "patch-source" {} '' | ||
11 | cp -r ${source} $out | ||
12 | chmod -R u+w $out | ||
13 | sed -i -e 's/"lockfileVersion": 2,/"lockfileVersion": 1,/' $out/package-lock.json | ||
14 | ''; | ||
15 | packages = callPackage ./node-packages.nix { | ||
16 | src = patchedSource; | ||
17 | nodeEnv = callPackage mylibs.nodeEnv {}; | ||
18 | globalBuildInputs = [ nodePackages.node-pre-gyp ]; | ||
19 | }; | ||
20 | terraforming-mars = runCommand "terraforming-mars" { | ||
21 | buildInputs = [ nodejs git ]; | ||
22 | } '' | ||
23 | cp -r ${source} ./source | ||
24 | chmod -R u+w source | ||
25 | cd source | ||
26 | ln -s ${packages.package}/lib/node_modules/terraforming-mars/node_modules . | ||
27 | npm run build | ||
28 | mkdir $out | ||
29 | cp -a build $out/ | ||
30 | cp -a assets $out/ | ||
31 | cp package.json $out/ | ||
32 | ln -s ${packages.package}/lib/node_modules/terraforming-mars/node_modules $out | ||
33 | ln -s /var/lib/terraforming-mars/db $out/db | ||
34 | ''; | ||
35 | in | ||
36 | terraforming-mars | ||
diff --git a/modules/private/websites/tools/git/default.nix b/modules/private/websites/tools/git/default.nix deleted file mode 100644 index 8f611ee..0000000 --- a/modules/private/websites/tools/git/default.nix +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | mantisbt = pkgs.callPackage ./mantisbt.nix { | ||
4 | inherit (pkgs.webapps) mantisbt_2 mantisbt_2-plugins; | ||
5 | env = config.myEnv.tools.mantisbt; | ||
6 | inherit config; | ||
7 | }; | ||
8 | gitweb = pkgs.callPackage ./gitweb.nix { | ||
9 | gitoliteDir = config.myServices.gitolite.gitoliteDir; | ||
10 | }; | ||
11 | |||
12 | cfg = config.myServices.websites.tools.git; | ||
13 | in { | ||
14 | options.myServices.websites.tools.git = { | ||
15 | enable = lib.mkEnableOption "enable git's website"; | ||
16 | }; | ||
17 | |||
18 | config = lib.mkIf cfg.enable { | ||
19 | secrets.keys = mantisbt.keys; | ||
20 | services.websites.env.tools.modules = | ||
21 | gitweb.apache.modules ++ | ||
22 | mantisbt.apache.modules; | ||
23 | |||
24 | system.activationScripts.mantisbt = mantisbt.activationScript; | ||
25 | services.websites.env.tools.vhostConfs.git = { | ||
26 | certName = "eldiron"; | ||
27 | addToCerts = true; | ||
28 | hosts = ["git.immae.eu" ]; | ||
29 | root = gitweb.apache.root; | ||
30 | extraConfig = [ | ||
31 | gitweb.apache.vhostConf | ||
32 | (mantisbt.apache.vhostConf config.services.phpfpm.pools.mantisbt.socket) | ||
33 | '' | ||
34 | RewriteEngine on | ||
35 | RewriteCond %{REQUEST_URI} ^/releases | ||
36 | RewriteRule /releases(.*) https://release.immae.eu$1 [P,L] | ||
37 | '' | ||
38 | ]; | ||
39 | }; | ||
40 | services.phpfpm.pools = { | ||
41 | mantisbt = { | ||
42 | user = config.services.httpd.Tools.user; | ||
43 | group = config.services.httpd.Tools.group; | ||
44 | settings = mantisbt.phpFpm.pool; | ||
45 | phpPackage = pkgs.php72; | ||
46 | }; | ||
47 | }; | ||
48 | }; | ||
49 | } | ||
diff --git a/modules/private/websites/tools/git/gitweb.nix b/modules/private/websites/tools/git/gitweb.nix deleted file mode 100644 index ff34da5..0000000 --- a/modules/private/websites/tools/git/gitweb.nix +++ /dev/null | |||
@@ -1,119 +0,0 @@ | |||
1 | { gitweb, writeText, stdenv, coreutils, writeScript, gitolite, git, cgit, gitoliteDir, mailcap, highlight }: | ||
2 | rec { | ||
3 | varDir = gitoliteDir; | ||
4 | config = writeText "gitweb.conf" '' | ||
5 | $git_temp = "/tmp"; | ||
6 | |||
7 | # The directories where your projects are. Must not end with a | ||
8 | # slash. | ||
9 | $projectroot = "${varDir}/repositories"; | ||
10 | |||
11 | $projects_list = "${varDir}/projects.list"; | ||
12 | $strict_export = "true"; | ||
13 | |||
14 | # Base URLs for links displayed in the web interface. | ||
15 | our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu); | ||
16 | |||
17 | $feature{'blame'}{'default'} = [1]; | ||
18 | $feature{'avatar'}{'default'} = ['gravatar']; | ||
19 | $feature{'highlight'}{'default'} = [1]; | ||
20 | |||
21 | @stylesheets = ("gitweb-theme/gitweb.css"); | ||
22 | $logo = "gitweb-theme/git-logo.png"; | ||
23 | $favicon = "gitweb-theme/git-favicon.png"; | ||
24 | $javascript = "gitweb-theme/gitweb.js"; | ||
25 | $logo_url = "https://git.immae.eu/"; | ||
26 | $projects_list_group_categories = "true"; | ||
27 | $projects_list_description_width = 60; | ||
28 | $project_list_default_category = "__Others__"; | ||
29 | $highlight_bin = "${highlight}/bin/highlight"; | ||
30 | ''; | ||
31 | aboutFilter = writeScript "about-filter.sh" '' | ||
32 | #!${stdenv.shell} | ||
33 | |||
34 | if [ -f "$CGIT_REPO_PATH/README.html" ]; then | ||
35 | cat "$CGIT_REPO_PATH/README.html" | ||
36 | else | ||
37 | ${cgit}/lib/cgit/filters/about-formatting.sh "$@" | ||
38 | fi | ||
39 | ''; | ||
40 | cgitConfig = writeText "cgitrc" '' | ||
41 | css=/cgit-css/cgit.css | ||
42 | logo=/cgit-css/cgit.png | ||
43 | favicon=/cgit-css/favicon.ico | ||
44 | |||
45 | root-title=Immae’s git | ||
46 | root-desc=To go back to the old interface: https://git.immae.eu/?old | ||
47 | readme=:README.md | ||
48 | readme=:readme.md | ||
49 | readme=:README | ||
50 | readme=:DOCUMENTATION.md | ||
51 | about-filter=${aboutFilter} | ||
52 | #${cgit}/lib/cgit/filters/about-formatting.sh | ||
53 | source-filter=${cgit}/lib/cgit/filters/syntax-highlighting.py | ||
54 | |||
55 | enable-blame=1 | ||
56 | enable-index-links=1 | ||
57 | enable-commit-graph=1 | ||
58 | enable-log-filecount=1 | ||
59 | enable-log-linecount=1 | ||
60 | |||
61 | enable-html-serving=1 | ||
62 | # Allow using gitweb.* keys | ||
63 | enable-git-config=1 | ||
64 | |||
65 | side-by-side-diffs=1 | ||
66 | snapshots=tar.gz tar.zst zip | ||
67 | mimetype-file=${mailcap}/etc/mime.types | ||
68 | |||
69 | section=__Others__ | ||
70 | clone-url=ssh://gitolite@git.immae.eu/$CGIT_REPO_URL https://git.immae.eu/$CGIT_REPO_URL | ||
71 | #section-from-path=1 | ||
72 | project-list=${varDir}/projects.list | ||
73 | scan-path=${varDir}/repositories | ||
74 | ''; | ||
75 | apache = rec { | ||
76 | user = "wwwrun"; | ||
77 | group = "wwwrun"; | ||
78 | modules = [ "cgid" ]; | ||
79 | root = gitweb; | ||
80 | vhostConf = '' | ||
81 | SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/ | ||
82 | ScriptAliasMatch \ | ||
83 | "(?x)^/(.*/(HEAD | \ | ||
84 | info/refs | \ | ||
85 | objects/(info/[^/]+ | \ | ||
86 | [0-9a-f]{2}/[0-9a-f]{38} | \ | ||
87 | pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ | ||
88 | git-(upload|receive)-pack))$" \ | ||
89 | ${git}/libexec/git-core/git-http-backend/$1 | ||
90 | |||
91 | <Directory "${git}/libexec/git-core"> | ||
92 | Require all granted | ||
93 | </Directory> | ||
94 | <Directory "${root}"> | ||
95 | DirectoryIndex gitweb.cgi | ||
96 | Require all granted | ||
97 | AllowOverride None | ||
98 | Options ExecCGI FollowSymLinks | ||
99 | <Files gitweb.cgi> | ||
100 | SetHandler cgi-script | ||
101 | SetEnv GITWEB_CONFIG "${config}" | ||
102 | </Files> | ||
103 | </Directory> | ||
104 | |||
105 | SetEnv CGIT_CONFIG ${cgitConfig} | ||
106 | ScriptAlias /cgit "${cgit}/cgit/cgit.cgi/" | ||
107 | Alias /cgit-css "${cgit}/cgit" | ||
108 | <Directory "${cgit}/cgit/"> | ||
109 | AllowOverride None | ||
110 | Options ExecCGI FollowSymlinks | ||
111 | Require all granted | ||
112 | </Directory> | ||
113 | |||
114 | RewriteEngine On | ||
115 | RewriteCond %{QUERY_STRING} ^$ | ||
116 | RewriteRule ^/?$ /cgit [L,R=302] | ||
117 | ''; | ||
118 | }; | ||
119 | } | ||
diff --git a/modules/private/websites/tools/git/mantisbt.nix b/modules/private/websites/tools/git/mantisbt.nix deleted file mode 100644 index 2ef76af..0000000 --- a/modules/private/websites/tools/git/mantisbt.nix +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | { env, mantisbt_2, mantisbt_2-plugins, config }: | ||
2 | rec { | ||
3 | activationScript = { | ||
4 | deps = [ "httpd" ]; | ||
5 | text = '' | ||
6 | install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/mantisbt | ||
7 | ''; | ||
8 | }; | ||
9 | keys."webapps/tools-mantisbt" = { | ||
10 | user = apache.user; | ||
11 | group = apache.group; | ||
12 | permissions = "0400"; | ||
13 | text = '' | ||
14 | <?php | ||
15 | $g_hostname = '${env.postgresql.socket}'; | ||
16 | $g_db_username = '${env.postgresql.user}'; | ||
17 | $g_db_password = '${env.postgresql.password}'; | ||
18 | $g_database_name = '${env.postgresql.database}'; | ||
19 | $g_db_type = 'pgsql'; | ||
20 | $g_crypto_master_salt = '${env.master_salt}'; | ||
21 | $g_allow_signup = OFF; | ||
22 | $g_allow_anonymous_login = ON; | ||
23 | $g_anonymous_account = 'anonymous'; | ||
24 | |||
25 | $g_phpMailer_method = PHPMAILER_METHOD_SENDMAIL; | ||
26 | $g_smtp_host = 'localhost'; | ||
27 | $g_smtp_username = '''; | ||
28 | $g_smtp_password = '''; | ||
29 | $g_webmaster_email = 'mantisbt@tools.immae.eu'; | ||
30 | $g_from_email = 'mantisbt@tools.immae.eu'; | ||
31 | $g_return_path_email = 'mantisbt@tools.immae.eu'; | ||
32 | $g_from_name = 'Mantis Bug Tracker at git.immae.eu'; | ||
33 | $g_email_receive_own = ON; | ||
34 | # --- LDAP --- | ||
35 | $g_login_method = LDAP; | ||
36 | $g_ldap_protocol_version = 3; | ||
37 | $g_ldap_server = 'ldaps://${env.ldap.host}:636'; | ||
38 | $g_ldap_root_dn = 'ou=users,${env.ldap.base}'; | ||
39 | $g_ldap_bind_dn = '${env.ldap.dn}'; | ||
40 | $g_ldap_bind_passwd = '${env.ldap.password}'; | ||
41 | $g_use_ldap_email = ON; | ||
42 | $g_use_ldap_realname = ON; | ||
43 | $g_ldap_uid_field = 'uid'; | ||
44 | $g_ldap_realname_field = 'cn'; | ||
45 | $g_ldap_organization = '${env.ldap.filter}'; | ||
46 | ''; | ||
47 | }; | ||
48 | webRoot = (mantisbt_2.override { mantis_config = config.secrets.fullPaths."webapps/tools-mantisbt"; }).withPlugins (p: [p.slack p.source-integration]); | ||
49 | apache = rec { | ||
50 | user = "wwwrun"; | ||
51 | group = "wwwrun"; | ||
52 | modules = [ "proxy_fcgi" ]; | ||
53 | root = webRoot; | ||
54 | vhostConf = socket: '' | ||
55 | Alias /mantisbt "${root}" | ||
56 | <Directory "${root}"> | ||
57 | DirectoryIndex index.php | ||
58 | <FilesMatch "\.php$"> | ||
59 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
60 | </FilesMatch> | ||
61 | |||
62 | AllowOverride All | ||
63 | SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 | ||
64 | Options FollowSymlinks | ||
65 | Require all granted | ||
66 | </Directory> | ||
67 | <Directory "${root}/admin"> | ||
68 | #Reenable during upgrade | ||
69 | Require all denied | ||
70 | </Directory> | ||
71 | ''; | ||
72 | }; | ||
73 | phpFpm = rec { | ||
74 | serviceDeps = [ "postgresql.service" "openldap.service" ]; | ||
75 | basedir = builtins.concatStringsSep ":" ( | ||
76 | [ webRoot config.secrets.fullPaths."webapps/tools-mantisbt" ] | ||
77 | ++ webRoot.plugins); | ||
78 | pool = { | ||
79 | "listen.owner" = apache.user; | ||
80 | "listen.group" = apache.group; | ||
81 | "pm" = "ondemand"; | ||
82 | "pm.max_children" = "60"; | ||
83 | "pm.process_idle_timeout" = "60"; | ||
84 | |||
85 | "php_admin_value[upload_max_filesize]" = "5000000"; | ||
86 | |||
87 | "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/mantisbt"; | ||
88 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/mantisbt"; | ||
89 | }; | ||
90 | }; | ||
91 | } | ||
diff --git a/modules/private/websites/tools/im/default.nix b/modules/private/websites/tools/im/default.nix deleted file mode 100644 index 94dc4f8..0000000 --- a/modules/private/websites/tools/im/default.nix +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.tools.im; | ||
4 | in | ||
5 | { | ||
6 | options.myServices.websites.tools.im = { | ||
7 | enable = lib.mkEnableOption "enable im website"; | ||
8 | }; | ||
9 | |||
10 | config = lib.mkIf cfg.enable { | ||
11 | services.websites.env.tools.vhostConfs.im = { | ||
12 | certName = "eldiron"; | ||
13 | addToCerts = true; | ||
14 | hosts = ["im.immae.fr"]; | ||
15 | root = ./www; | ||
16 | extraConfig = [ | ||
17 | '' | ||
18 | Alias /glowing-bear ${pkgs.glowing-bear} | ||
19 | Alias /converse ${./www}/converse.html | ||
20 | ProxyPreserveHost On | ||
21 | <Location "/bosh"> | ||
22 | ProxyPass http://localhost:5280/bosh | ||
23 | ProxyPassReverse http://localhost:5280/bosh | ||
24 | </Location> | ||
25 | <Location "/ws"> | ||
26 | ProxyPass ws://localhost:5280/ws | ||
27 | </Location> | ||
28 | ProxyPass /upload http://localhost:5280/upload | ||
29 | ProxyPassReverse /upload http://localhost:5280/upload | ||
30 | ProxyPass /admin http://localhost:5280/admin | ||
31 | ProxyPassReverse /admin http://localhost:5280/admin | ||
32 | ProxyPass /api http://localhost:5280/api | ||
33 | ProxyPassReverse /api http://localhost:5280/api | ||
34 | <Directory ${pkgs.glowing-bear}> | ||
35 | AllowOverride none | ||
36 | Require all granted | ||
37 | </Directory> | ||
38 | '' | ||
39 | ]; | ||
40 | }; | ||
41 | }; | ||
42 | } | ||
diff --git a/modules/private/websites/tools/im/www/converse.html b/modules/private/websites/tools/im/www/converse.html deleted file mode 100644 index 936dde4..0000000 --- a/modules/private/websites/tools/im/www/converse.html +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html lang="en"> | ||
3 | <head> | ||
4 | <title>Converse</title> | ||
5 | <meta charset="utf-8"> | ||
6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
7 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
8 | <meta name="description" content="Converse: An XMPP chat client which can be integrated into any website" /> | ||
9 | <meta name="keywords" content="xmpp chat webchat converse.js Converse" /> | ||
10 | |||
11 | <link type="text/css" rel="stylesheet" media="screen" href="https://assets.immae.eu/converse/5.0.4/converse.min.css" /> | ||
12 | <style type="text/css"> | ||
13 | #conversejs div.chat-msg__text pre { | ||
14 | background-color: #eee; | ||
15 | padding: 10px; | ||
16 | } | ||
17 | </style> | ||
18 | <script src="https://assets.immae.eu/converse/5.0.4/libsignal-protocol.min.js"></script> | ||
19 | <script src="https://assets.immae.eu/converse/5.0.4/converse.min.js"></script> | ||
20 | <script src="https://assets.immae.eu/marked/1.2.6/marked.min.js"></script> | ||
21 | <script src="https://assets.immae.eu/markdown-it/10.0.0/markdown-it.min.js"></script> | ||
22 | <script> | ||
23 | var md = window.markdownit({ | ||
24 | html: true, | ||
25 | }); | ||
26 | converse.plugins.add('markdown', { | ||
27 | //initialize () { | ||
28 | // const { _converse } = this; | ||
29 | // _converse.api.listen.on('afterMessageBodyTransformed', (view, text) => { | ||
30 | // let newtext = text.replace(/<br\/>/g, '\n').replace(/```/g, "\n```\n"); | ||
31 | // newtext = md.render(newtext).replace(/^<p>/, "").replace(/<\/p>\s*$/, ""); | ||
32 | // view.model.save({'message': newtext}, {'silent': true }); | ||
33 | // }); | ||
34 | //} | ||
35 | overrides: { | ||
36 | MessageView: { | ||
37 | transformBodyText: async function(text) { | ||
38 | let newtext = await this.__super__.transformBodyText.apply(this, arguments); | ||
39 | newtext = newtext.replace(/<br\/>/g, '\n').replace(/```/g, "\n```\n"); | ||
40 | return md.render(newtext).replace(/^<p>/, "").replace(/<\/p>\s*$/, ""); | ||
41 | } | ||
42 | } | ||
43 | } | ||
44 | }); | ||
45 | converse.initialize({ | ||
46 | //bosh_service_url: 'https://im.immae.fr/bosh', | ||
47 | websocket_url: 'wss://im.immae.fr/ws', | ||
48 | view_mode: 'fullscreen', | ||
49 | show_controlbox_by_default: true, | ||
50 | whitelisted_plugins: ['markdown'], | ||
51 | }); | ||
52 | </script> | ||
53 | </head> | ||
54 | <body> | ||
55 | </body> | ||
56 | </html> | ||
57 | |||
diff --git a/modules/private/websites/tools/im/www/index.html b/modules/private/websites/tools/im/www/index.html deleted file mode 100644 index 90c5458..0000000 --- a/modules/private/websites/tools/im/www/index.html +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | <!doctype html> | ||
2 | <html lang="fr"> | ||
3 | <head> | ||
4 | <meta charset="UTF-8"> | ||
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
6 | <title>Instant messaging configuration (Jabber/XMPP)</title> | ||
7 | <style type="text/css"> | ||
8 | body { | ||
9 | padding-top: 1em; | ||
10 | padding-left: 5px; | ||
11 | padding-right: 5px; | ||
12 | text-align: left; | ||
13 | margin: auto; | ||
14 | font: 20px Helvetica, sans-serif; | ||
15 | color: #333; | ||
16 | height: 100%; | ||
17 | min-height: 100%; | ||
18 | } | ||
19 | article { | ||
20 | text-align: justify; | ||
21 | display: block; | ||
22 | max-width: 850px; | ||
23 | margin: 0 auto; | ||
24 | padding-top: 30px; | ||
25 | } | ||
26 | span.code { | ||
27 | font-family: monospace; | ||
28 | } | ||
29 | </style> | ||
30 | </head> | ||
31 | <body> | ||
32 | <p> | ||
33 | Pre-configured clients: | ||
34 | <ul> | ||
35 | <li><a href="converse">Converse client</a></li> | ||
36 | <li><a href="glowing-bear">Weechat relay client</a></li> | ||
37 | </ul> | ||
38 | </p> | ||
39 | <p> | ||
40 | Technical details: | ||
41 | <ul> | ||
42 | <li>HTTP-bind/BOSH access (XEP-0124 / XEP-0206): <span class="code">https://im.immae.fr/bosh</span></li> | ||
43 | <li>WS access (RFC 7395): <span class="code">wss://im.immae.fr/ws</span></li> | ||
44 | </ul> | ||
45 | </p> | ||
46 | </body> | ||
47 | </html> | ||
diff --git a/modules/private/websites/tools/mail/default.nix b/modules/private/websites/tools/mail/default.nix deleted file mode 100644 index 390f7ad..0000000 --- a/modules/private/websites/tools/mail/default.nix +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | roundcubemail = pkgs.callPackage ./roundcubemail.nix { | ||
4 | inherit (pkgs.webapps) roundcubemail; | ||
5 | env = config.myEnv.tools.roundcubemail; | ||
6 | inherit config; | ||
7 | }; | ||
8 | rainloop = pkgs.callPackage ./rainloop.nix { | ||
9 | rainloop = pkgs.rainloop-community; | ||
10 | }; | ||
11 | cfg = config.myServices.websites.tools.email; | ||
12 | pcfg = config.services.phpfpm.pools; | ||
13 | in | ||
14 | { | ||
15 | options.myServices.websites.tools.email = { | ||
16 | enable = lib.mkEnableOption "enable email website"; | ||
17 | }; | ||
18 | |||
19 | imports = [ | ||
20 | ./mta-sts.nix | ||
21 | ]; | ||
22 | |||
23 | config = lib.mkIf cfg.enable { | ||
24 | secrets.keys = roundcubemail.keys; | ||
25 | |||
26 | services.websites.env.tools.modules = | ||
27 | [ "proxy_fcgi" ] | ||
28 | ++ rainloop.apache.modules | ||
29 | ++ roundcubemail.apache.modules; | ||
30 | |||
31 | services.websites.env.tools.vhostConfs.mail = { | ||
32 | certName = "mail"; | ||
33 | addToCerts = true; | ||
34 | hosts = ["mail.immae.eu"]; | ||
35 | root = ./www; | ||
36 | extraConfig = [ | ||
37 | (rainloop.apache.vhostConf pcfg.rainloop.socket) | ||
38 | (roundcubemail.apache.vhostConf pcfg.roundcubemail.socket) | ||
39 | '' | ||
40 | <Directory ${./www}> | ||
41 | Require all granted | ||
42 | Options -Indexes | ||
43 | </Directory> | ||
44 | '' | ||
45 | ]; | ||
46 | }; | ||
47 | systemd.services = { | ||
48 | phpfpm-rainloop = { | ||
49 | after = lib.mkAfter rainloop.phpFpm.serviceDeps; | ||
50 | wants = rainloop.phpFpm.serviceDeps; | ||
51 | }; | ||
52 | phpfpm-roundcubemail = { | ||
53 | after = lib.mkAfter roundcubemail.phpFpm.serviceDeps; | ||
54 | wants = roundcubemail.phpFpm.serviceDeps; | ||
55 | }; | ||
56 | }; | ||
57 | |||
58 | services.phpfpm.pools.roundcubemail = { | ||
59 | user = "wwwrun"; | ||
60 | group = "wwwrun"; | ||
61 | settings = roundcubemail.phpFpm.pool; | ||
62 | phpOptions = config.services.phpfpm.phpOptions + '' | ||
63 | date.timezone = 'CET' | ||
64 | ''; | ||
65 | phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.imagick ]); | ||
66 | }; | ||
67 | services.phpfpm.pools.rainloop = { | ||
68 | user = "wwwrun"; | ||
69 | group = "wwwrun"; | ||
70 | settings = rainloop.phpFpm.pool; | ||
71 | phpPackage = pkgs.php72; | ||
72 | }; | ||
73 | system.activationScripts = { | ||
74 | roundcubemail = roundcubemail.activationScript; | ||
75 | rainloop = rainloop.activationScript; | ||
76 | }; | ||
77 | }; | ||
78 | |||
79 | } | ||
diff --git a/modules/private/websites/tools/mail/mta-sts.nix b/modules/private/websites/tools/mail/mta-sts.nix deleted file mode 100644 index 77ba2d4..0000000 --- a/modules/private/websites/tools/mail/mta-sts.nix +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | domains = (lib.remove null (lib.flatten (map | ||
4 | (zone: map | ||
5 | (e: if e.receive | ||
6 | then { | ||
7 | domain = "${e.domain}${lib.optionalString (e.domain != "") "."}${zone.name}"; | ||
8 | mail = zone.name; | ||
9 | } | ||
10 | else null | ||
11 | ) | ||
12 | (zone.withEmail or []) | ||
13 | ) | ||
14 | config.myEnv.dns.masterZones | ||
15 | ))); | ||
16 | mxes = lib.mapAttrsToList | ||
17 | (n: v: v.mx.subdomain) | ||
18 | (lib.attrsets.filterAttrs (n: v: v.mx.enable) config.myEnv.servers); | ||
19 | # FIXME: increase the id number in modules/private/dns.nix when this | ||
20 | # file change (date -u +'%Y%m%d%H%M%S'Z) | ||
21 | file = domain: pkgs.writeText "mta-sts-${domain.domain}.txt" ( | ||
22 | builtins.concatStringsSep "\r\n" ([ "version: STSv1" "mode: testing" ] | ||
23 | ++ (map (v: "mx: ${v}.${domain.mail}") mxes) | ||
24 | ++ [ "max_age: 604800" ] | ||
25 | )); | ||
26 | root = pkgs.runCommand "mta-sts_root" {} '' | ||
27 | mkdir -p $out | ||
28 | ${builtins.concatStringsSep "\n" (map (d: | ||
29 | "cp ${file d} $out/${d.domain}.txt" | ||
30 | ) domains)} | ||
31 | ''; | ||
32 | cfg = config.myServices.websites.tools.email; | ||
33 | in | ||
34 | { | ||
35 | config = lib.mkIf cfg.enable { | ||
36 | services.websites.env.tools.vhostConfs.mta_sts = { | ||
37 | certName = "mail"; | ||
38 | addToCerts = true; | ||
39 | hosts = ["mta-sts.mail.immae.eu"] ++ map (v: "mta-sts.${v.domain}") domains; | ||
40 | root = root; | ||
41 | extraConfig = [ | ||
42 | '' | ||
43 | RewriteEngine on | ||
44 | RewriteCond %{HTTP_HOST} ^mta-sts.(.*)$ | ||
45 | RewriteRule ^/.well-known/mta-sts.txt$ %{DOCUMENT_ROOT}/%1.txt [L] | ||
46 | <Directory ${root}> | ||
47 | Require all granted | ||
48 | Options -Indexes | ||
49 | </Directory> | ||
50 | '' | ||
51 | ]; | ||
52 | }; | ||
53 | }; | ||
54 | } | ||
diff --git a/modules/private/websites/tools/mail/rainloop.nix b/modules/private/websites/tools/mail/rainloop.nix deleted file mode 100644 index 20e43a1..0000000 --- a/modules/private/websites/tools/mail/rainloop.nix +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | { lib, rainloop, writeText, stdenv, fetchurl }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/rainloop"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} | ||
8 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
9 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/data | ||
10 | ''; | ||
11 | }; | ||
12 | webRoot = rainloop.override { dataPath = "${varDir}/data"; }; | ||
13 | apache = rec { | ||
14 | user = "wwwrun"; | ||
15 | group = "wwwrun"; | ||
16 | modules = [ "proxy_fcgi" ]; | ||
17 | root = webRoot; | ||
18 | vhostConf = socket: '' | ||
19 | Alias /rainloop "${root}" | ||
20 | <Directory "${root}"> | ||
21 | DirectoryIndex index.php | ||
22 | AllowOverride All | ||
23 | Options -FollowSymlinks | ||
24 | Require all granted | ||
25 | |||
26 | <FilesMatch "\.php$"> | ||
27 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
28 | </FilesMatch> | ||
29 | </Directory> | ||
30 | |||
31 | <DirectoryMatch "${root}/data"> | ||
32 | Require all denied | ||
33 | </DirectoryMatch> | ||
34 | ''; | ||
35 | }; | ||
36 | phpFpm = rec { | ||
37 | serviceDeps = [ "postgresql.service" ]; | ||
38 | basedir = builtins.concatStringsSep ":" [ webRoot varDir ]; | ||
39 | pool = { | ||
40 | "listen.owner" = apache.user; | ||
41 | "listen.group" = apache.group; | ||
42 | "pm" = "ondemand"; | ||
43 | "pm.max_children" = "60"; | ||
44 | "pm.process_idle_timeout" = "60"; | ||
45 | |||
46 | # Needed to avoid clashes in browser cookies (same domain) | ||
47 | "php_value[session.name]" = "RainloopPHPSESSID"; | ||
48 | "php_admin_value[upload_max_filesize]" = "200M"; | ||
49 | "php_admin_value[post_max_size]" = "200M"; | ||
50 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
51 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
52 | }; | ||
53 | }; | ||
54 | } | ||
diff --git a/modules/private/websites/tools/mail/roundcubemail.nix b/modules/private/websites/tools/mail/roundcubemail.nix deleted file mode 100644 index 2661b55..0000000 --- a/modules/private/websites/tools/mail/roundcubemail.nix +++ /dev/null | |||
@@ -1,118 +0,0 @@ | |||
1 | { env, roundcubemail, apacheHttpd, config }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/roundcubemail"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ | ||
8 | ${varDir}/cache ${varDir}/logs | ||
9 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
10 | ''; | ||
11 | }; | ||
12 | keys."webapps/tools-roundcube" = { | ||
13 | user = apache.user; | ||
14 | group = apache.group; | ||
15 | permissions = "0400"; | ||
16 | text = | ||
17 | let | ||
18 | psql_url = with env.postgresql; "pgsql://${user}:${password}@unix(${socket}:${port})/${database}"; | ||
19 | in '' | ||
20 | <?php | ||
21 | $config['db_dsnw'] = '${psql_url}'; | ||
22 | $config['default_host'] = 'ssl://imap.immae.eu'; | ||
23 | $config['username_domain'] = array( | ||
24 | "imap.immae.eu" => "mail.immae.eu" | ||
25 | ); | ||
26 | $config['imap_conn_options'] = array("ssl" => array("verify_peer" => false)); | ||
27 | $config['smtp_server'] = 'tls://smtp.immae.eu'; | ||
28 | $config['smtp_port'] = '587'; | ||
29 | $config['managesieve_host'] = 'imap.immae.eu'; | ||
30 | $config['managesieve_port'] = '4190'; | ||
31 | $config['managesieve_usetls'] = true; | ||
32 | $config['managesieve_conn_options'] = array("ssl" => array("verify_peer" => false)); | ||
33 | |||
34 | $config['imap_cache'] = 'db'; | ||
35 | $config['messages_cache'] = 'db'; | ||
36 | |||
37 | $config['support_url'] = '''; | ||
38 | |||
39 | $config['des_key'] = '${env.secret}'; | ||
40 | |||
41 | $config['skin'] = 'elastic'; | ||
42 | $config['plugins'] = array( | ||
43 | 'attachment_reminder', | ||
44 | 'emoticons', | ||
45 | 'filesystem_attachments', | ||
46 | 'hide_blockquote', | ||
47 | 'identicon', | ||
48 | 'identity_select', | ||
49 | 'jqueryui', | ||
50 | 'markasjunk', | ||
51 | 'managesieve', | ||
52 | 'newmail_notifier', | ||
53 | 'vcard_attachments', | ||
54 | 'zipdownload', | ||
55 | |||
56 | 'automatic_addressbook', | ||
57 | 'message_highlight', | ||
58 | 'carddav', | ||
59 | // Ne marche pas ?: 'ident_switch', | ||
60 | // Ne marche pas ?: 'thunderbird_labels', | ||
61 | ); | ||
62 | |||
63 | $config['language'] = 'fr_FR'; | ||
64 | |||
65 | $config['drafts_mbox'] = 'Drafts'; | ||
66 | $config['junk_mbox'] = 'Junk'; | ||
67 | $config['sent_mbox'] = 'Sent'; | ||
68 | $config['trash_mbox'] = 'Trash'; | ||
69 | $config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); | ||
70 | $config['draft_autosave'] = 60; | ||
71 | $config['enable_installer'] = false; | ||
72 | $config['log_driver'] = 'file'; | ||
73 | $config['temp_dir'] = '${varDir}/cache'; | ||
74 | $config['mime_types'] = '${apacheHttpd}/conf/mime.types'; | ||
75 | ''; | ||
76 | }; | ||
77 | webRoot = (roundcubemail.override { roundcube_config = config.secrets.fullPaths."webapps/tools-roundcube"; }).withPlugins (p: [ p.automatic_addressbook p.carddav p.contextmenu p.contextmenu_folder p.html5_notifier p.ident_switch p.message_highlight p.thunderbird_labels ]); | ||
78 | apache = rec { | ||
79 | user = "wwwrun"; | ||
80 | group = "wwwrun"; | ||
81 | modules = [ "proxy_fcgi" ]; | ||
82 | root = webRoot; | ||
83 | vhostConf = socket: '' | ||
84 | Alias /roundcube "${root}" | ||
85 | <Directory "${root}"> | ||
86 | DirectoryIndex index.php | ||
87 | AllowOverride All | ||
88 | Options FollowSymlinks | ||
89 | Require all granted | ||
90 | |||
91 | <FilesMatch "\.php$"> | ||
92 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
93 | </FilesMatch> | ||
94 | </Directory> | ||
95 | ''; | ||
96 | }; | ||
97 | phpFpm = rec { | ||
98 | serviceDeps = [ "postgresql.service" ]; | ||
99 | basedir = builtins.concatStringsSep ":" ( | ||
100 | [ webRoot config.secrets.fullPaths."webapps/tools-roundcube" varDir ] | ||
101 | ++ webRoot.plugins | ||
102 | ++ webRoot.skins); | ||
103 | pool = { | ||
104 | "listen.owner" = apache.user; | ||
105 | "listen.group" = apache.group; | ||
106 | "pm" = "ondemand"; | ||
107 | "pm.max_children" = "60"; | ||
108 | "pm.process_idle_timeout" = "60"; | ||
109 | |||
110 | # Needed to avoid clashes in browser cookies (same domain) | ||
111 | "php_value[session.name]" = "RoundcubemailPHPSESSID"; | ||
112 | "php_admin_value[upload_max_filesize]" = "200M"; | ||
113 | "php_admin_value[post_max_size]" = "200M"; | ||
114 | "php_admin_value[open_basedir]" = "${basedir}:${apacheHttpd}/conf/mime.types:/tmp"; | ||
115 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
116 | }; | ||
117 | }; | ||
118 | } | ||
diff --git a/modules/private/websites/tools/mail/www/index.html b/modules/private/websites/tools/mail/www/index.html deleted file mode 100644 index 88b0ebd..0000000 --- a/modules/private/websites/tools/mail/www/index.html +++ /dev/null | |||
@@ -1,74 +0,0 @@ | |||
1 | <!doctype html> | ||
2 | <html lang="fr"> | ||
3 | <head> | ||
4 | <meta charset="UTF-8"> | ||
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
6 | <title>E-mail configuration</title> | ||
7 | <style type="text/css"> | ||
8 | body { | ||
9 | padding-top: 1em; | ||
10 | padding-left: 5px; | ||
11 | padding-right: 5px; | ||
12 | text-align: left; | ||
13 | margin: auto; | ||
14 | font: 20px Helvetica, sans-serif; | ||
15 | color: #333; | ||
16 | height: 100%; | ||
17 | min-height: 100%; | ||
18 | } | ||
19 | article { | ||
20 | text-align: justify; | ||
21 | display: block; | ||
22 | max-width: 850px; | ||
23 | margin: 0 auto; | ||
24 | padding-top: 30px; | ||
25 | } | ||
26 | span.code { | ||
27 | font-family: monospace; | ||
28 | } | ||
29 | </style> | ||
30 | </head> | ||
31 | <body> | ||
32 | <p> | ||
33 | Email configuration. For automatic configuration in your smart e-mail | ||
34 | client, use <span class="code">login@mail.immae.eu</span>. If it | ||
35 | doesn’t work, the details are there: | ||
36 | <ul> | ||
37 | <li>IMAP: <span class="code">imap.immae.eu</span> | ||
38 | <ul> | ||
39 | <li>No unencrypted access</li> | ||
40 | <li>STARTTLS: 143</li> | ||
41 | <li>SSL: 993</li> | ||
42 | </ul> | ||
43 | </li> | ||
44 | <li>POP3: <span class="code">pop3.immae.eu</span> | ||
45 | <ul> | ||
46 | <li>No unencrypted access</li> | ||
47 | <li>STARTTLS: 110</li> | ||
48 | <li>SSL: 995</li> | ||
49 | </ul> | ||
50 | </li> | ||
51 | <li>SMTP: <span class="code">smtp.immae.eu</span> | ||
52 | <ul> | ||
53 | <li>No unencrypted access</li> | ||
54 | <li>STARTTLS: 587</li> | ||
55 | <li>SSL: 465</li> | ||
56 | </ul> | ||
57 | </li> | ||
58 | <li>Sieve: <span class="code">imap.immae.eu</span> | ||
59 | <ul> | ||
60 | <li>No unencrypted access</li> | ||
61 | <li>STARTTLS: 4190</li> | ||
62 | </ul> | ||
63 | </li> | ||
64 | </ul> | ||
65 | </p> | ||
66 | <p>Webmails: | ||
67 | <ul> | ||
68 | <li><a href="/roundcube">Roundcube</a></li> | ||
69 | <li><a href="/rainloop">Rainloop</a> (experimental)</li> | ||
70 | </ul> | ||
71 | </p> | ||
72 | </body> | ||
73 | </html> | ||
74 | |||
diff --git a/modules/private/websites/tools/mastodon/default.nix b/modules/private/websites/tools/mastodon/default.nix deleted file mode 100644 index 173a4b8..0000000 --- a/modules/private/websites/tools/mastodon/default.nix +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | env = config.myEnv.tools.mastodon; | ||
4 | root = "${mcfg.workdir}/public/"; | ||
5 | cfg = config.myServices.websites.tools.mastodon; | ||
6 | mcfg = config.services.mastodon; | ||
7 | in { | ||
8 | options.myServices.websites.tools.mastodon = { | ||
9 | enable = lib.mkEnableOption "enable mastodon's website"; | ||
10 | }; | ||
11 | |||
12 | config = lib.mkIf cfg.enable { | ||
13 | secrets.keys."webapps/tools-mastodon" = { | ||
14 | user = "mastodon"; | ||
15 | group = "mastodon"; | ||
16 | permissions = "0400"; | ||
17 | text = '' | ||
18 | REDIS_HOST=${env.redis.host} | ||
19 | REDIS_PORT=${env.redis.port} | ||
20 | REDIS_DB=${env.redis.db} | ||
21 | DB_HOST=${env.postgresql.socket} | ||
22 | DB_USER=${env.postgresql.user} | ||
23 | DB_NAME=${env.postgresql.database} | ||
24 | DB_PASS=${env.postgresql.password} | ||
25 | DB_PORT=${env.postgresql.port} | ||
26 | |||
27 | LOCAL_DOMAIN=mastodon.immae.eu | ||
28 | LOCAL_HTTPS=true | ||
29 | ALTERNATE_DOMAINS=immae.eu | ||
30 | |||
31 | PAPERCLIP_SECRET=${env.paperclip_secret} | ||
32 | SECRET_KEY_BASE=${env.secret_key_base} | ||
33 | OTP_SECRET=${env.otp_secret} | ||
34 | |||
35 | VAPID_PRIVATE_KEY=${env.vapid.private} | ||
36 | VAPID_PUBLIC_KEY=${env.vapid.public} | ||
37 | |||
38 | SMTP_DELIVERY_METHOD=sendmail | ||
39 | SMTP_FROM_ADDRESS=mastodon@tools.immae.eu | ||
40 | SENDMAIL_LOCATION="/run/wrappers/bin/sendmail" | ||
41 | PAPERCLIP_ROOT_PATH=${mcfg.dataDir} | ||
42 | |||
43 | STREAMING_CLUSTER_NUM=1 | ||
44 | |||
45 | RAILS_LOG_LEVEL=warn | ||
46 | |||
47 | # LDAP authentication (optional) | ||
48 | LDAP_ENABLED=true | ||
49 | LDAP_HOST=${env.ldap.host} | ||
50 | LDAP_PORT=636 | ||
51 | LDAP_METHOD=simple_tls | ||
52 | LDAP_BASE="${env.ldap.base}" | ||
53 | LDAP_BIND_DN="${env.ldap.dn}" | ||
54 | LDAP_PASSWORD="${env.ldap.password}" | ||
55 | LDAP_UID="uid" | ||
56 | LDAP_SEARCH_FILTER="${env.ldap.filter}" | ||
57 | ''; | ||
58 | }; | ||
59 | services.mastodon = { | ||
60 | enable = true; | ||
61 | configFile = config.secrets.fullPaths."webapps/tools-mastodon"; | ||
62 | socketsPrefix = "live_immae"; | ||
63 | dataDir = "/var/lib/mastodon_immae"; | ||
64 | }; | ||
65 | services.filesWatcher.mastodon-streaming = { | ||
66 | restart = true; | ||
67 | paths = [ mcfg.configFile ]; | ||
68 | }; | ||
69 | services.filesWatcher.mastodon-web = { | ||
70 | restart = true; | ||
71 | paths = [ mcfg.configFile ]; | ||
72 | }; | ||
73 | services.filesWatcher.mastodon-sidekiq = { | ||
74 | restart = true; | ||
75 | paths = [ mcfg.configFile ]; | ||
76 | }; | ||
77 | |||
78 | |||
79 | services.websites.env.tools.modules = [ | ||
80 | "headers" "proxy" "proxy_wstunnel" "proxy_http" | ||
81 | ]; | ||
82 | services.websites.env.tools.vhostConfs.mastodon = { | ||
83 | certName = "eldiron"; | ||
84 | addToCerts = true; | ||
85 | hosts = ["mastodon.immae.eu" ]; | ||
86 | root = root; | ||
87 | extraConfig = [ '' | ||
88 | Header always set Referrer-Policy "strict-origin-when-cross-origin" | ||
89 | Header always set Strict-Transport-Security "max-age=31536000" | ||
90 | |||
91 | <LocationMatch "^/(assets|avatars|emoji|headers|packs|sounds|system)> | ||
92 | Header always set Cache-Control "public, max-age=31536000, immutable" | ||
93 | Require all granted | ||
94 | </LocationMatch> | ||
95 | |||
96 | ProxyPreserveHost On | ||
97 | RequestHeader set X-Forwarded-Proto "https" | ||
98 | |||
99 | RewriteEngine On | ||
100 | |||
101 | ProxyPass /500.html ! | ||
102 | ProxyPass /sw.js ! | ||
103 | ProxyPass /embed.js ! | ||
104 | ProxyPass /robots.txt ! | ||
105 | ProxyPass /manifest.json ! | ||
106 | ProxyPass /browserconfig.xml ! | ||
107 | ProxyPass /mask-icon.svg ! | ||
108 | ProxyPassMatch ^(/.*\.(png|ico|gif)$) ! | ||
109 | ProxyPassMatch ^/(assets|avatars|emoji|headers|packs|sounds|system|.well-known/acme-challenge) ! | ||
110 | |||
111 | RewriteRule ^/api/v1/streaming/(.+)$ unix://${mcfg.sockets.node}|http://mastodon.immae.eu/api/v1/streaming/$1 [P,NE,QSA,L] | ||
112 | RewriteRule ^/api/v1/streaming/$ unix://${mcfg.sockets.node}|ws://mastodon.immae.eu/ [P,NE,QSA,L] | ||
113 | ProxyPass / unix://${mcfg.sockets.rails}|http://mastodon.immae.eu/ | ||
114 | ProxyPassReverse / unix://${mcfg.sockets.rails}|http://mastodon.immae.eu/ | ||
115 | |||
116 | Alias /system ${mcfg.dataDir} | ||
117 | |||
118 | <Directory ${mcfg.dataDir}> | ||
119 | Require all granted | ||
120 | Options -MultiViews | ||
121 | </Directory> | ||
122 | |||
123 | <Directory ${root}> | ||
124 | Require all granted | ||
125 | Options -MultiViews +FollowSymlinks | ||
126 | </Directory> | ||
127 | |||
128 | ErrorDocument 500 /500.html | ||
129 | ErrorDocument 501 /500.html | ||
130 | ErrorDocument 502 /500.html | ||
131 | ErrorDocument 503 /500.html | ||
132 | ErrorDocument 504 /500.html | ||
133 | '' ]; | ||
134 | }; | ||
135 | }; | ||
136 | } | ||
diff --git a/modules/private/websites/tools/mgoblin/default.nix b/modules/private/websites/tools/mgoblin/default.nix deleted file mode 100644 index 1e5f5a0..0000000 --- a/modules/private/websites/tools/mgoblin/default.nix +++ /dev/null | |||
@@ -1,134 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | env = config.myEnv.tools.mediagoblin; | ||
4 | cfg = config.myServices.websites.tools.mediagoblin; | ||
5 | mcfg = config.services.mediagoblin; | ||
6 | in { | ||
7 | options.myServices.websites.tools.mediagoblin = { | ||
8 | enable = lib.mkEnableOption "enable mediagoblin's website"; | ||
9 | }; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | secrets.keys."webapps/tools-mediagoblin" = { | ||
13 | user = "mediagoblin"; | ||
14 | group = "mediagoblin"; | ||
15 | permissions = "0400"; | ||
16 | text = | ||
17 | let | ||
18 | psql_url = with env.postgresql; "postgresql://${user}:${password}@:${port}/${database}?host=${socket}"; | ||
19 | redis_url = with env.redis; "redis+socket://${socket}?virtual_host=${db}"; | ||
20 | in | ||
21 | '' | ||
22 | [DEFAULT] | ||
23 | data_basedir = "${mcfg.dataDir}" | ||
24 | |||
25 | [mediagoblin] | ||
26 | direct_remote_path = /mgoblin_static/ | ||
27 | email_sender_address = "mediagoblin@tools.immae.eu" | ||
28 | |||
29 | #sql_engine = sqlite:///%(data_basedir)s/mediagoblin.db | ||
30 | sql_engine = ${psql_url} | ||
31 | |||
32 | email_debug_mode = false | ||
33 | allow_registration = false | ||
34 | allow_reporting = true | ||
35 | |||
36 | theme = airymodified | ||
37 | |||
38 | user_privilege_scheme = "uploader,commenter,reporter" | ||
39 | |||
40 | # We need to redefine them here since we override data_basedir | ||
41 | # cf /usr/share/webapps/mediagoblin/mediagoblin/config_spec.ini | ||
42 | workbench_path = %(data_basedir)s/media/workbench | ||
43 | crypto_path = %(data_basedir)s/crypto | ||
44 | theme_install_dir = %(data_basedir)s/themes/ | ||
45 | theme_linked_assets_dir = %(data_basedir)s/theme_static/ | ||
46 | plugin_linked_assets_dir = %(data_basedir)s/plugin_static/ | ||
47 | |||
48 | [storage:queuestore] | ||
49 | base_dir = %(data_basedir)s/media/queue | ||
50 | |||
51 | [storage:publicstore] | ||
52 | base_dir = %(data_basedir)s/media/public | ||
53 | base_url = /mgoblin_media/ | ||
54 | |||
55 | [celery] | ||
56 | CELERY_RESULT_DBURI = ${redis_url} | ||
57 | BROKER_URL = ${redis_url} | ||
58 | CELERYD_CONCURRENCY = 1 | ||
59 | |||
60 | [plugins] | ||
61 | [[mediagoblin.plugins.geolocation]] | ||
62 | [[mediagoblin.plugins.ldap]] | ||
63 | [[[immae.eu]]] | ||
64 | LDAP_SERVER_URI = 'ldaps://${env.ldap.host}:636' | ||
65 | LDAP_SEARCH_BASE = '${env.ldap.base}' | ||
66 | LDAP_BIND_DN = '${env.ldap.dn}' | ||
67 | LDAP_BIND_PW = '${env.ldap.password}' | ||
68 | LDAP_SEARCH_FILTER = '${env.ldap.filter}' | ||
69 | EMAIL_SEARCH_FIELD = 'mail' | ||
70 | [[mediagoblin.plugins.basicsearch]] | ||
71 | [[mediagoblin.plugins.piwigo]] | ||
72 | [[mediagoblin.plugins.processing_info]] | ||
73 | [[mediagoblin.media_types.image]] | ||
74 | [[mediagoblin.media_types.video]] | ||
75 | ''; | ||
76 | }; | ||
77 | |||
78 | users.users.mediagoblin.extraGroups = [ "keys" ]; | ||
79 | |||
80 | services.mediagoblin = { | ||
81 | enable = true; | ||
82 | package = pkgs.webapps.mediagoblin.withPlugins (p: [p.basicsearch]); | ||
83 | configFile = config.secrets.fullPaths."webapps/tools-mediagoblin"; | ||
84 | }; | ||
85 | services.filesWatcher.mediagoblin-web = { | ||
86 | restart = true; | ||
87 | paths = [ mcfg.configFile ]; | ||
88 | }; | ||
89 | services.filesWatcher.mediagoblin-celeryd = { | ||
90 | restart = true; | ||
91 | paths = [ mcfg.configFile ]; | ||
92 | }; | ||
93 | |||
94 | services.websites.env.tools.modules = [ | ||
95 | "proxy" "proxy_http" | ||
96 | ]; | ||
97 | users.users.wwwrun.extraGroups = [ "mediagoblin" ]; | ||
98 | services.websites.env.tools.vhostConfs.mgoblin = { | ||
99 | certName = "eldiron"; | ||
100 | addToCerts = true; | ||
101 | hosts = ["mgoblin.immae.eu" ]; | ||
102 | root = null; | ||
103 | extraConfig = [ '' | ||
104 | Alias /mgoblin_media ${mcfg.dataDir}/media/public | ||
105 | <Directory ${mcfg.dataDir}/media/public> | ||
106 | Options -Indexes +FollowSymLinks +MultiViews +Includes | ||
107 | Require all granted | ||
108 | </Directory> | ||
109 | |||
110 | Alias /theme_static ${mcfg.dataDir}/theme_static | ||
111 | <Directory ${mcfg.dataDir}/theme_static> | ||
112 | Options -Indexes +FollowSymLinks +MultiViews +Includes | ||
113 | Require all granted | ||
114 | </Directory> | ||
115 | |||
116 | Alias /plugin_static ${mcfg.dataDir}/plugin_static | ||
117 | <Directory ${mcfg.dataDir}/plugin_static> | ||
118 | Options -Indexes +FollowSymLinks +MultiViews +Includes | ||
119 | Require all granted | ||
120 | </Directory> | ||
121 | |||
122 | ProxyPreserveHost on | ||
123 | ProxyVia On | ||
124 | ProxyRequests Off | ||
125 | ProxyPass /mgoblin_media ! | ||
126 | ProxyPass /theme_static ! | ||
127 | ProxyPass /plugin_static ! | ||
128 | ProxyPassMatch ^/.well-known/acme-challenge ! | ||
129 | ProxyPass / unix://${mcfg.sockets.paster}|http://mgoblin.immae.eu/ | ||
130 | ProxyPassReverse / unix://${mcfg.sockets.paster}|http://mgoblin.immae.eu/ | ||
131 | '' ]; | ||
132 | }; | ||
133 | }; | ||
134 | } | ||
diff --git a/modules/private/websites/tools/peertube/default.nix b/modules/private/websites/tools/peertube/default.nix deleted file mode 100644 index 68c992f..0000000 --- a/modules/private/websites/tools/peertube/default.nix +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | env = config.myEnv.tools.peertube; | ||
4 | cfg = config.myServices.websites.tools.peertube; | ||
5 | pcfg = config.services.peertube; | ||
6 | in { | ||
7 | options.myServices.websites.tools.peertube = { | ||
8 | enable = lib.mkEnableOption "enable Peertube's website"; | ||
9 | }; | ||
10 | |||
11 | config = lib.mkIf cfg.enable { | ||
12 | services.peertube = { | ||
13 | enable = true; | ||
14 | configFile = config.secrets.fullPaths."webapps/tools-peertube"; | ||
15 | }; | ||
16 | users.users.peertube.extraGroups = [ "keys" ]; | ||
17 | |||
18 | secrets.keys."webapps/tools-peertube" = { | ||
19 | user = "peertube"; | ||
20 | group = "peertube"; | ||
21 | permissions = "0640"; | ||
22 | text = '' | ||
23 | listen: | ||
24 | hostname: 'localhost' | ||
25 | port: ${toString config.myEnv.ports.peertube} | ||
26 | webserver: | ||
27 | https: true | ||
28 | hostname: 'peertube.immae.eu' | ||
29 | port: 443 | ||
30 | database: | ||
31 | hostname: '${env.postgresql.socket}' | ||
32 | port: 5432 | ||
33 | suffix: '_prod' | ||
34 | username: '${env.postgresql.user}' | ||
35 | password: '${env.postgresql.password}' | ||
36 | pool: | ||
37 | max: 5 | ||
38 | redis: | ||
39 | socket: '${env.redis.socket}' | ||
40 | auth: null | ||
41 | db: ${env.redis.db} | ||
42 | smtp: | ||
43 | transport: sendmail | ||
44 | sendmail: '/run/wrappers/bin/sendmail' | ||
45 | from_address: 'peertube@tools.immae.eu' | ||
46 | storage: | ||
47 | tmp: '${pcfg.dataDir}/storage/tmp/' | ||
48 | avatars: '${pcfg.dataDir}/storage/avatars/' | ||
49 | videos: '${pcfg.dataDir}/storage/videos/' | ||
50 | streaming_playlists: '${pcfg.dataDir}/storage/streaming-playlists/' | ||
51 | redundancy: '${pcfg.dataDir}/storage/videos/' | ||
52 | logs: '${pcfg.dataDir}/storage/logs/' | ||
53 | previews: '${pcfg.dataDir}/storage/previews/' | ||
54 | thumbnails: '${pcfg.dataDir}/storage/thumbnails/' | ||
55 | torrents: '${pcfg.dataDir}/storage/torrents/' | ||
56 | captions: '${pcfg.dataDir}/storage/captions/' | ||
57 | cache: '${pcfg.dataDir}/storage/cache/' | ||
58 | plugins: '${pcfg.dataDir}/storage/plugins/' | ||
59 | client_overrides: '${pcfg.dataDir}/storage/client-overrides/' | ||
60 | ''; | ||
61 | }; | ||
62 | |||
63 | services.websites.env.tools.modules = [ | ||
64 | "headers" "proxy" "proxy_http" "proxy_wstunnel" | ||
65 | ]; | ||
66 | services.filesWatcher.peertube = { | ||
67 | restart = true; | ||
68 | paths = [ pcfg.configFile ]; | ||
69 | }; | ||
70 | |||
71 | services.websites.env.tools.vhostConfs.peertube = { | ||
72 | certName = "eldiron"; | ||
73 | addToCerts = true; | ||
74 | hosts = [ "peertube.immae.eu" ]; | ||
75 | root = null; | ||
76 | extraConfig = [ '' | ||
77 | RewriteEngine On | ||
78 | |||
79 | RewriteCond %{REQUEST_URI} ^/socket.io [NC] | ||
80 | RewriteCond %{QUERY_STRING} transport=websocket [NC] | ||
81 | RewriteRule /(.*) ws://localhost:${toString env.listenPort}/$1 [P,NE,QSA,L] | ||
82 | |||
83 | RewriteCond %{REQUEST_URI} ^/tracker/socket [NC] | ||
84 | RewriteRule /(.*) ws://localhost:${toString env.listenPort}/$1 [P,NE,QSA,L] | ||
85 | |||
86 | ProxyPass / http://localhost:${toString env.listenPort}/ | ||
87 | ProxyPassReverse / http://localhost:${toString env.listenPort}/ | ||
88 | |||
89 | ProxyPreserveHost On | ||
90 | RequestHeader set X-Real-IP %{REMOTE_ADDR}s | ||
91 | '' ]; | ||
92 | }; | ||
93 | }; | ||
94 | } | ||
diff --git a/modules/private/websites/tools/performance/default.nix b/modules/private/websites/tools/performance/default.nix deleted file mode 100644 index 5715ff0..0000000 --- a/modules/private/websites/tools/performance/default.nix +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | { pkgs, lib, config, ... }: | ||
2 | let | ||
3 | env = config.myEnv.tools.status_engine; | ||
4 | package = pkgs.status_engine.interface.override({ config_file = config.secrets.fullPaths."status_engine_ui"; }); | ||
5 | apacheRoot = "${package}/public"; | ||
6 | cfg = config.myServices.websites.tools.performance; | ||
7 | in | ||
8 | { | ||
9 | options.myServices.websites.tools.performance = { | ||
10 | enable = lib.mkEnableOption "Enable performance website"; | ||
11 | }; | ||
12 | |||
13 | config = lib.mkIf cfg.enable { | ||
14 | secrets.keys = { | ||
15 | status_engine_ui = { | ||
16 | permissions = "0400"; | ||
17 | user = "wwwrun"; | ||
18 | group = "wwwrun"; | ||
19 | text = '' | ||
20 | allow_anonymous: 0 | ||
21 | anonymous_can_submit_commands: 0 | ||
22 | urls_without_login: | ||
23 | - login | ||
24 | - loginstate | ||
25 | auth_type: ldap | ||
26 | ldap_server: ${env.ldap.host} | ||
27 | ldap_use_ssl: 1 | ||
28 | ldap_port: 636 | ||
29 | ldap_bind_dn: ${env.ldap.dn} | ||
30 | ldap_bind_password: ${env.ldap.password} | ||
31 | ldap_base_dn: ${env.ldap.base} | ||
32 | ldap_filter: "${env.ldap.filter}" | ||
33 | ldap_attribute: | ||
34 | - memberOf | ||
35 | use_crate: 0 | ||
36 | use_mysql: 1 | ||
37 | mysql: | ||
38 | host: 127.0.0.1 | ||
39 | port: ${env.mysql.port} | ||
40 | username: ${env.mysql.user} | ||
41 | password: ${env.mysql.password} | ||
42 | database: ${env.mysql.database} | ||
43 | display_perfdata: 1 | ||
44 | perfdata_backend: mysql | ||
45 | ''; | ||
46 | }; | ||
47 | }; | ||
48 | |||
49 | services.websites.env.tools.modules = [ "proxy_fcgi" ]; | ||
50 | |||
51 | services.websites.env.tools.vhostConfs.performance = { | ||
52 | certName = "eldiron"; | ||
53 | addToCerts = true; | ||
54 | hosts = [ "performance.immae.eu" ]; | ||
55 | root = apacheRoot; | ||
56 | extraConfig = [ | ||
57 | '' | ||
58 | <Directory ${apacheRoot}> | ||
59 | DirectoryIndex index.html | ||
60 | AllowOverride None | ||
61 | Require all granted | ||
62 | <FilesMatch "\.php$"> | ||
63 | SetHandler "proxy:unix:${config.services.phpfpm.pools.status_engine.socket}|fcgi://localhost" | ||
64 | </FilesMatch> | ||
65 | </Directory> | ||
66 | '' | ||
67 | ]; | ||
68 | }; | ||
69 | |||
70 | services.phpfpm.pools.status_engine = { | ||
71 | user = "wwwrun"; | ||
72 | group = "wwwrun"; | ||
73 | settings = { | ||
74 | "listen.owner" = "wwwrun"; | ||
75 | "listen.group" = "wwwrun"; | ||
76 | "pm" = "dynamic"; | ||
77 | "pm.max_children" = "60"; | ||
78 | "pm.start_servers" = "2"; | ||
79 | "pm.min_spare_servers" = "1"; | ||
80 | "pm.max_spare_servers" = "10"; | ||
81 | |||
82 | "php_admin_value[open_basedir]" = "${package}:/tmp:${config.secrets.fullPaths."status_engine_ui"}"; | ||
83 | }; | ||
84 | phpPackage = pkgs.php74; | ||
85 | }; | ||
86 | |||
87 | }; | ||
88 | } | ||
diff --git a/modules/private/websites/tools/stats/default.nix b/modules/private/websites/tools/stats/default.nix deleted file mode 100644 index 71e31a3..0000000 --- a/modules/private/websites/tools/stats/default.nix +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.tools.stats; | ||
4 | myCfg = config.myEnv.tools.umami; | ||
5 | in | ||
6 | { | ||
7 | options.myServices.websites.tools.stats.enable = lib.mkEnableOption "Enable stats site"; | ||
8 | config = lib.mkIf cfg.enable { | ||
9 | secrets.keys = { | ||
10 | "uami/env" = { | ||
11 | permission = "0400"; | ||
12 | text = '' | ||
13 | PORT=${toString myCfg.listenPort} | ||
14 | HOSTNAME=127.0.0.1 | ||
15 | DATABASE_URL=postgresql://${myCfg.postgresql.user}:${myCfg.postgresql.password}@localhost:${myCfg.postgresql.port}/${myCfg.postgresql.database}?sslmode=disable&host=${myCfg.postgresql.socket} | ||
16 | HASH_SALT=${myCfg.hashSalt} | ||
17 | ''; | ||
18 | }; | ||
19 | }; | ||
20 | |||
21 | services.websites.env.tools.vhostConfs.stats = { | ||
22 | certName = "eldiron"; | ||
23 | addToCerts = true; | ||
24 | hosts = [ "stats.immae.eu" ]; | ||
25 | root = null; | ||
26 | extraConfig = [ | ||
27 | '' | ||
28 | ProxyPass / http://localhost:${toString myCfg.listenPort}/ | ||
29 | ProxyPassReverse / http://localhost:${toString myCfg.listenPort}/ | ||
30 | ProxyPreserveHost On | ||
31 | '' | ||
32 | ]; | ||
33 | }; | ||
34 | systemd.services.umami = { | ||
35 | description = "Umami service"; | ||
36 | wantedBy = [ "multi-user.target" ]; | ||
37 | after = [ "network.target" ]; | ||
38 | wants = [ "postgresql.service" ]; | ||
39 | path = [ pkgs.nodejs pkgs.bashInteractive ]; | ||
40 | serviceConfig = { | ||
41 | Type = "simple"; | ||
42 | User = "umami"; | ||
43 | Group = "umami"; | ||
44 | DynamicUser = true; | ||
45 | SupplementaryGroups = [ "keys" ]; | ||
46 | ExecStart = "${pkgs.umami}/bin/umami"; | ||
47 | EnvironmentFile = config.secrets.fullPaths."umami/env"; | ||
48 | }; | ||
49 | }; | ||
50 | }; | ||
51 | } | ||
diff --git a/modules/private/websites/tools/tools/adminer.nix b/modules/private/websites/tools/tools/adminer.nix deleted file mode 100644 index c280684..0000000 --- a/modules/private/websites/tools/tools/adminer.nix +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | { webapps, php74, myPhpPackages, lib, forcePhpSocket ? null }: | ||
2 | rec { | ||
3 | activationScript = { | ||
4 | deps = [ "httpd" ]; | ||
5 | text = '' | ||
6 | install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/adminer | ||
7 | ''; | ||
8 | }; | ||
9 | webRoot = webapps.adminer; | ||
10 | phpFpm = rec { | ||
11 | user = apache.user; | ||
12 | group = apache.group; | ||
13 | phpPackage = php74.withExtensions ({ enabled, all }: (lib.remove all.mysqli enabled) ++ [myPhpPackages.mysqli_pam]); | ||
14 | settings = { | ||
15 | "listen.owner" = apache.user; | ||
16 | "listen.group" = apache.group; | ||
17 | "pm" = "ondemand"; | ||
18 | "pm.max_children" = "5"; | ||
19 | "pm.process_idle_timeout" = "60"; | ||
20 | #"php_admin_flag[log_errors]" = "on"; | ||
21 | # Needed to avoid clashes in browser cookies (same domain) | ||
22 | "php_value[session.name]" = "AdminerPHPSESSID"; | ||
23 | "php_admin_value[open_basedir]" = "${webRoot}:/tmp:/var/lib/php/sessions/adminer"; | ||
24 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/adminer"; | ||
25 | }; | ||
26 | }; | ||
27 | apache = rec { | ||
28 | user = "wwwrun"; | ||
29 | group = "wwwrun"; | ||
30 | modules = [ "proxy_fcgi" ]; | ||
31 | root = webRoot; | ||
32 | vhostConf = socket: '' | ||
33 | Alias /adminer ${webRoot} | ||
34 | <Directory ${webRoot}> | ||
35 | DirectoryIndex index.php | ||
36 | <FilesMatch "\.php$"> | ||
37 | SetHandler "proxy:unix:${if forcePhpSocket != null then forcePhpSocket else socket}|fcgi://localhost" | ||
38 | </FilesMatch> | ||
39 | |||
40 | Use LDAPConnect | ||
41 | Require ldap-group cn=users,cn=mysql,cn=pam,ou=services,dc=immae,dc=eu | ||
42 | Require ldap-group cn=users,cn=postgresql,cn=pam,ou=services,dc=immae,dc=eu | ||
43 | </Directory> | ||
44 | ''; | ||
45 | }; | ||
46 | } | ||
diff --git a/modules/private/websites/tools/tools/csp_reports.nix b/modules/private/websites/tools/tools/csp_reports.nix deleted file mode 100644 index 9b3f0cf..0000000 --- a/modules/private/websites/tools/tools/csp_reports.nix +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | { env }: | ||
2 | rec { | ||
3 | keys."webapps/tools-csp-reports.conf" = { | ||
4 | user = "wwwrun"; | ||
5 | group = "wwwrun"; | ||
6 | permissions = "0400"; | ||
7 | text = with env.postgresql; '' | ||
8 | env[CSP_REPORT_URI] = "host=${socket} dbname=${database} user=${user} password=${password}" | ||
9 | ''; | ||
10 | }; | ||
11 | } | ||
diff --git a/modules/private/websites/tools/tools/default.nix b/modules/private/websites/tools/tools/default.nix deleted file mode 100644 index 90fcbe1..0000000 --- a/modules/private/websites/tools/tools/default.nix +++ /dev/null | |||
@@ -1,429 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | flakeCompat = import ../../../../../lib/flake-compat.nix; | ||
4 | |||
5 | adminer = pkgs.callPackage ./adminer.nix {}; | ||
6 | ympd = pkgs.callPackage ./ympd.nix { | ||
7 | env = config.myEnv.tools.ympd; | ||
8 | }; | ||
9 | ttrss = pkgs.callPackage ./ttrss.nix { | ||
10 | inherit (pkgs.webapps) ttrss ttrss-plugins; | ||
11 | env = config.myEnv.tools.ttrss; | ||
12 | php = pkgs.php72; | ||
13 | inherit config; | ||
14 | }; | ||
15 | kanboard = pkgs.callPackage ./kanboard.nix { | ||
16 | inherit config; | ||
17 | env = config.myEnv.tools.kanboard; | ||
18 | }; | ||
19 | wallabag = pkgs.callPackage ./wallabag.nix { | ||
20 | wallabag = pkgs.webapps.wallabag.override { | ||
21 | composerEnv = pkgs.composerEnv.override { | ||
22 | php = pkgs.php73.withExtensions({ enabled, all }: enabled ++ [all.tidy]); | ||
23 | }; | ||
24 | }; | ||
25 | env = config.myEnv.tools.wallabag; | ||
26 | inherit config; | ||
27 | }; | ||
28 | yourls = pkgs.callPackage ./yourls.nix { | ||
29 | inherit (pkgs.webapps) yourls yourls-plugins; | ||
30 | env = config.myEnv.tools.yourls; | ||
31 | inherit config; | ||
32 | }; | ||
33 | rompr = pkgs.callPackage ./rompr.nix { | ||
34 | inherit (pkgs.webapps) rompr; | ||
35 | env = config.myEnv.tools.rompr; | ||
36 | }; | ||
37 | shaarli = pkgs.callPackage ./shaarli.nix { | ||
38 | env = config.myEnv.tools.shaarli; | ||
39 | inherit config; | ||
40 | }; | ||
41 | dokuwiki = pkgs.callPackage ./dokuwiki.nix { | ||
42 | inherit (pkgs.webapps) dokuwiki dokuwiki-plugins; | ||
43 | }; | ||
44 | ldap = pkgs.callPackage ./ldap.nix { | ||
45 | inherit (pkgs.webapps) phpldapadmin; | ||
46 | env = config.myEnv.tools.phpldapadmin; | ||
47 | inherit config; | ||
48 | }; | ||
49 | grocy = pkgs.callPackage ./grocy.nix { | ||
50 | grocy = pkgs.webapps.grocy.override { composerEnv = pkgs.composerEnv.override { php = pkgs.php72; }; }; | ||
51 | }; | ||
52 | phpbb = pkgs.callPackage ./phpbb.nix { | ||
53 | phpbb = (pkgs.webapps.phpbb.withLangs (l: [ l.fr ])).withExts (e: [ | ||
54 | e.alfredoramos.markdown e.davidiq.mailinglist e.dmzx.mchat | ||
55 | e.empteintesduweb.monitoranswers e.lr94.autosubscribe | ||
56 | e.phpbbmodders.adduser ]); | ||
57 | }; | ||
58 | webhooks = pkgs.callPackage ./webhooks.nix { | ||
59 | env = config.myEnv.tools.webhooks; | ||
60 | }; | ||
61 | dmarc-reports = pkgs.callPackage ./dmarc_reports.nix { | ||
62 | env = config.myEnv.tools.dmarc_reports; | ||
63 | inherit config; | ||
64 | }; | ||
65 | csp-reports = pkgs.callPackage ./csp_reports.nix { | ||
66 | env = config.myEnv.tools.csp_reports; | ||
67 | }; | ||
68 | |||
69 | landing = pkgs.callPackage ./landing.nix {}; | ||
70 | |||
71 | cfg = config.myServices.websites.tools.tools; | ||
72 | pcfg = config.services.phpfpm.pools; | ||
73 | in { | ||
74 | imports = | ||
75 | builtins.attrValues (flakeCompat ../../../../../flakes/private/paste).nixosModules; | ||
76 | |||
77 | options.myServices.websites.tools.tools = { | ||
78 | enable = lib.mkEnableOption "enable tools website"; | ||
79 | }; | ||
80 | |||
81 | config = lib.mkIf cfg.enable { | ||
82 | secrets.keys = | ||
83 | kanboard.keys | ||
84 | // ldap.keys | ||
85 | // shaarli.keys | ||
86 | // ttrss.keys | ||
87 | // wallabag.keys | ||
88 | // yourls.keys | ||
89 | // dmarc-reports.keys | ||
90 | // csp-reports.keys | ||
91 | // webhooks.keys; | ||
92 | |||
93 | services.websites.env.tools.modules = | ||
94 | [ "proxy_fcgi" ] | ||
95 | ++ adminer.apache.modules | ||
96 | ++ ympd.apache.modules | ||
97 | ++ ttrss.apache.modules | ||
98 | ++ wallabag.apache.modules | ||
99 | ++ yourls.apache.modules | ||
100 | ++ rompr.apache.modules | ||
101 | ++ shaarli.apache.modules | ||
102 | ++ dokuwiki.apache.modules | ||
103 | ++ dmarc-reports.apache.modules | ||
104 | ++ phpbb.apache.modules | ||
105 | ++ ldap.apache.modules | ||
106 | ++ kanboard.apache.modules; | ||
107 | |||
108 | services.websites.env.integration.vhostConfs.devtools = { | ||
109 | certName = "integration"; | ||
110 | certMainHost = "tools.immae.dev"; | ||
111 | addToCerts = true; | ||
112 | hosts = [ "tools.immae.dev" ]; | ||
113 | root = "/var/lib/ftp/immae/devtools"; | ||
114 | extraConfig = [ | ||
115 | '' | ||
116 | Use Apaxy "/var/lib/ftp/immae/devtools" "title" | ||
117 | Timeout 600 | ||
118 | ProxyTimeout 600 | ||
119 | Header always set Content-Security-Policy-Report-Only "${config.myEnv.tools.csp_reports.policies.inline}" | ||
120 | <Directory "/var/lib/ftp/immae/devtools"> | ||
121 | DirectoryIndex index.php index.htm index.html | ||
122 | AllowOverride all | ||
123 | Require all granted | ||
124 | <FilesMatch "\.php$"> | ||
125 | SetHandler "proxy:unix:${pcfg.devtools.socket}|fcgi://localhost" | ||
126 | </FilesMatch> | ||
127 | </Directory> | ||
128 | '' | ||
129 | ]; | ||
130 | }; | ||
131 | |||
132 | services.websites.env.tools.vhostConfs.tools = { | ||
133 | certName = "eldiron"; | ||
134 | addToCerts = true; | ||
135 | hosts = ["tools.immae.eu" ]; | ||
136 | root = landing; | ||
137 | extraConfig = [ | ||
138 | '' | ||
139 | RedirectMatch 301 ^/vpn(.*)$ https://vpn.immae.eu$1 | ||
140 | RedirectMatch 301 ^/roundcube(.*)$ https://mail.immae.eu/roundcube$1 | ||
141 | RedirectMatch 301 ^/jappix(.*)$ https://im.immae.fr/converse | ||
142 | |||
143 | <Directory "${landing}"> | ||
144 | DirectoryIndex index.html | ||
145 | AllowOverride None | ||
146 | Require all granted | ||
147 | |||
148 | <FilesMatch "\.php$"> | ||
149 | SetHandler "proxy:unix:${pcfg.tools.socket}|fcgi://localhost" | ||
150 | </FilesMatch> | ||
151 | </Directory> | ||
152 | '' | ||
153 | (adminer.apache.vhostConf pcfg.adminer.socket) | ||
154 | ympd.apache.vhostConf | ||
155 | (ttrss.apache.vhostConf pcfg.ttrss.socket) | ||
156 | (wallabag.apache.vhostConf pcfg.wallabag.socket) | ||
157 | (yourls.apache.vhostConf pcfg.yourls.socket) | ||
158 | (rompr.apache.vhostConf pcfg.rompr.socket) | ||
159 | (shaarli.apache.vhostConf pcfg.shaarli.socket) | ||
160 | (dokuwiki.apache.vhostConf pcfg.dokuwiki.socket) | ||
161 | (ldap.apache.vhostConf pcfg.ldap.socket) | ||
162 | (kanboard.apache.vhostConf pcfg.kanboard.socket) | ||
163 | (grocy.apache.vhostConf pcfg.grocy.socket) | ||
164 | (phpbb.apache.vhostConf pcfg.phpbb.socket) | ||
165 | (dmarc-reports.apache.vhostConf pcfg.dmarc-reports.socket) | ||
166 | '' | ||
167 | <Location "/paste/"> | ||
168 | ProxyPass unix://${config.services.paste.sockets.gunicorn}|http://tools.immae.eu/paste/ | ||
169 | ProxyPassReverse unix://${config.services.paste.sockets.gunicorn}|http://tools.immae.eu/paste/ | ||
170 | ProxyPreserveHost on | ||
171 | </Location> | ||
172 | <Location "/paste"> | ||
173 | ProxyPass unix://${config.services.paste.sockets.gunicorn}|http://tools.immae.eu/paste/ | ||
174 | ProxyPassReverse unix://${config.services.paste.sockets.gunicorn}|http://tools.immae.eu/paste/ | ||
175 | ProxyPreserveHost on | ||
176 | </Location> | ||
177 | |||
178 | Alias /BIP39 /var/lib/buildbot/outputs/immae/bip39 | ||
179 | <Directory "/var/lib/buildbot/outputs/immae/bip39"> | ||
180 | DirectoryIndex index.html | ||
181 | AllowOverride None | ||
182 | Require all granted | ||
183 | </Directory> | ||
184 | |||
185 | Alias /webhooks ${config.secrets.fullPaths."webapps/webhooks"} | ||
186 | <Directory "${config.secrets.fullPaths."webapps/webhooks"}"> | ||
187 | Options -Indexes | ||
188 | Require all granted | ||
189 | AllowOverride None | ||
190 | <FilesMatch "\.php$"> | ||
191 | SetHandler "proxy:unix:${pcfg.tools.socket}|fcgi://localhost" | ||
192 | </FilesMatch> | ||
193 | </Directory> | ||
194 | '' | ||
195 | ]; | ||
196 | }; | ||
197 | |||
198 | services.websites.env.tools.vhostConfs.outils = { | ||
199 | certName = "eldiron"; | ||
200 | addToCerts = true; | ||
201 | hosts = [ "outils.immae.eu" ]; | ||
202 | root = null; | ||
203 | extraConfig = [ | ||
204 | '' | ||
205 | RedirectMatch 301 ^/mediagoblin(.*)$ https://mgoblin.immae.eu$1 | ||
206 | |||
207 | RedirectMatch 301 ^/ether(.*)$ https://ether.immae.eu$1 | ||
208 | |||
209 | RedirectMatch 301 ^/nextcloud(.*)$ https://cloud.immae.eu$1 | ||
210 | RedirectMatch 301 ^/owncloud(.*)$ https://cloud.immae.eu$1 | ||
211 | |||
212 | RedirectMatch 301 ^/carddavmate(.*)$ https://dav.immae.eu/infcloud$1 | ||
213 | RedirectMatch 301 ^/caldavzap(.*)$ https://dav.immae.eu/infcloud$1 | ||
214 | RedirectMatch 301 ^/caldav.php(.*)$ https://dav.immae.eu/caldav.php$1 | ||
215 | RedirectMatch 301 ^/davical(.*)$ https://dav.immae.eu/davical$1 | ||
216 | |||
217 | RedirectMatch 301 ^/taskweb(.*)$ https://task.immae.eu/taskweb$1 | ||
218 | |||
219 | RedirectMatch 301 ^/roundcube(.*)$ https://mail.immae.eu/roundcube$1 | ||
220 | |||
221 | RedirectMatch 301 ^/jappix(.*)$ https://im.immae.fr/converse | ||
222 | |||
223 | RedirectMatch 301 ^/vpn(.*)$ https://vpn.immae.eu$1 | ||
224 | |||
225 | RedirectMatch 301 ^/(.*)$ https://tools.immae.eu/$1 | ||
226 | '' | ||
227 | ]; | ||
228 | }; | ||
229 | |||
230 | systemd.services = { | ||
231 | phpfpm-dokuwiki = { | ||
232 | after = lib.mkAfter dokuwiki.phpFpm.serviceDeps; | ||
233 | wants = dokuwiki.phpFpm.serviceDeps; | ||
234 | }; | ||
235 | phpfpm-phpbb = { | ||
236 | after = lib.mkAfter phpbb.phpFpm.serviceDeps; | ||
237 | wants = phpbb.phpFpm.serviceDeps; | ||
238 | }; | ||
239 | phpfpm-kanboard = { | ||
240 | after = lib.mkAfter kanboard.phpFpm.serviceDeps; | ||
241 | wants = kanboard.phpFpm.serviceDeps; | ||
242 | }; | ||
243 | phpfpm-ldap = { | ||
244 | after = lib.mkAfter ldap.phpFpm.serviceDeps; | ||
245 | wants = ldap.phpFpm.serviceDeps; | ||
246 | }; | ||
247 | phpfpm-shaarli = { | ||
248 | after = lib.mkAfter shaarli.phpFpm.serviceDeps; | ||
249 | wants = shaarli.phpFpm.serviceDeps; | ||
250 | }; | ||
251 | phpfpm-ttrss = { | ||
252 | after = lib.mkAfter ttrss.phpFpm.serviceDeps; | ||
253 | wants = ttrss.phpFpm.serviceDeps; | ||
254 | }; | ||
255 | phpfpm-wallabag = { | ||
256 | after = lib.mkAfter wallabag.phpFpm.serviceDeps; | ||
257 | wants = wallabag.phpFpm.serviceDeps; | ||
258 | preStart = lib.mkAfter wallabag.phpFpm.preStart; | ||
259 | }; | ||
260 | phpfpm-yourls = { | ||
261 | after = lib.mkAfter yourls.phpFpm.serviceDeps; | ||
262 | wants = yourls.phpFpm.serviceDeps; | ||
263 | }; | ||
264 | ympd = { | ||
265 | description = "Standalone MPD Web GUI written in C"; | ||
266 | wantedBy = [ "multi-user.target" ]; | ||
267 | script = '' | ||
268 | export MPD_PASSWORD=$(cat ${config.secrets.fullPaths."mpd"}) | ||
269 | ${pkgs.ympd}/bin/ympd --host ${ympd.config.host} --port ${toString ympd.config.port} --webport ${ympd.config.webPort} --user nobody | ||
270 | ''; | ||
271 | }; | ||
272 | tt-rss = { | ||
273 | description = "Tiny Tiny RSS feeds update daemon"; | ||
274 | serviceConfig = { | ||
275 | User = "wwwrun"; | ||
276 | ExecStart = "${pkgs.php72}/bin/php ${ttrss.webRoot}/update.php --daemon"; | ||
277 | StandardOutput = "syslog"; | ||
278 | StandardError = "syslog"; | ||
279 | PermissionsStartOnly = true; | ||
280 | }; | ||
281 | |||
282 | wantedBy = [ "multi-user.target" ]; | ||
283 | requires = ["postgresql.service"]; | ||
284 | after = ["network.target" "postgresql.service"]; | ||
285 | }; | ||
286 | }; | ||
287 | |||
288 | services.filesWatcher.ympd = { | ||
289 | restart = true; | ||
290 | paths = [ config.secrets.fullPaths."mpd" ]; | ||
291 | }; | ||
292 | |||
293 | services.phpfpm.pools = { | ||
294 | tools = { | ||
295 | user = "wwwrun"; | ||
296 | group = "wwwrun"; | ||
297 | settings = { | ||
298 | "listen.owner" = "wwwrun"; | ||
299 | "listen.group" = "wwwrun"; | ||
300 | "pm" = "dynamic"; | ||
301 | "pm.max_children" = "60"; | ||
302 | "pm.start_servers" = "2"; | ||
303 | "pm.min_spare_servers" = "1"; | ||
304 | "pm.max_spare_servers" = "10"; | ||
305 | |||
306 | # Needed to avoid clashes in browser cookies (same domain) | ||
307 | "php_value[session.name]" = "ToolsPHPSESSID"; | ||
308 | "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" [ | ||
309 | "/run/wrappers/bin/sendmail" landing "/tmp" | ||
310 | config.secrets.fullPaths."webapps/webhooks" | ||
311 | ]; | ||
312 | "include" = config.secrets.fullPaths."webapps/tools-csp-reports.conf"; | ||
313 | }; | ||
314 | phpEnv = { | ||
315 | CONTACT_EMAIL = config.myEnv.tools.contact; | ||
316 | }; | ||
317 | phpPackage = pkgs.php72; | ||
318 | }; | ||
319 | devtools = { | ||
320 | user = "wwwrun"; | ||
321 | group = "wwwrun"; | ||
322 | settings = { | ||
323 | "listen.owner" = "wwwrun"; | ||
324 | "listen.group" = "wwwrun"; | ||
325 | "pm" = "dynamic"; | ||
326 | "pm.max_children" = "60"; | ||
327 | "pm.start_servers" = "2"; | ||
328 | "pm.min_spare_servers" = "1"; | ||
329 | "pm.max_spare_servers" = "10"; | ||
330 | |||
331 | "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:/var/lib/ftp/immae/devtools:/tmp"; | ||
332 | }; | ||
333 | phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.mysqli all.redis all.apcu all.opcache ]); | ||
334 | }; | ||
335 | adminer = adminer.phpFpm; | ||
336 | ttrss = { | ||
337 | user = "wwwrun"; | ||
338 | group = "wwwrun"; | ||
339 | settings = ttrss.phpFpm.pool; | ||
340 | phpPackage = pkgs.php72; | ||
341 | }; | ||
342 | wallabag = { | ||
343 | user = "wwwrun"; | ||
344 | group = "wwwrun"; | ||
345 | settings = wallabag.phpFpm.pool; | ||
346 | phpPackage = pkgs.php73.withExtensions({ enabled, all }: enabled ++ [all.tidy]); | ||
347 | }; | ||
348 | yourls = { | ||
349 | user = "wwwrun"; | ||
350 | group = "wwwrun"; | ||
351 | settings = yourls.phpFpm.pool; | ||
352 | phpPackage = pkgs.php72; | ||
353 | }; | ||
354 | rompr = { | ||
355 | user = "wwwrun"; | ||
356 | group = "wwwrun"; | ||
357 | settings = rompr.phpFpm.pool; | ||
358 | phpPackage = pkgs.php72; | ||
359 | }; | ||
360 | shaarli = { | ||
361 | user = "wwwrun"; | ||
362 | group = "wwwrun"; | ||
363 | settings = shaarli.phpFpm.pool; | ||
364 | phpPackage = pkgs.php72; | ||
365 | }; | ||
366 | dmarc-reports = { | ||
367 | user = "wwwrun"; | ||
368 | group = "wwwrun"; | ||
369 | settings = dmarc-reports.phpFpm.pool; | ||
370 | phpEnv = dmarc-reports.phpFpm.phpEnv; | ||
371 | phpPackage = pkgs.php72; | ||
372 | }; | ||
373 | dokuwiki = { | ||
374 | user = "wwwrun"; | ||
375 | group = "wwwrun"; | ||
376 | settings = dokuwiki.phpFpm.pool; | ||
377 | phpPackage = pkgs.php72; | ||
378 | }; | ||
379 | phpbb = { | ||
380 | user = "wwwrun"; | ||
381 | group = "wwwrun"; | ||
382 | settings = phpbb.phpFpm.pool; | ||
383 | phpPackage = pkgs.php72; | ||
384 | }; | ||
385 | ldap = { | ||
386 | user = "wwwrun"; | ||
387 | group = "wwwrun"; | ||
388 | settings = ldap.phpFpm.pool; | ||
389 | phpPackage = pkgs.php72; | ||
390 | }; | ||
391 | kanboard = { | ||
392 | user = "wwwrun"; | ||
393 | group = "wwwrun"; | ||
394 | settings = kanboard.phpFpm.pool; | ||
395 | phpPackage = pkgs.php72; | ||
396 | }; | ||
397 | grocy = { | ||
398 | user = "wwwrun"; | ||
399 | group = "wwwrun"; | ||
400 | settings = grocy.phpFpm.pool; | ||
401 | phpPackage = pkgs.php72; | ||
402 | }; | ||
403 | }; | ||
404 | |||
405 | system.activationScripts = { | ||
406 | adminer = adminer.activationScript; | ||
407 | grocy = grocy.activationScript; | ||
408 | ttrss = ttrss.activationScript; | ||
409 | wallabag = wallabag.activationScript; | ||
410 | yourls = yourls.activationScript; | ||
411 | rompr = rompr.activationScript; | ||
412 | shaarli = shaarli.activationScript; | ||
413 | dokuwiki = dokuwiki.activationScript; | ||
414 | phpbb = phpbb.activationScript; | ||
415 | kanboard = kanboard.activationScript; | ||
416 | ldap = ldap.activationScript; | ||
417 | }; | ||
418 | |||
419 | services.websites.env.tools.watchPaths = [ | ||
420 | config.secrets.fullPaths."webapps/tools-shaarli" | ||
421 | ]; | ||
422 | services.filesWatcher.phpfpm-wallabag = { | ||
423 | restart = true; | ||
424 | paths = [ config.secrets.fullPaths."webapps/tools-wallabag" ]; | ||
425 | }; | ||
426 | |||
427 | }; | ||
428 | } | ||
429 | |||
diff --git a/modules/private/websites/tools/tools/dmarc_reports.nix b/modules/private/websites/tools/tools/dmarc_reports.nix deleted file mode 100644 index 8a77b13..0000000 --- a/modules/private/websites/tools/tools/dmarc_reports.nix +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | { env, config }: | ||
2 | rec { | ||
3 | keys."webapps/tools-dmarc-reports.php" = { | ||
4 | user = "wwwrun"; | ||
5 | group = "wwwrun"; | ||
6 | permissions = "0400"; | ||
7 | text = '' | ||
8 | <?php | ||
9 | $dbhost = "${env.mysql.host}"; | ||
10 | $dbname = "${env.mysql.database}"; | ||
11 | $dbuser = "${env.mysql.user}"; | ||
12 | $dbpass = "${env.mysql.password}"; | ||
13 | $dbport = "${env.mysql.port}"; | ||
14 | $anonymous_key = "${env.anonymous_key}"; | ||
15 | ?> | ||
16 | ''; | ||
17 | }; | ||
18 | webRoot = ./dmarc_reports; | ||
19 | apache = rec { | ||
20 | user = "wwwrun"; | ||
21 | group = "wwwrun"; | ||
22 | modules = [ "proxy_fcgi" ]; | ||
23 | root = webRoot; | ||
24 | vhostConf = socket: '' | ||
25 | Alias /dmarc-reports "${root}" | ||
26 | <Directory "${root}"> | ||
27 | DirectoryIndex index.html | ||
28 | <FilesMatch "\.php$"> | ||
29 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
30 | </FilesMatch> | ||
31 | |||
32 | AllowOverride None | ||
33 | Options +FollowSymlinks | ||
34 | |||
35 | SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 | ||
36 | Use LDAPConnect | ||
37 | Require all granted | ||
38 | Require ldap-attribute uid=immae | ||
39 | </Directory> | ||
40 | ''; | ||
41 | }; | ||
42 | phpFpm = rec { | ||
43 | basedir = builtins.concatStringsSep ":" | ||
44 | [ webRoot config.secrets.fullPaths."webapps/tools-dmarc-reports.php" ]; | ||
45 | pool = { | ||
46 | "listen.owner" = apache.user; | ||
47 | "listen.group" = apache.group; | ||
48 | "pm" = "ondemand"; | ||
49 | "pm.max_children" = "60"; | ||
50 | "pm.process_idle_timeout" = "60"; | ||
51 | |||
52 | # Needed to avoid clashes in browser cookies (same domain) | ||
53 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
54 | }; | ||
55 | phpEnv = { | ||
56 | SECRETS_FILE = config.secrets.fullPaths."webapps/tools-dmarc-reports.php"; | ||
57 | }; | ||
58 | }; | ||
59 | } | ||
diff --git a/modules/private/websites/tools/tools/dmarc_reports/api.php b/modules/private/websites/tools/tools/dmarc_reports/api.php deleted file mode 100644 index 850f9ce..0000000 --- a/modules/private/websites/tools/tools/dmarc_reports/api.php +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | require(getenv("SECRETS_FILE")); | ||
4 | |||
5 | $response = array( | ||
6 | "status" => "ok", | ||
7 | ); | ||
8 | $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport); | ||
9 | |||
10 | function error_die($text, $number) { | ||
11 | http_response_code("500"); | ||
12 | $message = array( | ||
13 | "status" => "error", | ||
14 | "message" => $text, | ||
15 | "code" => $number | ||
16 | ); | ||
17 | |||
18 | die(json_encode($message)); | ||
19 | } | ||
20 | |||
21 | $anonymous = isset($_GET['anonymous']) && $_GET['anonymous']; | ||
22 | function maybe_anonymize($string, $long = false) { | ||
23 | global $anonymous_key; | ||
24 | global $anonymous; | ||
25 | if ($anonymous) { | ||
26 | if ($long) { | ||
27 | return md5($anonymous_key . ":" . $string); | ||
28 | } else { | ||
29 | return substr(md5($anonymous_key . ":" . $string), 0, 6); | ||
30 | } | ||
31 | } else { | ||
32 | return $string; | ||
33 | } | ||
34 | } | ||
35 | |||
36 | if (!$anonymous && (!isset($_SERVER['HTTP_AUTHORIZATION']) || $_SERVER['HTTP_AUTHORIZATION'] === "")) { | ||
37 | header('WWW-Authenticate: Basic realm="Immae"'); | ||
38 | header('HTTP/1.0 401 Unauthorized'); | ||
39 | echo "You need to be authenticated to access private information"; | ||
40 | exit; | ||
41 | } | ||
42 | |||
43 | if ($mysqli->connect_errno) { | ||
44 | error_die($mysqli->connect_error, $mysqli->connect_errno); | ||
45 | } | ||
46 | |||
47 | if (!isset($_GET['serial'])) { | ||
48 | $response["domains"] = array(); | ||
49 | $query = $mysqli->query("SELECT DISTINCT domain FROM `report` ORDER BY domain"); | ||
50 | if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } | ||
51 | while($row = $query->fetch_assoc()) { | ||
52 | $response["domains"][] = maybe_anonymize($row['domain']); | ||
53 | } | ||
54 | |||
55 | $response["orgs"] = array(); | ||
56 | $query = $mysqli->query("SELECT DISTINCT org FROM `report` ORDER BY org"); | ||
57 | if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } | ||
58 | while($row = $query->fetch_assoc()) { | ||
59 | $response["orgs"][] = maybe_anonymize($row['org']); | ||
60 | } | ||
61 | |||
62 | $response["dates"] = array(); | ||
63 | $query = $mysqli->query("SELECT DISTINCT DISTINCT year(mindate) as year, month(mindate) as month FROM `report` ORDER BY year DESC,month DESC"); | ||
64 | if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } | ||
65 | while($row = $query->fetch_assoc()) { | ||
66 | $response["dates"][] = sprintf( "%'.04d-%'.02d", $row['year'], $row['month'] ); | ||
67 | } | ||
68 | |||
69 | $response["summaries"] = array(); | ||
70 | if (isset($_GET['errors_only'])) { | ||
71 | $where = " WHERE (spfresult != 'pass' or dkimresult != 'pass')"; | ||
72 | } else { | ||
73 | $where = ""; | ||
74 | } | ||
75 | |||
76 | $sql = "SELECT report.* , sum(rptrecord.rcount) AS rcount, MIN(rptrecord.dkimresult) AS dkimresult, MIN(rptrecord.spfresult) AS spfresult FROM report LEFT JOIN (SELECT rcount, COALESCE(dkimresult, 'neutral') AS dkimresult, COALESCE(spfresult, 'neutral') AS spfresult, serial FROM rptrecord) AS rptrecord ON report.serial = rptrecord.serial$where GROUP BY serial ORDER BY mindate ASC, maxdate ASC, org"; | ||
77 | $query = $mysqli->query($sql); | ||
78 | if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } | ||
79 | while($row = $query->fetch_assoc()) { | ||
80 | $wanted_keys = array( | ||
81 | 'domain', 'org', 'reportid', 'mindate', 'maxdate', 'rcount', 'serial', 'policy_adkim', 'policy_aspf', 'policy_none', 'policy_sp', 'policy_pct', 'spfresult', 'dkimresult' | ||
82 | ); | ||
83 | $row = array_intersect_key($row, array_fill_keys($wanted_keys, '1')); | ||
84 | $row["domain"] = maybe_anonymize($row["domain"]); | ||
85 | $row["org"] = maybe_anonymize($row["org"]); | ||
86 | $row["reportid"] = maybe_anonymize($row["reportid"], true); | ||
87 | $response["summaries"][] = $row; | ||
88 | } | ||
89 | } else { | ||
90 | $response["rptrecord"] = []; | ||
91 | $sql = $mysqli->prepare("SELECT * FROM rptrecord where serial = ?"); | ||
92 | $sql->bind_param("s", $_GET["serial"]); | ||
93 | $sql->execute(); | ||
94 | $query = $sql->get_result(); | ||
95 | if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } | ||
96 | while($row = $query->fetch_assoc()) { | ||
97 | if ($row['ip']) { | ||
98 | $ip = long2ip($row['ip']); | ||
99 | $host = gethostbyaddr($ip); | ||
100 | } elseif ( $row['ip6'] ) { | ||
101 | $ip = inet_ntop($row['ip6']); | ||
102 | $host = gethostbyaddr($ip); | ||
103 | } else { | ||
104 | $ip = "-"; | ||
105 | $host = "-"; | ||
106 | } | ||
107 | $wanted_keys = array( | ||
108 | 'ip', 'host', 'rcount', 'disposition', 'reason', 'dkimdomain', 'dkimresult', 'spfdomain', 'spfresult' | ||
109 | ); | ||
110 | $row = array_intersect_key($row, array_fill_keys($wanted_keys, '1')); | ||
111 | $row['ip'] = maybe_anonymize($ip); | ||
112 | $row['host'] = maybe_anonymize($host); | ||
113 | $row['dkimdomain'] = maybe_anonymize($row['dkimdomain']); | ||
114 | $row['spfdomain'] = maybe_anonymize($row['spfdomain']); | ||
115 | $response["rptrecord"][] = $row; | ||
116 | } | ||
117 | } | ||
118 | |||
119 | header("Content-Type: application/json"); | ||
120 | |||
121 | echo json_encode($response, JSON_PRETTY_PRINT); | ||
122 | ?> | ||
diff --git a/modules/private/websites/tools/tools/dmarc_reports/app.js b/modules/private/websites/tools/tools/dmarc_reports/app.js deleted file mode 100644 index 8e8a6c4..0000000 --- a/modules/private/websites/tools/tools/dmarc_reports/app.js +++ /dev/null | |||
@@ -1,103 +0,0 @@ | |||
1 | const app = new Vue({ | ||
2 | el: '#app', | ||
3 | data: { | ||
4 | info: null, | ||
5 | summaries: null, | ||
6 | selectedSummary: null, | ||
7 | filterGreen: true, | ||
8 | filterDomain: null, | ||
9 | filterOrg: null, | ||
10 | //filterDate: (new Date()).toISOString().substring(0, 7), | ||
11 | filterDate: null, | ||
12 | reverse: true, | ||
13 | anonymous: true, | ||
14 | }, | ||
15 | created: async function () { | ||
16 | let that = this; | ||
17 | |||
18 | if ('anonymous' in localStorage) { | ||
19 | this.anonymous = JSON.parse(localStorage.anonymous); | ||
20 | } | ||
21 | this.fetchAll(); | ||
22 | }, | ||
23 | methods: { | ||
24 | fetchAll: async function() { | ||
25 | try { | ||
26 | this.info = await this.getInfo(); | ||
27 | this.summaries = this.info.summaries; | ||
28 | } catch (error) { | ||
29 | this.info = null; | ||
30 | this.summaries = null; | ||
31 | } | ||
32 | }, | ||
33 | toggleAnonymous: function() { | ||
34 | this.anonymous = !this.anonymous; | ||
35 | localStorage.anonymous = this.anonymous; | ||
36 | this.fetchAll(); | ||
37 | }, | ||
38 | filtered: function () { | ||
39 | let that = this; | ||
40 | let filtered = this.summaries.filter(function (summary) { | ||
41 | return (!that.filterGreen || that.getColor(summary) !== "lime") | ||
42 | && (!that.filterDomain || summary.domain === that.filterDomain) | ||
43 | && (!that.filterOrg || summary.org === that.filterOrg) | ||
44 | && (!that.filterDate || that.inDates(summary)); | ||
45 | }); | ||
46 | if (this.reverse) { | ||
47 | return filtered.reverse(); | ||
48 | } else { | ||
49 | return filtered; | ||
50 | } | ||
51 | }, | ||
52 | toggle: async function(summary) { | ||
53 | if (this.selectedSummary && this.selectedSummary.serial === summary.serial) { | ||
54 | this.selectedSummary = null; | ||
55 | } else { | ||
56 | if (!summary.details) { | ||
57 | summary.details = await this.getDetails(summary.serial); | ||
58 | } | ||
59 | this.selectedSummary = summary; | ||
60 | } | ||
61 | }, | ||
62 | inDates: function(summary) { | ||
63 | if (!this.filterDate) { return true; } | ||
64 | |||
65 | let mindate = (new Date(summary.mindate)).toISOString().substring(0, 7); | ||
66 | let maxdate = (new Date(summary.maxdate)).toISOString().substring(0, 7); | ||
67 | |||
68 | return mindate === this.filterDate || maxdate === this.filterDate; | ||
69 | }, | ||
70 | printDate: function (date) { | ||
71 | return (new Date(date)).toISOString().replace("T", " ").replace(/\..*Z$/, " UTC"); | ||
72 | }, | ||
73 | getColor: function (element) { | ||
74 | if (element.dkimresult === "fail" && element.spfresult === "fail") { | ||
75 | return "red"; | ||
76 | } else if (element.dkimresult === "fail" || element.spfresult === "fail") { | ||
77 | return "orange"; | ||
78 | } else if (element.dkimresult === "pass" && element.spfresult === "pass") { | ||
79 | return "lime"; | ||
80 | } else { | ||
81 | return "yellow"; | ||
82 | } | ||
83 | }, | ||
84 | getInfo: function (event) { | ||
85 | let anonymous = this.anonymous ? "anonymous=1" : ""; | ||
86 | return fetch(`api.php?${anonymous}`).then(function (response) { | ||
87 | if (response.status != 200) { return; } | ||
88 | return response.text().then(function (body) { | ||
89 | return JSON.parse(body); | ||
90 | }); | ||
91 | }); | ||
92 | }, | ||
93 | getDetails: function (serial) { | ||
94 | let anonymous = this.anonymous ? "&anonymous=1" : ""; | ||
95 | return fetch(`api.php?serial=${serial}${anonymous}`).then(function (response) { | ||
96 | if (response.status != 200) { return; } | ||
97 | return response.text().then(function (body) { | ||
98 | return JSON.parse(body); | ||
99 | }); | ||
100 | }); | ||
101 | } | ||
102 | } | ||
103 | }); | ||
diff --git a/modules/private/websites/tools/tools/dmarc_reports/default.css b/modules/private/websites/tools/tools/dmarc_reports/default.css deleted file mode 100644 index 9e0c63f..0000000 --- a/modules/private/websites/tools/tools/dmarc_reports/default.css +++ /dev/null | |||
@@ -1,130 +0,0 @@ | |||
1 | h1 { | ||
2 | text-align: center; | ||
3 | } | ||
4 | |||
5 | p.warninginfo { | ||
6 | text-align: center; | ||
7 | } | ||
8 | |||
9 | table.reportlist { | ||
10 | margin: 2em auto 2em auto; | ||
11 | border-collapse: collapse; | ||
12 | clear: both; | ||
13 | } | ||
14 | |||
15 | table.reportlist td, table.reportlist th { | ||
16 | padding:3px; | ||
17 | } | ||
18 | |||
19 | table.reportlist thead { | ||
20 | border-top: 1px solid grey; | ||
21 | border-bottom: 1px solid grey; | ||
22 | |||
23 | } | ||
24 | table.reportlist tbody tr:first-child td { | ||
25 | padding-top: 10px; | ||
26 | } | ||
27 | table.reportlist tr.sum { | ||
28 | border-top: 1px solid grey; | ||
29 | } | ||
30 | table.reportlist tr.selected { | ||
31 | background-color: lightgrey; | ||
32 | } | ||
33 | .reportdesc { | ||
34 | font-weight: bold; | ||
35 | width: 90%; | ||
36 | margin-left: auto; | ||
37 | margin-right: auto; | ||
38 | } | ||
39 | |||
40 | tr.summaryrow { | ||
41 | cursor: pointer; | ||
42 | } | ||
43 | |||
44 | tr.summaryrow:hover, tr.summaryrow.selected { | ||
45 | background-color: lightgray; | ||
46 | border-left: 1px solid lightgray; | ||
47 | } | ||
48 | |||
49 | td.reportcell { | ||
50 | border-bottom: 1px solid lightgray; | ||
51 | border-left: 1px solid lightgray; | ||
52 | border-right: 1px solid lightgray; | ||
53 | } | ||
54 | |||
55 | table.reportdata { | ||
56 | margin: 0px auto 0px auto; | ||
57 | border-collapse: separate; | ||
58 | border-spacing: 2px; | ||
59 | } | ||
60 | |||
61 | table.reportdata tr th, table.reportdata tr td { | ||
62 | text-align: center; | ||
63 | padding: 3px; | ||
64 | } | ||
65 | |||
66 | table.reportdata tr.red { | ||
67 | background-color: #FF0000; | ||
68 | } | ||
69 | |||
70 | table.reportdata tr.orange { | ||
71 | background-color: #FFA500; | ||
72 | } | ||
73 | |||
74 | table.reportdata tr.lime { | ||
75 | background-color: #00FF00; | ||
76 | } | ||
77 | |||
78 | table.reportdata tr.yellow { | ||
79 | background-color: #FFFF00; | ||
80 | } | ||
81 | |||
82 | .optionblock { | ||
83 | background: lightgrey; | ||
84 | padding: 0.4em; | ||
85 | float: right; | ||
86 | margin: auto 2em 1em auto; | ||
87 | white-space: nowrap; | ||
88 | } | ||
89 | |||
90 | .optionlabel { | ||
91 | font-weight: bold; | ||
92 | float: left; clear: left; | ||
93 | margin-right: 1em; | ||
94 | } | ||
95 | |||
96 | .options { | ||
97 | font-size: 70%; | ||
98 | text-align: right; | ||
99 | border: none; | ||
100 | width: 97%; | ||
101 | padding: 0.4em; | ||
102 | } | ||
103 | |||
104 | .center { | ||
105 | text-align:center; | ||
106 | } | ||
107 | |||
108 | .circle_lime:before { | ||
109 | content: ' \25CF'; | ||
110 | font-size: 25px; | ||
111 | color: #00FF00; | ||
112 | } | ||
113 | |||
114 | .circle_red:before { | ||
115 | content: ' \25CF'; | ||
116 | font-size: 25px; | ||
117 | color: #FF0000; | ||
118 | } | ||
119 | |||
120 | .circle_yellow:before { | ||
121 | content: ' \25CF'; | ||
122 | font-size: 25px; | ||
123 | color: #FFFF00; | ||
124 | } | ||
125 | |||
126 | .circle_orange:before { | ||
127 | content: ' \25CF'; | ||
128 | font-size: 25px; | ||
129 | color: #FFA500; | ||
130 | } | ||
diff --git a/modules/private/websites/tools/tools/dmarc_reports/index.html b/modules/private/websites/tools/tools/dmarc_reports/index.html deleted file mode 100644 index 0afc82f..0000000 --- a/modules/private/websites/tools/tools/dmarc_reports/index.html +++ /dev/null | |||
@@ -1,128 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | |||
4 | <head> | ||
5 | <meta charset="utf-8"> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
7 | <meta name="robots" content="noindex"> | ||
8 | <title>Dmarc reports</title> | ||
9 | <link rel="stylesheet" href="default.css"> | ||
10 | </head> | ||
11 | |||
12 | <body> | ||
13 | <div id="app" style="width: 100%"> | ||
14 | <div class="optionblock"> | ||
15 | <div class='options'> | ||
16 | <span class='optionlabel'>Anonymize</span> | ||
17 | <label><input type="radio" :value="false" v-model="anonymous" v-on:click="toggleAnonymous()"> no</label> | ||
18 | <label><input type="radio" :value="true" v-model="anonymous" v-on:click="toggleAnonymous()"> yes</label> | ||
19 | </div> | ||
20 | <template v-if="info"> | ||
21 | <div class='options'> | ||
22 | <span class='optionlabel'>Hide all-green lines:</span> | ||
23 | <label><input type="radio" :value="false" v-model="filterGreen"> no</label> | ||
24 | <label><input type="radio" :value="true" v-model="filterGreen"> yes</label> | ||
25 | </div> | ||
26 | <div class='options'> | ||
27 | <span class='optionlabel'>Sort order:</span> | ||
28 | <label><input type="radio" :value="false" v-model="reverse"> ascending</label> | ||
29 | <label><input type="radio" :value="true" v-model="reverse"> descending</label> | ||
30 | </div> | ||
31 | <div class='options'> | ||
32 | <span class='optionlabel'>Domain(s):</span> | ||
33 | <select v-model="filterDomain"> | ||
34 | <option selected="selected" :value="null">[all]</option> | ||
35 | <option v-for="domain in info.domains" :value="domain">{{ domain }}</option> | ||
36 | </select> | ||
37 | </div> | ||
38 | <div class='options'> | ||
39 | <span class='optionlabel'>Organisation(s):</span> | ||
40 | <select v-model="filterOrg"> | ||
41 | <option selected="selected" :value="null">[all]</option> | ||
42 | <option v-for="org in info.orgs" :value="org">{{ org }}</option> | ||
43 | </select> | ||
44 | </div> | ||
45 | <div class='options'> | ||
46 | <span class='optionlabel'>Time:</span> | ||
47 | <select v-model="filterDate"> | ||
48 | <option selected="selected" :value="null">[all]</option> | ||
49 | <option v-for="date in info.dates" :value="date">{{ date }}</option> | ||
50 | </select> | ||
51 | </div> | ||
52 | </template> | ||
53 | </div> | ||
54 | |||
55 | <h1 class='main'>DMARC Reports</h1> | ||
56 | <p v-if="!info" class="warninginfo"> | ||
57 | No information could be fetched. If in non-anonymous mode you need to be logged-in | ||
58 | </p> | ||
59 | <table class='reportlist' v-if="summaries"> | ||
60 | <thead> | ||
61 | <tr> | ||
62 | <th></th> | ||
63 | <th>Start Date</th> | ||
64 | <th>End Date</th> | ||
65 | <th>Domain</th> | ||
66 | <th>Reporting Organization</th> | ||
67 | <th>Report ID</th> | ||
68 | <th>Messages</th> | ||
69 | </tr> | ||
70 | </thead> | ||
71 | <tbody> | ||
72 | <template v-for="summary in filtered()"> | ||
73 | <tr v-on:click="toggle(summary)" class="summaryrow" | ||
74 | v-bind:class="[{ selected: selectedSummary && summary.serial === selectedSummary.serial }]"> | ||
75 | <td class='right'><span :class="'circle_' + getColor(summary)"></span></td> | ||
76 | <td class='right'>{{ printDate(summary.mindate) }}</td> | ||
77 | <td class='right'>{{ printDate(summary.maxdate) }}</td> | ||
78 | <td class='center'>{{ summary.domain }}</td> | ||
79 | <td class='center'>{{ summary.org }}</td> | ||
80 | <td class='center'>{{ summary.reportid }}</td> | ||
81 | <td class='center'>{{ summary.rcount }}</td> | ||
82 | </tr> | ||
83 | <tr v-if="selectedSummary && summary.serial === selectedSummary.serial"> | ||
84 | <td colspan="6" class="reportcell"> | ||
85 | <div class='center reportdesc'> | ||
86 | <p>Policies: adkim={{ summary.policy_adkim }}, aspf={{ summary.policy_aspf }}, p={{ summary.policy_none }}, sp={{ summary.policy_sp }}, pct={{ summary.policy_pct }}</p> | ||
87 | </div> | ||
88 | <table v-if="summary.details" class='reportdata'> | ||
89 | <thead> | ||
90 | <tr> | ||
91 | <th>IP Address</th> | ||
92 | <th>Host Name</th> | ||
93 | <th>Message Count</th> | ||
94 | <th>Disposition</th> | ||
95 | <th>Reason</th> | ||
96 | <th>DKIM Domain</th> | ||
97 | <th>Raw DKIM Result</th> | ||
98 | <th>SPF Domain</th> | ||
99 | <th>Raw SPF Result</th> | ||
100 | </tr> | ||
101 | </thead> | ||
102 | <tbody> | ||
103 | <tr v-for="record in summary.details.rptrecord" :class='getColor(record)'> | ||
104 | <td>{{ record.ip }}</td> | ||
105 | <td>{{ record.host }}</td> | ||
106 | <td>{{ record.rcount }}</td> | ||
107 | <td>{{ record.disposition }}</td> | ||
108 | <td>{{ record.reason }}</td> | ||
109 | <td>{{ record.dkimdomain }}</td> | ||
110 | <td>{{ record.dkimresult }}</td> | ||
111 | <td>{{ record.spfdomain }}</td> | ||
112 | <td>{{ record.spfresult }}</td> | ||
113 | </tr> | ||
114 | </tbody> | ||
115 | </table> | ||
116 | </td> | ||
117 | <td></td> | ||
118 | </tr> | ||
119 | </template> | ||
120 | </tbody> | ||
121 | </table> | ||
122 | </div> | ||
123 | |||
124 | <script src="https://assets.immae.eu/vue/2.6.11/vue.min.js" integrity="sha256-ngFW3UnAN0Tnm76mDuu7uUtYEcG3G5H1+zioJw3t+68=" crossorigin="anonymous"></script> | ||
125 | <script src="app.js"></script> | ||
126 | </body> | ||
127 | |||
128 | </html> | ||
diff --git a/modules/private/websites/tools/tools/dokuwiki.nix b/modules/private/websites/tools/tools/dokuwiki.nix deleted file mode 100644 index aee495a..0000000 --- a/modules/private/websites/tools/tools/dokuwiki.nix +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | { lib, stdenv, dokuwiki, dokuwiki-plugins }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/dokuwiki"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | if [ ! -d ${varDir} ]; then | ||
8 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ | ||
9 | ${varDir}/animals | ||
10 | cp -a ${webRoot}/conf.dist ${varDir}/conf | ||
11 | cp -a ${webRoot}/data.dist ${varDir}/data | ||
12 | cp -a ${webRoot}/ | ||
13 | chown -R ${apache.user}:${apache.user} ${varDir}/config ${varDir}/data | ||
14 | chmod -R 755 ${varDir}/config ${varDir}/data | ||
15 | fi | ||
16 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
17 | ''; | ||
18 | }; | ||
19 | webRoot = dokuwiki.withPlugins (p: [ p.farmer p.todo ]); | ||
20 | apache = rec { | ||
21 | user = "wwwrun"; | ||
22 | group = "wwwrun"; | ||
23 | modules = [ "proxy_fcgi" ]; | ||
24 | root = webRoot; | ||
25 | vhostConf = socket: '' | ||
26 | Alias /dokuwiki "${root}" | ||
27 | <Directory "${root}"> | ||
28 | DirectoryIndex index.php | ||
29 | <FilesMatch "\.php$"> | ||
30 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
31 | </FilesMatch> | ||
32 | |||
33 | AllowOverride All | ||
34 | Options +FollowSymlinks | ||
35 | Require all granted | ||
36 | </Directory> | ||
37 | ''; | ||
38 | }; | ||
39 | phpFpm = rec { | ||
40 | serviceDeps = [ "openldap.service" ]; | ||
41 | basedir = builtins.concatStringsSep ":" ( | ||
42 | [ webRoot varDir ] ++ webRoot.plugins); | ||
43 | pool = { | ||
44 | "listen.owner" = apache.user; | ||
45 | "listen.group" = apache.group; | ||
46 | "pm" = "ondemand"; | ||
47 | "pm.max_children" = "60"; | ||
48 | "pm.process_idle_timeout" = "60"; | ||
49 | |||
50 | # Needed to avoid clashes in browser cookies (same domain) | ||
51 | "php_value[session.name]" = "DokuwikiPHPSESSID"; | ||
52 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
53 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
54 | }; | ||
55 | }; | ||
56 | } | ||
diff --git a/modules/private/websites/tools/tools/grocy.nix b/modules/private/websites/tools/tools/grocy.nix deleted file mode 100644 index 3c45261..0000000 --- a/modules/private/websites/tools/tools/grocy.nix +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | { lib, stdenv, grocy }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/grocy"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/data | ||
8 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
9 | ''; | ||
10 | }; | ||
11 | webRoot = grocy.webRoot; | ||
12 | apache = rec { | ||
13 | user = "wwwrun"; | ||
14 | group = "wwwrun"; | ||
15 | modules = [ "proxy_fcgi" ]; | ||
16 | root = webRoot; | ||
17 | vhostConf = socket: '' | ||
18 | Alias /grocy "${root}" | ||
19 | <Directory "${root}"> | ||
20 | DirectoryIndex index.php | ||
21 | <FilesMatch "\.php$"> | ||
22 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
23 | </FilesMatch> | ||
24 | |||
25 | AllowOverride All | ||
26 | Options +FollowSymlinks | ||
27 | Require all granted | ||
28 | </Directory> | ||
29 | ''; | ||
30 | }; | ||
31 | phpFpm = rec { | ||
32 | basedir = builtins.concatStringsSep ":" ( | ||
33 | [ grocy grocy.yarnModules varDir ]); | ||
34 | pool = { | ||
35 | "listen.owner" = apache.user; | ||
36 | "listen.group" = apache.group; | ||
37 | "pm" = "ondemand"; | ||
38 | "pm.max_children" = "60"; | ||
39 | "pm.process_idle_timeout" = "60"; | ||
40 | |||
41 | # Needed to avoid clashes in browser cookies (same domain) | ||
42 | "php_value[session.name]" = "grocyPHPSESSID"; | ||
43 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
44 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
45 | }; | ||
46 | }; | ||
47 | } | ||
48 | |||
diff --git a/modules/private/websites/tools/tools/kanboard.nix b/modules/private/websites/tools/tools/kanboard.nix deleted file mode 100644 index 4809a42..0000000 --- a/modules/private/websites/tools/tools/kanboard.nix +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | { env, kanboard, config }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/kanboard"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/data | ||
8 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
9 | install -TDm644 ${webRoot}/dataold/.htaccess ${varDir}/data/.htaccess | ||
10 | install -TDm644 ${webRoot}/dataold/web.config ${varDir}/data/web.config | ||
11 | ''; | ||
12 | }; | ||
13 | keys."webapps/tools-kanboard" = { | ||
14 | user = apache.user; | ||
15 | group = apache.group; | ||
16 | permissions = "0400"; | ||
17 | text = '' | ||
18 | <?php | ||
19 | define('MAIL_FROM', 'kanboard@tools.immae.eu'); | ||
20 | |||
21 | define('DB_DRIVER', 'postgres'); | ||
22 | define('DB_USERNAME', '${env.postgresql.user}'); | ||
23 | define('DB_PASSWORD', '${env.postgresql.password}'); | ||
24 | define('DB_HOSTNAME', '${env.postgresql.socket}'); | ||
25 | define('DB_NAME', '${env.postgresql.database}'); | ||
26 | |||
27 | define('DATA_DIR', '${varDir}'); | ||
28 | define('LDAP_AUTH', true); | ||
29 | define('LDAP_SERVER', '${env.ldap.host}'); | ||
30 | define('LDAP_START_TLS', true); | ||
31 | |||
32 | define('LDAP_BIND_TYPE', 'proxy'); | ||
33 | define('LDAP_USERNAME', '${env.ldap.dn}'); | ||
34 | define('LDAP_PASSWORD', '${env.ldap.password}'); | ||
35 | define('LDAP_USER_BASE_DN', '${env.ldap.base}'); | ||
36 | define('LDAP_USER_FILTER', '${env.ldap.filter}'); | ||
37 | define('LDAP_GROUP_ADMIN_DN', '${env.ldap.admin_dn}'); | ||
38 | ?> | ||
39 | ''; | ||
40 | }; | ||
41 | webRoot = kanboard { kanboard_config = config.secrets.fullPaths."webapps/tools-kanboard"; }; | ||
42 | apache = rec { | ||
43 | user = "wwwrun"; | ||
44 | group = "wwwrun"; | ||
45 | modules = [ "proxy_fcgi" ]; | ||
46 | root = webRoot; | ||
47 | vhostConf = socket: '' | ||
48 | Alias /kanboard "${root}" | ||
49 | <Directory "${root}"> | ||
50 | DirectoryIndex index.php | ||
51 | AllowOverride All | ||
52 | Options FollowSymlinks | ||
53 | Require all granted | ||
54 | |||
55 | <FilesMatch "\.php$"> | ||
56 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
57 | </FilesMatch> | ||
58 | </Directory> | ||
59 | <DirectoryMatch "${root}/data"> | ||
60 | Require all denied | ||
61 | </DirectoryMatch> | ||
62 | ''; | ||
63 | }; | ||
64 | phpFpm = rec { | ||
65 | serviceDeps = [ "postgresql.service" "openldap.service" ]; | ||
66 | basedir = builtins.concatStringsSep ":" [ webRoot varDir config.secrets.fullPaths."webapps/tools-kanboard" ]; | ||
67 | pool = { | ||
68 | "listen.owner" = apache.user; | ||
69 | "listen.group" = apache.group; | ||
70 | "pm" = "ondemand"; | ||
71 | "pm.max_children" = "60"; | ||
72 | "pm.process_idle_timeout" = "60"; | ||
73 | |||
74 | # Needed to avoid clashes in browser cookies (same domain) | ||
75 | "php_value[session.name]" = "KanboardPHPSESSID"; | ||
76 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
77 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
78 | }; | ||
79 | }; | ||
80 | } | ||
diff --git a/modules/private/websites/tools/tools/landing.nix b/modules/private/websites/tools/tools/landing.nix deleted file mode 100644 index 2acc323..0000000 --- a/modules/private/websites/tools/tools/landing.nix +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | { sources, stdenv, yarn2nix-moretea }: | ||
2 | let | ||
3 | yarnModules = yarn2nix-moretea.mkYarnModules rec { | ||
4 | name = "landing"; | ||
5 | pname = name; | ||
6 | version = "v1.0.0"; | ||
7 | packageJSON = "${sources.webapps-landing}/package.json"; | ||
8 | yarnLock = "${sources.webapps-landing}/yarn.lock"; | ||
9 | yarnNix = ./landing/yarn-packages.nix; | ||
10 | }; | ||
11 | in | ||
12 | stdenv.mkDerivation rec { | ||
13 | pname = "landing"; | ||
14 | version = "v1.0.0"; | ||
15 | src = sources.webapps-landing; | ||
16 | |||
17 | buildInputs = [ yarnModules yarn2nix-moretea.yarn ]; | ||
18 | configurePhase = '' | ||
19 | ln -s ${yarnModules}/node_modules . | ||
20 | ''; | ||
21 | buildPhase = '' | ||
22 | yarn build | ||
23 | ''; | ||
24 | installPhase = '' | ||
25 | cp -a dist $out | ||
26 | cp ${./landing}/*.php $out/ | ||
27 | ln -s service-worker.js $out/worker.js | ||
28 | ''; | ||
29 | } | ||
diff --git a/modules/private/websites/tools/tools/landing/ldap_password.php b/modules/private/websites/tools/tools/landing/ldap_password.php deleted file mode 100644 index b6079e5..0000000 --- a/modules/private/websites/tools/tools/landing/ldap_password.php +++ /dev/null | |||
@@ -1,140 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * LDAP PHP Change Password Webpage | ||
5 | * @author: Matt Rude <http://mattrude.com> | ||
6 | * @website: http://technology.mattrude.com/2010/11/ldap-php-change-password-webpage/ | ||
7 | * | ||
8 | * | ||
9 | * GNU GENERAL PUBLIC LICENSE | ||
10 | * Version 2, June 1991 | ||
11 | * | ||
12 | * Copyright (C) 1989, 1991 Free Software Foundation, Inc., | ||
13 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
14 | * Everyone is permitted to copy and distribute verbatim copies | ||
15 | * of this license document, but changing it is not allowed. | ||
16 | */ | ||
17 | |||
18 | $message = array(); | ||
19 | $message_css = ""; | ||
20 | |||
21 | function changePassword($user,$oldPassword,$newPassword,$newPasswordCnf){ | ||
22 | global $message; | ||
23 | global $message_css; | ||
24 | |||
25 | $server = "ldaps://ldap.immae.eu"; | ||
26 | |||
27 | error_reporting(0); | ||
28 | $con = ldap_connect($server); | ||
29 | ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3); | ||
30 | |||
31 | $user_dn = "uid=$user,ou=users,dc=immae,dc=eu"; | ||
32 | |||
33 | if (ldap_bind($con, $user_dn, $oldPassword) === false) { | ||
34 | $user_dn = "uid=$user,ou=group_users,dc=immae,dc=eu"; | ||
35 | if (ldap_bind($con, $user_dn, $oldPassword) === false) { | ||
36 | $message[] = "Error E101 - Current Username or Password is wrong."; | ||
37 | return false; | ||
38 | } | ||
39 | } | ||
40 | if ($newPassword != $newPasswordCnf ) { | ||
41 | $message[] = "Error E102 - Your New passwords do not match!"; | ||
42 | return false; | ||
43 | } | ||
44 | if (strlen($newPassword) < 6 ) { | ||
45 | $message[] = "Error E103 - Your new password is too short.<br/>Your password must be at least 6 characters long."; | ||
46 | return false; | ||
47 | } | ||
48 | |||
49 | $salt = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',4)),0,4); | ||
50 | $encoded_newPassword = "{SSHA}" . base64_encode(pack("H*", sha1($newPassword.$salt)).$salt); | ||
51 | |||
52 | $user_search = ldap_search($con,"dc=immae,dc=eu","(uid=$user)"); | ||
53 | $auth_entry = ldap_first_entry($con, $user_search); | ||
54 | |||
55 | $mail_addresses = ldap_get_values($con, $auth_entry, "mail"); | ||
56 | $given_names = ldap_get_values($con, $auth_entry, "givenName"); | ||
57 | $mail_address = $mail_addresses[0]; | ||
58 | $first_name = $given_names[0]; | ||
59 | |||
60 | /* And Finally, Change the password */ | ||
61 | $entry = array(); | ||
62 | $entry["userPassword"] = "$encoded_newPassword"; | ||
63 | |||
64 | if (ldap_modify($con,$user_dn,$entry) === false){ | ||
65 | $error = ldap_error($con); | ||
66 | $errno = ldap_errno($con); | ||
67 | $message[] = "E201 - Your password cannot be changed, please contact the administrator."; | ||
68 | $message[] = "$errno - $error"; | ||
69 | } else { | ||
70 | $message_css = "yes"; | ||
71 | mail($mail_address,"Password change notice","Dear $first_name, | ||
72 | Your password on https://tools.immae.eu/ldap_password.php for account $user was just changed. | ||
73 | If you did not make this change, please contact me. | ||
74 | If you were the one who changed your password, you may disregard this message. | ||
75 | |||
76 | Thanks | ||
77 | -- | ||
78 | Immae / Ismaël", "From: " . getenv("CONTACT_EMAIL")); | ||
79 | $message[] = "The password for $user has been changed.<br/>An informational email has been sent to $mail_address.<br/>Your new password is now fully active."; | ||
80 | } | ||
81 | } | ||
82 | |||
83 | ?> | ||
84 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
85 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
86 | <head> | ||
87 | <title>Password Change Page</title> | ||
88 | <meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
89 | <link rel="stylesheet" href="https://assets.immae.eu/skeleton/2.0.4/skeleton.min.css" integrity="sha256-2YQRJMXD7pIAPHiXr0s+vlRWA7GYJEK0ARns7k2sbHY=" crossorigin="anonymous" /> | ||
90 | <style type="text/css"> | ||
91 | body { font-family: Verdana,Arial,Courier New; margin: auto; } | ||
92 | |||
93 | .msg_yes { margin: 0 auto; text-align: center; color: green; background: #D4EAD4; border: 1px solid green; border-radius: 10px; margin: 2px; } | ||
94 | .msg_no { margin: 0 auto; text-align: center; color: red; background: #FFF0F0; border: 1px solid red; border-radius: 10px; margin: 2px; } | ||
95 | </style> | ||
96 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> | ||
97 | </head> | ||
98 | <body> | ||
99 | <div class="container"> | ||
100 | <form action="<?php print $_SERVER['PHP_SELF']; ?>" name="passwordChange" method="post"> | ||
101 | <h3>Password Change Page</h3> | ||
102 | <?php | ||
103 | if (isset($_POST["submitted"])) { | ||
104 | echo '<div class="row">'; | ||
105 | changePassword($_POST['username'],$_POST['oldPassword'],$_POST['newPassword1'],$_POST['newPassword2']); | ||
106 | global $message_css; | ||
107 | if ($message_css == "yes") { | ||
108 | echo '<div class="msg_yes">'; | ||
109 | } else { | ||
110 | echo '<div class="msg_no">'; | ||
111 | $message[] = "Your password was not changed."; | ||
112 | } | ||
113 | foreach ( $message as $one ) { echo "<p>$one</p>"; } | ||
114 | ?></div></div><?php | ||
115 | } ?> | ||
116 | <div class="row"> | ||
117 | <div class="one-third column"><label for="username">Username</label></div> | ||
118 | <div class="two-thirds column"><input id="username" name="username" type="text" autocomplete="off" /></div> | ||
119 | </div> | ||
120 | <div class="row"> | ||
121 | <div class="one-third column"><label for="oldPassword">Current password</label></div> | ||
122 | <div class="two-thirds column"><input id="oldPassword" name="oldPassword" type="password" /></div> | ||
123 | </div> | ||
124 | <div class="row"> | ||
125 | <div class="one-third column"><label for="newPassword1">New password</label></div> | ||
126 | <div class="two-thirds column"><input id="newPassword1" name="newPassword1" type="password" /></div> | ||
127 | </div> | ||
128 | <div class="row"> | ||
129 | <div class="one-third column"><label for="newPassword2">New password (again)</label></div> | ||
130 | <div class="two-thirds column"><input id="newPassword2" name="newPassword2" type="password" /></div> | ||
131 | </div> | ||
132 | <div class="row"> | ||
133 | <div class="column"> | ||
134 | <input name="submitted" type="submit" value="Change Password"/> | ||
135 | </div> | ||
136 | </div> | ||
137 | </form> | ||
138 | </div> | ||
139 | </body> | ||
140 | </html> | ||
diff --git a/modules/private/websites/tools/tools/landing/ldap_ssh_keys.php b/modules/private/websites/tools/tools/landing/ldap_ssh_keys.php deleted file mode 100644 index 259e28d..0000000 --- a/modules/private/websites/tools/tools/landing/ldap_ssh_keys.php +++ /dev/null | |||
@@ -1,348 +0,0 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> | ||
3 | <head> | ||
4 | <title>ImmaeEu Account</title> | ||
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
7 | <link rel="stylesheet" href="https://assets.immae.eu/skeleton/2.0.4/skeleton.min.css" integrity="sha256-2YQRJMXD7pIAPHiXr0s+vlRWA7GYJEK0ARns7k2sbHY=" crossorigin="anonymous" /> | ||
8 | <style type="text/css"> | ||
9 | body { | ||
10 | font-family: Verdana,Arial,Courier New; | ||
11 | margin: auto; | ||
12 | } | ||
13 | table#ssh_keys_list textarea { | ||
14 | width: 100%; | ||
15 | height: 100%; | ||
16 | } | ||
17 | table#ssh_keys_list tbody tr.sshkeyrow { | ||
18 | height: 130px; | ||
19 | } | ||
20 | table#ssh_keys_list tbody tr.headrow th { | ||
21 | border-bottom: 0px !important; | ||
22 | padding-bottom: 0px !important; | ||
23 | } | ||
24 | table#ssh_keys_list tbody tr.mainrow td:not(.delete-button) { | ||
25 | border-bottom: 0px !important; | ||
26 | padding-bottom: 0px !important; | ||
27 | } | ||
28 | table#ssh_keys_list td.sshkey { | ||
29 | min-width: 600px; | ||
30 | height: 100%; | ||
31 | padding-top: 0px !important; | ||
32 | } | ||
33 | |||
34 | table#ssh_keys_list td.comment { | ||
35 | min-width: 160px; | ||
36 | } | ||
37 | |||
38 | </style> | ||
39 | </head> | ||
40 | <body> | ||
41 | <div class="container"> | ||
42 | <h1>Gestion des clés SSH</h1> | ||
43 | <?php | ||
44 | |||
45 | $connection = NULL; | ||
46 | |||
47 | session_start(); | ||
48 | |||
49 | // Liste des applications gérées | ||
50 | const apps = [ | ||
51 | 'git', | ||
52 | 'pub', | ||
53 | 'ftp', | ||
54 | 'ssh', | ||
55 | 'forward', | ||
56 | ]; | ||
57 | |||
58 | function checkSshKey($sshKey) | ||
59 | { | ||
60 | $exploded = explode(' ', $sshKey); | ||
61 | if (count($exploded) != 2) { | ||
62 | return false; | ||
63 | } | ||
64 | if (!in_array($exploded[0], array('ssh-rsa', 'ssh-ed25519'))) { | ||
65 | return false; | ||
66 | } | ||
67 | $decoded = base64_decode($exploded[1], true); | ||
68 | if ($decoded === FALSE) { | ||
69 | return false; | ||
70 | } | ||
71 | $decoded = preg_replace("/[^\w\-]/","", (string) $decoded); | ||
72 | if (substr($decoded, 0, strlen($exploded[0])) !== $exploded[0]) { | ||
73 | return false; | ||
74 | } | ||
75 | |||
76 | return true; | ||
77 | } | ||
78 | |||
79 | function isUserLogged() | ||
80 | { | ||
81 | return (isset($_SESSION["login"]) && doConnect() !== NULL); | ||
82 | } | ||
83 | |||
84 | function doConnect() | ||
85 | { | ||
86 | global $connection; | ||
87 | $server = "ldaps://ldap.immae.eu"; | ||
88 | |||
89 | if ($connection === NULL) { | ||
90 | $connection = ldap_connect($server); | ||
91 | ldap_set_option($connection, LDAP_OPT_PROTOCOL_VERSION, 3); | ||
92 | if (isset($_SESSION["user_dn"]) && isset($_SESSION["password"])) { | ||
93 | if (ldap_bind($connection, $_SESSION["user_dn"], $_SESSION["password"]) === false) { | ||
94 | $connection = NULL; | ||
95 | unset($_SESSION["user_dn"]); | ||
96 | unset($_SESSION["password"]); | ||
97 | unset($_SESSION["login"]); | ||
98 | } | ||
99 | } | ||
100 | } | ||
101 | |||
102 | return $connection; | ||
103 | } | ||
104 | |||
105 | function checkLogin($user, $password) | ||
106 | { | ||
107 | $con = doConnect(); | ||
108 | |||
109 | $user_dn = "uid=$user,ou=users,dc=immae,dc=eu"; | ||
110 | |||
111 | if (ldap_bind($con, $user_dn, $password) === false) { | ||
112 | return false; | ||
113 | } | ||
114 | $_SESSION["user_dn"] = $user_dn; | ||
115 | $_SESSION["password"] = $password; | ||
116 | |||
117 | $user_search = ldap_search($con,"dc=immae,dc=eu","(uid=$user)"); | ||
118 | $auth_entry = ldap_first_entry($con, $user_search); | ||
119 | |||
120 | return true; | ||
121 | } | ||
122 | |||
123 | function getLdapInfo() | ||
124 | { | ||
125 | $con = doConnect(); | ||
126 | if (!isset($_SESSION["user_dn"])) { | ||
127 | $sortieLdap = []; | ||
128 | } else { | ||
129 | $user_read = ldap_read($con, $_SESSION["user_dn"], "(objectclass=*)", array("uid","immaeSshKey")); | ||
130 | $user_entry = ldap_first_entry($con, $user_read); | ||
131 | $sortieLdap = ldap_get_values($con, $user_entry, "immaeSshKey"); | ||
132 | unset($sortieLdap["count"]); | ||
133 | } | ||
134 | |||
135 | $keys = []; | ||
136 | foreach ($sortieLdap as $line) { | ||
137 | $exploded = explode(' ', $line); | ||
138 | |||
139 | $apps = explode('|', $exploded[0]); | ||
140 | $publicKey = $exploded[1] . ' ' . $exploded[2]; | ||
141 | |||
142 | unset($exploded[0]); | ||
143 | unset($exploded[1]); | ||
144 | unset($exploded[2]); | ||
145 | |||
146 | $comment = implode(' ', $exploded); | ||
147 | |||
148 | $keys[] = [ | ||
149 | 'apps' => $apps, | ||
150 | 'public_key' => $publicKey, | ||
151 | 'comment' => $comment, | ||
152 | ]; | ||
153 | } | ||
154 | |||
155 | return $keys; | ||
156 | } | ||
157 | |||
158 | function pushLdapInfos($keys) | ||
159 | { | ||
160 | $con = doConnect(); | ||
161 | if (!isset($_SESSION["user_dn"])) | ||
162 | return false; | ||
163 | |||
164 | return ldap_mod_replace($con, $_SESSION["user_dn"], array("immaeSshKey" => $keys)); | ||
165 | } | ||
166 | |||
167 | |||
168 | // Script | ||
169 | if (isset($_POST['deconnexion'])) { | ||
170 | $_SESSION = []; | ||
171 | } | ||
172 | |||
173 | if (isset($_POST['sauvegarder'])) { | ||
174 | $editedKeys = []; | ||
175 | $errors = false; | ||
176 | $keysToSave = []; | ||
177 | foreach($_POST['keys'] as $id => $key) { | ||
178 | $editedKeys[$id] = $key; | ||
179 | if (!checkSshKey($key['public_key'])) { | ||
180 | $editedKeys[$id]['error'] = true; | ||
181 | $errors = true; | ||
182 | } | ||
183 | |||
184 | if (!isset($key['apps'])) { | ||
185 | $editedKeys[$id]['apps'] = $key['apps'] = []; | ||
186 | |||
187 | } | ||
188 | foreach ($key['apps'] as $app) { | ||
189 | if (!in_array($app, apps)) { | ||
190 | die("integrity"); | ||
191 | } | ||
192 | } | ||
193 | |||
194 | if (!isset($editedKeys[$id]['error']) || $editedKeys[$id]['error'] !== true) { | ||
195 | $keysToSave[] = implode('|', $key['apps']) . ' ' . $key['public_key'] . ' ' . $key['comment']; | ||
196 | } | ||
197 | } | ||
198 | |||
199 | if (!$errors) { | ||
200 | $successSave = pushLdapInfos($keysToSave); | ||
201 | } | ||
202 | } | ||
203 | |||
204 | $loginErrors = ""; | ||
205 | if (isset($_POST['login'])) { | ||
206 | if (empty($_POST['username']) || empty($_POST['password'])) { | ||
207 | $loginErrors = "Le nom d'utilisateur et le mot de passe sont requis."; | ||
208 | } elseif (!checkLogin($_POST['username'], $_POST['password'])) { | ||
209 | $loginErrors = "Identifiants incorrects."; | ||
210 | } else { | ||
211 | $_SESSION['login'] = $_POST['username']; | ||
212 | } | ||
213 | } | ||
214 | |||
215 | if (isUserLogged()) : | ||
216 | $keys = isset($editedKeys) ? $editedKeys : getLdapInfo(); | ||
217 | ?> | ||
218 | <p>Connecté en tant que <b><?= $_SESSION['login']; ?></b></p> | ||
219 | |||
220 | <form method="post"> | ||
221 | <input type="submit" name="deconnexion" value="Déconnexion"> | ||
222 | </form> | ||
223 | |||
224 | <?php if (isset($successSave) && $successSave === true) : ?> | ||
225 | <p style="color: green;">Clés enregistrées avec succès.</p> | ||
226 | <?php endif; ?> | ||
227 | |||
228 | <form method="post"> | ||
229 | <table id="ssh_keys_list"> | ||
230 | <tbody> | ||
231 | <?php | ||
232 | foreach ($keys as $id => $sshKey) : | ||
233 | ?> | ||
234 | <tr class="headrow"> | ||
235 | <th>Description</th> | ||
236 | <?php foreach (apps as $app) : ?> | ||
237 | <th><?= $app ?></th> | ||
238 | <?php endforeach; ?> | ||
239 | <th></th> | ||
240 | </tr> | ||
241 | <tr class="mainrow"> | ||
242 | <td class="comment"><textarea name="keys[<?= $id ?>][comment]"><?= $sshKey['comment'] ?></textarea></td> | ||
243 | <?php | ||
244 | foreach (apps as $app) : | ||
245 | $checked = in_array($app, $sshKey['apps']); | ||
246 | ?> | ||
247 | <td><input type="checkbox" name="keys[<?= $id ?>][apps][]" value="<?= $app ?>"<?= $checked ? ' checked' : '' ?>></td> | ||
248 | <?php endforeach; ?> | ||
249 | <td class="delete-button" rowspan="2"><button class="delete">Suppr.</button></td> | ||
250 | </tr> | ||
251 | <tr class="sshkeyrow"> | ||
252 | <td colspan="<?php echo 1+count(apps); ?>" class="sshkey"><textarea name="keys[<?= $id ?>][public_key]" <?php if (isset($sshKey['error']) && $sshKey['error'] === true) :?>style="color: red"<?php endif; ?>><?= $sshKey['public_key'] ?></textarea></td> | ||
253 | </tr> | ||
254 | <?php | ||
255 | endforeach; | ||
256 | ?> | ||
257 | </tbody> | ||
258 | </table> | ||
259 | |||
260 | <button id="add">Ajouter</button> | ||
261 | |||
262 | <hr> | ||
263 | |||
264 | <input type="submit" value="Sauvegarder" name="sauvegarder"> | ||
265 | </form> | ||
266 | <script> | ||
267 | function deleteLine(element) { | ||
268 | element.addEventListener('click', function(e) { | ||
269 | e.preventDefault(); | ||
270 | e.target.closest('tr').remove(); | ||
271 | }, false); | ||
272 | } | ||
273 | |||
274 | var suppr = document.getElementsByClassName('delete'); | ||
275 | var add = document.getElementById('add'); | ||
276 | var list = document.querySelector('#ssh_keys_list > tbody'); | ||
277 | |||
278 | for (var i = 0; i < suppr.length; i++) { | ||
279 | deleteLine(suppr[i]); | ||
280 | } | ||
281 | |||
282 | add.addEventListener('click', function (e) { | ||
283 | e.preventDefault(); | ||
284 | i++; | ||
285 | |||
286 | var newLine = ` | ||
287 | <tr class="headrow"> | ||
288 | <th>Description</th> | ||
289 | <?php foreach (apps as $app) : ?> | ||
290 | <th><?= $app ?></th> | ||
291 | <?php endforeach; ?> | ||
292 | <th></th> | ||
293 | </tr> | ||
294 | <tr class="mainrow"> | ||
295 | <td class="comment"><textarea name="keys[${i}][comment]"></textarea></td> | ||
296 | `; | ||
297 | |||
298 | |||
299 | <?php | ||
300 | foreach (apps as $app) : | ||
301 | ?> | ||
302 | newLine += `<td><input type="checkbox" name="keys[${i}][apps][]" value="<?= $app ?>"></td>`; | ||
303 | <?php endforeach; ?> | ||
304 | |||
305 | newLine += `<td class="delete-button" rowspan="2"><button class="delete" id="delete-${i}">Suppr.</button></td> | ||
306 | </tr>`; | ||
307 | |||
308 | newLine += `<tr class="sshkeyrow"> | ||
309 | <td colspan="<?php echo 1+count(apps); ?>" class="sshkey"><textarea name="keys[$[i}][public_key]"></textarea></td> | ||
310 | </tr>`; | ||
311 | |||
312 | |||
313 | list.insertAdjacentHTML('beforeend', newLine); | ||
314 | |||
315 | deleteLine(document.getElementById("delete-" + i)); | ||
316 | |||
317 | }, false) | ||
318 | </script> | ||
319 | <?php | ||
320 | else: | ||
321 | ?> | ||
322 | <form action="" method="post"> | ||
323 | <h2>Login</h2> | ||
324 | |||
325 | <?php | ||
326 | if (!empty($loginErrors)): | ||
327 | ?> | ||
328 | <p style="color: red;"><?= $loginErrors; ?></p> | ||
329 | <?php | ||
330 | endif; | ||
331 | ?> | ||
332 | |||
333 | <label for="username">Utilisateur :</label> | ||
334 | <input type="text" id="username" name="username"/> | ||
335 | |||
336 | <label for="password">Mot de passe :</label> | ||
337 | <input type="password" id="password" name="password"/> | ||
338 | |||
339 | <input type="submit" value="OK" name="login" /> | ||
340 | </form> | ||
341 | <?php | ||
342 | endif; | ||
343 | ?> | ||
344 | </div> | ||
345 | </body> | ||
346 | </html> | ||
347 | |||
348 | |||
diff --git a/modules/private/websites/tools/tools/landing/myip.php b/modules/private/websites/tools/tools/landing/myip.php deleted file mode 100644 index 9ec1c6c..0000000 --- a/modules/private/websites/tools/tools/landing/myip.php +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | <?php echo $_SERVER['REMOTE_ADDR']; ?> | ||
diff --git a/modules/private/websites/tools/tools/landing/node-packages.nix b/modules/private/websites/tools/tools/landing/node-packages.nix deleted file mode 100644 index 9ebf254..0000000 --- a/modules/private/websites/tools/tools/landing/node-packages.nix +++ /dev/null | |||
@@ -1,130 +0,0 @@ | |||
1 | # This file has been generated by node2nix 1.8.0. Do not edit! | ||
2 | |||
3 | {nodeEnv, fetchurl, fetchgit, src, globalBuildInputs ? []}: | ||
4 | |||
5 | let | ||
6 | sources = { | ||
7 | "@fortawesome/fontawesome-free-5.13.1" = { | ||
8 | name = "_at_fortawesome_slash_fontawesome-free"; | ||
9 | packageName = "@fortawesome/fontawesome-free"; | ||
10 | version = "5.13.1"; | ||
11 | src = fetchurl { | ||
12 | url = "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz"; | ||
13 | sha512 = "D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw=="; | ||
14 | }; | ||
15 | }; | ||
16 | "argparse-1.0.10" = { | ||
17 | name = "argparse"; | ||
18 | packageName = "argparse"; | ||
19 | version = "1.0.10"; | ||
20 | src = fetchurl { | ||
21 | url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; | ||
22 | sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; | ||
23 | }; | ||
24 | }; | ||
25 | "bulma-0.8.2" = { | ||
26 | name = "bulma"; | ||
27 | packageName = "bulma"; | ||
28 | version = "0.8.2"; | ||
29 | src = fetchurl { | ||
30 | url = "https://registry.npmjs.org/bulma/-/bulma-0.8.2.tgz"; | ||
31 | sha512 = "vMM/ijYSxX+Sm+nD7Lmc1UgWDy2JcL2nTKqwgEqXuOMU+IGALbXd5MLt/BcjBAPLIx36TtzhzBcSnOP974gcqA=="; | ||
32 | }; | ||
33 | }; | ||
34 | "core-js-3.6.5" = { | ||
35 | name = "core-js"; | ||
36 | packageName = "core-js"; | ||
37 | version = "3.6.5"; | ||
38 | src = fetchurl { | ||
39 | url = "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz"; | ||
40 | sha512 = "vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="; | ||
41 | }; | ||
42 | }; | ||
43 | "esprima-4.0.1" = { | ||
44 | name = "esprima"; | ||
45 | packageName = "esprima"; | ||
46 | version = "4.0.1"; | ||
47 | src = fetchurl { | ||
48 | url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; | ||
49 | sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; | ||
50 | }; | ||
51 | }; | ||
52 | "js-yaml-3.14.0" = { | ||
53 | name = "js-yaml"; | ||
54 | packageName = "js-yaml"; | ||
55 | version = "3.14.0"; | ||
56 | src = fetchurl { | ||
57 | url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz"; | ||
58 | sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A=="; | ||
59 | }; | ||
60 | }; | ||
61 | "lodash.merge-4.6.2" = { | ||
62 | name = "lodash.merge"; | ||
63 | packageName = "lodash.merge"; | ||
64 | version = "4.6.2"; | ||
65 | src = fetchurl { | ||
66 | url = "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"; | ||
67 | sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="; | ||
68 | }; | ||
69 | }; | ||
70 | "register-service-worker-1.7.1" = { | ||
71 | name = "register-service-worker"; | ||
72 | packageName = "register-service-worker"; | ||
73 | version = "1.7.1"; | ||
74 | src = fetchurl { | ||
75 | url = "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.7.1.tgz"; | ||
76 | sha512 = "IdTfUZ4u8iJL8o1w8es8l6UMGPmkwHolUdT+UmM1UypC80IB4KbpuIlvwWVj8UDS7eJwkEYRcKRgfRX+oTmJsw=="; | ||
77 | }; | ||
78 | }; | ||
79 | "sprintf-js-1.0.3" = { | ||
80 | name = "sprintf-js"; | ||
81 | packageName = "sprintf-js"; | ||
82 | version = "1.0.3"; | ||
83 | src = fetchurl { | ||
84 | url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; | ||
85 | sha1 = "04e6926f662895354f3dd015203633b857297e2c"; | ||
86 | }; | ||
87 | }; | ||
88 | "vue-2.6.11" = { | ||
89 | name = "vue"; | ||
90 | packageName = "vue"; | ||
91 | version = "2.6.11"; | ||
92 | src = fetchurl { | ||
93 | url = "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz"; | ||
94 | sha512 = "VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="; | ||
95 | }; | ||
96 | }; | ||
97 | }; | ||
98 | args = { | ||
99 | name = "homer"; | ||
100 | packageName = "homer"; | ||
101 | version = "20.06.1"; | ||
102 | inherit src; | ||
103 | dependencies = [ | ||
104 | sources."@fortawesome/fontawesome-free-5.13.1" | ||
105 | sources."argparse-1.0.10" | ||
106 | sources."bulma-0.8.2" | ||
107 | sources."core-js-3.6.5" | ||
108 | sources."esprima-4.0.1" | ||
109 | sources."js-yaml-3.14.0" | ||
110 | sources."lodash.merge-4.6.2" | ||
111 | sources."register-service-worker-1.7.1" | ||
112 | sources."sprintf-js-1.0.3" | ||
113 | sources."vue-2.6.11" | ||
114 | ]; | ||
115 | buildInputs = globalBuildInputs; | ||
116 | meta = { | ||
117 | license = "Apache-2.0"; | ||
118 | }; | ||
119 | production = true; | ||
120 | bypassCache = true; | ||
121 | reconstructLock = true; | ||
122 | }; | ||
123 | in | ||
124 | { | ||
125 | args = args; | ||
126 | sources = sources; | ||
127 | tarball = nodeEnv.buildNodeSourceDist args; | ||
128 | package = nodeEnv.buildNodePackage args; | ||
129 | shell = nodeEnv.buildNodeShell args; | ||
130 | } | ||
diff --git a/modules/private/websites/tools/tools/landing/report_csp_violation.php b/modules/private/websites/tools/tools/landing/report_csp_violation.php deleted file mode 100644 index 30140b2..0000000 --- a/modules/private/websites/tools/tools/landing/report_csp_violation.php +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | <?php | ||
2 | http_response_code(204); | ||
3 | |||
4 | $dbconn = pg_connect(getenv("CSP_REPORT_URI")) or die(); | ||
5 | |||
6 | function _get(&$var, $default=null) { | ||
7 | return isset($var) ? $var : $default; | ||
8 | } | ||
9 | |||
10 | $json_data = file_get_contents('php://input'); | ||
11 | if ($json_data = json_decode($json_data, true)) { | ||
12 | $report = _get($json_data["csp-report"], Array()); | ||
13 | $blocked_uri = _get($report["blocked-uri"], ""); | ||
14 | $document_uri = _get($report["document-uri"], ""); | ||
15 | $original_policy = _get($report["original-policy"], ""); | ||
16 | $referrer = _get($report["referrer"], ""); | ||
17 | $violated_directive = _get($report["violated-directive"], ""); | ||
18 | |||
19 | $query = pg_prepare($dbconn, "insert_query", 'INSERT INTO csp_reports (blocked_uri, document_uri, original_policy, referrer, violated_directive, total_count, last) VALUES ($1, $2, $3, $4, $5, 1, NOW()) ON CONFLICT ON CONSTRAINT csp_report_unique DO UPDATE SET total_count = csp_reports.total_count + 1, last = NOW(), referrer = EXCLUDED.referrer, original_policy = EXCLUDED.original_policy'); | ||
20 | |||
21 | pg_execute($dbconn, "insert_query", Array($blocked_uri, $document_uri, $original_policy, $referrer, $violated_directive)); | ||
22 | } | ||
diff --git a/modules/private/websites/tools/tools/landing/yarn-packages.nix b/modules/private/websites/tools/tools/landing/yarn-packages.nix deleted file mode 100644 index 9621c3e..0000000 --- a/modules/private/websites/tools/tools/landing/yarn-packages.nix +++ /dev/null | |||
@@ -1,9357 +0,0 @@ | |||
1 | { fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec { | ||
2 | offline_cache = linkFarm "offline" packages; | ||
3 | packages = [ | ||
4 | { | ||
5 | name = "_babel_code_frame___code_frame_7.10.1.tgz"; | ||
6 | path = fetchurl { | ||
7 | name = "_babel_code_frame___code_frame_7.10.1.tgz"; | ||
8 | url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz"; | ||
9 | sha1 = "d5481c5095daa1c57e16e54c6f9198443afb49ff"; | ||
10 | }; | ||
11 | } | ||
12 | { | ||
13 | name = "_babel_compat_data___compat_data_7.10.1.tgz"; | ||
14 | path = fetchurl { | ||
15 | name = "_babel_compat_data___compat_data_7.10.1.tgz"; | ||
16 | url = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz"; | ||
17 | sha1 = "b1085ffe72cd17bf2c0ee790fc09f9626011b2db"; | ||
18 | }; | ||
19 | } | ||
20 | { | ||
21 | name = "_babel_core___core_7.10.2.tgz"; | ||
22 | path = fetchurl { | ||
23 | name = "_babel_core___core_7.10.2.tgz"; | ||
24 | url = "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz"; | ||
25 | sha1 = "bd6786046668a925ac2bd2fd95b579b92a23b36a"; | ||
26 | }; | ||
27 | } | ||
28 | { | ||
29 | name = "_babel_generator___generator_7.10.2.tgz"; | ||
30 | path = fetchurl { | ||
31 | name = "_babel_generator___generator_7.10.2.tgz"; | ||
32 | url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz"; | ||
33 | sha1 = "0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9"; | ||
34 | }; | ||
35 | } | ||
36 | { | ||
37 | name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.1.tgz"; | ||
38 | path = fetchurl { | ||
39 | name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.1.tgz"; | ||
40 | url = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz"; | ||
41 | sha1 = "f6d08acc6f70bbd59b436262553fb2e259a1a268"; | ||
42 | }; | ||
43 | } | ||
44 | { | ||
45 | name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.1.tgz"; | ||
46 | path = fetchurl { | ||
47 | name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.1.tgz"; | ||
48 | url = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz"; | ||
49 | sha1 = "0ec7d9be8174934532661f87783eb18d72290059"; | ||
50 | }; | ||
51 | } | ||
52 | { | ||
53 | name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.2.tgz"; | ||
54 | path = fetchurl { | ||
55 | name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.2.tgz"; | ||
56 | url = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz"; | ||
57 | sha1 = "a17d9723b6e2c750299d2a14d4637c76936d8285"; | ||
58 | }; | ||
59 | } | ||
60 | { | ||
61 | name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.2.tgz"; | ||
62 | path = fetchurl { | ||
63 | name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.2.tgz"; | ||
64 | url = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz"; | ||
65 | sha1 = "7474295770f217dbcf288bf7572eb213db46ee67"; | ||
66 | }; | ||
67 | } | ||
68 | { | ||
69 | name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.1.tgz"; | ||
70 | path = fetchurl { | ||
71 | name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.1.tgz"; | ||
72 | url = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz"; | ||
73 | sha1 = "1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd"; | ||
74 | }; | ||
75 | } | ||
76 | { | ||
77 | name = "_babel_helper_define_map___helper_define_map_7.10.1.tgz"; | ||
78 | path = fetchurl { | ||
79 | name = "_babel_helper_define_map___helper_define_map_7.10.1.tgz"; | ||
80 | url = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz"; | ||
81 | sha1 = "5e69ee8308648470dd7900d159c044c10285221d"; | ||
82 | }; | ||
83 | } | ||
84 | { | ||
85 | name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.1.tgz"; | ||
86 | path = fetchurl { | ||
87 | name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.1.tgz"; | ||
88 | url = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz"; | ||
89 | sha1 = "e9d76305ee1162ca467357ae25df94f179af2b7e"; | ||
90 | }; | ||
91 | } | ||
92 | { | ||
93 | name = "_babel_helper_function_name___helper_function_name_7.10.1.tgz"; | ||
94 | path = fetchurl { | ||
95 | name = "_babel_helper_function_name___helper_function_name_7.10.1.tgz"; | ||
96 | url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz"; | ||
97 | sha1 = "92bd63829bfc9215aca9d9defa85f56b539454f4"; | ||
98 | }; | ||
99 | } | ||
100 | { | ||
101 | name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.1.tgz"; | ||
102 | path = fetchurl { | ||
103 | name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.1.tgz"; | ||
104 | url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz"; | ||
105 | sha1 = "7303390a81ba7cb59613895a192b93850e373f7d"; | ||
106 | }; | ||
107 | } | ||
108 | { | ||
109 | name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.1.tgz"; | ||
110 | path = fetchurl { | ||
111 | name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.1.tgz"; | ||
112 | url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz"; | ||
113 | sha1 = "7e77c82e5dcae1ebf123174c385aaadbf787d077"; | ||
114 | }; | ||
115 | } | ||
116 | { | ||
117 | name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.10.1.tgz"; | ||
118 | path = fetchurl { | ||
119 | name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.10.1.tgz"; | ||
120 | url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz"; | ||
121 | sha1 = "432967fd7e12a4afef66c4687d4ca22bc0456f15"; | ||
122 | }; | ||
123 | } | ||
124 | { | ||
125 | name = "_babel_helper_module_imports___helper_module_imports_7.10.1.tgz"; | ||
126 | path = fetchurl { | ||
127 | name = "_babel_helper_module_imports___helper_module_imports_7.10.1.tgz"; | ||
128 | url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz"; | ||
129 | sha1 = "dd331bd45bccc566ce77004e9d05fe17add13876"; | ||
130 | }; | ||
131 | } | ||
132 | { | ||
133 | name = "_babel_helper_module_transforms___helper_module_transforms_7.10.1.tgz"; | ||
134 | path = fetchurl { | ||
135 | name = "_babel_helper_module_transforms___helper_module_transforms_7.10.1.tgz"; | ||
136 | url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz"; | ||
137 | sha1 = "24e2f08ee6832c60b157bb0936c86bef7210c622"; | ||
138 | }; | ||
139 | } | ||
140 | { | ||
141 | name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.1.tgz"; | ||
142 | path = fetchurl { | ||
143 | name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.1.tgz"; | ||
144 | url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz"; | ||
145 | sha1 = "b4a1f2561870ce1247ceddb02a3860fa96d72543"; | ||
146 | }; | ||
147 | } | ||
148 | { | ||
149 | name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.1.tgz"; | ||
150 | path = fetchurl { | ||
151 | name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.1.tgz"; | ||
152 | url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz"; | ||
153 | sha1 = "ec5a5cf0eec925b66c60580328b122c01230a127"; | ||
154 | }; | ||
155 | } | ||
156 | { | ||
157 | name = "_babel_helper_regex___helper_regex_7.10.1.tgz"; | ||
158 | path = fetchurl { | ||
159 | name = "_babel_helper_regex___helper_regex_7.10.1.tgz"; | ||
160 | url = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz"; | ||
161 | sha1 = "021cf1a7ba99822f993222a001cc3fec83255b96"; | ||
162 | }; | ||
163 | } | ||
164 | { | ||
165 | name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.10.1.tgz"; | ||
166 | path = fetchurl { | ||
167 | name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.10.1.tgz"; | ||
168 | url = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz"; | ||
169 | sha1 = "bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432"; | ||
170 | }; | ||
171 | } | ||
172 | { | ||
173 | name = "_babel_helper_replace_supers___helper_replace_supers_7.10.1.tgz"; | ||
174 | path = fetchurl { | ||
175 | name = "_babel_helper_replace_supers___helper_replace_supers_7.10.1.tgz"; | ||
176 | url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz"; | ||
177 | sha1 = "ec6859d20c5d8087f6a2dc4e014db7228975f13d"; | ||
178 | }; | ||
179 | } | ||
180 | { | ||
181 | name = "_babel_helper_simple_access___helper_simple_access_7.10.1.tgz"; | ||
182 | path = fetchurl { | ||
183 | name = "_babel_helper_simple_access___helper_simple_access_7.10.1.tgz"; | ||
184 | url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz"; | ||
185 | sha1 = "08fb7e22ace9eb8326f7e3920a1c2052f13d851e"; | ||
186 | }; | ||
187 | } | ||
188 | { | ||
189 | name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.1.tgz"; | ||
190 | path = fetchurl { | ||
191 | name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.1.tgz"; | ||
192 | url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz"; | ||
193 | sha1 = "c6f4be1cbc15e3a868e4c64a17d5d31d754da35f"; | ||
194 | }; | ||
195 | } | ||
196 | { | ||
197 | name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.1.tgz"; | ||
198 | path = fetchurl { | ||
199 | name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.1.tgz"; | ||
200 | url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz"; | ||
201 | sha1 = "5770b0c1a826c4f53f5ede5e153163e0318e94b5"; | ||
202 | }; | ||
203 | } | ||
204 | { | ||
205 | name = "_babel_helper_wrap_function___helper_wrap_function_7.10.1.tgz"; | ||
206 | path = fetchurl { | ||
207 | name = "_babel_helper_wrap_function___helper_wrap_function_7.10.1.tgz"; | ||
208 | url = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz"; | ||
209 | sha1 = "956d1310d6696257a7afd47e4c42dfda5dfcedc9"; | ||
210 | }; | ||
211 | } | ||
212 | { | ||
213 | name = "_babel_helpers___helpers_7.10.1.tgz"; | ||
214 | path = fetchurl { | ||
215 | name = "_babel_helpers___helpers_7.10.1.tgz"; | ||
216 | url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz"; | ||
217 | sha1 = "a6827b7cb975c9d9cef5fd61d919f60d8844a973"; | ||
218 | }; | ||
219 | } | ||
220 | { | ||
221 | name = "_babel_highlight___highlight_7.10.1.tgz"; | ||
222 | path = fetchurl { | ||
223 | name = "_babel_highlight___highlight_7.10.1.tgz"; | ||
224 | url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz"; | ||
225 | sha1 = "841d098ba613ba1a427a2b383d79e35552c38ae0"; | ||
226 | }; | ||
227 | } | ||
228 | { | ||
229 | name = "_babel_parser___parser_7.10.2.tgz"; | ||
230 | path = fetchurl { | ||
231 | name = "_babel_parser___parser_7.10.2.tgz"; | ||
232 | url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz"; | ||
233 | sha1 = "871807f10442b92ff97e4783b9b54f6a0ca812d0"; | ||
234 | }; | ||
235 | } | ||
236 | { | ||
237 | name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.1.tgz"; | ||
238 | path = fetchurl { | ||
239 | name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.1.tgz"; | ||
240 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz"; | ||
241 | sha1 = "6911af5ba2e615c4ff3c497fe2f47b35bf6d7e55"; | ||
242 | }; | ||
243 | } | ||
244 | { | ||
245 | name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.1.tgz"; | ||
246 | path = fetchurl { | ||
247 | name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.1.tgz"; | ||
248 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz"; | ||
249 | sha1 = "046bc7f6550bb08d9bd1d4f060f5f5a4f1087e01"; | ||
250 | }; | ||
251 | } | ||
252 | { | ||
253 | name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.10.1.tgz"; | ||
254 | path = fetchurl { | ||
255 | name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.10.1.tgz"; | ||
256 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.1.tgz"; | ||
257 | sha1 = "9373c2d8db45345c6e30452ad77b469758e5c8f7"; | ||
258 | }; | ||
259 | } | ||
260 | { | ||
261 | name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.1.tgz"; | ||
262 | path = fetchurl { | ||
263 | name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.1.tgz"; | ||
264 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz"; | ||
265 | sha1 = "e36979dc1dc3b73f6d6816fc4951da2363488ef0"; | ||
266 | }; | ||
267 | } | ||
268 | { | ||
269 | name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.1.tgz"; | ||
270 | path = fetchurl { | ||
271 | name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.1.tgz"; | ||
272 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz"; | ||
273 | sha1 = "b1e691ee24c651b5a5e32213222b2379734aff09"; | ||
274 | }; | ||
275 | } | ||
276 | { | ||
277 | name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.1.tgz"; | ||
278 | path = fetchurl { | ||
279 | name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.1.tgz"; | ||
280 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz"; | ||
281 | sha1 = "02dca21673842ff2fe763ac253777f235e9bbf78"; | ||
282 | }; | ||
283 | } | ||
284 | { | ||
285 | name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.1.tgz"; | ||
286 | path = fetchurl { | ||
287 | name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.1.tgz"; | ||
288 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz"; | ||
289 | sha1 = "a9a38bc34f78bdfd981e791c27c6fdcec478c123"; | ||
290 | }; | ||
291 | } | ||
292 | { | ||
293 | name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.10.1.tgz"; | ||
294 | path = fetchurl { | ||
295 | name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.10.1.tgz"; | ||
296 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz"; | ||
297 | sha1 = "cba44908ac9f142650b4a65b8aa06bf3478d5fb6"; | ||
298 | }; | ||
299 | } | ||
300 | { | ||
301 | name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.1.tgz"; | ||
302 | path = fetchurl { | ||
303 | name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.1.tgz"; | ||
304 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz"; | ||
305 | sha1 = "c9f86d99305f9fa531b568ff5ab8c964b8b223d2"; | ||
306 | }; | ||
307 | } | ||
308 | { | ||
309 | name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.10.1.tgz"; | ||
310 | path = fetchurl { | ||
311 | name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.10.1.tgz"; | ||
312 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz"; | ||
313 | sha1 = "15f5d6d22708629451a91be28f8facc55b0e818c"; | ||
314 | }; | ||
315 | } | ||
316 | { | ||
317 | name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.1.tgz"; | ||
318 | path = fetchurl { | ||
319 | name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.1.tgz"; | ||
320 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz"; | ||
321 | sha1 = "ed85e8058ab0fe309c3f448e5e1b73ca89cdb598"; | ||
322 | }; | ||
323 | } | ||
324 | { | ||
325 | name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.1.tgz"; | ||
326 | path = fetchurl { | ||
327 | name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.1.tgz"; | ||
328 | url = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz"; | ||
329 | sha1 = "dc04feb25e2dd70c12b05d680190e138fa2c0c6f"; | ||
330 | }; | ||
331 | } | ||
332 | { | ||
333 | name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz"; | ||
334 | path = fetchurl { | ||
335 | name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz"; | ||
336 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"; | ||
337 | sha1 = "a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"; | ||
338 | }; | ||
339 | } | ||
340 | { | ||
341 | name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.1.tgz"; | ||
342 | path = fetchurl { | ||
343 | name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.1.tgz"; | ||
344 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz"; | ||
345 | sha1 = "d5bc0645913df5b17ad7eda0fa2308330bde34c5"; | ||
346 | }; | ||
347 | } | ||
348 | { | ||
349 | name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.10.1.tgz"; | ||
350 | path = fetchurl { | ||
351 | name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.10.1.tgz"; | ||
352 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.1.tgz"; | ||
353 | sha1 = "16b869c4beafc9a442565147bda7ce0967bd4f13"; | ||
354 | }; | ||
355 | } | ||
356 | { | ||
357 | name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz"; | ||
358 | path = fetchurl { | ||
359 | name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz"; | ||
360 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"; | ||
361 | sha1 = "62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"; | ||
362 | }; | ||
363 | } | ||
364 | { | ||
365 | name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz"; | ||
366 | path = fetchurl { | ||
367 | name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz"; | ||
368 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"; | ||
369 | sha1 = "01ca21b668cd8218c9e640cb6dd88c5412b2c96a"; | ||
370 | }; | ||
371 | } | ||
372 | { | ||
373 | name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.10.1.tgz"; | ||
374 | path = fetchurl { | ||
375 | name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.10.1.tgz"; | ||
376 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz"; | ||
377 | sha1 = "0ae371134a42b91d5418feb3c8c8d43e1565d2da"; | ||
378 | }; | ||
379 | } | ||
380 | { | ||
381 | name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz"; | ||
382 | path = fetchurl { | ||
383 | name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz"; | ||
384 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"; | ||
385 | sha1 = "167ed70368886081f74b5c36c65a88c03b66d1a9"; | ||
386 | }; | ||
387 | } | ||
388 | { | ||
389 | name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.1.tgz"; | ||
390 | path = fetchurl { | ||
391 | name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.1.tgz"; | ||
392 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz"; | ||
393 | sha1 = "25761ee7410bc8cf97327ba741ee94e4a61b7d99"; | ||
394 | }; | ||
395 | } | ||
396 | { | ||
397 | name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz"; | ||
398 | path = fetchurl { | ||
399 | name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz"; | ||
400 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"; | ||
401 | sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871"; | ||
402 | }; | ||
403 | } | ||
404 | { | ||
405 | name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz"; | ||
406 | path = fetchurl { | ||
407 | name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz"; | ||
408 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"; | ||
409 | sha1 = "6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"; | ||
410 | }; | ||
411 | } | ||
412 | { | ||
413 | name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz"; | ||
414 | path = fetchurl { | ||
415 | name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz"; | ||
416 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"; | ||
417 | sha1 = "4f69c2ab95167e0180cd5336613f8c5788f7d48a"; | ||
418 | }; | ||
419 | } | ||
420 | { | ||
421 | name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.1.tgz"; | ||
422 | path = fetchurl { | ||
423 | name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.1.tgz"; | ||
424 | url = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz"; | ||
425 | sha1 = "8b8733f8c57397b3eaa47ddba8841586dcaef362"; | ||
426 | }; | ||
427 | } | ||
428 | { | ||
429 | name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.1.tgz"; | ||
430 | path = fetchurl { | ||
431 | name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.1.tgz"; | ||
432 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz"; | ||
433 | sha1 = "cb5ee3a36f0863c06ead0b409b4cc43a889b295b"; | ||
434 | }; | ||
435 | } | ||
436 | { | ||
437 | name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.1.tgz"; | ||
438 | path = fetchurl { | ||
439 | name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.1.tgz"; | ||
440 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz"; | ||
441 | sha1 = "e5153eb1a3e028f79194ed8a7a4bf55f862b2062"; | ||
442 | }; | ||
443 | } | ||
444 | { | ||
445 | name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.1.tgz"; | ||
446 | path = fetchurl { | ||
447 | name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.1.tgz"; | ||
448 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz"; | ||
449 | sha1 = "146856e756d54b20fff14b819456b3e01820b85d"; | ||
450 | }; | ||
451 | } | ||
452 | { | ||
453 | name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.10.1.tgz"; | ||
454 | path = fetchurl { | ||
455 | name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.10.1.tgz"; | ||
456 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz"; | ||
457 | sha1 = "47092d89ca345811451cd0dc5d91605982705d5e"; | ||
458 | }; | ||
459 | } | ||
460 | { | ||
461 | name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.1.tgz"; | ||
462 | path = fetchurl { | ||
463 | name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.1.tgz"; | ||
464 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz"; | ||
465 | sha1 = "6e11dd6c4dfae70f540480a4702477ed766d733f"; | ||
466 | }; | ||
467 | } | ||
468 | { | ||
469 | name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.1.tgz"; | ||
470 | path = fetchurl { | ||
471 | name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.1.tgz"; | ||
472 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz"; | ||
473 | sha1 = "59aa399064429d64dce5cf76ef9b90b7245ebd07"; | ||
474 | }; | ||
475 | } | ||
476 | { | ||
477 | name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.1.tgz"; | ||
478 | path = fetchurl { | ||
479 | name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.1.tgz"; | ||
480 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz"; | ||
481 | sha1 = "abd58e51337815ca3a22a336b85f62b998e71907"; | ||
482 | }; | ||
483 | } | ||
484 | { | ||
485 | name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.1.tgz"; | ||
486 | path = fetchurl { | ||
487 | name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.1.tgz"; | ||
488 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz"; | ||
489 | sha1 = "920b9fec2d78bb57ebb64a644d5c2ba67cc104ee"; | ||
490 | }; | ||
491 | } | ||
492 | { | ||
493 | name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.1.tgz"; | ||
494 | path = fetchurl { | ||
495 | name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.1.tgz"; | ||
496 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz"; | ||
497 | sha1 = "c900a793beb096bc9d4d0a9d0cde19518ffc83b9"; | ||
498 | }; | ||
499 | } | ||
500 | { | ||
501 | name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.1.tgz"; | ||
502 | path = fetchurl { | ||
503 | name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.1.tgz"; | ||
504 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz"; | ||
505 | sha1 = "279c3116756a60dd6e6f5e488ba7957db9c59eb3"; | ||
506 | }; | ||
507 | } | ||
508 | { | ||
509 | name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.1.tgz"; | ||
510 | path = fetchurl { | ||
511 | name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.1.tgz"; | ||
512 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz"; | ||
513 | sha1 = "ff01119784eb0ee32258e8646157ba2501fcfda5"; | ||
514 | }; | ||
515 | } | ||
516 | { | ||
517 | name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.1.tgz"; | ||
518 | path = fetchurl { | ||
519 | name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.1.tgz"; | ||
520 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz"; | ||
521 | sha1 = "4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d"; | ||
522 | }; | ||
523 | } | ||
524 | { | ||
525 | name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.1.tgz"; | ||
526 | path = fetchurl { | ||
527 | name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.1.tgz"; | ||
528 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz"; | ||
529 | sha1 = "5794f8da82846b22e4e6631ea1658bce708eb46a"; | ||
530 | }; | ||
531 | } | ||
532 | { | ||
533 | name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.1.tgz"; | ||
534 | path = fetchurl { | ||
535 | name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.1.tgz"; | ||
536 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz"; | ||
537 | sha1 = "90347cba31bca6f394b3f7bd95d2bbfd9fce2f39"; | ||
538 | }; | ||
539 | } | ||
540 | { | ||
541 | name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.1.tgz"; | ||
542 | path = fetchurl { | ||
543 | name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.1.tgz"; | ||
544 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz"; | ||
545 | sha1 = "65950e8e05797ebd2fe532b96e19fc5482a1d52a"; | ||
546 | }; | ||
547 | } | ||
548 | { | ||
549 | name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.1.tgz"; | ||
550 | path = fetchurl { | ||
551 | name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.1.tgz"; | ||
552 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz"; | ||
553 | sha1 = "d5ff4b4413ed97ffded99961056e1fb980fb9301"; | ||
554 | }; | ||
555 | } | ||
556 | { | ||
557 | name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.1.tgz"; | ||
558 | path = fetchurl { | ||
559 | name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.1.tgz"; | ||
560 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz"; | ||
561 | sha1 = "9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6"; | ||
562 | }; | ||
563 | } | ||
564 | { | ||
565 | name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.1.tgz"; | ||
566 | path = fetchurl { | ||
567 | name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.1.tgz"; | ||
568 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz"; | ||
569 | sha1 = "ea080911ffc6eb21840a5197a39ede4ee67b1595"; | ||
570 | }; | ||
571 | } | ||
572 | { | ||
573 | name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz"; | ||
574 | path = fetchurl { | ||
575 | name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz"; | ||
576 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz"; | ||
577 | sha1 = "a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c"; | ||
578 | }; | ||
579 | } | ||
580 | { | ||
581 | name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.1.tgz"; | ||
582 | path = fetchurl { | ||
583 | name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.1.tgz"; | ||
584 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz"; | ||
585 | sha1 = "6ee41a5e648da7632e22b6fb54012e87f612f324"; | ||
586 | }; | ||
587 | } | ||
588 | { | ||
589 | name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.1.tgz"; | ||
590 | path = fetchurl { | ||
591 | name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.1.tgz"; | ||
592 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz"; | ||
593 | sha1 = "2e3016b0adbf262983bf0d5121d676a5ed9c4fde"; | ||
594 | }; | ||
595 | } | ||
596 | { | ||
597 | name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.1.tgz"; | ||
598 | path = fetchurl { | ||
599 | name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.1.tgz"; | ||
600 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz"; | ||
601 | sha1 = "b25938a3c5fae0354144a720b07b32766f683ddd"; | ||
602 | }; | ||
603 | } | ||
604 | { | ||
605 | name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.1.tgz"; | ||
606 | path = fetchurl { | ||
607 | name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.1.tgz"; | ||
608 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz"; | ||
609 | sha1 = "cffc7315219230ed81dc53e4625bf86815b6050d"; | ||
610 | }; | ||
611 | } | ||
612 | { | ||
613 | name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.1.tgz"; | ||
614 | path = fetchurl { | ||
615 | name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.1.tgz"; | ||
616 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz"; | ||
617 | sha1 = "10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490"; | ||
618 | }; | ||
619 | } | ||
620 | { | ||
621 | name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.1.tgz"; | ||
622 | path = fetchurl { | ||
623 | name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.1.tgz"; | ||
624 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz"; | ||
625 | sha1 = "0fc1027312b4d1c3276a57890c8ae3bcc0b64a86"; | ||
626 | }; | ||
627 | } | ||
628 | { | ||
629 | name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.10.1.tgz"; | ||
630 | path = fetchurl { | ||
631 | name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.10.1.tgz"; | ||
632 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.1.tgz"; | ||
633 | sha1 = "fd1887f749637fb2ed86dc278e79eb41df37f4b1"; | ||
634 | }; | ||
635 | } | ||
636 | { | ||
637 | name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.1.tgz"; | ||
638 | path = fetchurl { | ||
639 | name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.1.tgz"; | ||
640 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz"; | ||
641 | sha1 = "e8b54f238a1ccbae482c4dce946180ae7b3143f3"; | ||
642 | }; | ||
643 | } | ||
644 | { | ||
645 | name = "_babel_plugin_transform_spread___plugin_transform_spread_7.10.1.tgz"; | ||
646 | path = fetchurl { | ||
647 | name = "_babel_plugin_transform_spread___plugin_transform_spread_7.10.1.tgz"; | ||
648 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz"; | ||
649 | sha1 = "0c6d618a0c4461a274418460a28c9ccf5239a7c8"; | ||
650 | }; | ||
651 | } | ||
652 | { | ||
653 | name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.1.tgz"; | ||
654 | path = fetchurl { | ||
655 | name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.1.tgz"; | ||
656 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz"; | ||
657 | sha1 = "90fc89b7526228bed9842cff3588270a7a393b00"; | ||
658 | }; | ||
659 | } | ||
660 | { | ||
661 | name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.1.tgz"; | ||
662 | path = fetchurl { | ||
663 | name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.1.tgz"; | ||
664 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz"; | ||
665 | sha1 = "914c7b7f4752c570ea00553b4284dad8070e8628"; | ||
666 | }; | ||
667 | } | ||
668 | { | ||
669 | name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.1.tgz"; | ||
670 | path = fetchurl { | ||
671 | name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.1.tgz"; | ||
672 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz"; | ||
673 | sha1 = "60c0239b69965d166b80a84de7315c1bc7e0bb0e"; | ||
674 | }; | ||
675 | } | ||
676 | { | ||
677 | name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.1.tgz"; | ||
678 | path = fetchurl { | ||
679 | name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.1.tgz"; | ||
680 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz"; | ||
681 | sha1 = "add0f8483dab60570d9e03cecef6c023aa8c9940"; | ||
682 | }; | ||
683 | } | ||
684 | { | ||
685 | name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.1.tgz"; | ||
686 | path = fetchurl { | ||
687 | name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.1.tgz"; | ||
688 | url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz"; | ||
689 | sha1 = "6b58f2aea7b68df37ac5025d9c88752443a6b43f"; | ||
690 | }; | ||
691 | } | ||
692 | { | ||
693 | name = "_babel_preset_env___preset_env_7.10.2.tgz"; | ||
694 | path = fetchurl { | ||
695 | name = "_babel_preset_env___preset_env_7.10.2.tgz"; | ||
696 | url = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.2.tgz"; | ||
697 | sha1 = "715930f2cf8573b0928005ee562bed52fb65fdfb"; | ||
698 | }; | ||
699 | } | ||
700 | { | ||
701 | name = "_babel_preset_modules___preset_modules_0.1.3.tgz"; | ||
702 | path = fetchurl { | ||
703 | name = "_babel_preset_modules___preset_modules_0.1.3.tgz"; | ||
704 | url = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz"; | ||
705 | sha1 = "13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"; | ||
706 | }; | ||
707 | } | ||
708 | { | ||
709 | name = "_babel_runtime___runtime_7.10.2.tgz"; | ||
710 | path = fetchurl { | ||
711 | name = "_babel_runtime___runtime_7.10.2.tgz"; | ||
712 | url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz"; | ||
713 | sha1 = "d103f21f2602497d38348a32e008637d506db839"; | ||
714 | }; | ||
715 | } | ||
716 | { | ||
717 | name = "_babel_template___template_7.10.1.tgz"; | ||
718 | path = fetchurl { | ||
719 | name = "_babel_template___template_7.10.1.tgz"; | ||
720 | url = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz"; | ||
721 | sha1 = "e167154a94cb5f14b28dc58f5356d2162f539811"; | ||
722 | }; | ||
723 | } | ||
724 | { | ||
725 | name = "_babel_traverse___traverse_7.10.1.tgz"; | ||
726 | path = fetchurl { | ||
727 | name = "_babel_traverse___traverse_7.10.1.tgz"; | ||
728 | url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz"; | ||
729 | sha1 = "bbcef3031e4152a6c0b50147f4958df54ca0dd27"; | ||
730 | }; | ||
731 | } | ||
732 | { | ||
733 | name = "_babel_types___types_7.10.2.tgz"; | ||
734 | path = fetchurl { | ||
735 | name = "_babel_types___types_7.10.2.tgz"; | ||
736 | url = "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz"; | ||
737 | sha1 = "30283be31cad0dbf6fb00bd40641ca0ea675172d"; | ||
738 | }; | ||
739 | } | ||
740 | { | ||
741 | name = "_fortawesome_fontawesome_free___fontawesome_free_5.13.0.tgz"; | ||
742 | path = fetchurl { | ||
743 | name = "_fortawesome_fontawesome_free___fontawesome_free_5.13.0.tgz"; | ||
744 | url = "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz"; | ||
745 | sha1 = "fcb113d1aca4b471b709e8c9c168674fbd6e06d9"; | ||
746 | }; | ||
747 | } | ||
748 | { | ||
749 | name = "_hapi_address___address_2.1.4.tgz"; | ||
750 | path = fetchurl { | ||
751 | name = "_hapi_address___address_2.1.4.tgz"; | ||
752 | url = "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz"; | ||
753 | sha1 = "5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"; | ||
754 | }; | ||
755 | } | ||
756 | { | ||
757 | name = "_hapi_bourne___bourne_1.3.2.tgz"; | ||
758 | path = fetchurl { | ||
759 | name = "_hapi_bourne___bourne_1.3.2.tgz"; | ||
760 | url = "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz"; | ||
761 | sha1 = "0a7095adea067243ce3283e1b56b8a8f453b242a"; | ||
762 | }; | ||
763 | } | ||
764 | { | ||
765 | name = "_hapi_hoek___hoek_8.5.1.tgz"; | ||
766 | path = fetchurl { | ||
767 | name = "_hapi_hoek___hoek_8.5.1.tgz"; | ||
768 | url = "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz"; | ||
769 | sha1 = "fde96064ca446dec8c55a8c2f130957b070c6e06"; | ||
770 | }; | ||
771 | } | ||
772 | { | ||
773 | name = "_hapi_joi___joi_15.1.1.tgz"; | ||
774 | path = fetchurl { | ||
775 | name = "_hapi_joi___joi_15.1.1.tgz"; | ||
776 | url = "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz"; | ||
777 | sha1 = "c675b8a71296f02833f8d6d243b34c57b8ce19d7"; | ||
778 | }; | ||
779 | } | ||
780 | { | ||
781 | name = "_hapi_topo___topo_3.1.6.tgz"; | ||
782 | path = fetchurl { | ||
783 | name = "_hapi_topo___topo_3.1.6.tgz"; | ||
784 | url = "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz"; | ||
785 | sha1 = "68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"; | ||
786 | }; | ||
787 | } | ||
788 | { | ||
789 | name = "_intervolga_optimize_cssnano_plugin___optimize_cssnano_plugin_1.0.6.tgz"; | ||
790 | path = fetchurl { | ||
791 | name = "_intervolga_optimize_cssnano_plugin___optimize_cssnano_plugin_1.0.6.tgz"; | ||
792 | url = "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz"; | ||
793 | sha1 = "be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8"; | ||
794 | }; | ||
795 | } | ||
796 | { | ||
797 | name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz"; | ||
798 | path = fetchurl { | ||
799 | name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz"; | ||
800 | url = "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz"; | ||
801 | sha1 = "524af240d1a360527b730475ecfa1344aa540dde"; | ||
802 | }; | ||
803 | } | ||
804 | { | ||
805 | name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz"; | ||
806 | path = fetchurl { | ||
807 | name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz"; | ||
808 | url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz"; | ||
809 | sha1 = "2b5a3ab3f918cca48a8c754c08168e3f03eba61b"; | ||
810 | }; | ||
811 | } | ||
812 | { | ||
813 | name = "_soda_friendly_errors_webpack_plugin___friendly_errors_webpack_plugin_1.7.1.tgz"; | ||
814 | path = fetchurl { | ||
815 | name = "_soda_friendly_errors_webpack_plugin___friendly_errors_webpack_plugin_1.7.1.tgz"; | ||
816 | url = "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz"; | ||
817 | sha1 = "706f64bcb4a8b9642b48ae3ace444c70334d615d"; | ||
818 | }; | ||
819 | } | ||
820 | { | ||
821 | name = "_soda_get_current_script___get_current_script_1.0.1.tgz"; | ||
822 | path = fetchurl { | ||
823 | name = "_soda_get_current_script___get_current_script_1.0.1.tgz"; | ||
824 | url = "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.1.tgz"; | ||
825 | sha1 = "f4afffcb36e069a801d5339c90499601c47a2516"; | ||
826 | }; | ||
827 | } | ||
828 | { | ||
829 | name = "_types_color_name___color_name_1.1.1.tgz"; | ||
830 | path = fetchurl { | ||
831 | name = "_types_color_name___color_name_1.1.1.tgz"; | ||
832 | url = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz"; | ||
833 | sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"; | ||
834 | }; | ||
835 | } | ||
836 | { | ||
837 | name = "_types_glob___glob_7.1.2.tgz"; | ||
838 | path = fetchurl { | ||
839 | name = "_types_glob___glob_7.1.2.tgz"; | ||
840 | url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.2.tgz"; | ||
841 | sha1 = "06ca26521353a545d94a0adc74f38a59d232c987"; | ||
842 | }; | ||
843 | } | ||
844 | { | ||
845 | name = "_types_json_schema___json_schema_7.0.4.tgz"; | ||
846 | path = fetchurl { | ||
847 | name = "_types_json_schema___json_schema_7.0.4.tgz"; | ||
848 | url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz"; | ||
849 | sha1 = "38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339"; | ||
850 | }; | ||
851 | } | ||
852 | { | ||
853 | name = "_types_minimatch___minimatch_3.0.3.tgz"; | ||
854 | path = fetchurl { | ||
855 | name = "_types_minimatch___minimatch_3.0.3.tgz"; | ||
856 | url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz"; | ||
857 | sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"; | ||
858 | }; | ||
859 | } | ||
860 | { | ||
861 | name = "_types_node___node_14.0.11.tgz"; | ||
862 | path = fetchurl { | ||
863 | name = "_types_node___node_14.0.11.tgz"; | ||
864 | url = "https://registry.yarnpkg.com/@types/node/-/node-14.0.11.tgz"; | ||
865 | sha1 = "61d4886e2424da73b7b25547f59fdcb534c165a3"; | ||
866 | }; | ||
867 | } | ||
868 | { | ||
869 | name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz"; | ||
870 | path = fetchurl { | ||
871 | name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz"; | ||
872 | url = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz"; | ||
873 | sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e"; | ||
874 | }; | ||
875 | } | ||
876 | { | ||
877 | name = "_types_q___q_1.5.4.tgz"; | ||
878 | path = fetchurl { | ||
879 | name = "_types_q___q_1.5.4.tgz"; | ||
880 | url = "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz"; | ||
881 | sha1 = "15925414e0ad2cd765bfef58842f7e26a7accb24"; | ||
882 | }; | ||
883 | } | ||
884 | { | ||
885 | name = "_vue_babel_helper_vue_jsx_merge_props___babel_helper_vue_jsx_merge_props_1.0.0.tgz"; | ||
886 | path = fetchurl { | ||
887 | name = "_vue_babel_helper_vue_jsx_merge_props___babel_helper_vue_jsx_merge_props_1.0.0.tgz"; | ||
888 | url = "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz"; | ||
889 | sha1 = "048fe579958da408fb7a8b2a3ec050b50a661040"; | ||
890 | }; | ||
891 | } | ||
892 | { | ||
893 | name = "_vue_babel_plugin_transform_vue_jsx___babel_plugin_transform_vue_jsx_1.1.2.tgz"; | ||
894 | path = fetchurl { | ||
895 | name = "_vue_babel_plugin_transform_vue_jsx___babel_plugin_transform_vue_jsx_1.1.2.tgz"; | ||
896 | url = "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz"; | ||
897 | sha1 = "c0a3e6efc022e75e4247b448a8fc6b86f03e91c0"; | ||
898 | }; | ||
899 | } | ||
900 | { | ||
901 | name = "_vue_babel_preset_app___babel_preset_app_4.4.1.tgz"; | ||
902 | path = fetchurl { | ||
903 | name = "_vue_babel_preset_app___babel_preset_app_4.4.1.tgz"; | ||
904 | url = "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.4.1.tgz"; | ||
905 | sha1 = "97c6796183cd0abf96a17297dc335c4c702fd8c4"; | ||
906 | }; | ||
907 | } | ||
908 | { | ||
909 | name = "_vue_babel_preset_jsx___babel_preset_jsx_1.1.2.tgz"; | ||
910 | path = fetchurl { | ||
911 | name = "_vue_babel_preset_jsx___babel_preset_jsx_1.1.2.tgz"; | ||
912 | url = "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz"; | ||
913 | sha1 = "2e169eb4c204ea37ca66c2ea85a880bfc99d4f20"; | ||
914 | }; | ||
915 | } | ||
916 | { | ||
917 | name = "_vue_babel_sugar_functional_vue___babel_sugar_functional_vue_1.1.2.tgz"; | ||
918 | path = fetchurl { | ||
919 | name = "_vue_babel_sugar_functional_vue___babel_sugar_functional_vue_1.1.2.tgz"; | ||
920 | url = "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz"; | ||
921 | sha1 = "f7e24fba09e6f1ee70104560a8808057555f1a9a"; | ||
922 | }; | ||
923 | } | ||
924 | { | ||
925 | name = "_vue_babel_sugar_inject_h___babel_sugar_inject_h_1.1.2.tgz"; | ||
926 | path = fetchurl { | ||
927 | name = "_vue_babel_sugar_inject_h___babel_sugar_inject_h_1.1.2.tgz"; | ||
928 | url = "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz"; | ||
929 | sha1 = "8a5276b6d8e2ed16ffc8078aad94236274e6edf0"; | ||
930 | }; | ||
931 | } | ||
932 | { | ||
933 | name = "_vue_babel_sugar_v_model___babel_sugar_v_model_1.1.2.tgz"; | ||
934 | path = fetchurl { | ||
935 | name = "_vue_babel_sugar_v_model___babel_sugar_v_model_1.1.2.tgz"; | ||
936 | url = "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz"; | ||
937 | sha1 = "1ff6fd1b800223fc9cb1e84dceb5e52d737a8192"; | ||
938 | }; | ||
939 | } | ||
940 | { | ||
941 | name = "_vue_babel_sugar_v_on___babel_sugar_v_on_1.1.2.tgz"; | ||
942 | path = fetchurl { | ||
943 | name = "_vue_babel_sugar_v_on___babel_sugar_v_on_1.1.2.tgz"; | ||
944 | url = "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz"; | ||
945 | sha1 = "b2ef99b8f2fab09fbead25aad70ef42e1cf5b13b"; | ||
946 | }; | ||
947 | } | ||
948 | { | ||
949 | name = "_vue_cli_overlay___cli_overlay_4.4.1.tgz"; | ||
950 | path = fetchurl { | ||
951 | name = "_vue_cli_overlay___cli_overlay_4.4.1.tgz"; | ||
952 | url = "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.4.1.tgz"; | ||
953 | sha1 = "f1f51f31f7a00d371e9a5b5a941525184475bf8b"; | ||
954 | }; | ||
955 | } | ||
956 | { | ||
957 | name = "_vue_cli_plugin_babel___cli_plugin_babel_4.4.1.tgz"; | ||
958 | path = fetchurl { | ||
959 | name = "_vue_cli_plugin_babel___cli_plugin_babel_4.4.1.tgz"; | ||
960 | url = "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.4.1.tgz"; | ||
961 | sha1 = "2c6e969fe51f1b4b211bea84afb7cad18240f70f"; | ||
962 | }; | ||
963 | } | ||
964 | { | ||
965 | name = "_vue_cli_plugin_eslint___cli_plugin_eslint_4.4.1.tgz"; | ||
966 | path = fetchurl { | ||
967 | name = "_vue_cli_plugin_eslint___cli_plugin_eslint_4.4.1.tgz"; | ||
968 | url = "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.4.1.tgz"; | ||
969 | sha1 = "e39d6517da6de231195d227f995f495e2958a74a"; | ||
970 | }; | ||
971 | } | ||
972 | { | ||
973 | name = "_vue_cli_plugin_pwa___cli_plugin_pwa_4.4.1.tgz"; | ||
974 | path = fetchurl { | ||
975 | name = "_vue_cli_plugin_pwa___cli_plugin_pwa_4.4.1.tgz"; | ||
976 | url = "https://registry.yarnpkg.com/@vue/cli-plugin-pwa/-/cli-plugin-pwa-4.4.1.tgz"; | ||
977 | sha1 = "e7bc010bc78cfaf74968c11fb332f3abc1ef298d"; | ||
978 | }; | ||
979 | } | ||
980 | { | ||
981 | name = "_vue_cli_plugin_router___cli_plugin_router_4.4.1.tgz"; | ||
982 | path = fetchurl { | ||
983 | name = "_vue_cli_plugin_router___cli_plugin_router_4.4.1.tgz"; | ||
984 | url = "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.4.1.tgz"; | ||
985 | sha1 = "07d09df0f4bea816e637da814f578b808f1f93b2"; | ||
986 | }; | ||
987 | } | ||
988 | { | ||
989 | name = "_vue_cli_plugin_vuex___cli_plugin_vuex_4.4.1.tgz"; | ||
990 | path = fetchurl { | ||
991 | name = "_vue_cli_plugin_vuex___cli_plugin_vuex_4.4.1.tgz"; | ||
992 | url = "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.4.1.tgz"; | ||
993 | sha1 = "98d18fc5d36fa6e0d1fc2ecaeea37aa965564f19"; | ||
994 | }; | ||
995 | } | ||
996 | { | ||
997 | name = "_vue_cli_service___cli_service_4.4.1.tgz"; | ||
998 | path = fetchurl { | ||
999 | name = "_vue_cli_service___cli_service_4.4.1.tgz"; | ||
1000 | url = "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.4.1.tgz"; | ||
1001 | sha1 = "b26a435d8c953bc7efaf7b784c9835c1415bcf1c"; | ||
1002 | }; | ||
1003 | } | ||
1004 | { | ||
1005 | name = "_vue_cli_shared_utils___cli_shared_utils_4.4.1.tgz"; | ||
1006 | path = fetchurl { | ||
1007 | name = "_vue_cli_shared_utils___cli_shared_utils_4.4.1.tgz"; | ||
1008 | url = "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz"; | ||
1009 | sha1 = "930304ade5a9f9bf0d2fd67d9305cad83d04aae1"; | ||
1010 | }; | ||
1011 | } | ||
1012 | { | ||
1013 | name = "_vue_component_compiler_utils___component_compiler_utils_3.1.2.tgz"; | ||
1014 | path = fetchurl { | ||
1015 | name = "_vue_component_compiler_utils___component_compiler_utils_3.1.2.tgz"; | ||
1016 | url = "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.2.tgz"; | ||
1017 | sha1 = "8213a5ff3202f9f2137fe55370f9e8b9656081c3"; | ||
1018 | }; | ||
1019 | } | ||
1020 | { | ||
1021 | name = "_vue_eslint_config_prettier___eslint_config_prettier_6.0.0.tgz"; | ||
1022 | path = fetchurl { | ||
1023 | name = "_vue_eslint_config_prettier___eslint_config_prettier_6.0.0.tgz"; | ||
1024 | url = "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-6.0.0.tgz"; | ||
1025 | sha1 = "ad5912b308f4ae468458e02a2b05db0b9d246700"; | ||
1026 | }; | ||
1027 | } | ||
1028 | { | ||
1029 | name = "_vue_preload_webpack_plugin___preload_webpack_plugin_1.1.1.tgz"; | ||
1030 | path = fetchurl { | ||
1031 | name = "_vue_preload_webpack_plugin___preload_webpack_plugin_1.1.1.tgz"; | ||
1032 | url = "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.1.tgz"; | ||
1033 | sha1 = "18723530d304f443021da2292d6ec9502826104a"; | ||
1034 | }; | ||
1035 | } | ||
1036 | { | ||
1037 | name = "_vue_web_component_wrapper___web_component_wrapper_1.2.0.tgz"; | ||
1038 | path = fetchurl { | ||
1039 | name = "_vue_web_component_wrapper___web_component_wrapper_1.2.0.tgz"; | ||
1040 | url = "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz"; | ||
1041 | sha1 = "bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1"; | ||
1042 | }; | ||
1043 | } | ||
1044 | { | ||
1045 | name = "_webassemblyjs_ast___ast_1.9.0.tgz"; | ||
1046 | path = fetchurl { | ||
1047 | name = "_webassemblyjs_ast___ast_1.9.0.tgz"; | ||
1048 | url = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz"; | ||
1049 | sha1 = "bd850604b4042459a5a41cd7d338cbed695ed964"; | ||
1050 | }; | ||
1051 | } | ||
1052 | { | ||
1053 | name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz"; | ||
1054 | path = fetchurl { | ||
1055 | name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz"; | ||
1056 | url = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz"; | ||
1057 | sha1 = "3c3d3b271bddfc84deb00f71344438311d52ffb4"; | ||
1058 | }; | ||
1059 | } | ||
1060 | { | ||
1061 | name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz"; | ||
1062 | path = fetchurl { | ||
1063 | name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz"; | ||
1064 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz"; | ||
1065 | sha1 = "203f676e333b96c9da2eeab3ccef33c45928b6a2"; | ||
1066 | }; | ||
1067 | } | ||
1068 | { | ||
1069 | name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz"; | ||
1070 | path = fetchurl { | ||
1071 | name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz"; | ||
1072 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz"; | ||
1073 | sha1 = "a1442d269c5feb23fcbc9ef759dac3547f29de00"; | ||
1074 | }; | ||
1075 | } | ||
1076 | { | ||
1077 | name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz"; | ||
1078 | path = fetchurl { | ||
1079 | name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz"; | ||
1080 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz"; | ||
1081 | sha1 = "647f8892cd2043a82ac0c8c5e75c36f1d9159f27"; | ||
1082 | }; | ||
1083 | } | ||
1084 | { | ||
1085 | name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz"; | ||
1086 | path = fetchurl { | ||
1087 | name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz"; | ||
1088 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz"; | ||
1089 | sha1 = "c05256b71244214671f4b08ec108ad63b70eddb8"; | ||
1090 | }; | ||
1091 | } | ||
1092 | { | ||
1093 | name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz"; | ||
1094 | path = fetchurl { | ||
1095 | name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz"; | ||
1096 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz"; | ||
1097 | sha1 = "25d8884b76839871a08a6c6f806c3979ef712f07"; | ||
1098 | }; | ||
1099 | } | ||
1100 | { | ||
1101 | name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz"; | ||
1102 | path = fetchurl { | ||
1103 | name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz"; | ||
1104 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz"; | ||
1105 | sha1 = "4fed8beac9b8c14f8c58b70d124d549dd1fe5790"; | ||
1106 | }; | ||
1107 | } | ||
1108 | { | ||
1109 | name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz"; | ||
1110 | path = fetchurl { | ||
1111 | name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz"; | ||
1112 | url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz"; | ||
1113 | sha1 = "5a4138d5a6292ba18b04c5ae49717e4167965346"; | ||
1114 | }; | ||
1115 | } | ||
1116 | { | ||
1117 | name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz"; | ||
1118 | path = fetchurl { | ||
1119 | name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz"; | ||
1120 | url = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz"; | ||
1121 | sha1 = "15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"; | ||
1122 | }; | ||
1123 | } | ||
1124 | { | ||
1125 | name = "_webassemblyjs_leb128___leb128_1.9.0.tgz"; | ||
1126 | path = fetchurl { | ||
1127 | name = "_webassemblyjs_leb128___leb128_1.9.0.tgz"; | ||
1128 | url = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz"; | ||
1129 | sha1 = "f19ca0b76a6dc55623a09cffa769e838fa1e1c95"; | ||
1130 | }; | ||
1131 | } | ||
1132 | { | ||
1133 | name = "_webassemblyjs_utf8___utf8_1.9.0.tgz"; | ||
1134 | path = fetchurl { | ||
1135 | name = "_webassemblyjs_utf8___utf8_1.9.0.tgz"; | ||
1136 | url = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz"; | ||
1137 | sha1 = "04d33b636f78e6a6813227e82402f7637b6229ab"; | ||
1138 | }; | ||
1139 | } | ||
1140 | { | ||
1141 | name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz"; | ||
1142 | path = fetchurl { | ||
1143 | name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz"; | ||
1144 | url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz"; | ||
1145 | sha1 = "3fe6d79d3f0f922183aa86002c42dd256cfee9cf"; | ||
1146 | }; | ||
1147 | } | ||
1148 | { | ||
1149 | name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz"; | ||
1150 | path = fetchurl { | ||
1151 | name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz"; | ||
1152 | url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz"; | ||
1153 | sha1 = "50bc70ec68ded8e2763b01a1418bf43491a7a49c"; | ||
1154 | }; | ||
1155 | } | ||
1156 | { | ||
1157 | name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz"; | ||
1158 | path = fetchurl { | ||
1159 | name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz"; | ||
1160 | url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz"; | ||
1161 | sha1 = "2211181e5b31326443cc8112eb9f0b9028721a61"; | ||
1162 | }; | ||
1163 | } | ||
1164 | { | ||
1165 | name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz"; | ||
1166 | path = fetchurl { | ||
1167 | name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz"; | ||
1168 | url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz"; | ||
1169 | sha1 = "9d48e44826df4a6598294aa6c87469d642fff65e"; | ||
1170 | }; | ||
1171 | } | ||
1172 | { | ||
1173 | name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz"; | ||
1174 | path = fetchurl { | ||
1175 | name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz"; | ||
1176 | url = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz"; | ||
1177 | sha1 = "3031115d79ac5bd261556cecc3fa90a3ef451914"; | ||
1178 | }; | ||
1179 | } | ||
1180 | { | ||
1181 | name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz"; | ||
1182 | path = fetchurl { | ||
1183 | name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz"; | ||
1184 | url = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz"; | ||
1185 | sha1 = "4935d54c85fef637b00ce9f52377451d00d47899"; | ||
1186 | }; | ||
1187 | } | ||
1188 | { | ||
1189 | name = "_xtuc_ieee754___ieee754_1.2.0.tgz"; | ||
1190 | path = fetchurl { | ||
1191 | name = "_xtuc_ieee754___ieee754_1.2.0.tgz"; | ||
1192 | url = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz"; | ||
1193 | sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790"; | ||
1194 | }; | ||
1195 | } | ||
1196 | { | ||
1197 | name = "_xtuc_long___long_4.2.2.tgz"; | ||
1198 | path = fetchurl { | ||
1199 | name = "_xtuc_long___long_4.2.2.tgz"; | ||
1200 | url = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz"; | ||
1201 | sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d"; | ||
1202 | }; | ||
1203 | } | ||
1204 | { | ||
1205 | name = "accepts___accepts_1.3.7.tgz"; | ||
1206 | path = fetchurl { | ||
1207 | name = "accepts___accepts_1.3.7.tgz"; | ||
1208 | url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz"; | ||
1209 | sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd"; | ||
1210 | }; | ||
1211 | } | ||
1212 | { | ||
1213 | name = "acorn_jsx___acorn_jsx_5.2.0.tgz"; | ||
1214 | path = fetchurl { | ||
1215 | name = "acorn_jsx___acorn_jsx_5.2.0.tgz"; | ||
1216 | url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz"; | ||
1217 | sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe"; | ||
1218 | }; | ||
1219 | } | ||
1220 | { | ||
1221 | name = "acorn_walk___acorn_walk_7.1.1.tgz"; | ||
1222 | path = fetchurl { | ||
1223 | name = "acorn_walk___acorn_walk_7.1.1.tgz"; | ||
1224 | url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz"; | ||
1225 | sha1 = "345f0dffad5c735e7373d2fec9a1023e6a44b83e"; | ||
1226 | }; | ||
1227 | } | ||
1228 | { | ||
1229 | name = "acorn___acorn_6.4.1.tgz"; | ||
1230 | path = fetchurl { | ||
1231 | name = "acorn___acorn_6.4.1.tgz"; | ||
1232 | url = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz"; | ||
1233 | sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474"; | ||
1234 | }; | ||
1235 | } | ||
1236 | { | ||
1237 | name = "acorn___acorn_7.2.0.tgz"; | ||
1238 | path = fetchurl { | ||
1239 | name = "acorn___acorn_7.2.0.tgz"; | ||
1240 | url = "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz"; | ||
1241 | sha1 = "17ea7e40d7c8640ff54a694c889c26f31704effe"; | ||
1242 | }; | ||
1243 | } | ||
1244 | { | ||
1245 | name = "address___address_1.1.2.tgz"; | ||
1246 | path = fetchurl { | ||
1247 | name = "address___address_1.1.2.tgz"; | ||
1248 | url = "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz"; | ||
1249 | sha1 = "bf1116c9c758c51b7a933d296b72c221ed9428b6"; | ||
1250 | }; | ||
1251 | } | ||
1252 | { | ||
1253 | name = "aggregate_error___aggregate_error_3.0.1.tgz"; | ||
1254 | path = fetchurl { | ||
1255 | name = "aggregate_error___aggregate_error_3.0.1.tgz"; | ||
1256 | url = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz"; | ||
1257 | sha1 = "db2fe7246e536f40d9b5442a39e117d7dd6a24e0"; | ||
1258 | }; | ||
1259 | } | ||
1260 | { | ||
1261 | name = "ajv_errors___ajv_errors_1.0.1.tgz"; | ||
1262 | path = fetchurl { | ||
1263 | name = "ajv_errors___ajv_errors_1.0.1.tgz"; | ||
1264 | url = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz"; | ||
1265 | sha1 = "f35986aceb91afadec4102fbd85014950cefa64d"; | ||
1266 | }; | ||
1267 | } | ||
1268 | { | ||
1269 | name = "ajv_keywords___ajv_keywords_3.4.1.tgz"; | ||
1270 | path = fetchurl { | ||
1271 | name = "ajv_keywords___ajv_keywords_3.4.1.tgz"; | ||
1272 | url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz"; | ||
1273 | sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da"; | ||
1274 | }; | ||
1275 | } | ||
1276 | { | ||
1277 | name = "ajv___ajv_6.12.2.tgz"; | ||
1278 | path = fetchurl { | ||
1279 | name = "ajv___ajv_6.12.2.tgz"; | ||
1280 | url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz"; | ||
1281 | sha1 = "c629c5eced17baf314437918d2da88c99d5958cd"; | ||
1282 | }; | ||
1283 | } | ||
1284 | { | ||
1285 | name = "alphanum_sort___alphanum_sort_1.0.2.tgz"; | ||
1286 | path = fetchurl { | ||
1287 | name = "alphanum_sort___alphanum_sort_1.0.2.tgz"; | ||
1288 | url = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz"; | ||
1289 | sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3"; | ||
1290 | }; | ||
1291 | } | ||
1292 | { | ||
1293 | name = "ansi_colors___ansi_colors_3.2.4.tgz"; | ||
1294 | path = fetchurl { | ||
1295 | name = "ansi_colors___ansi_colors_3.2.4.tgz"; | ||
1296 | url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz"; | ||
1297 | sha1 = "e3a3da4bfbae6c86a9c285625de124a234026fbf"; | ||
1298 | }; | ||
1299 | } | ||
1300 | { | ||
1301 | name = "ansi_escapes___ansi_escapes_4.3.1.tgz"; | ||
1302 | path = fetchurl { | ||
1303 | name = "ansi_escapes___ansi_escapes_4.3.1.tgz"; | ||
1304 | url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz"; | ||
1305 | sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61"; | ||
1306 | }; | ||
1307 | } | ||
1308 | { | ||
1309 | name = "ansi_html___ansi_html_0.0.7.tgz"; | ||
1310 | path = fetchurl { | ||
1311 | name = "ansi_html___ansi_html_0.0.7.tgz"; | ||
1312 | url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz"; | ||
1313 | sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e"; | ||
1314 | }; | ||
1315 | } | ||
1316 | { | ||
1317 | name = "ansi_regex___ansi_regex_2.1.1.tgz"; | ||
1318 | path = fetchurl { | ||
1319 | name = "ansi_regex___ansi_regex_2.1.1.tgz"; | ||
1320 | url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz"; | ||
1321 | sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; | ||
1322 | }; | ||
1323 | } | ||
1324 | { | ||
1325 | name = "ansi_regex___ansi_regex_3.0.0.tgz"; | ||
1326 | path = fetchurl { | ||
1327 | name = "ansi_regex___ansi_regex_3.0.0.tgz"; | ||
1328 | url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz"; | ||
1329 | sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; | ||
1330 | }; | ||
1331 | } | ||
1332 | { | ||
1333 | name = "ansi_regex___ansi_regex_4.1.0.tgz"; | ||
1334 | path = fetchurl { | ||
1335 | name = "ansi_regex___ansi_regex_4.1.0.tgz"; | ||
1336 | url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz"; | ||
1337 | sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997"; | ||
1338 | }; | ||
1339 | } | ||
1340 | { | ||
1341 | name = "ansi_regex___ansi_regex_5.0.0.tgz"; | ||
1342 | path = fetchurl { | ||
1343 | name = "ansi_regex___ansi_regex_5.0.0.tgz"; | ||
1344 | url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz"; | ||
1345 | sha1 = "388539f55179bf39339c81af30a654d69f87cb75"; | ||
1346 | }; | ||
1347 | } | ||
1348 | { | ||
1349 | name = "ansi_styles___ansi_styles_2.2.1.tgz"; | ||
1350 | path = fetchurl { | ||
1351 | name = "ansi_styles___ansi_styles_2.2.1.tgz"; | ||
1352 | url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz"; | ||
1353 | sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; | ||
1354 | }; | ||
1355 | } | ||
1356 | { | ||
1357 | name = "ansi_styles___ansi_styles_3.2.1.tgz"; | ||
1358 | path = fetchurl { | ||
1359 | name = "ansi_styles___ansi_styles_3.2.1.tgz"; | ||
1360 | url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz"; | ||
1361 | sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d"; | ||
1362 | }; | ||
1363 | } | ||
1364 | { | ||
1365 | name = "ansi_styles___ansi_styles_4.2.1.tgz"; | ||
1366 | path = fetchurl { | ||
1367 | name = "ansi_styles___ansi_styles_4.2.1.tgz"; | ||
1368 | url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz"; | ||
1369 | sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359"; | ||
1370 | }; | ||
1371 | } | ||
1372 | { | ||
1373 | name = "any_promise___any_promise_1.3.0.tgz"; | ||
1374 | path = fetchurl { | ||
1375 | name = "any_promise___any_promise_1.3.0.tgz"; | ||
1376 | url = "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz"; | ||
1377 | sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f"; | ||
1378 | }; | ||
1379 | } | ||
1380 | { | ||
1381 | name = "anymatch___anymatch_2.0.0.tgz"; | ||
1382 | path = fetchurl { | ||
1383 | name = "anymatch___anymatch_2.0.0.tgz"; | ||
1384 | url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz"; | ||
1385 | sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"; | ||
1386 | }; | ||
1387 | } | ||
1388 | { | ||
1389 | name = "anymatch___anymatch_3.1.1.tgz"; | ||
1390 | path = fetchurl { | ||
1391 | name = "anymatch___anymatch_3.1.1.tgz"; | ||
1392 | url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz"; | ||
1393 | sha1 = "c55ecf02185e2469259399310c173ce31233b142"; | ||
1394 | }; | ||
1395 | } | ||
1396 | { | ||
1397 | name = "aproba___aproba_1.2.0.tgz"; | ||
1398 | path = fetchurl { | ||
1399 | name = "aproba___aproba_1.2.0.tgz"; | ||
1400 | url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz"; | ||
1401 | sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a"; | ||
1402 | }; | ||
1403 | } | ||
1404 | { | ||
1405 | name = "arch___arch_2.1.2.tgz"; | ||
1406 | path = fetchurl { | ||
1407 | name = "arch___arch_2.1.2.tgz"; | ||
1408 | url = "https://registry.yarnpkg.com/arch/-/arch-2.1.2.tgz"; | ||
1409 | sha1 = "0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf"; | ||
1410 | }; | ||
1411 | } | ||
1412 | { | ||
1413 | name = "argparse___argparse_1.0.10.tgz"; | ||
1414 | path = fetchurl { | ||
1415 | name = "argparse___argparse_1.0.10.tgz"; | ||
1416 | url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz"; | ||
1417 | sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911"; | ||
1418 | }; | ||
1419 | } | ||
1420 | { | ||
1421 | name = "arr_diff___arr_diff_4.0.0.tgz"; | ||
1422 | path = fetchurl { | ||
1423 | name = "arr_diff___arr_diff_4.0.0.tgz"; | ||
1424 | url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz"; | ||
1425 | sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; | ||
1426 | }; | ||
1427 | } | ||
1428 | { | ||
1429 | name = "arr_flatten___arr_flatten_1.1.0.tgz"; | ||
1430 | path = fetchurl { | ||
1431 | name = "arr_flatten___arr_flatten_1.1.0.tgz"; | ||
1432 | url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz"; | ||
1433 | sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1"; | ||
1434 | }; | ||
1435 | } | ||
1436 | { | ||
1437 | name = "arr_union___arr_union_3.1.0.tgz"; | ||
1438 | path = fetchurl { | ||
1439 | name = "arr_union___arr_union_3.1.0.tgz"; | ||
1440 | url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz"; | ||
1441 | sha1 = "e39b09aea9def866a8f206e288af63919bae39c4"; | ||
1442 | }; | ||
1443 | } | ||
1444 | { | ||
1445 | name = "array_flatten___array_flatten_1.1.1.tgz"; | ||
1446 | path = fetchurl { | ||
1447 | name = "array_flatten___array_flatten_1.1.1.tgz"; | ||
1448 | url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz"; | ||
1449 | sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; | ||
1450 | }; | ||
1451 | } | ||
1452 | { | ||
1453 | name = "array_flatten___array_flatten_2.1.2.tgz"; | ||
1454 | path = fetchurl { | ||
1455 | name = "array_flatten___array_flatten_2.1.2.tgz"; | ||
1456 | url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz"; | ||
1457 | sha1 = "24ef80a28c1a893617e2149b0c6d0d788293b099"; | ||
1458 | }; | ||
1459 | } | ||
1460 | { | ||
1461 | name = "array_union___array_union_1.0.2.tgz"; | ||
1462 | path = fetchurl { | ||
1463 | name = "array_union___array_union_1.0.2.tgz"; | ||
1464 | url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz"; | ||
1465 | sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39"; | ||
1466 | }; | ||
1467 | } | ||
1468 | { | ||
1469 | name = "array_uniq___array_uniq_1.0.3.tgz"; | ||
1470 | path = fetchurl { | ||
1471 | name = "array_uniq___array_uniq_1.0.3.tgz"; | ||
1472 | url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz"; | ||
1473 | sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6"; | ||
1474 | }; | ||
1475 | } | ||
1476 | { | ||
1477 | name = "array_unique___array_unique_0.3.2.tgz"; | ||
1478 | path = fetchurl { | ||
1479 | name = "array_unique___array_unique_0.3.2.tgz"; | ||
1480 | url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz"; | ||
1481 | sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; | ||
1482 | }; | ||
1483 | } | ||
1484 | { | ||
1485 | name = "asn1.js___asn1.js_4.10.1.tgz"; | ||
1486 | path = fetchurl { | ||
1487 | name = "asn1.js___asn1.js_4.10.1.tgz"; | ||
1488 | url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz"; | ||
1489 | sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"; | ||
1490 | }; | ||
1491 | } | ||
1492 | { | ||
1493 | name = "asn1___asn1_0.2.4.tgz"; | ||
1494 | path = fetchurl { | ||
1495 | name = "asn1___asn1_0.2.4.tgz"; | ||
1496 | url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz"; | ||
1497 | sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136"; | ||
1498 | }; | ||
1499 | } | ||
1500 | { | ||
1501 | name = "assert_plus___assert_plus_1.0.0.tgz"; | ||
1502 | path = fetchurl { | ||
1503 | name = "assert_plus___assert_plus_1.0.0.tgz"; | ||
1504 | url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz"; | ||
1505 | sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; | ||
1506 | }; | ||
1507 | } | ||
1508 | { | ||
1509 | name = "assert___assert_1.5.0.tgz"; | ||
1510 | path = fetchurl { | ||
1511 | name = "assert___assert_1.5.0.tgz"; | ||
1512 | url = "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz"; | ||
1513 | sha1 = "55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"; | ||
1514 | }; | ||
1515 | } | ||
1516 | { | ||
1517 | name = "assign_symbols___assign_symbols_1.0.0.tgz"; | ||
1518 | path = fetchurl { | ||
1519 | name = "assign_symbols___assign_symbols_1.0.0.tgz"; | ||
1520 | url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz"; | ||
1521 | sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; | ||
1522 | }; | ||
1523 | } | ||
1524 | { | ||
1525 | name = "astral_regex___astral_regex_1.0.0.tgz"; | ||
1526 | path = fetchurl { | ||
1527 | name = "astral_regex___astral_regex_1.0.0.tgz"; | ||
1528 | url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz"; | ||
1529 | sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"; | ||
1530 | }; | ||
1531 | } | ||
1532 | { | ||
1533 | name = "async_each___async_each_1.0.3.tgz"; | ||
1534 | path = fetchurl { | ||
1535 | name = "async_each___async_each_1.0.3.tgz"; | ||
1536 | url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz"; | ||
1537 | sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf"; | ||
1538 | }; | ||
1539 | } | ||
1540 | { | ||
1541 | name = "async_limiter___async_limiter_1.0.1.tgz"; | ||
1542 | path = fetchurl { | ||
1543 | name = "async_limiter___async_limiter_1.0.1.tgz"; | ||
1544 | url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz"; | ||
1545 | sha1 = "dd379e94f0db8310b08291f9d64c3209766617fd"; | ||
1546 | }; | ||
1547 | } | ||
1548 | { | ||
1549 | name = "async___async_2.6.3.tgz"; | ||
1550 | path = fetchurl { | ||
1551 | name = "async___async_2.6.3.tgz"; | ||
1552 | url = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz"; | ||
1553 | sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff"; | ||
1554 | }; | ||
1555 | } | ||
1556 | { | ||
1557 | name = "asynckit___asynckit_0.4.0.tgz"; | ||
1558 | path = fetchurl { | ||
1559 | name = "asynckit___asynckit_0.4.0.tgz"; | ||
1560 | url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"; | ||
1561 | sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; | ||
1562 | }; | ||
1563 | } | ||
1564 | { | ||
1565 | name = "atob___atob_2.1.2.tgz"; | ||
1566 | path = fetchurl { | ||
1567 | name = "atob___atob_2.1.2.tgz"; | ||
1568 | url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz"; | ||
1569 | sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9"; | ||
1570 | }; | ||
1571 | } | ||
1572 | { | ||
1573 | name = "autoprefixer___autoprefixer_9.8.0.tgz"; | ||
1574 | path = fetchurl { | ||
1575 | name = "autoprefixer___autoprefixer_9.8.0.tgz"; | ||
1576 | url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.0.tgz"; | ||
1577 | sha1 = "68e2d2bef7ba4c3a65436f662d0a56a741e56511"; | ||
1578 | }; | ||
1579 | } | ||
1580 | { | ||
1581 | name = "aws_sign2___aws_sign2_0.7.0.tgz"; | ||
1582 | path = fetchurl { | ||
1583 | name = "aws_sign2___aws_sign2_0.7.0.tgz"; | ||
1584 | url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz"; | ||
1585 | sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; | ||
1586 | }; | ||
1587 | } | ||
1588 | { | ||
1589 | name = "aws4___aws4_1.10.0.tgz"; | ||
1590 | path = fetchurl { | ||
1591 | name = "aws4___aws4_1.10.0.tgz"; | ||
1592 | url = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz"; | ||
1593 | sha1 = "a17b3a8ea811060e74d47d306122400ad4497ae2"; | ||
1594 | }; | ||
1595 | } | ||
1596 | { | ||
1597 | name = "babel_eslint___babel_eslint_10.1.0.tgz"; | ||
1598 | path = fetchurl { | ||
1599 | name = "babel_eslint___babel_eslint_10.1.0.tgz"; | ||
1600 | url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz"; | ||
1601 | sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232"; | ||
1602 | }; | ||
1603 | } | ||
1604 | { | ||
1605 | name = "babel_extract_comments___babel_extract_comments_1.0.0.tgz"; | ||
1606 | path = fetchurl { | ||
1607 | name = "babel_extract_comments___babel_extract_comments_1.0.0.tgz"; | ||
1608 | url = "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz"; | ||
1609 | sha1 = "0a2aedf81417ed391b85e18b4614e693a0351a21"; | ||
1610 | }; | ||
1611 | } | ||
1612 | { | ||
1613 | name = "babel_loader___babel_loader_8.1.0.tgz"; | ||
1614 | path = fetchurl { | ||
1615 | name = "babel_loader___babel_loader_8.1.0.tgz"; | ||
1616 | url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz"; | ||
1617 | sha1 = "c611d5112bd5209abe8b9fa84c3e4da25275f1c3"; | ||
1618 | }; | ||
1619 | } | ||
1620 | { | ||
1621 | name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz"; | ||
1622 | path = fetchurl { | ||
1623 | name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz"; | ||
1624 | url = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz"; | ||
1625 | sha1 = "84fda19c976ec5c6defef57f9427b3def66e17a3"; | ||
1626 | }; | ||
1627 | } | ||
1628 | { | ||
1629 | name = "babel_plugin_syntax_object_rest_spread___babel_plugin_syntax_object_rest_spread_6.13.0.tgz"; | ||
1630 | path = fetchurl { | ||
1631 | name = "babel_plugin_syntax_object_rest_spread___babel_plugin_syntax_object_rest_spread_6.13.0.tgz"; | ||
1632 | url = "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz"; | ||
1633 | sha1 = "fd6536f2bce13836ffa3a5458c4903a597bb3bf5"; | ||
1634 | }; | ||
1635 | } | ||
1636 | { | ||
1637 | name = "babel_plugin_transform_object_rest_spread___babel_plugin_transform_object_rest_spread_6.26.0.tgz"; | ||
1638 | path = fetchurl { | ||
1639 | name = "babel_plugin_transform_object_rest_spread___babel_plugin_transform_object_rest_spread_6.26.0.tgz"; | ||
1640 | url = "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz"; | ||
1641 | sha1 = "0f36692d50fef6b7e2d4b3ac1478137a963b7b06"; | ||
1642 | }; | ||
1643 | } | ||
1644 | { | ||
1645 | name = "babel_runtime___babel_runtime_6.26.0.tgz"; | ||
1646 | path = fetchurl { | ||
1647 | name = "babel_runtime___babel_runtime_6.26.0.tgz"; | ||
1648 | url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz"; | ||
1649 | sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; | ||
1650 | }; | ||
1651 | } | ||
1652 | { | ||
1653 | name = "babylon___babylon_6.18.0.tgz"; | ||
1654 | path = fetchurl { | ||
1655 | name = "babylon___babylon_6.18.0.tgz"; | ||
1656 | url = "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz"; | ||
1657 | sha1 = "af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"; | ||
1658 | }; | ||
1659 | } | ||
1660 | { | ||
1661 | name = "balanced_match___balanced_match_1.0.0.tgz"; | ||
1662 | path = fetchurl { | ||
1663 | name = "balanced_match___balanced_match_1.0.0.tgz"; | ||
1664 | url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz"; | ||
1665 | sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; | ||
1666 | }; | ||
1667 | } | ||
1668 | { | ||
1669 | name = "base64_js___base64_js_1.3.1.tgz"; | ||
1670 | path = fetchurl { | ||
1671 | name = "base64_js___base64_js_1.3.1.tgz"; | ||
1672 | url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz"; | ||
1673 | sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"; | ||
1674 | }; | ||
1675 | } | ||
1676 | { | ||
1677 | name = "base___base_0.11.2.tgz"; | ||
1678 | path = fetchurl { | ||
1679 | name = "base___base_0.11.2.tgz"; | ||
1680 | url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz"; | ||
1681 | sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f"; | ||
1682 | }; | ||
1683 | } | ||
1684 | { | ||
1685 | name = "batch___batch_0.6.1.tgz"; | ||
1686 | path = fetchurl { | ||
1687 | name = "batch___batch_0.6.1.tgz"; | ||
1688 | url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz"; | ||
1689 | sha1 = "dc34314f4e679318093fc760272525f94bf25c16"; | ||
1690 | }; | ||
1691 | } | ||
1692 | { | ||
1693 | name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; | ||
1694 | path = fetchurl { | ||
1695 | name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; | ||
1696 | url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; | ||
1697 | sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; | ||
1698 | }; | ||
1699 | } | ||
1700 | { | ||
1701 | name = "bfj___bfj_6.1.2.tgz"; | ||
1702 | path = fetchurl { | ||
1703 | name = "bfj___bfj_6.1.2.tgz"; | ||
1704 | url = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz"; | ||
1705 | sha1 = "325c861a822bcb358a41c78a33b8e6e2086dde7f"; | ||
1706 | }; | ||
1707 | } | ||
1708 | { | ||
1709 | name = "big.js___big.js_3.2.0.tgz"; | ||
1710 | path = fetchurl { | ||
1711 | name = "big.js___big.js_3.2.0.tgz"; | ||
1712 | url = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz"; | ||
1713 | sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e"; | ||
1714 | }; | ||
1715 | } | ||
1716 | { | ||
1717 | name = "big.js___big.js_5.2.2.tgz"; | ||
1718 | path = fetchurl { | ||
1719 | name = "big.js___big.js_5.2.2.tgz"; | ||
1720 | url = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz"; | ||
1721 | sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328"; | ||
1722 | }; | ||
1723 | } | ||
1724 | { | ||
1725 | name = "binary_extensions___binary_extensions_1.13.1.tgz"; | ||
1726 | path = fetchurl { | ||
1727 | name = "binary_extensions___binary_extensions_1.13.1.tgz"; | ||
1728 | url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz"; | ||
1729 | sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65"; | ||
1730 | }; | ||
1731 | } | ||
1732 | { | ||
1733 | name = "binary_extensions___binary_extensions_2.0.0.tgz"; | ||
1734 | path = fetchurl { | ||
1735 | name = "binary_extensions___binary_extensions_2.0.0.tgz"; | ||
1736 | url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz"; | ||
1737 | sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c"; | ||
1738 | }; | ||
1739 | } | ||
1740 | { | ||
1741 | name = "bindings___bindings_1.5.0.tgz"; | ||
1742 | path = fetchurl { | ||
1743 | name = "bindings___bindings_1.5.0.tgz"; | ||
1744 | url = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz"; | ||
1745 | sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df"; | ||
1746 | }; | ||
1747 | } | ||
1748 | { | ||
1749 | name = "bluebird___bluebird_3.7.2.tgz"; | ||
1750 | path = fetchurl { | ||
1751 | name = "bluebird___bluebird_3.7.2.tgz"; | ||
1752 | url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz"; | ||
1753 | sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f"; | ||
1754 | }; | ||
1755 | } | ||
1756 | { | ||
1757 | name = "bn.js___bn.js_4.11.9.tgz"; | ||
1758 | path = fetchurl { | ||
1759 | name = "bn.js___bn.js_4.11.9.tgz"; | ||
1760 | url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz"; | ||
1761 | sha1 = "26d556829458f9d1e81fc48952493d0ba3507828"; | ||
1762 | }; | ||
1763 | } | ||
1764 | { | ||
1765 | name = "bn.js___bn.js_5.1.2.tgz"; | ||
1766 | path = fetchurl { | ||
1767 | name = "bn.js___bn.js_5.1.2.tgz"; | ||
1768 | url = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz"; | ||
1769 | sha1 = "c9686902d3c9a27729f43ab10f9d79c2004da7b0"; | ||
1770 | }; | ||
1771 | } | ||
1772 | { | ||
1773 | name = "body_parser___body_parser_1.19.0.tgz"; | ||
1774 | path = fetchurl { | ||
1775 | name = "body_parser___body_parser_1.19.0.tgz"; | ||
1776 | url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz"; | ||
1777 | sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a"; | ||
1778 | }; | ||
1779 | } | ||
1780 | { | ||
1781 | name = "bonjour___bonjour_3.5.0.tgz"; | ||
1782 | path = fetchurl { | ||
1783 | name = "bonjour___bonjour_3.5.0.tgz"; | ||
1784 | url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz"; | ||
1785 | sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"; | ||
1786 | }; | ||
1787 | } | ||
1788 | { | ||
1789 | name = "boolbase___boolbase_1.0.0.tgz"; | ||
1790 | path = fetchurl { | ||
1791 | name = "boolbase___boolbase_1.0.0.tgz"; | ||
1792 | url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz"; | ||
1793 | sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"; | ||
1794 | }; | ||
1795 | } | ||
1796 | { | ||
1797 | name = "brace_expansion___brace_expansion_1.1.11.tgz"; | ||
1798 | path = fetchurl { | ||
1799 | name = "brace_expansion___brace_expansion_1.1.11.tgz"; | ||
1800 | url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; | ||
1801 | sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd"; | ||
1802 | }; | ||
1803 | } | ||
1804 | { | ||
1805 | name = "braces___braces_2.3.2.tgz"; | ||
1806 | path = fetchurl { | ||
1807 | name = "braces___braces_2.3.2.tgz"; | ||
1808 | url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz"; | ||
1809 | sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729"; | ||
1810 | }; | ||
1811 | } | ||
1812 | { | ||
1813 | name = "braces___braces_3.0.2.tgz"; | ||
1814 | path = fetchurl { | ||
1815 | name = "braces___braces_3.0.2.tgz"; | ||
1816 | url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz"; | ||
1817 | sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107"; | ||
1818 | }; | ||
1819 | } | ||
1820 | { | ||
1821 | name = "brorand___brorand_1.1.0.tgz"; | ||
1822 | path = fetchurl { | ||
1823 | name = "brorand___brorand_1.1.0.tgz"; | ||
1824 | url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz"; | ||
1825 | sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; | ||
1826 | }; | ||
1827 | } | ||
1828 | { | ||
1829 | name = "browserify_aes___browserify_aes_1.2.0.tgz"; | ||
1830 | path = fetchurl { | ||
1831 | name = "browserify_aes___browserify_aes_1.2.0.tgz"; | ||
1832 | url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz"; | ||
1833 | sha1 = "326734642f403dabc3003209853bb70ad428ef48"; | ||
1834 | }; | ||
1835 | } | ||
1836 | { | ||
1837 | name = "browserify_cipher___browserify_cipher_1.0.1.tgz"; | ||
1838 | path = fetchurl { | ||
1839 | name = "browserify_cipher___browserify_cipher_1.0.1.tgz"; | ||
1840 | url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz"; | ||
1841 | sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"; | ||
1842 | }; | ||
1843 | } | ||
1844 | { | ||
1845 | name = "browserify_des___browserify_des_1.0.2.tgz"; | ||
1846 | path = fetchurl { | ||
1847 | name = "browserify_des___browserify_des_1.0.2.tgz"; | ||
1848 | url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz"; | ||
1849 | sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c"; | ||
1850 | }; | ||
1851 | } | ||
1852 | { | ||
1853 | name = "browserify_rsa___browserify_rsa_4.0.1.tgz"; | ||
1854 | path = fetchurl { | ||
1855 | name = "browserify_rsa___browserify_rsa_4.0.1.tgz"; | ||
1856 | url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; | ||
1857 | sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; | ||
1858 | }; | ||
1859 | } | ||
1860 | { | ||
1861 | name = "browserify_sign___browserify_sign_4.2.0.tgz"; | ||
1862 | path = fetchurl { | ||
1863 | name = "browserify_sign___browserify_sign_4.2.0.tgz"; | ||
1864 | url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz"; | ||
1865 | sha1 = "545d0b1b07e6b2c99211082bf1b12cce7a0b0e11"; | ||
1866 | }; | ||
1867 | } | ||
1868 | { | ||
1869 | name = "browserify_zlib___browserify_zlib_0.2.0.tgz"; | ||
1870 | path = fetchurl { | ||
1871 | name = "browserify_zlib___browserify_zlib_0.2.0.tgz"; | ||
1872 | url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; | ||
1873 | sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"; | ||
1874 | }; | ||
1875 | } | ||
1876 | { | ||
1877 | name = "browserslist___browserslist_4.12.0.tgz"; | ||
1878 | path = fetchurl { | ||
1879 | name = "browserslist___browserslist_4.12.0.tgz"; | ||
1880 | url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz"; | ||
1881 | sha1 = "06c6d5715a1ede6c51fc39ff67fd647f740b656d"; | ||
1882 | }; | ||
1883 | } | ||
1884 | { | ||
1885 | name = "buffer_from___buffer_from_1.1.1.tgz"; | ||
1886 | path = fetchurl { | ||
1887 | name = "buffer_from___buffer_from_1.1.1.tgz"; | ||
1888 | url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz"; | ||
1889 | sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef"; | ||
1890 | }; | ||
1891 | } | ||
1892 | { | ||
1893 | name = "buffer_indexof___buffer_indexof_1.1.1.tgz"; | ||
1894 | path = fetchurl { | ||
1895 | name = "buffer_indexof___buffer_indexof_1.1.1.tgz"; | ||
1896 | url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz"; | ||
1897 | sha1 = "52fabcc6a606d1a00302802648ef68f639da268c"; | ||
1898 | }; | ||
1899 | } | ||
1900 | { | ||
1901 | name = "buffer_json___buffer_json_2.0.0.tgz"; | ||
1902 | path = fetchurl { | ||
1903 | name = "buffer_json___buffer_json_2.0.0.tgz"; | ||
1904 | url = "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz"; | ||
1905 | sha1 = "f73e13b1e42f196fe2fd67d001c7d7107edd7c23"; | ||
1906 | }; | ||
1907 | } | ||
1908 | { | ||
1909 | name = "buffer_xor___buffer_xor_1.0.3.tgz"; | ||
1910 | path = fetchurl { | ||
1911 | name = "buffer_xor___buffer_xor_1.0.3.tgz"; | ||
1912 | url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz"; | ||
1913 | sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; | ||
1914 | }; | ||
1915 | } | ||
1916 | { | ||
1917 | name = "buffer___buffer_4.9.2.tgz"; | ||
1918 | path = fetchurl { | ||
1919 | name = "buffer___buffer_4.9.2.tgz"; | ||
1920 | url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz"; | ||
1921 | sha1 = "230ead344002988644841ab0244af8c44bbe3ef8"; | ||
1922 | }; | ||
1923 | } | ||
1924 | { | ||
1925 | name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz"; | ||
1926 | path = fetchurl { | ||
1927 | name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz"; | ||
1928 | url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"; | ||
1929 | sha1 = "85982878e21b98e1c66425e03d0174788f569ee8"; | ||
1930 | }; | ||
1931 | } | ||
1932 | { | ||
1933 | name = "bulma___bulma_0.8.2.tgz"; | ||
1934 | path = fetchurl { | ||
1935 | name = "bulma___bulma_0.8.2.tgz"; | ||
1936 | url = "https://registry.yarnpkg.com/bulma/-/bulma-0.8.2.tgz"; | ||
1937 | sha1 = "5d928f16ed4a84549c2873f95c92c38c69c631a7"; | ||
1938 | }; | ||
1939 | } | ||
1940 | { | ||
1941 | name = "bytes___bytes_3.0.0.tgz"; | ||
1942 | path = fetchurl { | ||
1943 | name = "bytes___bytes_3.0.0.tgz"; | ||
1944 | url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz"; | ||
1945 | sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048"; | ||
1946 | }; | ||
1947 | } | ||
1948 | { | ||
1949 | name = "bytes___bytes_3.1.0.tgz"; | ||
1950 | path = fetchurl { | ||
1951 | name = "bytes___bytes_3.1.0.tgz"; | ||
1952 | url = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz"; | ||
1953 | sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6"; | ||
1954 | }; | ||
1955 | } | ||
1956 | { | ||
1957 | name = "cacache___cacache_12.0.4.tgz"; | ||
1958 | path = fetchurl { | ||
1959 | name = "cacache___cacache_12.0.4.tgz"; | ||
1960 | url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz"; | ||
1961 | sha1 = "668bcbd105aeb5f1d92fe25570ec9525c8faa40c"; | ||
1962 | }; | ||
1963 | } | ||
1964 | { | ||
1965 | name = "cacache___cacache_13.0.1.tgz"; | ||
1966 | path = fetchurl { | ||
1967 | name = "cacache___cacache_13.0.1.tgz"; | ||
1968 | url = "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz"; | ||
1969 | sha1 = "a8000c21697089082f85287a1aec6e382024a71c"; | ||
1970 | }; | ||
1971 | } | ||
1972 | { | ||
1973 | name = "cache_base___cache_base_1.0.1.tgz"; | ||
1974 | path = fetchurl { | ||
1975 | name = "cache_base___cache_base_1.0.1.tgz"; | ||
1976 | url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz"; | ||
1977 | sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2"; | ||
1978 | }; | ||
1979 | } | ||
1980 | { | ||
1981 | name = "cache_loader___cache_loader_4.1.0.tgz"; | ||
1982 | path = fetchurl { | ||
1983 | name = "cache_loader___cache_loader_4.1.0.tgz"; | ||
1984 | url = "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz"; | ||
1985 | sha1 = "9948cae353aec0a1fcb1eafda2300816ec85387e"; | ||
1986 | }; | ||
1987 | } | ||
1988 | { | ||
1989 | name = "call_me_maybe___call_me_maybe_1.0.1.tgz"; | ||
1990 | path = fetchurl { | ||
1991 | name = "call_me_maybe___call_me_maybe_1.0.1.tgz"; | ||
1992 | url = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz"; | ||
1993 | sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b"; | ||
1994 | }; | ||
1995 | } | ||
1996 | { | ||
1997 | name = "caller_callsite___caller_callsite_2.0.0.tgz"; | ||
1998 | path = fetchurl { | ||
1999 | name = "caller_callsite___caller_callsite_2.0.0.tgz"; | ||
2000 | url = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz"; | ||
2001 | sha1 = "847e0fce0a223750a9a027c54b33731ad3154134"; | ||
2002 | }; | ||
2003 | } | ||
2004 | { | ||
2005 | name = "caller_path___caller_path_2.0.0.tgz"; | ||
2006 | path = fetchurl { | ||
2007 | name = "caller_path___caller_path_2.0.0.tgz"; | ||
2008 | url = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz"; | ||
2009 | sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4"; | ||
2010 | }; | ||
2011 | } | ||
2012 | { | ||
2013 | name = "callsites___callsites_2.0.0.tgz"; | ||
2014 | path = fetchurl { | ||
2015 | name = "callsites___callsites_2.0.0.tgz"; | ||
2016 | url = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz"; | ||
2017 | sha1 = "06eb84f00eea413da86affefacbffb36093b3c50"; | ||
2018 | }; | ||
2019 | } | ||
2020 | { | ||
2021 | name = "callsites___callsites_3.1.0.tgz"; | ||
2022 | path = fetchurl { | ||
2023 | name = "callsites___callsites_3.1.0.tgz"; | ||
2024 | url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz"; | ||
2025 | sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73"; | ||
2026 | }; | ||
2027 | } | ||
2028 | { | ||
2029 | name = "camel_case___camel_case_3.0.0.tgz"; | ||
2030 | path = fetchurl { | ||
2031 | name = "camel_case___camel_case_3.0.0.tgz"; | ||
2032 | url = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz"; | ||
2033 | sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"; | ||
2034 | }; | ||
2035 | } | ||
2036 | { | ||
2037 | name = "camelcase___camelcase_5.3.1.tgz"; | ||
2038 | path = fetchurl { | ||
2039 | name = "camelcase___camelcase_5.3.1.tgz"; | ||
2040 | url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz"; | ||
2041 | sha1 = "e3c9b31569e106811df242f715725a1f4c494320"; | ||
2042 | }; | ||
2043 | } | ||
2044 | { | ||
2045 | name = "caniuse_api___caniuse_api_3.0.0.tgz"; | ||
2046 | path = fetchurl { | ||
2047 | name = "caniuse_api___caniuse_api_3.0.0.tgz"; | ||
2048 | url = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz"; | ||
2049 | sha1 = "5e4d90e2274961d46291997df599e3ed008ee4c0"; | ||
2050 | }; | ||
2051 | } | ||
2052 | { | ||
2053 | name = "caniuse_lite___caniuse_lite_1.0.30001078.tgz"; | ||
2054 | path = fetchurl { | ||
2055 | name = "caniuse_lite___caniuse_lite_1.0.30001078.tgz"; | ||
2056 | url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001078.tgz"; | ||
2057 | sha1 = "e1b6e2ae327b6a1ec11f65ec7a0dde1e7093074c"; | ||
2058 | }; | ||
2059 | } | ||
2060 | { | ||
2061 | name = "case_sensitive_paths_webpack_plugin___case_sensitive_paths_webpack_plugin_2.3.0.tgz"; | ||
2062 | path = fetchurl { | ||
2063 | name = "case_sensitive_paths_webpack_plugin___case_sensitive_paths_webpack_plugin_2.3.0.tgz"; | ||
2064 | url = "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz"; | ||
2065 | sha1 = "23ac613cc9a856e4f88ff8bb73bbb5e989825cf7"; | ||
2066 | }; | ||
2067 | } | ||
2068 | { | ||
2069 | name = "caseless___caseless_0.12.0.tgz"; | ||
2070 | path = fetchurl { | ||
2071 | name = "caseless___caseless_0.12.0.tgz"; | ||
2072 | url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz"; | ||
2073 | sha1 = "1b681c21ff84033c826543090689420d187151dc"; | ||
2074 | }; | ||
2075 | } | ||
2076 | { | ||
2077 | name = "chalk___chalk_1.1.3.tgz"; | ||
2078 | path = fetchurl { | ||
2079 | name = "chalk___chalk_1.1.3.tgz"; | ||
2080 | url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz"; | ||
2081 | sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; | ||
2082 | }; | ||
2083 | } | ||
2084 | { | ||
2085 | name = "chalk___chalk_2.4.2.tgz"; | ||
2086 | path = fetchurl { | ||
2087 | name = "chalk___chalk_2.4.2.tgz"; | ||
2088 | url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz"; | ||
2089 | sha1 = "cd42541677a54333cf541a49108c1432b44c9424"; | ||
2090 | }; | ||
2091 | } | ||
2092 | { | ||
2093 | name = "chalk___chalk_3.0.0.tgz"; | ||
2094 | path = fetchurl { | ||
2095 | name = "chalk___chalk_3.0.0.tgz"; | ||
2096 | url = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz"; | ||
2097 | sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4"; | ||
2098 | }; | ||
2099 | } | ||
2100 | { | ||
2101 | name = "chalk___chalk_4.0.0.tgz"; | ||
2102 | path = fetchurl { | ||
2103 | name = "chalk___chalk_4.0.0.tgz"; | ||
2104 | url = "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz"; | ||
2105 | sha1 = "6e98081ed2d17faab615eb52ac66ec1fe6209e72"; | ||
2106 | }; | ||
2107 | } | ||
2108 | { | ||
2109 | name = "chardet___chardet_0.7.0.tgz"; | ||
2110 | path = fetchurl { | ||
2111 | name = "chardet___chardet_0.7.0.tgz"; | ||
2112 | url = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz"; | ||
2113 | sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e"; | ||
2114 | }; | ||
2115 | } | ||
2116 | { | ||
2117 | name = "check_types___check_types_8.0.3.tgz"; | ||
2118 | path = fetchurl { | ||
2119 | name = "check_types___check_types_8.0.3.tgz"; | ||
2120 | url = "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz"; | ||
2121 | sha1 = "3356cca19c889544f2d7a95ed49ce508a0ecf552"; | ||
2122 | }; | ||
2123 | } | ||
2124 | { | ||
2125 | name = "chokidar___chokidar_3.4.0.tgz"; | ||
2126 | path = fetchurl { | ||
2127 | name = "chokidar___chokidar_3.4.0.tgz"; | ||
2128 | url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz"; | ||
2129 | sha1 = "b30611423ce376357c765b9b8f904b9fba3c0be8"; | ||
2130 | }; | ||
2131 | } | ||
2132 | { | ||
2133 | name = "chokidar___chokidar_2.1.8.tgz"; | ||
2134 | path = fetchurl { | ||
2135 | name = "chokidar___chokidar_2.1.8.tgz"; | ||
2136 | url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz"; | ||
2137 | sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917"; | ||
2138 | }; | ||
2139 | } | ||
2140 | { | ||
2141 | name = "chownr___chownr_1.1.4.tgz"; | ||
2142 | path = fetchurl { | ||
2143 | name = "chownr___chownr_1.1.4.tgz"; | ||
2144 | url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz"; | ||
2145 | sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b"; | ||
2146 | }; | ||
2147 | } | ||
2148 | { | ||
2149 | name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz"; | ||
2150 | path = fetchurl { | ||
2151 | name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz"; | ||
2152 | url = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz"; | ||
2153 | sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4"; | ||
2154 | }; | ||
2155 | } | ||
2156 | { | ||
2157 | name = "ci_info___ci_info_1.6.0.tgz"; | ||
2158 | path = fetchurl { | ||
2159 | name = "ci_info___ci_info_1.6.0.tgz"; | ||
2160 | url = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz"; | ||
2161 | sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497"; | ||
2162 | }; | ||
2163 | } | ||
2164 | { | ||
2165 | name = "cipher_base___cipher_base_1.0.4.tgz"; | ||
2166 | path = fetchurl { | ||
2167 | name = "cipher_base___cipher_base_1.0.4.tgz"; | ||
2168 | url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz"; | ||
2169 | sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de"; | ||
2170 | }; | ||
2171 | } | ||
2172 | { | ||
2173 | name = "class_utils___class_utils_0.3.6.tgz"; | ||
2174 | path = fetchurl { | ||
2175 | name = "class_utils___class_utils_0.3.6.tgz"; | ||
2176 | url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz"; | ||
2177 | sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463"; | ||
2178 | }; | ||
2179 | } | ||
2180 | { | ||
2181 | name = "clean_css___clean_css_4.2.3.tgz"; | ||
2182 | path = fetchurl { | ||
2183 | name = "clean_css___clean_css_4.2.3.tgz"; | ||
2184 | url = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz"; | ||
2185 | sha1 = "507b5de7d97b48ee53d84adb0160ff6216380f78"; | ||
2186 | }; | ||
2187 | } | ||
2188 | { | ||
2189 | name = "clean_stack___clean_stack_2.2.0.tgz"; | ||
2190 | path = fetchurl { | ||
2191 | name = "clean_stack___clean_stack_2.2.0.tgz"; | ||
2192 | url = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz"; | ||
2193 | sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b"; | ||
2194 | }; | ||
2195 | } | ||
2196 | { | ||
2197 | name = "cli_cursor___cli_cursor_2.1.0.tgz"; | ||
2198 | path = fetchurl { | ||
2199 | name = "cli_cursor___cli_cursor_2.1.0.tgz"; | ||
2200 | url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz"; | ||
2201 | sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5"; | ||
2202 | }; | ||
2203 | } | ||
2204 | { | ||
2205 | name = "cli_cursor___cli_cursor_3.1.0.tgz"; | ||
2206 | path = fetchurl { | ||
2207 | name = "cli_cursor___cli_cursor_3.1.0.tgz"; | ||
2208 | url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz"; | ||
2209 | sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307"; | ||
2210 | }; | ||
2211 | } | ||
2212 | { | ||
2213 | name = "cli_highlight___cli_highlight_2.1.4.tgz"; | ||
2214 | path = fetchurl { | ||
2215 | name = "cli_highlight___cli_highlight_2.1.4.tgz"; | ||
2216 | url = "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.4.tgz"; | ||
2217 | sha1 = "098cb642cf17f42adc1c1145e07f960ec4d7522b"; | ||
2218 | }; | ||
2219 | } | ||
2220 | { | ||
2221 | name = "cli_spinners___cli_spinners_2.3.0.tgz"; | ||
2222 | path = fetchurl { | ||
2223 | name = "cli_spinners___cli_spinners_2.3.0.tgz"; | ||
2224 | url = "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz"; | ||
2225 | sha1 = "0632239a4b5aa4c958610142c34bb7a651fc8df5"; | ||
2226 | }; | ||
2227 | } | ||
2228 | { | ||
2229 | name = "cli_width___cli_width_2.2.1.tgz"; | ||
2230 | path = fetchurl { | ||
2231 | name = "cli_width___cli_width_2.2.1.tgz"; | ||
2232 | url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz"; | ||
2233 | sha1 = "b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"; | ||
2234 | }; | ||
2235 | } | ||
2236 | { | ||
2237 | name = "clipboardy___clipboardy_2.3.0.tgz"; | ||
2238 | path = fetchurl { | ||
2239 | name = "clipboardy___clipboardy_2.3.0.tgz"; | ||
2240 | url = "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz"; | ||
2241 | sha1 = "3c2903650c68e46a91b388985bc2774287dba290"; | ||
2242 | }; | ||
2243 | } | ||
2244 | { | ||
2245 | name = "cliui___cliui_5.0.0.tgz"; | ||
2246 | path = fetchurl { | ||
2247 | name = "cliui___cliui_5.0.0.tgz"; | ||
2248 | url = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz"; | ||
2249 | sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5"; | ||
2250 | }; | ||
2251 | } | ||
2252 | { | ||
2253 | name = "cliui___cliui_6.0.0.tgz"; | ||
2254 | path = fetchurl { | ||
2255 | name = "cliui___cliui_6.0.0.tgz"; | ||
2256 | url = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz"; | ||
2257 | sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1"; | ||
2258 | }; | ||
2259 | } | ||
2260 | { | ||
2261 | name = "clone_deep___clone_deep_4.0.1.tgz"; | ||
2262 | path = fetchurl { | ||
2263 | name = "clone_deep___clone_deep_4.0.1.tgz"; | ||
2264 | url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz"; | ||
2265 | sha1 = "c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"; | ||
2266 | }; | ||
2267 | } | ||
2268 | { | ||
2269 | name = "clone___clone_1.0.4.tgz"; | ||
2270 | path = fetchurl { | ||
2271 | name = "clone___clone_1.0.4.tgz"; | ||
2272 | url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz"; | ||
2273 | sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; | ||
2274 | }; | ||
2275 | } | ||
2276 | { | ||
2277 | name = "coa___coa_2.0.2.tgz"; | ||
2278 | path = fetchurl { | ||
2279 | name = "coa___coa_2.0.2.tgz"; | ||
2280 | url = "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz"; | ||
2281 | sha1 = "43f6c21151b4ef2bf57187db0d73de229e3e7ec3"; | ||
2282 | }; | ||
2283 | } | ||
2284 | { | ||
2285 | name = "collection_visit___collection_visit_1.0.0.tgz"; | ||
2286 | path = fetchurl { | ||
2287 | name = "collection_visit___collection_visit_1.0.0.tgz"; | ||
2288 | url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz"; | ||
2289 | sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; | ||
2290 | }; | ||
2291 | } | ||
2292 | { | ||
2293 | name = "color_convert___color_convert_1.9.3.tgz"; | ||
2294 | path = fetchurl { | ||
2295 | name = "color_convert___color_convert_1.9.3.tgz"; | ||
2296 | url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz"; | ||
2297 | sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8"; | ||
2298 | }; | ||
2299 | } | ||
2300 | { | ||
2301 | name = "color_convert___color_convert_2.0.1.tgz"; | ||
2302 | path = fetchurl { | ||
2303 | name = "color_convert___color_convert_2.0.1.tgz"; | ||
2304 | url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz"; | ||
2305 | sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"; | ||
2306 | }; | ||
2307 | } | ||
2308 | { | ||
2309 | name = "color_name___color_name_1.1.3.tgz"; | ||
2310 | path = fetchurl { | ||
2311 | name = "color_name___color_name_1.1.3.tgz"; | ||
2312 | url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz"; | ||
2313 | sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; | ||
2314 | }; | ||
2315 | } | ||
2316 | { | ||
2317 | name = "color_name___color_name_1.1.4.tgz"; | ||
2318 | path = fetchurl { | ||
2319 | name = "color_name___color_name_1.1.4.tgz"; | ||
2320 | url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz"; | ||
2321 | sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2"; | ||
2322 | }; | ||
2323 | } | ||
2324 | { | ||
2325 | name = "color_string___color_string_1.5.3.tgz"; | ||
2326 | path = fetchurl { | ||
2327 | name = "color_string___color_string_1.5.3.tgz"; | ||
2328 | url = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz"; | ||
2329 | sha1 = "c9bbc5f01b58b5492f3d6857459cb6590ce204cc"; | ||
2330 | }; | ||
2331 | } | ||
2332 | { | ||
2333 | name = "color___color_3.1.2.tgz"; | ||
2334 | path = fetchurl { | ||
2335 | name = "color___color_3.1.2.tgz"; | ||
2336 | url = "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz"; | ||
2337 | sha1 = "68148e7f85d41ad7649c5fa8c8106f098d229e10"; | ||
2338 | }; | ||
2339 | } | ||
2340 | { | ||
2341 | name = "combined_stream___combined_stream_1.0.8.tgz"; | ||
2342 | path = fetchurl { | ||
2343 | name = "combined_stream___combined_stream_1.0.8.tgz"; | ||
2344 | url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz"; | ||
2345 | sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f"; | ||
2346 | }; | ||
2347 | } | ||
2348 | { | ||
2349 | name = "commander___commander_2.17.1.tgz"; | ||
2350 | path = fetchurl { | ||
2351 | name = "commander___commander_2.17.1.tgz"; | ||
2352 | url = "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz"; | ||
2353 | sha1 = "bd77ab7de6de94205ceacc72f1716d29f20a77bf"; | ||
2354 | }; | ||
2355 | } | ||
2356 | { | ||
2357 | name = "commander___commander_2.20.3.tgz"; | ||
2358 | path = fetchurl { | ||
2359 | name = "commander___commander_2.20.3.tgz"; | ||
2360 | url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz"; | ||
2361 | sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33"; | ||
2362 | }; | ||
2363 | } | ||
2364 | { | ||
2365 | name = "commander___commander_2.19.0.tgz"; | ||
2366 | path = fetchurl { | ||
2367 | name = "commander___commander_2.19.0.tgz"; | ||
2368 | url = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz"; | ||
2369 | sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"; | ||
2370 | }; | ||
2371 | } | ||
2372 | { | ||
2373 | name = "common_tags___common_tags_1.8.0.tgz"; | ||
2374 | path = fetchurl { | ||
2375 | name = "common_tags___common_tags_1.8.0.tgz"; | ||
2376 | url = "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz"; | ||
2377 | sha1 = "8e3153e542d4a39e9b10554434afaaf98956a937"; | ||
2378 | }; | ||
2379 | } | ||
2380 | { | ||
2381 | name = "commondir___commondir_1.0.1.tgz"; | ||
2382 | path = fetchurl { | ||
2383 | name = "commondir___commondir_1.0.1.tgz"; | ||
2384 | url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz"; | ||
2385 | sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b"; | ||
2386 | }; | ||
2387 | } | ||
2388 | { | ||
2389 | name = "component_emitter___component_emitter_1.3.0.tgz"; | ||
2390 | path = fetchurl { | ||
2391 | name = "component_emitter___component_emitter_1.3.0.tgz"; | ||
2392 | url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz"; | ||
2393 | sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0"; | ||
2394 | }; | ||
2395 | } | ||
2396 | { | ||
2397 | name = "compressible___compressible_2.0.18.tgz"; | ||
2398 | path = fetchurl { | ||
2399 | name = "compressible___compressible_2.0.18.tgz"; | ||
2400 | url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz"; | ||
2401 | sha1 = "af53cca6b070d4c3c0750fbd77286a6d7cc46fba"; | ||
2402 | }; | ||
2403 | } | ||
2404 | { | ||
2405 | name = "compression___compression_1.7.4.tgz"; | ||
2406 | path = fetchurl { | ||
2407 | name = "compression___compression_1.7.4.tgz"; | ||
2408 | url = "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz"; | ||
2409 | sha1 = "95523eff170ca57c29a0ca41e6fe131f41e5bb8f"; | ||
2410 | }; | ||
2411 | } | ||
2412 | { | ||
2413 | name = "concat_map___concat_map_0.0.1.tgz"; | ||
2414 | path = fetchurl { | ||
2415 | name = "concat_map___concat_map_0.0.1.tgz"; | ||
2416 | url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; | ||
2417 | sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; | ||
2418 | }; | ||
2419 | } | ||
2420 | { | ||
2421 | name = "concat_stream___concat_stream_1.6.2.tgz"; | ||
2422 | path = fetchurl { | ||
2423 | name = "concat_stream___concat_stream_1.6.2.tgz"; | ||
2424 | url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz"; | ||
2425 | sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"; | ||
2426 | }; | ||
2427 | } | ||
2428 | { | ||
2429 | name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz"; | ||
2430 | path = fetchurl { | ||
2431 | name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz"; | ||
2432 | url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz"; | ||
2433 | sha1 = "8b32089359308d111115d81cad3fceab888f97bc"; | ||
2434 | }; | ||
2435 | } | ||
2436 | { | ||
2437 | name = "console_browserify___console_browserify_1.2.0.tgz"; | ||
2438 | path = fetchurl { | ||
2439 | name = "console_browserify___console_browserify_1.2.0.tgz"; | ||
2440 | url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz"; | ||
2441 | sha1 = "67063cef57ceb6cf4993a2ab3a55840ae8c49336"; | ||
2442 | }; | ||
2443 | } | ||
2444 | { | ||
2445 | name = "consolidate___consolidate_0.15.1.tgz"; | ||
2446 | path = fetchurl { | ||
2447 | name = "consolidate___consolidate_0.15.1.tgz"; | ||
2448 | url = "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz"; | ||
2449 | sha1 = "21ab043235c71a07d45d9aad98593b0dba56bab7"; | ||
2450 | }; | ||
2451 | } | ||
2452 | { | ||
2453 | name = "constants_browserify___constants_browserify_1.0.0.tgz"; | ||
2454 | path = fetchurl { | ||
2455 | name = "constants_browserify___constants_browserify_1.0.0.tgz"; | ||
2456 | url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz"; | ||
2457 | sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; | ||
2458 | }; | ||
2459 | } | ||
2460 | { | ||
2461 | name = "content_disposition___content_disposition_0.5.3.tgz"; | ||
2462 | path = fetchurl { | ||
2463 | name = "content_disposition___content_disposition_0.5.3.tgz"; | ||
2464 | url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz"; | ||
2465 | sha1 = "e130caf7e7279087c5616c2007d0485698984fbd"; | ||
2466 | }; | ||
2467 | } | ||
2468 | { | ||
2469 | name = "content_type___content_type_1.0.4.tgz"; | ||
2470 | path = fetchurl { | ||
2471 | name = "content_type___content_type_1.0.4.tgz"; | ||
2472 | url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz"; | ||
2473 | sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b"; | ||
2474 | }; | ||
2475 | } | ||
2476 | { | ||
2477 | name = "convert_source_map___convert_source_map_1.7.0.tgz"; | ||
2478 | path = fetchurl { | ||
2479 | name = "convert_source_map___convert_source_map_1.7.0.tgz"; | ||
2480 | url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz"; | ||
2481 | sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442"; | ||
2482 | }; | ||
2483 | } | ||
2484 | { | ||
2485 | name = "cookie_signature___cookie_signature_1.0.6.tgz"; | ||
2486 | path = fetchurl { | ||
2487 | name = "cookie_signature___cookie_signature_1.0.6.tgz"; | ||
2488 | url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz"; | ||
2489 | sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; | ||
2490 | }; | ||
2491 | } | ||
2492 | { | ||
2493 | name = "cookie___cookie_0.4.0.tgz"; | ||
2494 | path = fetchurl { | ||
2495 | name = "cookie___cookie_0.4.0.tgz"; | ||
2496 | url = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz"; | ||
2497 | sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba"; | ||
2498 | }; | ||
2499 | } | ||
2500 | { | ||
2501 | name = "copy_concurrently___copy_concurrently_1.0.5.tgz"; | ||
2502 | path = fetchurl { | ||
2503 | name = "copy_concurrently___copy_concurrently_1.0.5.tgz"; | ||
2504 | url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz"; | ||
2505 | sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0"; | ||
2506 | }; | ||
2507 | } | ||
2508 | { | ||
2509 | name = "copy_descriptor___copy_descriptor_0.1.1.tgz"; | ||
2510 | path = fetchurl { | ||
2511 | name = "copy_descriptor___copy_descriptor_0.1.1.tgz"; | ||
2512 | url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; | ||
2513 | sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; | ||
2514 | }; | ||
2515 | } | ||
2516 | { | ||
2517 | name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz"; | ||
2518 | path = fetchurl { | ||
2519 | name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz"; | ||
2520 | url = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz"; | ||
2521 | sha1 = "5481a03dea1123d88a988c6ff8b78247214f0b88"; | ||
2522 | }; | ||
2523 | } | ||
2524 | { | ||
2525 | name = "core_js_compat___core_js_compat_3.6.5.tgz"; | ||
2526 | path = fetchurl { | ||
2527 | name = "core_js_compat___core_js_compat_3.6.5.tgz"; | ||
2528 | url = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz"; | ||
2529 | sha1 = "2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"; | ||
2530 | }; | ||
2531 | } | ||
2532 | { | ||
2533 | name = "core_js___core_js_2.6.11.tgz"; | ||
2534 | path = fetchurl { | ||
2535 | name = "core_js___core_js_2.6.11.tgz"; | ||
2536 | url = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz"; | ||
2537 | sha1 = "38831469f9922bded8ee21c9dc46985e0399308c"; | ||
2538 | }; | ||
2539 | } | ||
2540 | { | ||
2541 | name = "core_js___core_js_3.6.5.tgz"; | ||
2542 | path = fetchurl { | ||
2543 | name = "core_js___core_js_3.6.5.tgz"; | ||
2544 | url = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz"; | ||
2545 | sha1 = "7395dc273af37fb2e50e9bd3d9fe841285231d1a"; | ||
2546 | }; | ||
2547 | } | ||
2548 | { | ||
2549 | name = "core_util_is___core_util_is_1.0.2.tgz"; | ||
2550 | path = fetchurl { | ||
2551 | name = "core_util_is___core_util_is_1.0.2.tgz"; | ||
2552 | url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"; | ||
2553 | sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; | ||
2554 | }; | ||
2555 | } | ||
2556 | { | ||
2557 | name = "cosmiconfig___cosmiconfig_5.2.1.tgz"; | ||
2558 | path = fetchurl { | ||
2559 | name = "cosmiconfig___cosmiconfig_5.2.1.tgz"; | ||
2560 | url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz"; | ||
2561 | sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a"; | ||
2562 | }; | ||
2563 | } | ||
2564 | { | ||
2565 | name = "create_ecdh___create_ecdh_4.0.3.tgz"; | ||
2566 | path = fetchurl { | ||
2567 | name = "create_ecdh___create_ecdh_4.0.3.tgz"; | ||
2568 | url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz"; | ||
2569 | sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff"; | ||
2570 | }; | ||
2571 | } | ||
2572 | { | ||
2573 | name = "create_hash___create_hash_1.2.0.tgz"; | ||
2574 | path = fetchurl { | ||
2575 | name = "create_hash___create_hash_1.2.0.tgz"; | ||
2576 | url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz"; | ||
2577 | sha1 = "889078af11a63756bcfb59bd221996be3a9ef196"; | ||
2578 | }; | ||
2579 | } | ||
2580 | { | ||
2581 | name = "create_hmac___create_hmac_1.1.7.tgz"; | ||
2582 | path = fetchurl { | ||
2583 | name = "create_hmac___create_hmac_1.1.7.tgz"; | ||
2584 | url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz"; | ||
2585 | sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff"; | ||
2586 | }; | ||
2587 | } | ||
2588 | { | ||
2589 | name = "cross_spawn___cross_spawn_5.1.0.tgz"; | ||
2590 | path = fetchurl { | ||
2591 | name = "cross_spawn___cross_spawn_5.1.0.tgz"; | ||
2592 | url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz"; | ||
2593 | sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449"; | ||
2594 | }; | ||
2595 | } | ||
2596 | { | ||
2597 | name = "cross_spawn___cross_spawn_6.0.5.tgz"; | ||
2598 | path = fetchurl { | ||
2599 | name = "cross_spawn___cross_spawn_6.0.5.tgz"; | ||
2600 | url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz"; | ||
2601 | sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"; | ||
2602 | }; | ||
2603 | } | ||
2604 | { | ||
2605 | name = "cross_spawn___cross_spawn_7.0.3.tgz"; | ||
2606 | path = fetchurl { | ||
2607 | name = "cross_spawn___cross_spawn_7.0.3.tgz"; | ||
2608 | url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz"; | ||
2609 | sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6"; | ||
2610 | }; | ||
2611 | } | ||
2612 | { | ||
2613 | name = "crypto_browserify___crypto_browserify_3.12.0.tgz"; | ||
2614 | path = fetchurl { | ||
2615 | name = "crypto_browserify___crypto_browserify_3.12.0.tgz"; | ||
2616 | url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; | ||
2617 | sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec"; | ||
2618 | }; | ||
2619 | } | ||
2620 | { | ||
2621 | name = "css_color_names___css_color_names_0.0.4.tgz"; | ||
2622 | path = fetchurl { | ||
2623 | name = "css_color_names___css_color_names_0.0.4.tgz"; | ||
2624 | url = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz"; | ||
2625 | sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0"; | ||
2626 | }; | ||
2627 | } | ||
2628 | { | ||
2629 | name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz"; | ||
2630 | path = fetchurl { | ||
2631 | name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz"; | ||
2632 | url = "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz"; | ||
2633 | sha1 = "c198940f63a76d7e36c1e71018b001721054cb22"; | ||
2634 | }; | ||
2635 | } | ||
2636 | { | ||
2637 | name = "css_loader___css_loader_3.5.3.tgz"; | ||
2638 | path = fetchurl { | ||
2639 | name = "css_loader___css_loader_3.5.3.tgz"; | ||
2640 | url = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.5.3.tgz"; | ||
2641 | sha1 = "95ac16468e1adcd95c844729e0bb167639eb0bcf"; | ||
2642 | }; | ||
2643 | } | ||
2644 | { | ||
2645 | name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz"; | ||
2646 | path = fetchurl { | ||
2647 | name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz"; | ||
2648 | url = "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz"; | ||
2649 | sha1 = "3b2ff4972cc362ab88561507a95408a1432135d7"; | ||
2650 | }; | ||
2651 | } | ||
2652 | { | ||
2653 | name = "css_select___css_select_1.2.0.tgz"; | ||
2654 | path = fetchurl { | ||
2655 | name = "css_select___css_select_1.2.0.tgz"; | ||
2656 | url = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz"; | ||
2657 | sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858"; | ||
2658 | }; | ||
2659 | } | ||
2660 | { | ||
2661 | name = "css_select___css_select_2.1.0.tgz"; | ||
2662 | path = fetchurl { | ||
2663 | name = "css_select___css_select_2.1.0.tgz"; | ||
2664 | url = "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz"; | ||
2665 | sha1 = "6a34653356635934a81baca68d0255432105dbef"; | ||
2666 | }; | ||
2667 | } | ||
2668 | { | ||
2669 | name = "css_tree___css_tree_1.0.0_alpha.37.tgz"; | ||
2670 | path = fetchurl { | ||
2671 | name = "css_tree___css_tree_1.0.0_alpha.37.tgz"; | ||
2672 | url = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz"; | ||
2673 | sha1 = "98bebd62c4c1d9f960ec340cf9f7522e30709a22"; | ||
2674 | }; | ||
2675 | } | ||
2676 | { | ||
2677 | name = "css_tree___css_tree_1.0.0_alpha.39.tgz"; | ||
2678 | path = fetchurl { | ||
2679 | name = "css_tree___css_tree_1.0.0_alpha.39.tgz"; | ||
2680 | url = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz"; | ||
2681 | sha1 = "2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"; | ||
2682 | }; | ||
2683 | } | ||
2684 | { | ||
2685 | name = "css_what___css_what_2.1.3.tgz"; | ||
2686 | path = fetchurl { | ||
2687 | name = "css_what___css_what_2.1.3.tgz"; | ||
2688 | url = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz"; | ||
2689 | sha1 = "a6d7604573365fe74686c3f311c56513d88285f2"; | ||
2690 | }; | ||
2691 | } | ||
2692 | { | ||
2693 | name = "css_what___css_what_3.3.0.tgz"; | ||
2694 | path = fetchurl { | ||
2695 | name = "css_what___css_what_3.3.0.tgz"; | ||
2696 | url = "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz"; | ||
2697 | sha1 = "10fec696a9ece2e591ac772d759aacabac38cd39"; | ||
2698 | }; | ||
2699 | } | ||
2700 | { | ||
2701 | name = "cssesc___cssesc_3.0.0.tgz"; | ||
2702 | path = fetchurl { | ||
2703 | name = "cssesc___cssesc_3.0.0.tgz"; | ||
2704 | url = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz"; | ||
2705 | sha1 = "37741919903b868565e1c09ea747445cd18983ee"; | ||
2706 | }; | ||
2707 | } | ||
2708 | { | ||
2709 | name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz"; | ||
2710 | path = fetchurl { | ||
2711 | name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz"; | ||
2712 | url = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz"; | ||
2713 | sha1 = "51ec662ccfca0f88b396dcd9679cdb931be17f76"; | ||
2714 | }; | ||
2715 | } | ||
2716 | { | ||
2717 | name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz"; | ||
2718 | path = fetchurl { | ||
2719 | name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz"; | ||
2720 | url = "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz"; | ||
2721 | sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f"; | ||
2722 | }; | ||
2723 | } | ||
2724 | { | ||
2725 | name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz"; | ||
2726 | path = fetchurl { | ||
2727 | name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz"; | ||
2728 | url = "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz"; | ||
2729 | sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d"; | ||
2730 | }; | ||
2731 | } | ||
2732 | { | ||
2733 | name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz"; | ||
2734 | path = fetchurl { | ||
2735 | name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz"; | ||
2736 | url = "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz"; | ||
2737 | sha1 = "b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"; | ||
2738 | }; | ||
2739 | } | ||
2740 | { | ||
2741 | name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz"; | ||
2742 | path = fetchurl { | ||
2743 | name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz"; | ||
2744 | url = "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz"; | ||
2745 | sha1 = "574082fb2859d2db433855835d9a8456ea18bbf3"; | ||
2746 | }; | ||
2747 | } | ||
2748 | { | ||
2749 | name = "cssnano___cssnano_4.1.10.tgz"; | ||
2750 | path = fetchurl { | ||
2751 | name = "cssnano___cssnano_4.1.10.tgz"; | ||
2752 | url = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz"; | ||
2753 | sha1 = "0ac41f0b13d13d465487e111b778d42da631b8b2"; | ||
2754 | }; | ||
2755 | } | ||
2756 | { | ||
2757 | name = "csso___csso_4.0.3.tgz"; | ||
2758 | path = fetchurl { | ||
2759 | name = "csso___csso_4.0.3.tgz"; | ||
2760 | url = "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz"; | ||
2761 | sha1 = "0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"; | ||
2762 | }; | ||
2763 | } | ||
2764 | { | ||
2765 | name = "cyclist___cyclist_1.0.1.tgz"; | ||
2766 | path = fetchurl { | ||
2767 | name = "cyclist___cyclist_1.0.1.tgz"; | ||
2768 | url = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz"; | ||
2769 | sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9"; | ||
2770 | }; | ||
2771 | } | ||
2772 | { | ||
2773 | name = "dashdash___dashdash_1.14.1.tgz"; | ||
2774 | path = fetchurl { | ||
2775 | name = "dashdash___dashdash_1.14.1.tgz"; | ||
2776 | url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz"; | ||
2777 | sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; | ||
2778 | }; | ||
2779 | } | ||
2780 | { | ||
2781 | name = "de_indent___de_indent_1.0.2.tgz"; | ||
2782 | path = fetchurl { | ||
2783 | name = "de_indent___de_indent_1.0.2.tgz"; | ||
2784 | url = "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz"; | ||
2785 | sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d"; | ||
2786 | }; | ||
2787 | } | ||
2788 | { | ||
2789 | name = "debug___debug_2.6.9.tgz"; | ||
2790 | path = fetchurl { | ||
2791 | name = "debug___debug_2.6.9.tgz"; | ||
2792 | url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz"; | ||
2793 | sha1 = "5d128515df134ff327e90a4c93f4e077a536341f"; | ||
2794 | }; | ||
2795 | } | ||
2796 | { | ||
2797 | name = "debug___debug_3.2.6.tgz"; | ||
2798 | path = fetchurl { | ||
2799 | name = "debug___debug_3.2.6.tgz"; | ||
2800 | url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz"; | ||
2801 | sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b"; | ||
2802 | }; | ||
2803 | } | ||
2804 | { | ||
2805 | name = "debug___debug_4.1.1.tgz"; | ||
2806 | path = fetchurl { | ||
2807 | name = "debug___debug_4.1.1.tgz"; | ||
2808 | url = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz"; | ||
2809 | sha1 = "3b72260255109c6b589cee050f1d516139664791"; | ||
2810 | }; | ||
2811 | } | ||
2812 | { | ||
2813 | name = "decamelize___decamelize_1.2.0.tgz"; | ||
2814 | path = fetchurl { | ||
2815 | name = "decamelize___decamelize_1.2.0.tgz"; | ||
2816 | url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz"; | ||
2817 | sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; | ||
2818 | }; | ||
2819 | } | ||
2820 | { | ||
2821 | name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; | ||
2822 | path = fetchurl { | ||
2823 | name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; | ||
2824 | url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; | ||
2825 | sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; | ||
2826 | }; | ||
2827 | } | ||
2828 | { | ||
2829 | name = "deep_equal___deep_equal_1.1.1.tgz"; | ||
2830 | path = fetchurl { | ||
2831 | name = "deep_equal___deep_equal_1.1.1.tgz"; | ||
2832 | url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz"; | ||
2833 | sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a"; | ||
2834 | }; | ||
2835 | } | ||
2836 | { | ||
2837 | name = "deep_is___deep_is_0.1.3.tgz"; | ||
2838 | path = fetchurl { | ||
2839 | name = "deep_is___deep_is_0.1.3.tgz"; | ||
2840 | url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz"; | ||
2841 | sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; | ||
2842 | }; | ||
2843 | } | ||
2844 | { | ||
2845 | name = "deepmerge___deepmerge_1.5.2.tgz"; | ||
2846 | path = fetchurl { | ||
2847 | name = "deepmerge___deepmerge_1.5.2.tgz"; | ||
2848 | url = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz"; | ||
2849 | sha1 = "10499d868844cdad4fee0842df8c7f6f0c95a753"; | ||
2850 | }; | ||
2851 | } | ||
2852 | { | ||
2853 | name = "default_gateway___default_gateway_4.2.0.tgz"; | ||
2854 | path = fetchurl { | ||
2855 | name = "default_gateway___default_gateway_4.2.0.tgz"; | ||
2856 | url = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz"; | ||
2857 | sha1 = "167104c7500c2115f6dd69b0a536bb8ed720552b"; | ||
2858 | }; | ||
2859 | } | ||
2860 | { | ||
2861 | name = "default_gateway___default_gateway_5.0.5.tgz"; | ||
2862 | path = fetchurl { | ||
2863 | name = "default_gateway___default_gateway_5.0.5.tgz"; | ||
2864 | url = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-5.0.5.tgz"; | ||
2865 | sha1 = "4fd6bd5d2855d39b34cc5a59505486e9aafc9b10"; | ||
2866 | }; | ||
2867 | } | ||
2868 | { | ||
2869 | name = "defaults___defaults_1.0.3.tgz"; | ||
2870 | path = fetchurl { | ||
2871 | name = "defaults___defaults_1.0.3.tgz"; | ||
2872 | url = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz"; | ||
2873 | sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d"; | ||
2874 | }; | ||
2875 | } | ||
2876 | { | ||
2877 | name = "define_properties___define_properties_1.1.3.tgz"; | ||
2878 | path = fetchurl { | ||
2879 | name = "define_properties___define_properties_1.1.3.tgz"; | ||
2880 | url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz"; | ||
2881 | sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1"; | ||
2882 | }; | ||
2883 | } | ||
2884 | { | ||
2885 | name = "define_property___define_property_0.2.5.tgz"; | ||
2886 | path = fetchurl { | ||
2887 | name = "define_property___define_property_0.2.5.tgz"; | ||
2888 | url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz"; | ||
2889 | sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; | ||
2890 | }; | ||
2891 | } | ||
2892 | { | ||
2893 | name = "define_property___define_property_1.0.0.tgz"; | ||
2894 | path = fetchurl { | ||
2895 | name = "define_property___define_property_1.0.0.tgz"; | ||
2896 | url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz"; | ||
2897 | sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; | ||
2898 | }; | ||
2899 | } | ||
2900 | { | ||
2901 | name = "define_property___define_property_2.0.2.tgz"; | ||
2902 | path = fetchurl { | ||
2903 | name = "define_property___define_property_2.0.2.tgz"; | ||
2904 | url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz"; | ||
2905 | sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d"; | ||
2906 | }; | ||
2907 | } | ||
2908 | { | ||
2909 | name = "del___del_4.1.1.tgz"; | ||
2910 | path = fetchurl { | ||
2911 | name = "del___del_4.1.1.tgz"; | ||
2912 | url = "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz"; | ||
2913 | sha1 = "9e8f117222ea44a31ff3a156c049b99052a9f0b4"; | ||
2914 | }; | ||
2915 | } | ||
2916 | { | ||
2917 | name = "delayed_stream___delayed_stream_1.0.0.tgz"; | ||
2918 | path = fetchurl { | ||
2919 | name = "delayed_stream___delayed_stream_1.0.0.tgz"; | ||
2920 | url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz"; | ||
2921 | sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; | ||
2922 | }; | ||
2923 | } | ||
2924 | { | ||
2925 | name = "depd___depd_1.1.2.tgz"; | ||
2926 | path = fetchurl { | ||
2927 | name = "depd___depd_1.1.2.tgz"; | ||
2928 | url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz"; | ||
2929 | sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; | ||
2930 | }; | ||
2931 | } | ||
2932 | { | ||
2933 | name = "des.js___des.js_1.0.1.tgz"; | ||
2934 | path = fetchurl { | ||
2935 | name = "des.js___des.js_1.0.1.tgz"; | ||
2936 | url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz"; | ||
2937 | sha1 = "5382142e1bdc53f85d86d53e5f4aa7deb91e0843"; | ||
2938 | }; | ||
2939 | } | ||
2940 | { | ||
2941 | name = "destroy___destroy_1.0.4.tgz"; | ||
2942 | path = fetchurl { | ||
2943 | name = "destroy___destroy_1.0.4.tgz"; | ||
2944 | url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz"; | ||
2945 | sha1 = "978857442c44749e4206613e37946205826abd80"; | ||
2946 | }; | ||
2947 | } | ||
2948 | { | ||
2949 | name = "detect_node___detect_node_2.0.4.tgz"; | ||
2950 | path = fetchurl { | ||
2951 | name = "detect_node___detect_node_2.0.4.tgz"; | ||
2952 | url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz"; | ||
2953 | sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c"; | ||
2954 | }; | ||
2955 | } | ||
2956 | { | ||
2957 | name = "diffie_hellman___diffie_hellman_5.0.3.tgz"; | ||
2958 | path = fetchurl { | ||
2959 | name = "diffie_hellman___diffie_hellman_5.0.3.tgz"; | ||
2960 | url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz"; | ||
2961 | sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875"; | ||
2962 | }; | ||
2963 | } | ||
2964 | { | ||
2965 | name = "dir_glob___dir_glob_2.2.2.tgz"; | ||
2966 | path = fetchurl { | ||
2967 | name = "dir_glob___dir_glob_2.2.2.tgz"; | ||
2968 | url = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz"; | ||
2969 | sha1 = "fa09f0694153c8918b18ba0deafae94769fc50c4"; | ||
2970 | }; | ||
2971 | } | ||
2972 | { | ||
2973 | name = "dns_equal___dns_equal_1.0.0.tgz"; | ||
2974 | path = fetchurl { | ||
2975 | name = "dns_equal___dns_equal_1.0.0.tgz"; | ||
2976 | url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz"; | ||
2977 | sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d"; | ||
2978 | }; | ||
2979 | } | ||
2980 | { | ||
2981 | name = "dns_packet___dns_packet_1.3.1.tgz"; | ||
2982 | path = fetchurl { | ||
2983 | name = "dns_packet___dns_packet_1.3.1.tgz"; | ||
2984 | url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz"; | ||
2985 | sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a"; | ||
2986 | }; | ||
2987 | } | ||
2988 | { | ||
2989 | name = "dns_txt___dns_txt_2.0.2.tgz"; | ||
2990 | path = fetchurl { | ||
2991 | name = "dns_txt___dns_txt_2.0.2.tgz"; | ||
2992 | url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz"; | ||
2993 | sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6"; | ||
2994 | }; | ||
2995 | } | ||
2996 | { | ||
2997 | name = "doctrine___doctrine_3.0.0.tgz"; | ||
2998 | path = fetchurl { | ||
2999 | name = "doctrine___doctrine_3.0.0.tgz"; | ||
3000 | url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz"; | ||
3001 | sha1 = "addebead72a6574db783639dc87a121773973961"; | ||
3002 | }; | ||
3003 | } | ||
3004 | { | ||
3005 | name = "dom_converter___dom_converter_0.2.0.tgz"; | ||
3006 | path = fetchurl { | ||
3007 | name = "dom_converter___dom_converter_0.2.0.tgz"; | ||
3008 | url = "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz"; | ||
3009 | sha1 = "6721a9daee2e293682955b6afe416771627bb768"; | ||
3010 | }; | ||
3011 | } | ||
3012 | { | ||
3013 | name = "dom_serializer___dom_serializer_0.2.2.tgz"; | ||
3014 | path = fetchurl { | ||
3015 | name = "dom_serializer___dom_serializer_0.2.2.tgz"; | ||
3016 | url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz"; | ||
3017 | sha1 = "1afb81f533717175d478655debc5e332d9f9bb51"; | ||
3018 | }; | ||
3019 | } | ||
3020 | { | ||
3021 | name = "domain_browser___domain_browser_1.2.0.tgz"; | ||
3022 | path = fetchurl { | ||
3023 | name = "domain_browser___domain_browser_1.2.0.tgz"; | ||
3024 | url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz"; | ||
3025 | sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda"; | ||
3026 | }; | ||
3027 | } | ||
3028 | { | ||
3029 | name = "domelementtype___domelementtype_1.3.1.tgz"; | ||
3030 | path = fetchurl { | ||
3031 | name = "domelementtype___domelementtype_1.3.1.tgz"; | ||
3032 | url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz"; | ||
3033 | sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f"; | ||
3034 | }; | ||
3035 | } | ||
3036 | { | ||
3037 | name = "domelementtype___domelementtype_2.0.1.tgz"; | ||
3038 | path = fetchurl { | ||
3039 | name = "domelementtype___domelementtype_2.0.1.tgz"; | ||
3040 | url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz"; | ||
3041 | sha1 = "1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"; | ||
3042 | }; | ||
3043 | } | ||
3044 | { | ||
3045 | name = "domhandler___domhandler_2.4.2.tgz"; | ||
3046 | path = fetchurl { | ||
3047 | name = "domhandler___domhandler_2.4.2.tgz"; | ||
3048 | url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz"; | ||
3049 | sha1 = "8805097e933d65e85546f726d60f5eb88b44f803"; | ||
3050 | }; | ||
3051 | } | ||
3052 | { | ||
3053 | name = "domutils___domutils_1.5.1.tgz"; | ||
3054 | path = fetchurl { | ||
3055 | name = "domutils___domutils_1.5.1.tgz"; | ||
3056 | url = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz"; | ||
3057 | sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf"; | ||
3058 | }; | ||
3059 | } | ||
3060 | { | ||
3061 | name = "domutils___domutils_1.7.0.tgz"; | ||
3062 | path = fetchurl { | ||
3063 | name = "domutils___domutils_1.7.0.tgz"; | ||
3064 | url = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz"; | ||
3065 | sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a"; | ||
3066 | }; | ||
3067 | } | ||
3068 | { | ||
3069 | name = "dot_prop___dot_prop_5.2.0.tgz"; | ||
3070 | path = fetchurl { | ||
3071 | name = "dot_prop___dot_prop_5.2.0.tgz"; | ||
3072 | url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz"; | ||
3073 | sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"; | ||
3074 | }; | ||
3075 | } | ||
3076 | { | ||
3077 | name = "dotenv_expand___dotenv_expand_5.1.0.tgz"; | ||
3078 | path = fetchurl { | ||
3079 | name = "dotenv_expand___dotenv_expand_5.1.0.tgz"; | ||
3080 | url = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz"; | ||
3081 | sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0"; | ||
3082 | }; | ||
3083 | } | ||
3084 | { | ||
3085 | name = "dotenv___dotenv_8.2.0.tgz"; | ||
3086 | path = fetchurl { | ||
3087 | name = "dotenv___dotenv_8.2.0.tgz"; | ||
3088 | url = "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz"; | ||
3089 | sha1 = "97e619259ada750eea3e4ea3e26bceea5424b16a"; | ||
3090 | }; | ||
3091 | } | ||
3092 | { | ||
3093 | name = "duplexer___duplexer_0.1.1.tgz"; | ||
3094 | path = fetchurl { | ||
3095 | name = "duplexer___duplexer_0.1.1.tgz"; | ||
3096 | url = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz"; | ||
3097 | sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1"; | ||
3098 | }; | ||
3099 | } | ||
3100 | { | ||
3101 | name = "duplexify___duplexify_3.7.1.tgz"; | ||
3102 | path = fetchurl { | ||
3103 | name = "duplexify___duplexify_3.7.1.tgz"; | ||
3104 | url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz"; | ||
3105 | sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"; | ||
3106 | }; | ||
3107 | } | ||
3108 | { | ||
3109 | name = "easy_stack___easy_stack_1.0.0.tgz"; | ||
3110 | path = fetchurl { | ||
3111 | name = "easy_stack___easy_stack_1.0.0.tgz"; | ||
3112 | url = "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.0.tgz"; | ||
3113 | sha1 = "12c91b3085a37f0baa336e9486eac4bf94e3e788"; | ||
3114 | }; | ||
3115 | } | ||
3116 | { | ||
3117 | name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz"; | ||
3118 | path = fetchurl { | ||
3119 | name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz"; | ||
3120 | url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; | ||
3121 | sha1 = "3a83a904e54353287874c564b7549386849a98c9"; | ||
3122 | }; | ||
3123 | } | ||
3124 | { | ||
3125 | name = "ee_first___ee_first_1.1.1.tgz"; | ||
3126 | path = fetchurl { | ||
3127 | name = "ee_first___ee_first_1.1.1.tgz"; | ||
3128 | url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz"; | ||
3129 | sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; | ||
3130 | }; | ||
3131 | } | ||
3132 | { | ||
3133 | name = "ejs___ejs_2.7.4.tgz"; | ||
3134 | path = fetchurl { | ||
3135 | name = "ejs___ejs_2.7.4.tgz"; | ||
3136 | url = "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz"; | ||
3137 | sha1 = "48661287573dcc53e366c7a1ae52c3a120eec9ba"; | ||
3138 | }; | ||
3139 | } | ||
3140 | { | ||
3141 | name = "electron_to_chromium___electron_to_chromium_1.3.464.tgz"; | ||
3142 | path = fetchurl { | ||
3143 | name = "electron_to_chromium___electron_to_chromium_1.3.464.tgz"; | ||
3144 | url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.464.tgz"; | ||
3145 | sha1 = "fe13feaa08f6f865d3c89d5d72e54c194f463aa5"; | ||
3146 | }; | ||
3147 | } | ||
3148 | { | ||
3149 | name = "elliptic___elliptic_6.5.2.tgz"; | ||
3150 | path = fetchurl { | ||
3151 | name = "elliptic___elliptic_6.5.2.tgz"; | ||
3152 | url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz"; | ||
3153 | sha1 = "05c5678d7173c049d8ca433552224a495d0e3762"; | ||
3154 | }; | ||
3155 | } | ||
3156 | { | ||
3157 | name = "emoji_regex___emoji_regex_7.0.3.tgz"; | ||
3158 | path = fetchurl { | ||
3159 | name = "emoji_regex___emoji_regex_7.0.3.tgz"; | ||
3160 | url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz"; | ||
3161 | sha1 = "933a04052860c85e83c122479c4748a8e4c72156"; | ||
3162 | }; | ||
3163 | } | ||
3164 | { | ||
3165 | name = "emoji_regex___emoji_regex_8.0.0.tgz"; | ||
3166 | path = fetchurl { | ||
3167 | name = "emoji_regex___emoji_regex_8.0.0.tgz"; | ||
3168 | url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz"; | ||
3169 | sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37"; | ||
3170 | }; | ||
3171 | } | ||
3172 | { | ||
3173 | name = "emojis_list___emojis_list_2.1.0.tgz"; | ||
3174 | path = fetchurl { | ||
3175 | name = "emojis_list___emojis_list_2.1.0.tgz"; | ||
3176 | url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz"; | ||
3177 | sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389"; | ||
3178 | }; | ||
3179 | } | ||
3180 | { | ||
3181 | name = "emojis_list___emojis_list_3.0.0.tgz"; | ||
3182 | path = fetchurl { | ||
3183 | name = "emojis_list___emojis_list_3.0.0.tgz"; | ||
3184 | url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz"; | ||
3185 | sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78"; | ||
3186 | }; | ||
3187 | } | ||
3188 | { | ||
3189 | name = "encodeurl___encodeurl_1.0.2.tgz"; | ||
3190 | path = fetchurl { | ||
3191 | name = "encodeurl___encodeurl_1.0.2.tgz"; | ||
3192 | url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz"; | ||
3193 | sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; | ||
3194 | }; | ||
3195 | } | ||
3196 | { | ||
3197 | name = "end_of_stream___end_of_stream_1.4.4.tgz"; | ||
3198 | path = fetchurl { | ||
3199 | name = "end_of_stream___end_of_stream_1.4.4.tgz"; | ||
3200 | url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz"; | ||
3201 | sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"; | ||
3202 | }; | ||
3203 | } | ||
3204 | { | ||
3205 | name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz"; | ||
3206 | path = fetchurl { | ||
3207 | name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz"; | ||
3208 | url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz"; | ||
3209 | sha1 = "2937e2b8066cd0fe7ce0990a98f0d71a35189f66"; | ||
3210 | }; | ||
3211 | } | ||
3212 | { | ||
3213 | name = "entities___entities_1.1.2.tgz"; | ||
3214 | path = fetchurl { | ||
3215 | name = "entities___entities_1.1.2.tgz"; | ||
3216 | url = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz"; | ||
3217 | sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56"; | ||
3218 | }; | ||
3219 | } | ||
3220 | { | ||
3221 | name = "entities___entities_2.0.3.tgz"; | ||
3222 | path = fetchurl { | ||
3223 | name = "entities___entities_2.0.3.tgz"; | ||
3224 | url = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz"; | ||
3225 | sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f"; | ||
3226 | }; | ||
3227 | } | ||
3228 | { | ||
3229 | name = "errno___errno_0.1.7.tgz"; | ||
3230 | path = fetchurl { | ||
3231 | name = "errno___errno_0.1.7.tgz"; | ||
3232 | url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz"; | ||
3233 | sha1 = "4684d71779ad39af177e3f007996f7c67c852618"; | ||
3234 | }; | ||
3235 | } | ||
3236 | { | ||
3237 | name = "error_ex___error_ex_1.3.2.tgz"; | ||
3238 | path = fetchurl { | ||
3239 | name = "error_ex___error_ex_1.3.2.tgz"; | ||
3240 | url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz"; | ||
3241 | sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf"; | ||
3242 | }; | ||
3243 | } | ||
3244 | { | ||
3245 | name = "error_stack_parser___error_stack_parser_2.0.6.tgz"; | ||
3246 | path = fetchurl { | ||
3247 | name = "error_stack_parser___error_stack_parser_2.0.6.tgz"; | ||
3248 | url = "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz"; | ||
3249 | sha1 = "5a99a707bd7a4c58a797902d48d82803ede6aad8"; | ||
3250 | }; | ||
3251 | } | ||
3252 | { | ||
3253 | name = "es_abstract___es_abstract_1.17.5.tgz"; | ||
3254 | path = fetchurl { | ||
3255 | name = "es_abstract___es_abstract_1.17.5.tgz"; | ||
3256 | url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz"; | ||
3257 | sha1 = "d8c9d1d66c8981fb9200e2251d799eee92774ae9"; | ||
3258 | }; | ||
3259 | } | ||
3260 | { | ||
3261 | name = "es_to_primitive___es_to_primitive_1.2.1.tgz"; | ||
3262 | path = fetchurl { | ||
3263 | name = "es_to_primitive___es_to_primitive_1.2.1.tgz"; | ||
3264 | url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; | ||
3265 | sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a"; | ||
3266 | }; | ||
3267 | } | ||
3268 | { | ||
3269 | name = "escape_html___escape_html_1.0.3.tgz"; | ||
3270 | path = fetchurl { | ||
3271 | name = "escape_html___escape_html_1.0.3.tgz"; | ||
3272 | url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz"; | ||
3273 | sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; | ||
3274 | }; | ||
3275 | } | ||
3276 | { | ||
3277 | name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; | ||
3278 | path = fetchurl { | ||
3279 | name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; | ||
3280 | url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; | ||
3281 | sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; | ||
3282 | }; | ||
3283 | } | ||
3284 | { | ||
3285 | name = "eslint_config_prettier___eslint_config_prettier_6.11.0.tgz"; | ||
3286 | path = fetchurl { | ||
3287 | name = "eslint_config_prettier___eslint_config_prettier_6.11.0.tgz"; | ||
3288 | url = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz"; | ||
3289 | sha1 = "f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1"; | ||
3290 | }; | ||
3291 | } | ||
3292 | { | ||
3293 | name = "eslint_loader___eslint_loader_2.2.1.tgz"; | ||
3294 | path = fetchurl { | ||
3295 | name = "eslint_loader___eslint_loader_2.2.1.tgz"; | ||
3296 | url = "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz"; | ||
3297 | sha1 = "28b9c12da54057af0845e2a6112701a2f6bf8337"; | ||
3298 | }; | ||
3299 | } | ||
3300 | { | ||
3301 | name = "eslint_plugin_prettier___eslint_plugin_prettier_3.1.3.tgz"; | ||
3302 | path = fetchurl { | ||
3303 | name = "eslint_plugin_prettier___eslint_plugin_prettier_3.1.3.tgz"; | ||
3304 | url = "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz"; | ||
3305 | sha1 = "ae116a0fc0e598fdae48743a4430903de5b4e6ca"; | ||
3306 | }; | ||
3307 | } | ||
3308 | { | ||
3309 | name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz"; | ||
3310 | path = fetchurl { | ||
3311 | name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz"; | ||
3312 | url = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz"; | ||
3313 | sha1 = "27fecd9a3a24789b0f111ecdd540a9e56198e0fe"; | ||
3314 | }; | ||
3315 | } | ||
3316 | { | ||
3317 | name = "eslint_scope___eslint_scope_4.0.3.tgz"; | ||
3318 | path = fetchurl { | ||
3319 | name = "eslint_scope___eslint_scope_4.0.3.tgz"; | ||
3320 | url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz"; | ||
3321 | sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848"; | ||
3322 | }; | ||
3323 | } | ||
3324 | { | ||
3325 | name = "eslint_scope___eslint_scope_5.1.0.tgz"; | ||
3326 | path = fetchurl { | ||
3327 | name = "eslint_scope___eslint_scope_5.1.0.tgz"; | ||
3328 | url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz"; | ||
3329 | sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5"; | ||
3330 | }; | ||
3331 | } | ||
3332 | { | ||
3333 | name = "eslint_utils___eslint_utils_2.0.0.tgz"; | ||
3334 | path = fetchurl { | ||
3335 | name = "eslint_utils___eslint_utils_2.0.0.tgz"; | ||
3336 | url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz"; | ||
3337 | sha1 = "7be1cc70f27a72a76cd14aa698bcabed6890e1cd"; | ||
3338 | }; | ||
3339 | } | ||
3340 | { | ||
3341 | name = "eslint_visitor_keys___eslint_visitor_keys_1.2.0.tgz"; | ||
3342 | path = fetchurl { | ||
3343 | name = "eslint_visitor_keys___eslint_visitor_keys_1.2.0.tgz"; | ||
3344 | url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz"; | ||
3345 | sha1 = "74415ac884874495f78ec2a97349525344c981fa"; | ||
3346 | }; | ||
3347 | } | ||
3348 | { | ||
3349 | name = "eslint___eslint_7.2.0.tgz"; | ||
3350 | path = fetchurl { | ||
3351 | name = "eslint___eslint_7.2.0.tgz"; | ||
3352 | url = "https://registry.yarnpkg.com/eslint/-/eslint-7.2.0.tgz"; | ||
3353 | sha1 = "d41b2e47804b30dbabb093a967fb283d560082e6"; | ||
3354 | }; | ||
3355 | } | ||
3356 | { | ||
3357 | name = "espree___espree_6.2.1.tgz"; | ||
3358 | path = fetchurl { | ||
3359 | name = "espree___espree_6.2.1.tgz"; | ||
3360 | url = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz"; | ||
3361 | sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a"; | ||
3362 | }; | ||
3363 | } | ||
3364 | { | ||
3365 | name = "espree___espree_7.1.0.tgz"; | ||
3366 | path = fetchurl { | ||
3367 | name = "espree___espree_7.1.0.tgz"; | ||
3368 | url = "https://registry.yarnpkg.com/espree/-/espree-7.1.0.tgz"; | ||
3369 | sha1 = "a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c"; | ||
3370 | }; | ||
3371 | } | ||
3372 | { | ||
3373 | name = "esprima___esprima_4.0.1.tgz"; | ||
3374 | path = fetchurl { | ||
3375 | name = "esprima___esprima_4.0.1.tgz"; | ||
3376 | url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz"; | ||
3377 | sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71"; | ||
3378 | }; | ||
3379 | } | ||
3380 | { | ||
3381 | name = "esquery___esquery_1.3.1.tgz"; | ||
3382 | path = fetchurl { | ||
3383 | name = "esquery___esquery_1.3.1.tgz"; | ||
3384 | url = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz"; | ||
3385 | sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57"; | ||
3386 | }; | ||
3387 | } | ||
3388 | { | ||
3389 | name = "esrecurse___esrecurse_4.2.1.tgz"; | ||
3390 | path = fetchurl { | ||
3391 | name = "esrecurse___esrecurse_4.2.1.tgz"; | ||
3392 | url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz"; | ||
3393 | sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"; | ||
3394 | }; | ||
3395 | } | ||
3396 | { | ||
3397 | name = "estraverse___estraverse_4.3.0.tgz"; | ||
3398 | path = fetchurl { | ||
3399 | name = "estraverse___estraverse_4.3.0.tgz"; | ||
3400 | url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz"; | ||
3401 | sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d"; | ||
3402 | }; | ||
3403 | } | ||
3404 | { | ||
3405 | name = "estraverse___estraverse_5.1.0.tgz"; | ||
3406 | path = fetchurl { | ||
3407 | name = "estraverse___estraverse_5.1.0.tgz"; | ||
3408 | url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz"; | ||
3409 | sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642"; | ||
3410 | }; | ||
3411 | } | ||
3412 | { | ||
3413 | name = "esutils___esutils_2.0.3.tgz"; | ||
3414 | path = fetchurl { | ||
3415 | name = "esutils___esutils_2.0.3.tgz"; | ||
3416 | url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz"; | ||
3417 | sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64"; | ||
3418 | }; | ||
3419 | } | ||
3420 | { | ||
3421 | name = "etag___etag_1.8.1.tgz"; | ||
3422 | path = fetchurl { | ||
3423 | name = "etag___etag_1.8.1.tgz"; | ||
3424 | url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz"; | ||
3425 | sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; | ||
3426 | }; | ||
3427 | } | ||
3428 | { | ||
3429 | name = "event_pubsub___event_pubsub_4.3.0.tgz"; | ||
3430 | path = fetchurl { | ||
3431 | name = "event_pubsub___event_pubsub_4.3.0.tgz"; | ||
3432 | url = "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz"; | ||
3433 | sha1 = "f68d816bc29f1ec02c539dc58c8dd40ce72cb36e"; | ||
3434 | }; | ||
3435 | } | ||
3436 | { | ||
3437 | name = "eventemitter3___eventemitter3_4.0.4.tgz"; | ||
3438 | path = fetchurl { | ||
3439 | name = "eventemitter3___eventemitter3_4.0.4.tgz"; | ||
3440 | url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz"; | ||
3441 | sha1 = "b5463ace635a083d018bdc7c917b4c5f10a85384"; | ||
3442 | }; | ||
3443 | } | ||
3444 | { | ||
3445 | name = "events___events_3.1.0.tgz"; | ||
3446 | path = fetchurl { | ||
3447 | name = "events___events_3.1.0.tgz"; | ||
3448 | url = "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz"; | ||
3449 | sha1 = "84279af1b34cb75aa88bf5ff291f6d0bd9b31a59"; | ||
3450 | }; | ||
3451 | } | ||
3452 | { | ||
3453 | name = "eventsource___eventsource_1.0.7.tgz"; | ||
3454 | path = fetchurl { | ||
3455 | name = "eventsource___eventsource_1.0.7.tgz"; | ||
3456 | url = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz"; | ||
3457 | sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"; | ||
3458 | }; | ||
3459 | } | ||
3460 | { | ||
3461 | name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz"; | ||
3462 | path = fetchurl { | ||
3463 | name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz"; | ||
3464 | url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; | ||
3465 | sha1 = "7fcbdb198dc71959432efe13842684e0525acb02"; | ||
3466 | }; | ||
3467 | } | ||
3468 | { | ||
3469 | name = "execa___execa_0.8.0.tgz"; | ||
3470 | path = fetchurl { | ||
3471 | name = "execa___execa_0.8.0.tgz"; | ||
3472 | url = "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz"; | ||
3473 | sha1 = "d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"; | ||
3474 | }; | ||
3475 | } | ||
3476 | { | ||
3477 | name = "execa___execa_1.0.0.tgz"; | ||
3478 | path = fetchurl { | ||
3479 | name = "execa___execa_1.0.0.tgz"; | ||
3480 | url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz"; | ||
3481 | sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8"; | ||
3482 | }; | ||
3483 | } | ||
3484 | { | ||
3485 | name = "execa___execa_3.4.0.tgz"; | ||
3486 | path = fetchurl { | ||
3487 | name = "execa___execa_3.4.0.tgz"; | ||
3488 | url = "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz"; | ||
3489 | sha1 = "c08ed4550ef65d858fac269ffc8572446f37eb89"; | ||
3490 | }; | ||
3491 | } | ||
3492 | { | ||
3493 | name = "expand_brackets___expand_brackets_2.1.4.tgz"; | ||
3494 | path = fetchurl { | ||
3495 | name = "expand_brackets___expand_brackets_2.1.4.tgz"; | ||
3496 | url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz"; | ||
3497 | sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; | ||
3498 | }; | ||
3499 | } | ||
3500 | { | ||
3501 | name = "express___express_4.17.1.tgz"; | ||
3502 | path = fetchurl { | ||
3503 | name = "express___express_4.17.1.tgz"; | ||
3504 | url = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz"; | ||
3505 | sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134"; | ||
3506 | }; | ||
3507 | } | ||
3508 | { | ||
3509 | name = "extend_shallow___extend_shallow_2.0.1.tgz"; | ||
3510 | path = fetchurl { | ||
3511 | name = "extend_shallow___extend_shallow_2.0.1.tgz"; | ||
3512 | url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz"; | ||
3513 | sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; | ||
3514 | }; | ||
3515 | } | ||
3516 | { | ||
3517 | name = "extend_shallow___extend_shallow_3.0.2.tgz"; | ||
3518 | path = fetchurl { | ||
3519 | name = "extend_shallow___extend_shallow_3.0.2.tgz"; | ||
3520 | url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz"; | ||
3521 | sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; | ||
3522 | }; | ||
3523 | } | ||
3524 | { | ||
3525 | name = "extend___extend_3.0.2.tgz"; | ||
3526 | path = fetchurl { | ||
3527 | name = "extend___extend_3.0.2.tgz"; | ||
3528 | url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz"; | ||
3529 | sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa"; | ||
3530 | }; | ||
3531 | } | ||
3532 | { | ||
3533 | name = "external_editor___external_editor_3.1.0.tgz"; | ||
3534 | path = fetchurl { | ||
3535 | name = "external_editor___external_editor_3.1.0.tgz"; | ||
3536 | url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz"; | ||
3537 | sha1 = "cb03f740befae03ea4d283caed2741a83f335495"; | ||
3538 | }; | ||
3539 | } | ||
3540 | { | ||
3541 | name = "extglob___extglob_2.0.4.tgz"; | ||
3542 | path = fetchurl { | ||
3543 | name = "extglob___extglob_2.0.4.tgz"; | ||
3544 | url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz"; | ||
3545 | sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543"; | ||
3546 | }; | ||
3547 | } | ||
3548 | { | ||
3549 | name = "extsprintf___extsprintf_1.3.0.tgz"; | ||
3550 | path = fetchurl { | ||
3551 | name = "extsprintf___extsprintf_1.3.0.tgz"; | ||
3552 | url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz"; | ||
3553 | sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; | ||
3554 | }; | ||
3555 | } | ||
3556 | { | ||
3557 | name = "extsprintf___extsprintf_1.4.0.tgz"; | ||
3558 | path = fetchurl { | ||
3559 | name = "extsprintf___extsprintf_1.4.0.tgz"; | ||
3560 | url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz"; | ||
3561 | sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f"; | ||
3562 | }; | ||
3563 | } | ||
3564 | { | ||
3565 | name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz"; | ||
3566 | path = fetchurl { | ||
3567 | name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz"; | ||
3568 | url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz"; | ||
3569 | sha1 = "545145077c501491e33b15ec408c294376e94ae4"; | ||
3570 | }; | ||
3571 | } | ||
3572 | { | ||
3573 | name = "fast_diff___fast_diff_1.2.0.tgz"; | ||
3574 | path = fetchurl { | ||
3575 | name = "fast_diff___fast_diff_1.2.0.tgz"; | ||
3576 | url = "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz"; | ||
3577 | sha1 = "73ee11982d86caaf7959828d519cfe927fac5f03"; | ||
3578 | }; | ||
3579 | } | ||
3580 | { | ||
3581 | name = "fast_glob___fast_glob_2.2.7.tgz"; | ||
3582 | path = fetchurl { | ||
3583 | name = "fast_glob___fast_glob_2.2.7.tgz"; | ||
3584 | url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz"; | ||
3585 | sha1 = "6953857c3afa475fff92ee6015d52da70a4cd39d"; | ||
3586 | }; | ||
3587 | } | ||
3588 | { | ||
3589 | name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz"; | ||
3590 | path = fetchurl { | ||
3591 | name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz"; | ||
3592 | url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; | ||
3593 | sha1 = "874bf69c6f404c2b5d99c481341399fd55892633"; | ||
3594 | }; | ||
3595 | } | ||
3596 | { | ||
3597 | name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; | ||
3598 | path = fetchurl { | ||
3599 | name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; | ||
3600 | url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; | ||
3601 | sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; | ||
3602 | }; | ||
3603 | } | ||
3604 | { | ||
3605 | name = "faye_websocket___faye_websocket_0.10.0.tgz"; | ||
3606 | path = fetchurl { | ||
3607 | name = "faye_websocket___faye_websocket_0.10.0.tgz"; | ||
3608 | url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz"; | ||
3609 | sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"; | ||
3610 | }; | ||
3611 | } | ||
3612 | { | ||
3613 | name = "faye_websocket___faye_websocket_0.11.3.tgz"; | ||
3614 | path = fetchurl { | ||
3615 | name = "faye_websocket___faye_websocket_0.11.3.tgz"; | ||
3616 | url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz"; | ||
3617 | sha1 = "5c0e9a8968e8912c286639fde977a8b209f2508e"; | ||
3618 | }; | ||
3619 | } | ||
3620 | { | ||
3621 | name = "figgy_pudding___figgy_pudding_3.5.2.tgz"; | ||
3622 | path = fetchurl { | ||
3623 | name = "figgy_pudding___figgy_pudding_3.5.2.tgz"; | ||
3624 | url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz"; | ||
3625 | sha1 = "b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"; | ||
3626 | }; | ||
3627 | } | ||
3628 | { | ||
3629 | name = "figures___figures_3.2.0.tgz"; | ||
3630 | path = fetchurl { | ||
3631 | name = "figures___figures_3.2.0.tgz"; | ||
3632 | url = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz"; | ||
3633 | sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af"; | ||
3634 | }; | ||
3635 | } | ||
3636 | { | ||
3637 | name = "file_entry_cache___file_entry_cache_5.0.1.tgz"; | ||
3638 | path = fetchurl { | ||
3639 | name = "file_entry_cache___file_entry_cache_5.0.1.tgz"; | ||
3640 | url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz"; | ||
3641 | sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c"; | ||
3642 | }; | ||
3643 | } | ||
3644 | { | ||
3645 | name = "file_loader___file_loader_4.3.0.tgz"; | ||
3646 | path = fetchurl { | ||
3647 | name = "file_loader___file_loader_4.3.0.tgz"; | ||
3648 | url = "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz"; | ||
3649 | sha1 = "780f040f729b3d18019f20605f723e844b8a58af"; | ||
3650 | }; | ||
3651 | } | ||
3652 | { | ||
3653 | name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz"; | ||
3654 | path = fetchurl { | ||
3655 | name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz"; | ||
3656 | url = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; | ||
3657 | sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd"; | ||
3658 | }; | ||
3659 | } | ||
3660 | { | ||
3661 | name = "filesize___filesize_3.6.1.tgz"; | ||
3662 | path = fetchurl { | ||
3663 | name = "filesize___filesize_3.6.1.tgz"; | ||
3664 | url = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz"; | ||
3665 | sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317"; | ||
3666 | }; | ||
3667 | } | ||
3668 | { | ||
3669 | name = "fill_range___fill_range_4.0.0.tgz"; | ||
3670 | path = fetchurl { | ||
3671 | name = "fill_range___fill_range_4.0.0.tgz"; | ||
3672 | url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz"; | ||
3673 | sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; | ||
3674 | }; | ||
3675 | } | ||
3676 | { | ||
3677 | name = "fill_range___fill_range_7.0.1.tgz"; | ||
3678 | path = fetchurl { | ||
3679 | name = "fill_range___fill_range_7.0.1.tgz"; | ||
3680 | url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz"; | ||
3681 | sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40"; | ||
3682 | }; | ||
3683 | } | ||
3684 | { | ||
3685 | name = "finalhandler___finalhandler_1.1.2.tgz"; | ||
3686 | path = fetchurl { | ||
3687 | name = "finalhandler___finalhandler_1.1.2.tgz"; | ||
3688 | url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz"; | ||
3689 | sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d"; | ||
3690 | }; | ||
3691 | } | ||
3692 | { | ||
3693 | name = "find_cache_dir___find_cache_dir_0.1.1.tgz"; | ||
3694 | path = fetchurl { | ||
3695 | name = "find_cache_dir___find_cache_dir_0.1.1.tgz"; | ||
3696 | url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz"; | ||
3697 | sha1 = "c8defae57c8a52a8a784f9e31c57c742e993a0b9"; | ||
3698 | }; | ||
3699 | } | ||
3700 | { | ||
3701 | name = "find_cache_dir___find_cache_dir_2.1.0.tgz"; | ||
3702 | path = fetchurl { | ||
3703 | name = "find_cache_dir___find_cache_dir_2.1.0.tgz"; | ||
3704 | url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz"; | ||
3705 | sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"; | ||
3706 | }; | ||
3707 | } | ||
3708 | { | ||
3709 | name = "find_cache_dir___find_cache_dir_3.3.1.tgz"; | ||
3710 | path = fetchurl { | ||
3711 | name = "find_cache_dir___find_cache_dir_3.3.1.tgz"; | ||
3712 | url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz"; | ||
3713 | sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880"; | ||
3714 | }; | ||
3715 | } | ||
3716 | { | ||
3717 | name = "find_up___find_up_1.1.2.tgz"; | ||
3718 | path = fetchurl { | ||
3719 | name = "find_up___find_up_1.1.2.tgz"; | ||
3720 | url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz"; | ||
3721 | sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"; | ||
3722 | }; | ||
3723 | } | ||
3724 | { | ||
3725 | name = "find_up___find_up_2.1.0.tgz"; | ||
3726 | path = fetchurl { | ||
3727 | name = "find_up___find_up_2.1.0.tgz"; | ||
3728 | url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz"; | ||
3729 | sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; | ||
3730 | }; | ||
3731 | } | ||
3732 | { | ||
3733 | name = "find_up___find_up_3.0.0.tgz"; | ||
3734 | path = fetchurl { | ||
3735 | name = "find_up___find_up_3.0.0.tgz"; | ||
3736 | url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz"; | ||
3737 | sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73"; | ||
3738 | }; | ||
3739 | } | ||
3740 | { | ||
3741 | name = "find_up___find_up_4.1.0.tgz"; | ||
3742 | path = fetchurl { | ||
3743 | name = "find_up___find_up_4.1.0.tgz"; | ||
3744 | url = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz"; | ||
3745 | sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"; | ||
3746 | }; | ||
3747 | } | ||
3748 | { | ||
3749 | name = "flat_cache___flat_cache_2.0.1.tgz"; | ||
3750 | path = fetchurl { | ||
3751 | name = "flat_cache___flat_cache_2.0.1.tgz"; | ||
3752 | url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz"; | ||
3753 | sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0"; | ||
3754 | }; | ||
3755 | } | ||
3756 | { | ||
3757 | name = "flatted___flatted_2.0.2.tgz"; | ||
3758 | path = fetchurl { | ||
3759 | name = "flatted___flatted_2.0.2.tgz"; | ||
3760 | url = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz"; | ||
3761 | sha1 = "4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"; | ||
3762 | }; | ||
3763 | } | ||
3764 | { | ||
3765 | name = "flush_write_stream___flush_write_stream_1.1.1.tgz"; | ||
3766 | path = fetchurl { | ||
3767 | name = "flush_write_stream___flush_write_stream_1.1.1.tgz"; | ||
3768 | url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz"; | ||
3769 | sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"; | ||
3770 | }; | ||
3771 | } | ||
3772 | { | ||
3773 | name = "follow_redirects___follow_redirects_1.11.0.tgz"; | ||
3774 | path = fetchurl { | ||
3775 | name = "follow_redirects___follow_redirects_1.11.0.tgz"; | ||
3776 | url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz"; | ||
3777 | sha1 = "afa14f08ba12a52963140fe43212658897bc0ecb"; | ||
3778 | }; | ||
3779 | } | ||
3780 | { | ||
3781 | name = "for_in___for_in_1.0.2.tgz"; | ||
3782 | path = fetchurl { | ||
3783 | name = "for_in___for_in_1.0.2.tgz"; | ||
3784 | url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz"; | ||
3785 | sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; | ||
3786 | }; | ||
3787 | } | ||
3788 | { | ||
3789 | name = "forever_agent___forever_agent_0.6.1.tgz"; | ||
3790 | path = fetchurl { | ||
3791 | name = "forever_agent___forever_agent_0.6.1.tgz"; | ||
3792 | url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz"; | ||
3793 | sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; | ||
3794 | }; | ||
3795 | } | ||
3796 | { | ||
3797 | name = "form_data___form_data_2.3.3.tgz"; | ||
3798 | path = fetchurl { | ||
3799 | name = "form_data___form_data_2.3.3.tgz"; | ||
3800 | url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz"; | ||
3801 | sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6"; | ||
3802 | }; | ||
3803 | } | ||
3804 | { | ||
3805 | name = "forwarded___forwarded_0.1.2.tgz"; | ||
3806 | path = fetchurl { | ||
3807 | name = "forwarded___forwarded_0.1.2.tgz"; | ||
3808 | url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz"; | ||
3809 | sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; | ||
3810 | }; | ||
3811 | } | ||
3812 | { | ||
3813 | name = "fragment_cache___fragment_cache_0.2.1.tgz"; | ||
3814 | path = fetchurl { | ||
3815 | name = "fragment_cache___fragment_cache_0.2.1.tgz"; | ||
3816 | url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz"; | ||
3817 | sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; | ||
3818 | }; | ||
3819 | } | ||
3820 | { | ||
3821 | name = "fresh___fresh_0.5.2.tgz"; | ||
3822 | path = fetchurl { | ||
3823 | name = "fresh___fresh_0.5.2.tgz"; | ||
3824 | url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz"; | ||
3825 | sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; | ||
3826 | }; | ||
3827 | } | ||
3828 | { | ||
3829 | name = "from2___from2_2.3.0.tgz"; | ||
3830 | path = fetchurl { | ||
3831 | name = "from2___from2_2.3.0.tgz"; | ||
3832 | url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz"; | ||
3833 | sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af"; | ||
3834 | }; | ||
3835 | } | ||
3836 | { | ||
3837 | name = "fs_extra___fs_extra_4.0.3.tgz"; | ||
3838 | path = fetchurl { | ||
3839 | name = "fs_extra___fs_extra_4.0.3.tgz"; | ||
3840 | url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz"; | ||
3841 | sha1 = "0d852122e5bc5beb453fb028e9c0c9bf36340c94"; | ||
3842 | }; | ||
3843 | } | ||
3844 | { | ||
3845 | name = "fs_extra___fs_extra_7.0.1.tgz"; | ||
3846 | path = fetchurl { | ||
3847 | name = "fs_extra___fs_extra_7.0.1.tgz"; | ||
3848 | url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz"; | ||
3849 | sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9"; | ||
3850 | }; | ||
3851 | } | ||
3852 | { | ||
3853 | name = "fs_minipass___fs_minipass_2.1.0.tgz"; | ||
3854 | path = fetchurl { | ||
3855 | name = "fs_minipass___fs_minipass_2.1.0.tgz"; | ||
3856 | url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz"; | ||
3857 | sha1 = "7f5036fdbf12c63c169190cbe4199c852271f9fb"; | ||
3858 | }; | ||
3859 | } | ||
3860 | { | ||
3861 | name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz"; | ||
3862 | path = fetchurl { | ||
3863 | name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz"; | ||
3864 | url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz"; | ||
3865 | sha1 = "b47df53493ef911df75731e70a9ded0189db40c9"; | ||
3866 | }; | ||
3867 | } | ||
3868 | { | ||
3869 | name = "fs.realpath___fs.realpath_1.0.0.tgz"; | ||
3870 | path = fetchurl { | ||
3871 | name = "fs.realpath___fs.realpath_1.0.0.tgz"; | ||
3872 | url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; | ||
3873 | sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; | ||
3874 | }; | ||
3875 | } | ||
3876 | { | ||
3877 | name = "fsevents___fsevents_1.2.13.tgz"; | ||
3878 | path = fetchurl { | ||
3879 | name = "fsevents___fsevents_1.2.13.tgz"; | ||
3880 | url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz"; | ||
3881 | sha1 = "f325cb0455592428bcf11b383370ef70e3bfcc38"; | ||
3882 | }; | ||
3883 | } | ||
3884 | { | ||
3885 | name = "fsevents___fsevents_2.1.3.tgz"; | ||
3886 | path = fetchurl { | ||
3887 | name = "fsevents___fsevents_2.1.3.tgz"; | ||
3888 | url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz"; | ||
3889 | sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e"; | ||
3890 | }; | ||
3891 | } | ||
3892 | { | ||
3893 | name = "function_bind___function_bind_1.1.1.tgz"; | ||
3894 | path = fetchurl { | ||
3895 | name = "function_bind___function_bind_1.1.1.tgz"; | ||
3896 | url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; | ||
3897 | sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; | ||
3898 | }; | ||
3899 | } | ||
3900 | { | ||
3901 | name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; | ||
3902 | path = fetchurl { | ||
3903 | name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; | ||
3904 | url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"; | ||
3905 | sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"; | ||
3906 | }; | ||
3907 | } | ||
3908 | { | ||
3909 | name = "gensync___gensync_1.0.0_beta.1.tgz"; | ||
3910 | path = fetchurl { | ||
3911 | name = "gensync___gensync_1.0.0_beta.1.tgz"; | ||
3912 | url = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz"; | ||
3913 | sha1 = "58f4361ff987e5ff6e1e7a210827aa371eaac269"; | ||
3914 | }; | ||
3915 | } | ||
3916 | { | ||
3917 | name = "get_caller_file___get_caller_file_2.0.5.tgz"; | ||
3918 | path = fetchurl { | ||
3919 | name = "get_caller_file___get_caller_file_2.0.5.tgz"; | ||
3920 | url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz"; | ||
3921 | sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e"; | ||
3922 | }; | ||
3923 | } | ||
3924 | { | ||
3925 | name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz"; | ||
3926 | path = fetchurl { | ||
3927 | name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz"; | ||
3928 | url = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"; | ||
3929 | sha1 = "b5fde77f22cbe35f390b4e089922c50bce6ef664"; | ||
3930 | }; | ||
3931 | } | ||
3932 | { | ||
3933 | name = "get_stdin___get_stdin_6.0.0.tgz"; | ||
3934 | path = fetchurl { | ||
3935 | name = "get_stdin___get_stdin_6.0.0.tgz"; | ||
3936 | url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz"; | ||
3937 | sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b"; | ||
3938 | }; | ||
3939 | } | ||
3940 | { | ||
3941 | name = "get_stream___get_stream_3.0.0.tgz"; | ||
3942 | path = fetchurl { | ||
3943 | name = "get_stream___get_stream_3.0.0.tgz"; | ||
3944 | url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz"; | ||
3945 | sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14"; | ||
3946 | }; | ||
3947 | } | ||
3948 | { | ||
3949 | name = "get_stream___get_stream_4.1.0.tgz"; | ||
3950 | path = fetchurl { | ||
3951 | name = "get_stream___get_stream_4.1.0.tgz"; | ||
3952 | url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz"; | ||
3953 | sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"; | ||
3954 | }; | ||
3955 | } | ||
3956 | { | ||
3957 | name = "get_stream___get_stream_5.1.0.tgz"; | ||
3958 | path = fetchurl { | ||
3959 | name = "get_stream___get_stream_5.1.0.tgz"; | ||
3960 | url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz"; | ||
3961 | sha1 = "01203cdc92597f9b909067c3e656cc1f4d3c4dc9"; | ||
3962 | }; | ||
3963 | } | ||
3964 | { | ||
3965 | name = "get_value___get_value_2.0.6.tgz"; | ||
3966 | path = fetchurl { | ||
3967 | name = "get_value___get_value_2.0.6.tgz"; | ||
3968 | url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz"; | ||
3969 | sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; | ||
3970 | }; | ||
3971 | } | ||
3972 | { | ||
3973 | name = "getpass___getpass_0.1.7.tgz"; | ||
3974 | path = fetchurl { | ||
3975 | name = "getpass___getpass_0.1.7.tgz"; | ||
3976 | url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz"; | ||
3977 | sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; | ||
3978 | }; | ||
3979 | } | ||
3980 | { | ||
3981 | name = "glob_parent___glob_parent_3.1.0.tgz"; | ||
3982 | path = fetchurl { | ||
3983 | name = "glob_parent___glob_parent_3.1.0.tgz"; | ||
3984 | url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz"; | ||
3985 | sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; | ||
3986 | }; | ||
3987 | } | ||
3988 | { | ||
3989 | name = "glob_parent___glob_parent_5.1.1.tgz"; | ||
3990 | path = fetchurl { | ||
3991 | name = "glob_parent___glob_parent_5.1.1.tgz"; | ||
3992 | url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz"; | ||
3993 | sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229"; | ||
3994 | }; | ||
3995 | } | ||
3996 | { | ||
3997 | name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz"; | ||
3998 | path = fetchurl { | ||
3999 | name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz"; | ||
4000 | url = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz"; | ||
4001 | sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab"; | ||
4002 | }; | ||
4003 | } | ||
4004 | { | ||
4005 | name = "glob___glob_7.1.6.tgz"; | ||
4006 | path = fetchurl { | ||
4007 | name = "glob___glob_7.1.6.tgz"; | ||
4008 | url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz"; | ||
4009 | sha1 = "141f33b81a7c2492e125594307480c46679278a6"; | ||
4010 | }; | ||
4011 | } | ||
4012 | { | ||
4013 | name = "globals___globals_11.12.0.tgz"; | ||
4014 | path = fetchurl { | ||
4015 | name = "globals___globals_11.12.0.tgz"; | ||
4016 | url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz"; | ||
4017 | sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e"; | ||
4018 | }; | ||
4019 | } | ||
4020 | { | ||
4021 | name = "globals___globals_12.4.0.tgz"; | ||
4022 | path = fetchurl { | ||
4023 | name = "globals___globals_12.4.0.tgz"; | ||
4024 | url = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz"; | ||
4025 | sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8"; | ||
4026 | }; | ||
4027 | } | ||
4028 | { | ||
4029 | name = "globby___globby_6.1.0.tgz"; | ||
4030 | path = fetchurl { | ||
4031 | name = "globby___globby_6.1.0.tgz"; | ||
4032 | url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz"; | ||
4033 | sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c"; | ||
4034 | }; | ||
4035 | } | ||
4036 | { | ||
4037 | name = "globby___globby_7.1.1.tgz"; | ||
4038 | path = fetchurl { | ||
4039 | name = "globby___globby_7.1.1.tgz"; | ||
4040 | url = "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz"; | ||
4041 | sha1 = "fb2ccff9401f8600945dfada97440cca972b8680"; | ||
4042 | }; | ||
4043 | } | ||
4044 | { | ||
4045 | name = "globby___globby_9.2.0.tgz"; | ||
4046 | path = fetchurl { | ||
4047 | name = "globby___globby_9.2.0.tgz"; | ||
4048 | url = "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz"; | ||
4049 | sha1 = "fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"; | ||
4050 | }; | ||
4051 | } | ||
4052 | { | ||
4053 | name = "graceful_fs___graceful_fs_4.2.4.tgz"; | ||
4054 | path = fetchurl { | ||
4055 | name = "graceful_fs___graceful_fs_4.2.4.tgz"; | ||
4056 | url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz"; | ||
4057 | sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb"; | ||
4058 | }; | ||
4059 | } | ||
4060 | { | ||
4061 | name = "gzip_size___gzip_size_5.1.1.tgz"; | ||
4062 | path = fetchurl { | ||
4063 | name = "gzip_size___gzip_size_5.1.1.tgz"; | ||
4064 | url = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz"; | ||
4065 | sha1 = "cb9bee692f87c0612b232840a873904e4c135274"; | ||
4066 | }; | ||
4067 | } | ||
4068 | { | ||
4069 | name = "handle_thing___handle_thing_2.0.1.tgz"; | ||
4070 | path = fetchurl { | ||
4071 | name = "handle_thing___handle_thing_2.0.1.tgz"; | ||
4072 | url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz"; | ||
4073 | sha1 = "857f79ce359580c340d43081cc648970d0bb234e"; | ||
4074 | }; | ||
4075 | } | ||
4076 | { | ||
4077 | name = "har_schema___har_schema_2.0.0.tgz"; | ||
4078 | path = fetchurl { | ||
4079 | name = "har_schema___har_schema_2.0.0.tgz"; | ||
4080 | url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz"; | ||
4081 | sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; | ||
4082 | }; | ||
4083 | } | ||
4084 | { | ||
4085 | name = "har_validator___har_validator_5.1.3.tgz"; | ||
4086 | path = fetchurl { | ||
4087 | name = "har_validator___har_validator_5.1.3.tgz"; | ||
4088 | url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz"; | ||
4089 | sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080"; | ||
4090 | }; | ||
4091 | } | ||
4092 | { | ||
4093 | name = "has_ansi___has_ansi_2.0.0.tgz"; | ||
4094 | path = fetchurl { | ||
4095 | name = "has_ansi___has_ansi_2.0.0.tgz"; | ||
4096 | url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz"; | ||
4097 | sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; | ||
4098 | }; | ||
4099 | } | ||
4100 | { | ||
4101 | name = "has_flag___has_flag_3.0.0.tgz"; | ||
4102 | path = fetchurl { | ||
4103 | name = "has_flag___has_flag_3.0.0.tgz"; | ||
4104 | url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz"; | ||
4105 | sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; | ||
4106 | }; | ||
4107 | } | ||
4108 | { | ||
4109 | name = "has_flag___has_flag_4.0.0.tgz"; | ||
4110 | path = fetchurl { | ||
4111 | name = "has_flag___has_flag_4.0.0.tgz"; | ||
4112 | url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz"; | ||
4113 | sha1 = "944771fd9c81c81265c4d6941860da06bb59479b"; | ||
4114 | }; | ||
4115 | } | ||
4116 | { | ||
4117 | name = "has_symbols___has_symbols_1.0.1.tgz"; | ||
4118 | path = fetchurl { | ||
4119 | name = "has_symbols___has_symbols_1.0.1.tgz"; | ||
4120 | url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz"; | ||
4121 | sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8"; | ||
4122 | }; | ||
4123 | } | ||
4124 | { | ||
4125 | name = "has_value___has_value_0.3.1.tgz"; | ||
4126 | path = fetchurl { | ||
4127 | name = "has_value___has_value_0.3.1.tgz"; | ||
4128 | url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz"; | ||
4129 | sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; | ||
4130 | }; | ||
4131 | } | ||
4132 | { | ||
4133 | name = "has_value___has_value_1.0.0.tgz"; | ||
4134 | path = fetchurl { | ||
4135 | name = "has_value___has_value_1.0.0.tgz"; | ||
4136 | url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz"; | ||
4137 | sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; | ||
4138 | }; | ||
4139 | } | ||
4140 | { | ||
4141 | name = "has_values___has_values_0.1.4.tgz"; | ||
4142 | path = fetchurl { | ||
4143 | name = "has_values___has_values_0.1.4.tgz"; | ||
4144 | url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz"; | ||
4145 | sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; | ||
4146 | }; | ||
4147 | } | ||
4148 | { | ||
4149 | name = "has_values___has_values_1.0.0.tgz"; | ||
4150 | path = fetchurl { | ||
4151 | name = "has_values___has_values_1.0.0.tgz"; | ||
4152 | url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz"; | ||
4153 | sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; | ||
4154 | }; | ||
4155 | } | ||
4156 | { | ||
4157 | name = "has___has_1.0.3.tgz"; | ||
4158 | path = fetchurl { | ||
4159 | name = "has___has_1.0.3.tgz"; | ||
4160 | url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; | ||
4161 | sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; | ||
4162 | }; | ||
4163 | } | ||
4164 | { | ||
4165 | name = "hash_base___hash_base_3.1.0.tgz"; | ||
4166 | path = fetchurl { | ||
4167 | name = "hash_base___hash_base_3.1.0.tgz"; | ||
4168 | url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz"; | ||
4169 | sha1 = "55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"; | ||
4170 | }; | ||
4171 | } | ||
4172 | { | ||
4173 | name = "hash_sum___hash_sum_1.0.2.tgz"; | ||
4174 | path = fetchurl { | ||
4175 | name = "hash_sum___hash_sum_1.0.2.tgz"; | ||
4176 | url = "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz"; | ||
4177 | sha1 = "33b40777754c6432573c120cc3808bbd10d47f04"; | ||
4178 | }; | ||
4179 | } | ||
4180 | { | ||
4181 | name = "hash_sum___hash_sum_2.0.0.tgz"; | ||
4182 | path = fetchurl { | ||
4183 | name = "hash_sum___hash_sum_2.0.0.tgz"; | ||
4184 | url = "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz"; | ||
4185 | sha1 = "81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"; | ||
4186 | }; | ||
4187 | } | ||
4188 | { | ||
4189 | name = "hash.js___hash.js_1.1.7.tgz"; | ||
4190 | path = fetchurl { | ||
4191 | name = "hash.js___hash.js_1.1.7.tgz"; | ||
4192 | url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz"; | ||
4193 | sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42"; | ||
4194 | }; | ||
4195 | } | ||
4196 | { | ||
4197 | name = "he___he_1.2.0.tgz"; | ||
4198 | path = fetchurl { | ||
4199 | name = "he___he_1.2.0.tgz"; | ||
4200 | url = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz"; | ||
4201 | sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f"; | ||
4202 | }; | ||
4203 | } | ||
4204 | { | ||
4205 | name = "hex_color_regex___hex_color_regex_1.1.0.tgz"; | ||
4206 | path = fetchurl { | ||
4207 | name = "hex_color_regex___hex_color_regex_1.1.0.tgz"; | ||
4208 | url = "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz"; | ||
4209 | sha1 = "4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"; | ||
4210 | }; | ||
4211 | } | ||
4212 | { | ||
4213 | name = "highlight.js___highlight.js_9.18.1.tgz"; | ||
4214 | path = fetchurl { | ||
4215 | name = "highlight.js___highlight.js_9.18.1.tgz"; | ||
4216 | url = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz"; | ||
4217 | sha1 = "ed21aa001fe6252bb10a3d76d47573c6539fe13c"; | ||
4218 | }; | ||
4219 | } | ||
4220 | { | ||
4221 | name = "hmac_drbg___hmac_drbg_1.0.1.tgz"; | ||
4222 | path = fetchurl { | ||
4223 | name = "hmac_drbg___hmac_drbg_1.0.1.tgz"; | ||
4224 | url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; | ||
4225 | sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; | ||
4226 | }; | ||
4227 | } | ||
4228 | { | ||
4229 | name = "hoopy___hoopy_0.1.4.tgz"; | ||
4230 | path = fetchurl { | ||
4231 | name = "hoopy___hoopy_0.1.4.tgz"; | ||
4232 | url = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz"; | ||
4233 | sha1 = "609207d661100033a9a9402ad3dea677381c1b1d"; | ||
4234 | }; | ||
4235 | } | ||
4236 | { | ||
4237 | name = "hosted_git_info___hosted_git_info_2.8.8.tgz"; | ||
4238 | path = fetchurl { | ||
4239 | name = "hosted_git_info___hosted_git_info_2.8.8.tgz"; | ||
4240 | url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz"; | ||
4241 | sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488"; | ||
4242 | }; | ||
4243 | } | ||
4244 | { | ||
4245 | name = "hpack.js___hpack.js_2.1.6.tgz"; | ||
4246 | path = fetchurl { | ||
4247 | name = "hpack.js___hpack.js_2.1.6.tgz"; | ||
4248 | url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz"; | ||
4249 | sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2"; | ||
4250 | }; | ||
4251 | } | ||
4252 | { | ||
4253 | name = "hsl_regex___hsl_regex_1.0.0.tgz"; | ||
4254 | path = fetchurl { | ||
4255 | name = "hsl_regex___hsl_regex_1.0.0.tgz"; | ||
4256 | url = "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz"; | ||
4257 | sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e"; | ||
4258 | }; | ||
4259 | } | ||
4260 | { | ||
4261 | name = "hsla_regex___hsla_regex_1.0.0.tgz"; | ||
4262 | path = fetchurl { | ||
4263 | name = "hsla_regex___hsla_regex_1.0.0.tgz"; | ||
4264 | url = "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz"; | ||
4265 | sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"; | ||
4266 | }; | ||
4267 | } | ||
4268 | { | ||
4269 | name = "html_comment_regex___html_comment_regex_1.1.2.tgz"; | ||
4270 | path = fetchurl { | ||
4271 | name = "html_comment_regex___html_comment_regex_1.1.2.tgz"; | ||
4272 | url = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz"; | ||
4273 | sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7"; | ||
4274 | }; | ||
4275 | } | ||
4276 | { | ||
4277 | name = "html_entities___html_entities_1.3.1.tgz"; | ||
4278 | path = fetchurl { | ||
4279 | name = "html_entities___html_entities_1.3.1.tgz"; | ||
4280 | url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz"; | ||
4281 | sha1 = "fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"; | ||
4282 | }; | ||
4283 | } | ||
4284 | { | ||
4285 | name = "html_minifier___html_minifier_3.5.21.tgz"; | ||
4286 | path = fetchurl { | ||
4287 | name = "html_minifier___html_minifier_3.5.21.tgz"; | ||
4288 | url = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz"; | ||
4289 | sha1 = "d0040e054730e354db008463593194015212d20c"; | ||
4290 | }; | ||
4291 | } | ||
4292 | { | ||
4293 | name = "html_tags___html_tags_2.0.0.tgz"; | ||
4294 | path = fetchurl { | ||
4295 | name = "html_tags___html_tags_2.0.0.tgz"; | ||
4296 | url = "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz"; | ||
4297 | sha1 = "10b30a386085f43cede353cc8fa7cb0deeea668b"; | ||
4298 | }; | ||
4299 | } | ||
4300 | { | ||
4301 | name = "html_webpack_plugin___html_webpack_plugin_3.2.0.tgz"; | ||
4302 | path = fetchurl { | ||
4303 | name = "html_webpack_plugin___html_webpack_plugin_3.2.0.tgz"; | ||
4304 | url = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz"; | ||
4305 | sha1 = "b01abbd723acaaa7b37b6af4492ebda03d9dd37b"; | ||
4306 | }; | ||
4307 | } | ||
4308 | { | ||
4309 | name = "htmlparser2___htmlparser2_3.10.1.tgz"; | ||
4310 | path = fetchurl { | ||
4311 | name = "htmlparser2___htmlparser2_3.10.1.tgz"; | ||
4312 | url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz"; | ||
4313 | sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f"; | ||
4314 | }; | ||
4315 | } | ||
4316 | { | ||
4317 | name = "http_deceiver___http_deceiver_1.2.7.tgz"; | ||
4318 | path = fetchurl { | ||
4319 | name = "http_deceiver___http_deceiver_1.2.7.tgz"; | ||
4320 | url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz"; | ||
4321 | sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87"; | ||
4322 | }; | ||
4323 | } | ||
4324 | { | ||
4325 | name = "http_errors___http_errors_1.7.2.tgz"; | ||
4326 | path = fetchurl { | ||
4327 | name = "http_errors___http_errors_1.7.2.tgz"; | ||
4328 | url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz"; | ||
4329 | sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f"; | ||
4330 | }; | ||
4331 | } | ||
4332 | { | ||
4333 | name = "http_errors___http_errors_1.6.3.tgz"; | ||
4334 | path = fetchurl { | ||
4335 | name = "http_errors___http_errors_1.6.3.tgz"; | ||
4336 | url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz"; | ||
4337 | sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d"; | ||
4338 | }; | ||
4339 | } | ||
4340 | { | ||
4341 | name = "http_errors___http_errors_1.7.3.tgz"; | ||
4342 | path = fetchurl { | ||
4343 | name = "http_errors___http_errors_1.7.3.tgz"; | ||
4344 | url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz"; | ||
4345 | sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06"; | ||
4346 | }; | ||
4347 | } | ||
4348 | { | ||
4349 | name = "http_parser_js___http_parser_js_0.5.2.tgz"; | ||
4350 | path = fetchurl { | ||
4351 | name = "http_parser_js___http_parser_js_0.5.2.tgz"; | ||
4352 | url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz"; | ||
4353 | sha1 = "da2e31d237b393aae72ace43882dd7e270a8ff77"; | ||
4354 | }; | ||
4355 | } | ||
4356 | { | ||
4357 | name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz"; | ||
4358 | path = fetchurl { | ||
4359 | name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz"; | ||
4360 | url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz"; | ||
4361 | sha1 = "183c7dc4aa1479150306498c210cdaf96080a43a"; | ||
4362 | }; | ||
4363 | } | ||
4364 | { | ||
4365 | name = "http_proxy___http_proxy_1.18.1.tgz"; | ||
4366 | path = fetchurl { | ||
4367 | name = "http_proxy___http_proxy_1.18.1.tgz"; | ||
4368 | url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz"; | ||
4369 | sha1 = "401541f0534884bbf95260334e72f88ee3976549"; | ||
4370 | }; | ||
4371 | } | ||
4372 | { | ||
4373 | name = "http_signature___http_signature_1.2.0.tgz"; | ||
4374 | path = fetchurl { | ||
4375 | name = "http_signature___http_signature_1.2.0.tgz"; | ||
4376 | url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz"; | ||
4377 | sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; | ||
4378 | }; | ||
4379 | } | ||
4380 | { | ||
4381 | name = "https_browserify___https_browserify_1.0.0.tgz"; | ||
4382 | path = fetchurl { | ||
4383 | name = "https_browserify___https_browserify_1.0.0.tgz"; | ||
4384 | url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz"; | ||
4385 | sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; | ||
4386 | }; | ||
4387 | } | ||
4388 | { | ||
4389 | name = "human_signals___human_signals_1.1.1.tgz"; | ||
4390 | path = fetchurl { | ||
4391 | name = "human_signals___human_signals_1.1.1.tgz"; | ||
4392 | url = "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz"; | ||
4393 | sha1 = "c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"; | ||
4394 | }; | ||
4395 | } | ||
4396 | { | ||
4397 | name = "iconv_lite___iconv_lite_0.4.24.tgz"; | ||
4398 | path = fetchurl { | ||
4399 | name = "iconv_lite___iconv_lite_0.4.24.tgz"; | ||
4400 | url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz"; | ||
4401 | sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b"; | ||
4402 | }; | ||
4403 | } | ||
4404 | { | ||
4405 | name = "icss_utils___icss_utils_4.1.1.tgz"; | ||
4406 | path = fetchurl { | ||
4407 | name = "icss_utils___icss_utils_4.1.1.tgz"; | ||
4408 | url = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz"; | ||
4409 | sha1 = "21170b53789ee27447c2f47dd683081403f9a467"; | ||
4410 | }; | ||
4411 | } | ||
4412 | { | ||
4413 | name = "ieee754___ieee754_1.1.13.tgz"; | ||
4414 | path = fetchurl { | ||
4415 | name = "ieee754___ieee754_1.1.13.tgz"; | ||
4416 | url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz"; | ||
4417 | sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84"; | ||
4418 | }; | ||
4419 | } | ||
4420 | { | ||
4421 | name = "iferr___iferr_0.1.5.tgz"; | ||
4422 | path = fetchurl { | ||
4423 | name = "iferr___iferr_0.1.5.tgz"; | ||
4424 | url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz"; | ||
4425 | sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"; | ||
4426 | }; | ||
4427 | } | ||
4428 | { | ||
4429 | name = "ignore___ignore_3.3.10.tgz"; | ||
4430 | path = fetchurl { | ||
4431 | name = "ignore___ignore_3.3.10.tgz"; | ||
4432 | url = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz"; | ||
4433 | sha1 = "0a97fb876986e8081c631160f8f9f389157f0043"; | ||
4434 | }; | ||
4435 | } | ||
4436 | { | ||
4437 | name = "ignore___ignore_4.0.6.tgz"; | ||
4438 | path = fetchurl { | ||
4439 | name = "ignore___ignore_4.0.6.tgz"; | ||
4440 | url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz"; | ||
4441 | sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc"; | ||
4442 | }; | ||
4443 | } | ||
4444 | { | ||
4445 | name = "import_cwd___import_cwd_2.1.0.tgz"; | ||
4446 | path = fetchurl { | ||
4447 | name = "import_cwd___import_cwd_2.1.0.tgz"; | ||
4448 | url = "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz"; | ||
4449 | sha1 = "aa6cf36e722761285cb371ec6519f53e2435b0a9"; | ||
4450 | }; | ||
4451 | } | ||
4452 | { | ||
4453 | name = "import_fresh___import_fresh_2.0.0.tgz"; | ||
4454 | path = fetchurl { | ||
4455 | name = "import_fresh___import_fresh_2.0.0.tgz"; | ||
4456 | url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz"; | ||
4457 | sha1 = "d81355c15612d386c61f9ddd3922d4304822a546"; | ||
4458 | }; | ||
4459 | } | ||
4460 | { | ||
4461 | name = "import_fresh___import_fresh_3.2.1.tgz"; | ||
4462 | path = fetchurl { | ||
4463 | name = "import_fresh___import_fresh_3.2.1.tgz"; | ||
4464 | url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz"; | ||
4465 | sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66"; | ||
4466 | }; | ||
4467 | } | ||
4468 | { | ||
4469 | name = "import_from___import_from_2.1.0.tgz"; | ||
4470 | path = fetchurl { | ||
4471 | name = "import_from___import_from_2.1.0.tgz"; | ||
4472 | url = "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz"; | ||
4473 | sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1"; | ||
4474 | }; | ||
4475 | } | ||
4476 | { | ||
4477 | name = "import_local___import_local_2.0.0.tgz"; | ||
4478 | path = fetchurl { | ||
4479 | name = "import_local___import_local_2.0.0.tgz"; | ||
4480 | url = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz"; | ||
4481 | sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d"; | ||
4482 | }; | ||
4483 | } | ||
4484 | { | ||
4485 | name = "imurmurhash___imurmurhash_0.1.4.tgz"; | ||
4486 | path = fetchurl { | ||
4487 | name = "imurmurhash___imurmurhash_0.1.4.tgz"; | ||
4488 | url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz"; | ||
4489 | sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; | ||
4490 | }; | ||
4491 | } | ||
4492 | { | ||
4493 | name = "indent_string___indent_string_4.0.0.tgz"; | ||
4494 | path = fetchurl { | ||
4495 | name = "indent_string___indent_string_4.0.0.tgz"; | ||
4496 | url = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz"; | ||
4497 | sha1 = "624f8f4497d619b2d9768531d58f4122854d7251"; | ||
4498 | }; | ||
4499 | } | ||
4500 | { | ||
4501 | name = "indexes_of___indexes_of_1.0.1.tgz"; | ||
4502 | path = fetchurl { | ||
4503 | name = "indexes_of___indexes_of_1.0.1.tgz"; | ||
4504 | url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz"; | ||
4505 | sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607"; | ||
4506 | }; | ||
4507 | } | ||
4508 | { | ||
4509 | name = "infer_owner___infer_owner_1.0.4.tgz"; | ||
4510 | path = fetchurl { | ||
4511 | name = "infer_owner___infer_owner_1.0.4.tgz"; | ||
4512 | url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz"; | ||
4513 | sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"; | ||
4514 | }; | ||
4515 | } | ||
4516 | { | ||
4517 | name = "inflight___inflight_1.0.6.tgz"; | ||
4518 | path = fetchurl { | ||
4519 | name = "inflight___inflight_1.0.6.tgz"; | ||
4520 | url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; | ||
4521 | sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; | ||
4522 | }; | ||
4523 | } | ||
4524 | { | ||
4525 | name = "inherits___inherits_2.0.4.tgz"; | ||
4526 | path = fetchurl { | ||
4527 | name = "inherits___inherits_2.0.4.tgz"; | ||
4528 | url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz"; | ||
4529 | sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c"; | ||
4530 | }; | ||
4531 | } | ||
4532 | { | ||
4533 | name = "inherits___inherits_2.0.1.tgz"; | ||
4534 | path = fetchurl { | ||
4535 | name = "inherits___inherits_2.0.1.tgz"; | ||
4536 | url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz"; | ||
4537 | sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; | ||
4538 | }; | ||
4539 | } | ||
4540 | { | ||
4541 | name = "inherits___inherits_2.0.3.tgz"; | ||
4542 | path = fetchurl { | ||
4543 | name = "inherits___inherits_2.0.3.tgz"; | ||
4544 | url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz"; | ||
4545 | sha1 = "633c2c83e3da42a502f52466022480f4208261de"; | ||
4546 | }; | ||
4547 | } | ||
4548 | { | ||
4549 | name = "inquirer___inquirer_7.1.0.tgz"; | ||
4550 | path = fetchurl { | ||
4551 | name = "inquirer___inquirer_7.1.0.tgz"; | ||
4552 | url = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz"; | ||
4553 | sha1 = "1298a01859883e17c7264b82870ae1034f92dd29"; | ||
4554 | }; | ||
4555 | } | ||
4556 | { | ||
4557 | name = "internal_ip___internal_ip_4.3.0.tgz"; | ||
4558 | path = fetchurl { | ||
4559 | name = "internal_ip___internal_ip_4.3.0.tgz"; | ||
4560 | url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz"; | ||
4561 | sha1 = "845452baad9d2ca3b69c635a137acb9a0dad0907"; | ||
4562 | }; | ||
4563 | } | ||
4564 | { | ||
4565 | name = "invariant___invariant_2.2.4.tgz"; | ||
4566 | path = fetchurl { | ||
4567 | name = "invariant___invariant_2.2.4.tgz"; | ||
4568 | url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz"; | ||
4569 | sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6"; | ||
4570 | }; | ||
4571 | } | ||
4572 | { | ||
4573 | name = "ip_regex___ip_regex_2.1.0.tgz"; | ||
4574 | path = fetchurl { | ||
4575 | name = "ip_regex___ip_regex_2.1.0.tgz"; | ||
4576 | url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz"; | ||
4577 | sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"; | ||
4578 | }; | ||
4579 | } | ||
4580 | { | ||
4581 | name = "ip___ip_1.1.5.tgz"; | ||
4582 | path = fetchurl { | ||
4583 | name = "ip___ip_1.1.5.tgz"; | ||
4584 | url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz"; | ||
4585 | sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a"; | ||
4586 | }; | ||
4587 | } | ||
4588 | { | ||
4589 | name = "ipaddr.js___ipaddr.js_1.9.1.tgz"; | ||
4590 | path = fetchurl { | ||
4591 | name = "ipaddr.js___ipaddr.js_1.9.1.tgz"; | ||
4592 | url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; | ||
4593 | sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3"; | ||
4594 | }; | ||
4595 | } | ||
4596 | { | ||
4597 | name = "is_absolute_url___is_absolute_url_2.1.0.tgz"; | ||
4598 | path = fetchurl { | ||
4599 | name = "is_absolute_url___is_absolute_url_2.1.0.tgz"; | ||
4600 | url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz"; | ||
4601 | sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"; | ||
4602 | }; | ||
4603 | } | ||
4604 | { | ||
4605 | name = "is_absolute_url___is_absolute_url_3.0.3.tgz"; | ||
4606 | path = fetchurl { | ||
4607 | name = "is_absolute_url___is_absolute_url_3.0.3.tgz"; | ||
4608 | url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz"; | ||
4609 | sha1 = "96c6a22b6a23929b11ea0afb1836c36ad4a5d698"; | ||
4610 | }; | ||
4611 | } | ||
4612 | { | ||
4613 | name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz"; | ||
4614 | path = fetchurl { | ||
4615 | name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz"; | ||
4616 | url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"; | ||
4617 | sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"; | ||
4618 | }; | ||
4619 | } | ||
4620 | { | ||
4621 | name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz"; | ||
4622 | path = fetchurl { | ||
4623 | name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz"; | ||
4624 | url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"; | ||
4625 | sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656"; | ||
4626 | }; | ||
4627 | } | ||
4628 | { | ||
4629 | name = "is_arguments___is_arguments_1.0.4.tgz"; | ||
4630 | path = fetchurl { | ||
4631 | name = "is_arguments___is_arguments_1.0.4.tgz"; | ||
4632 | url = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz"; | ||
4633 | sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3"; | ||
4634 | }; | ||
4635 | } | ||
4636 | { | ||
4637 | name = "is_arrayish___is_arrayish_0.2.1.tgz"; | ||
4638 | path = fetchurl { | ||
4639 | name = "is_arrayish___is_arrayish_0.2.1.tgz"; | ||
4640 | url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz"; | ||
4641 | sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; | ||
4642 | }; | ||
4643 | } | ||
4644 | { | ||
4645 | name = "is_arrayish___is_arrayish_0.3.2.tgz"; | ||
4646 | path = fetchurl { | ||
4647 | name = "is_arrayish___is_arrayish_0.3.2.tgz"; | ||
4648 | url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz"; | ||
4649 | sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03"; | ||
4650 | }; | ||
4651 | } | ||
4652 | { | ||
4653 | name = "is_binary_path___is_binary_path_1.0.1.tgz"; | ||
4654 | path = fetchurl { | ||
4655 | name = "is_binary_path___is_binary_path_1.0.1.tgz"; | ||
4656 | url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz"; | ||
4657 | sha1 = "75f16642b480f187a711c814161fd3a4a7655898"; | ||
4658 | }; | ||
4659 | } | ||
4660 | { | ||
4661 | name = "is_binary_path___is_binary_path_2.1.0.tgz"; | ||
4662 | path = fetchurl { | ||
4663 | name = "is_binary_path___is_binary_path_2.1.0.tgz"; | ||
4664 | url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz"; | ||
4665 | sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09"; | ||
4666 | }; | ||
4667 | } | ||
4668 | { | ||
4669 | name = "is_buffer___is_buffer_1.1.6.tgz"; | ||
4670 | path = fetchurl { | ||
4671 | name = "is_buffer___is_buffer_1.1.6.tgz"; | ||
4672 | url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz"; | ||
4673 | sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"; | ||
4674 | }; | ||
4675 | } | ||
4676 | { | ||
4677 | name = "is_callable___is_callable_1.2.0.tgz"; | ||
4678 | path = fetchurl { | ||
4679 | name = "is_callable___is_callable_1.2.0.tgz"; | ||
4680 | url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz"; | ||
4681 | sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb"; | ||
4682 | }; | ||
4683 | } | ||
4684 | { | ||
4685 | name = "is_ci___is_ci_1.2.1.tgz"; | ||
4686 | path = fetchurl { | ||
4687 | name = "is_ci___is_ci_1.2.1.tgz"; | ||
4688 | url = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz"; | ||
4689 | sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c"; | ||
4690 | }; | ||
4691 | } | ||
4692 | { | ||
4693 | name = "is_color_stop___is_color_stop_1.1.0.tgz"; | ||
4694 | path = fetchurl { | ||
4695 | name = "is_color_stop___is_color_stop_1.1.0.tgz"; | ||
4696 | url = "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz"; | ||
4697 | sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345"; | ||
4698 | }; | ||
4699 | } | ||
4700 | { | ||
4701 | name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz"; | ||
4702 | path = fetchurl { | ||
4703 | name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz"; | ||
4704 | url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"; | ||
4705 | sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56"; | ||
4706 | }; | ||
4707 | } | ||
4708 | { | ||
4709 | name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz"; | ||
4710 | path = fetchurl { | ||
4711 | name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz"; | ||
4712 | url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"; | ||
4713 | sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7"; | ||
4714 | }; | ||
4715 | } | ||
4716 | { | ||
4717 | name = "is_date_object___is_date_object_1.0.2.tgz"; | ||
4718 | path = fetchurl { | ||
4719 | name = "is_date_object___is_date_object_1.0.2.tgz"; | ||
4720 | url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz"; | ||
4721 | sha1 = "bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"; | ||
4722 | }; | ||
4723 | } | ||
4724 | { | ||
4725 | name = "is_descriptor___is_descriptor_0.1.6.tgz"; | ||
4726 | path = fetchurl { | ||
4727 | name = "is_descriptor___is_descriptor_0.1.6.tgz"; | ||
4728 | url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz"; | ||
4729 | sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca"; | ||
4730 | }; | ||
4731 | } | ||
4732 | { | ||
4733 | name = "is_descriptor___is_descriptor_1.0.2.tgz"; | ||
4734 | path = fetchurl { | ||
4735 | name = "is_descriptor___is_descriptor_1.0.2.tgz"; | ||
4736 | url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz"; | ||
4737 | sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec"; | ||
4738 | }; | ||
4739 | } | ||
4740 | { | ||
4741 | name = "is_directory___is_directory_0.3.1.tgz"; | ||
4742 | path = fetchurl { | ||
4743 | name = "is_directory___is_directory_0.3.1.tgz"; | ||
4744 | url = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz"; | ||
4745 | sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1"; | ||
4746 | }; | ||
4747 | } | ||
4748 | { | ||
4749 | name = "is_docker___is_docker_2.0.0.tgz"; | ||
4750 | path = fetchurl { | ||
4751 | name = "is_docker___is_docker_2.0.0.tgz"; | ||
4752 | url = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz"; | ||
4753 | sha1 = "2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b"; | ||
4754 | }; | ||
4755 | } | ||
4756 | { | ||
4757 | name = "is_extendable___is_extendable_0.1.1.tgz"; | ||
4758 | path = fetchurl { | ||
4759 | name = "is_extendable___is_extendable_0.1.1.tgz"; | ||
4760 | url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz"; | ||
4761 | sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; | ||
4762 | }; | ||
4763 | } | ||
4764 | { | ||
4765 | name = "is_extendable___is_extendable_1.0.1.tgz"; | ||
4766 | path = fetchurl { | ||
4767 | name = "is_extendable___is_extendable_1.0.1.tgz"; | ||
4768 | url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz"; | ||
4769 | sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4"; | ||
4770 | }; | ||
4771 | } | ||
4772 | { | ||
4773 | name = "is_extglob___is_extglob_2.1.1.tgz"; | ||
4774 | path = fetchurl { | ||
4775 | name = "is_extglob___is_extglob_2.1.1.tgz"; | ||
4776 | url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; | ||
4777 | sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; | ||
4778 | }; | ||
4779 | } | ||
4780 | { | ||
4781 | name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; | ||
4782 | path = fetchurl { | ||
4783 | name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; | ||
4784 | url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; | ||
4785 | sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; | ||
4786 | }; | ||
4787 | } | ||
4788 | { | ||
4789 | name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; | ||
4790 | path = fetchurl { | ||
4791 | name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; | ||
4792 | url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; | ||
4793 | sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d"; | ||
4794 | }; | ||
4795 | } | ||
4796 | { | ||
4797 | name = "is_glob___is_glob_3.1.0.tgz"; | ||
4798 | path = fetchurl { | ||
4799 | name = "is_glob___is_glob_3.1.0.tgz"; | ||
4800 | url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz"; | ||
4801 | sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; | ||
4802 | }; | ||
4803 | } | ||
4804 | { | ||
4805 | name = "is_glob___is_glob_4.0.1.tgz"; | ||
4806 | path = fetchurl { | ||
4807 | name = "is_glob___is_glob_4.0.1.tgz"; | ||
4808 | url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz"; | ||
4809 | sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"; | ||
4810 | }; | ||
4811 | } | ||
4812 | { | ||
4813 | name = "is_number___is_number_3.0.0.tgz"; | ||
4814 | path = fetchurl { | ||
4815 | name = "is_number___is_number_3.0.0.tgz"; | ||
4816 | url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz"; | ||
4817 | sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; | ||
4818 | }; | ||
4819 | } | ||
4820 | { | ||
4821 | name = "is_number___is_number_7.0.0.tgz"; | ||
4822 | path = fetchurl { | ||
4823 | name = "is_number___is_number_7.0.0.tgz"; | ||
4824 | url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz"; | ||
4825 | sha1 = "7535345b896734d5f80c4d06c50955527a14f12b"; | ||
4826 | }; | ||
4827 | } | ||
4828 | { | ||
4829 | name = "is_obj___is_obj_1.0.1.tgz"; | ||
4830 | path = fetchurl { | ||
4831 | name = "is_obj___is_obj_1.0.1.tgz"; | ||
4832 | url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz"; | ||
4833 | sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"; | ||
4834 | }; | ||
4835 | } | ||
4836 | { | ||
4837 | name = "is_obj___is_obj_2.0.0.tgz"; | ||
4838 | path = fetchurl { | ||
4839 | name = "is_obj___is_obj_2.0.0.tgz"; | ||
4840 | url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz"; | ||
4841 | sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982"; | ||
4842 | }; | ||
4843 | } | ||
4844 | { | ||
4845 | name = "is_path_cwd___is_path_cwd_2.2.0.tgz"; | ||
4846 | path = fetchurl { | ||
4847 | name = "is_path_cwd___is_path_cwd_2.2.0.tgz"; | ||
4848 | url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz"; | ||
4849 | sha1 = "67d43b82664a7b5191fd9119127eb300048a9fdb"; | ||
4850 | }; | ||
4851 | } | ||
4852 | { | ||
4853 | name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz"; | ||
4854 | path = fetchurl { | ||
4855 | name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz"; | ||
4856 | url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz"; | ||
4857 | sha1 = "bfe2dca26c69f397265a4009963602935a053acb"; | ||
4858 | }; | ||
4859 | } | ||
4860 | { | ||
4861 | name = "is_path_inside___is_path_inside_2.1.0.tgz"; | ||
4862 | path = fetchurl { | ||
4863 | name = "is_path_inside___is_path_inside_2.1.0.tgz"; | ||
4864 | url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz"; | ||
4865 | sha1 = "7c9810587d659a40d27bcdb4d5616eab059494b2"; | ||
4866 | }; | ||
4867 | } | ||
4868 | { | ||
4869 | name = "is_plain_obj___is_plain_obj_1.1.0.tgz"; | ||
4870 | path = fetchurl { | ||
4871 | name = "is_plain_obj___is_plain_obj_1.1.0.tgz"; | ||
4872 | url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz"; | ||
4873 | sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e"; | ||
4874 | }; | ||
4875 | } | ||
4876 | { | ||
4877 | name = "is_plain_object___is_plain_object_2.0.4.tgz"; | ||
4878 | path = fetchurl { | ||
4879 | name = "is_plain_object___is_plain_object_2.0.4.tgz"; | ||
4880 | url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz"; | ||
4881 | sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677"; | ||
4882 | }; | ||
4883 | } | ||
4884 | { | ||
4885 | name = "is_regex___is_regex_1.1.0.tgz"; | ||
4886 | path = fetchurl { | ||
4887 | name = "is_regex___is_regex_1.1.0.tgz"; | ||
4888 | url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz"; | ||
4889 | sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff"; | ||
4890 | }; | ||
4891 | } | ||
4892 | { | ||
4893 | name = "is_regexp___is_regexp_1.0.0.tgz"; | ||
4894 | path = fetchurl { | ||
4895 | name = "is_regexp___is_regexp_1.0.0.tgz"; | ||
4896 | url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz"; | ||
4897 | sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069"; | ||
4898 | }; | ||
4899 | } | ||
4900 | { | ||
4901 | name = "is_resolvable___is_resolvable_1.1.0.tgz"; | ||
4902 | path = fetchurl { | ||
4903 | name = "is_resolvable___is_resolvable_1.1.0.tgz"; | ||
4904 | url = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz"; | ||
4905 | sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88"; | ||
4906 | }; | ||
4907 | } | ||
4908 | { | ||
4909 | name = "is_stream___is_stream_1.1.0.tgz"; | ||
4910 | path = fetchurl { | ||
4911 | name = "is_stream___is_stream_1.1.0.tgz"; | ||
4912 | url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz"; | ||
4913 | sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; | ||
4914 | }; | ||
4915 | } | ||
4916 | { | ||
4917 | name = "is_stream___is_stream_2.0.0.tgz"; | ||
4918 | path = fetchurl { | ||
4919 | name = "is_stream___is_stream_2.0.0.tgz"; | ||
4920 | url = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz"; | ||
4921 | sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3"; | ||
4922 | }; | ||
4923 | } | ||
4924 | { | ||
4925 | name = "is_svg___is_svg_3.0.0.tgz"; | ||
4926 | path = fetchurl { | ||
4927 | name = "is_svg___is_svg_3.0.0.tgz"; | ||
4928 | url = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz"; | ||
4929 | sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75"; | ||
4930 | }; | ||
4931 | } | ||
4932 | { | ||
4933 | name = "is_symbol___is_symbol_1.0.3.tgz"; | ||
4934 | path = fetchurl { | ||
4935 | name = "is_symbol___is_symbol_1.0.3.tgz"; | ||
4936 | url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz"; | ||
4937 | sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937"; | ||
4938 | }; | ||
4939 | } | ||
4940 | { | ||
4941 | name = "is_typedarray___is_typedarray_1.0.0.tgz"; | ||
4942 | path = fetchurl { | ||
4943 | name = "is_typedarray___is_typedarray_1.0.0.tgz"; | ||
4944 | url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"; | ||
4945 | sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; | ||
4946 | }; | ||
4947 | } | ||
4948 | { | ||
4949 | name = "is_windows___is_windows_1.0.2.tgz"; | ||
4950 | path = fetchurl { | ||
4951 | name = "is_windows___is_windows_1.0.2.tgz"; | ||
4952 | url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz"; | ||
4953 | sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d"; | ||
4954 | }; | ||
4955 | } | ||
4956 | { | ||
4957 | name = "is_wsl___is_wsl_1.1.0.tgz"; | ||
4958 | path = fetchurl { | ||
4959 | name = "is_wsl___is_wsl_1.1.0.tgz"; | ||
4960 | url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz"; | ||
4961 | sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d"; | ||
4962 | }; | ||
4963 | } | ||
4964 | { | ||
4965 | name = "is_wsl___is_wsl_2.2.0.tgz"; | ||
4966 | path = fetchurl { | ||
4967 | name = "is_wsl___is_wsl_2.2.0.tgz"; | ||
4968 | url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz"; | ||
4969 | sha1 = "74a4c76e77ca9fd3f932f290c17ea326cd157271"; | ||
4970 | }; | ||
4971 | } | ||
4972 | { | ||
4973 | name = "isarray___isarray_1.0.0.tgz"; | ||
4974 | path = fetchurl { | ||
4975 | name = "isarray___isarray_1.0.0.tgz"; | ||
4976 | url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; | ||
4977 | sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; | ||
4978 | }; | ||
4979 | } | ||
4980 | { | ||
4981 | name = "isexe___isexe_2.0.0.tgz"; | ||
4982 | path = fetchurl { | ||
4983 | name = "isexe___isexe_2.0.0.tgz"; | ||
4984 | url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; | ||
4985 | sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; | ||
4986 | }; | ||
4987 | } | ||
4988 | { | ||
4989 | name = "isobject___isobject_2.1.0.tgz"; | ||
4990 | path = fetchurl { | ||
4991 | name = "isobject___isobject_2.1.0.tgz"; | ||
4992 | url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz"; | ||
4993 | sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; | ||
4994 | }; | ||
4995 | } | ||
4996 | { | ||
4997 | name = "isobject___isobject_3.0.1.tgz"; | ||
4998 | path = fetchurl { | ||
4999 | name = "isobject___isobject_3.0.1.tgz"; | ||
5000 | url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz"; | ||
5001 | sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; | ||
5002 | }; | ||
5003 | } | ||
5004 | { | ||
5005 | name = "isstream___isstream_0.1.2.tgz"; | ||
5006 | path = fetchurl { | ||
5007 | name = "isstream___isstream_0.1.2.tgz"; | ||
5008 | url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"; | ||
5009 | sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; | ||
5010 | }; | ||
5011 | } | ||
5012 | { | ||
5013 | name = "javascript_stringify___javascript_stringify_2.0.1.tgz"; | ||
5014 | path = fetchurl { | ||
5015 | name = "javascript_stringify___javascript_stringify_2.0.1.tgz"; | ||
5016 | url = "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.0.1.tgz"; | ||
5017 | sha1 = "6ef358035310e35d667c675ed63d3eb7c1aa19e5"; | ||
5018 | }; | ||
5019 | } | ||
5020 | { | ||
5021 | name = "jest_worker___jest_worker_25.5.0.tgz"; | ||
5022 | path = fetchurl { | ||
5023 | name = "jest_worker___jest_worker_25.5.0.tgz"; | ||
5024 | url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz"; | ||
5025 | sha1 = "2611d071b79cea0f43ee57a3d118593ac1547db1"; | ||
5026 | }; | ||
5027 | } | ||
5028 | { | ||
5029 | name = "js_message___js_message_1.0.5.tgz"; | ||
5030 | path = fetchurl { | ||
5031 | name = "js_message___js_message_1.0.5.tgz"; | ||
5032 | url = "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz"; | ||
5033 | sha1 = "2300d24b1af08e89dd095bc1a4c9c9cfcb892d15"; | ||
5034 | }; | ||
5035 | } | ||
5036 | { | ||
5037 | name = "js_queue___js_queue_2.0.0.tgz"; | ||
5038 | path = fetchurl { | ||
5039 | name = "js_queue___js_queue_2.0.0.tgz"; | ||
5040 | url = "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.0.tgz"; | ||
5041 | sha1 = "362213cf860f468f0125fc6c96abc1742531f948"; | ||
5042 | }; | ||
5043 | } | ||
5044 | { | ||
5045 | name = "js_tokens___js_tokens_4.0.0.tgz"; | ||
5046 | path = fetchurl { | ||
5047 | name = "js_tokens___js_tokens_4.0.0.tgz"; | ||
5048 | url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz"; | ||
5049 | sha1 = "19203fb59991df98e3a287050d4647cdeaf32499"; | ||
5050 | }; | ||
5051 | } | ||
5052 | { | ||
5053 | name = "js_yaml___js_yaml_3.14.0.tgz"; | ||
5054 | path = fetchurl { | ||
5055 | name = "js_yaml___js_yaml_3.14.0.tgz"; | ||
5056 | url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz"; | ||
5057 | sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482"; | ||
5058 | }; | ||
5059 | } | ||
5060 | { | ||
5061 | name = "jsbn___jsbn_0.1.1.tgz"; | ||
5062 | path = fetchurl { | ||
5063 | name = "jsbn___jsbn_0.1.1.tgz"; | ||
5064 | url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz"; | ||
5065 | sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; | ||
5066 | }; | ||
5067 | } | ||
5068 | { | ||
5069 | name = "jsesc___jsesc_2.5.2.tgz"; | ||
5070 | path = fetchurl { | ||
5071 | name = "jsesc___jsesc_2.5.2.tgz"; | ||
5072 | url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz"; | ||
5073 | sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4"; | ||
5074 | }; | ||
5075 | } | ||
5076 | { | ||
5077 | name = "jsesc___jsesc_0.5.0.tgz"; | ||
5078 | path = fetchurl { | ||
5079 | name = "jsesc___jsesc_0.5.0.tgz"; | ||
5080 | url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz"; | ||
5081 | sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d"; | ||
5082 | }; | ||
5083 | } | ||
5084 | { | ||
5085 | name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz"; | ||
5086 | path = fetchurl { | ||
5087 | name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz"; | ||
5088 | url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; | ||
5089 | sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9"; | ||
5090 | }; | ||
5091 | } | ||
5092 | { | ||
5093 | name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; | ||
5094 | path = fetchurl { | ||
5095 | name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; | ||
5096 | url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; | ||
5097 | sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660"; | ||
5098 | }; | ||
5099 | } | ||
5100 | { | ||
5101 | name = "json_schema___json_schema_0.2.3.tgz"; | ||
5102 | path = fetchurl { | ||
5103 | name = "json_schema___json_schema_0.2.3.tgz"; | ||
5104 | url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz"; | ||
5105 | sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; | ||
5106 | }; | ||
5107 | } | ||
5108 | { | ||
5109 | name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; | ||
5110 | path = fetchurl { | ||
5111 | name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; | ||
5112 | url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"; | ||
5113 | sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651"; | ||
5114 | }; | ||
5115 | } | ||
5116 | { | ||
5117 | name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz"; | ||
5118 | path = fetchurl { | ||
5119 | name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz"; | ||
5120 | url = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"; | ||
5121 | sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af"; | ||
5122 | }; | ||
5123 | } | ||
5124 | { | ||
5125 | name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; | ||
5126 | path = fetchurl { | ||
5127 | name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; | ||
5128 | url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; | ||
5129 | sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; | ||
5130 | }; | ||
5131 | } | ||
5132 | { | ||
5133 | name = "json3___json3_3.3.3.tgz"; | ||
5134 | path = fetchurl { | ||
5135 | name = "json3___json3_3.3.3.tgz"; | ||
5136 | url = "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz"; | ||
5137 | sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"; | ||
5138 | }; | ||
5139 | } | ||
5140 | { | ||
5141 | name = "json5___json5_0.5.1.tgz"; | ||
5142 | path = fetchurl { | ||
5143 | name = "json5___json5_0.5.1.tgz"; | ||
5144 | url = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz"; | ||
5145 | sha1 = "1eade7acc012034ad84e2396767ead9fa5495821"; | ||
5146 | }; | ||
5147 | } | ||
5148 | { | ||
5149 | name = "json5___json5_1.0.1.tgz"; | ||
5150 | path = fetchurl { | ||
5151 | name = "json5___json5_1.0.1.tgz"; | ||
5152 | url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz"; | ||
5153 | sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe"; | ||
5154 | }; | ||
5155 | } | ||
5156 | { | ||
5157 | name = "json5___json5_2.1.3.tgz"; | ||
5158 | path = fetchurl { | ||
5159 | name = "json5___json5_2.1.3.tgz"; | ||
5160 | url = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz"; | ||
5161 | sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"; | ||
5162 | }; | ||
5163 | } | ||
5164 | { | ||
5165 | name = "jsonfile___jsonfile_4.0.0.tgz"; | ||
5166 | path = fetchurl { | ||
5167 | name = "jsonfile___jsonfile_4.0.0.tgz"; | ||
5168 | url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz"; | ||
5169 | sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb"; | ||
5170 | }; | ||
5171 | } | ||
5172 | { | ||
5173 | name = "jsonify___jsonify_0.0.0.tgz"; | ||
5174 | path = fetchurl { | ||
5175 | name = "jsonify___jsonify_0.0.0.tgz"; | ||
5176 | url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz"; | ||
5177 | sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; | ||
5178 | }; | ||
5179 | } | ||
5180 | { | ||
5181 | name = "jsprim___jsprim_1.4.1.tgz"; | ||
5182 | path = fetchurl { | ||
5183 | name = "jsprim___jsprim_1.4.1.tgz"; | ||
5184 | url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz"; | ||
5185 | sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; | ||
5186 | }; | ||
5187 | } | ||
5188 | { | ||
5189 | name = "killable___killable_1.0.1.tgz"; | ||
5190 | path = fetchurl { | ||
5191 | name = "killable___killable_1.0.1.tgz"; | ||
5192 | url = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz"; | ||
5193 | sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892"; | ||
5194 | }; | ||
5195 | } | ||
5196 | { | ||
5197 | name = "kind_of___kind_of_3.2.2.tgz"; | ||
5198 | path = fetchurl { | ||
5199 | name = "kind_of___kind_of_3.2.2.tgz"; | ||
5200 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz"; | ||
5201 | sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; | ||
5202 | }; | ||
5203 | } | ||
5204 | { | ||
5205 | name = "kind_of___kind_of_4.0.0.tgz"; | ||
5206 | path = fetchurl { | ||
5207 | name = "kind_of___kind_of_4.0.0.tgz"; | ||
5208 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz"; | ||
5209 | sha1 = "20813df3d712928b207378691a45066fae72dd57"; | ||
5210 | }; | ||
5211 | } | ||
5212 | { | ||
5213 | name = "kind_of___kind_of_5.1.0.tgz"; | ||
5214 | path = fetchurl { | ||
5215 | name = "kind_of___kind_of_5.1.0.tgz"; | ||
5216 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz"; | ||
5217 | sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d"; | ||
5218 | }; | ||
5219 | } | ||
5220 | { | ||
5221 | name = "kind_of___kind_of_6.0.3.tgz"; | ||
5222 | path = fetchurl { | ||
5223 | name = "kind_of___kind_of_6.0.3.tgz"; | ||
5224 | url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz"; | ||
5225 | sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd"; | ||
5226 | }; | ||
5227 | } | ||
5228 | { | ||
5229 | name = "launch_editor_middleware___launch_editor_middleware_2.2.1.tgz"; | ||
5230 | path = fetchurl { | ||
5231 | name = "launch_editor_middleware___launch_editor_middleware_2.2.1.tgz"; | ||
5232 | url = "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz"; | ||
5233 | sha1 = "e14b07e6c7154b0a4b86a0fd345784e45804c157"; | ||
5234 | }; | ||
5235 | } | ||
5236 | { | ||
5237 | name = "launch_editor___launch_editor_2.2.1.tgz"; | ||
5238 | path = fetchurl { | ||
5239 | name = "launch_editor___launch_editor_2.2.1.tgz"; | ||
5240 | url = "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz"; | ||
5241 | sha1 = "871b5a3ee39d6680fcc26d37930b6eeda89db0ca"; | ||
5242 | }; | ||
5243 | } | ||
5244 | { | ||
5245 | name = "leven___leven_3.1.0.tgz"; | ||
5246 | path = fetchurl { | ||
5247 | name = "leven___leven_3.1.0.tgz"; | ||
5248 | url = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz"; | ||
5249 | sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2"; | ||
5250 | }; | ||
5251 | } | ||
5252 | { | ||
5253 | name = "levenary___levenary_1.1.1.tgz"; | ||
5254 | path = fetchurl { | ||
5255 | name = "levenary___levenary_1.1.1.tgz"; | ||
5256 | url = "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz"; | ||
5257 | sha1 = "842a9ee98d2075aa7faeedbe32679e9205f46f77"; | ||
5258 | }; | ||
5259 | } | ||
5260 | { | ||
5261 | name = "levn___levn_0.4.1.tgz"; | ||
5262 | path = fetchurl { | ||
5263 | name = "levn___levn_0.4.1.tgz"; | ||
5264 | url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz"; | ||
5265 | sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade"; | ||
5266 | }; | ||
5267 | } | ||
5268 | { | ||
5269 | name = "lines_and_columns___lines_and_columns_1.1.6.tgz"; | ||
5270 | path = fetchurl { | ||
5271 | name = "lines_and_columns___lines_and_columns_1.1.6.tgz"; | ||
5272 | url = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz"; | ||
5273 | sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00"; | ||
5274 | }; | ||
5275 | } | ||
5276 | { | ||
5277 | name = "loader_fs_cache___loader_fs_cache_1.0.3.tgz"; | ||
5278 | path = fetchurl { | ||
5279 | name = "loader_fs_cache___loader_fs_cache_1.0.3.tgz"; | ||
5280 | url = "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz"; | ||
5281 | sha1 = "f08657646d607078be2f0a032f8bd69dd6f277d9"; | ||
5282 | }; | ||
5283 | } | ||
5284 | { | ||
5285 | name = "loader_runner___loader_runner_2.4.0.tgz"; | ||
5286 | path = fetchurl { | ||
5287 | name = "loader_runner___loader_runner_2.4.0.tgz"; | ||
5288 | url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz"; | ||
5289 | sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357"; | ||
5290 | }; | ||
5291 | } | ||
5292 | { | ||
5293 | name = "loader_utils___loader_utils_0.2.17.tgz"; | ||
5294 | path = fetchurl { | ||
5295 | name = "loader_utils___loader_utils_0.2.17.tgz"; | ||
5296 | url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz"; | ||
5297 | sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348"; | ||
5298 | }; | ||
5299 | } | ||
5300 | { | ||
5301 | name = "loader_utils___loader_utils_1.4.0.tgz"; | ||
5302 | path = fetchurl { | ||
5303 | name = "loader_utils___loader_utils_1.4.0.tgz"; | ||
5304 | url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz"; | ||
5305 | sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"; | ||
5306 | }; | ||
5307 | } | ||
5308 | { | ||
5309 | name = "loader_utils___loader_utils_2.0.0.tgz"; | ||
5310 | path = fetchurl { | ||
5311 | name = "loader_utils___loader_utils_2.0.0.tgz"; | ||
5312 | url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz"; | ||
5313 | sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0"; | ||
5314 | }; | ||
5315 | } | ||
5316 | { | ||
5317 | name = "locate_path___locate_path_2.0.0.tgz"; | ||
5318 | path = fetchurl { | ||
5319 | name = "locate_path___locate_path_2.0.0.tgz"; | ||
5320 | url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz"; | ||
5321 | sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; | ||
5322 | }; | ||
5323 | } | ||
5324 | { | ||
5325 | name = "locate_path___locate_path_3.0.0.tgz"; | ||
5326 | path = fetchurl { | ||
5327 | name = "locate_path___locate_path_3.0.0.tgz"; | ||
5328 | url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz"; | ||
5329 | sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e"; | ||
5330 | }; | ||
5331 | } | ||
5332 | { | ||
5333 | name = "locate_path___locate_path_5.0.0.tgz"; | ||
5334 | path = fetchurl { | ||
5335 | name = "locate_path___locate_path_5.0.0.tgz"; | ||
5336 | url = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz"; | ||
5337 | sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0"; | ||
5338 | }; | ||
5339 | } | ||
5340 | { | ||
5341 | name = "lodash._reinterpolate___lodash._reinterpolate_3.0.0.tgz"; | ||
5342 | path = fetchurl { | ||
5343 | name = "lodash._reinterpolate___lodash._reinterpolate_3.0.0.tgz"; | ||
5344 | url = "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"; | ||
5345 | sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d"; | ||
5346 | }; | ||
5347 | } | ||
5348 | { | ||
5349 | name = "lodash.defaultsdeep___lodash.defaultsdeep_4.6.1.tgz"; | ||
5350 | path = fetchurl { | ||
5351 | name = "lodash.defaultsdeep___lodash.defaultsdeep_4.6.1.tgz"; | ||
5352 | url = "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz"; | ||
5353 | sha1 = "512e9bd721d272d94e3d3a63653fa17516741ca6"; | ||
5354 | }; | ||
5355 | } | ||
5356 | { | ||
5357 | name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz"; | ||
5358 | path = fetchurl { | ||
5359 | name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz"; | ||
5360 | url = "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz"; | ||
5361 | sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36"; | ||
5362 | }; | ||
5363 | } | ||
5364 | { | ||
5365 | name = "lodash.mapvalues___lodash.mapvalues_4.6.0.tgz"; | ||
5366 | path = fetchurl { | ||
5367 | name = "lodash.mapvalues___lodash.mapvalues_4.6.0.tgz"; | ||
5368 | url = "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz"; | ||
5369 | sha1 = "1bafa5005de9dd6f4f26668c30ca37230cc9689c"; | ||
5370 | }; | ||
5371 | } | ||
5372 | { | ||
5373 | name = "lodash.memoize___lodash.memoize_4.1.2.tgz"; | ||
5374 | path = fetchurl { | ||
5375 | name = "lodash.memoize___lodash.memoize_4.1.2.tgz"; | ||
5376 | url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz"; | ||
5377 | sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe"; | ||
5378 | }; | ||
5379 | } | ||
5380 | { | ||
5381 | name = "lodash.merge___lodash.merge_4.6.2.tgz"; | ||
5382 | path = fetchurl { | ||
5383 | name = "lodash.merge___lodash.merge_4.6.2.tgz"; | ||
5384 | url = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz"; | ||
5385 | sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a"; | ||
5386 | }; | ||
5387 | } | ||
5388 | { | ||
5389 | name = "lodash.template___lodash.template_4.5.0.tgz"; | ||
5390 | path = fetchurl { | ||
5391 | name = "lodash.template___lodash.template_4.5.0.tgz"; | ||
5392 | url = "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz"; | ||
5393 | sha1 = "f976195cf3f347d0d5f52483569fe8031ccce8ab"; | ||
5394 | }; | ||
5395 | } | ||
5396 | { | ||
5397 | name = "lodash.templatesettings___lodash.templatesettings_4.2.0.tgz"; | ||
5398 | path = fetchurl { | ||
5399 | name = "lodash.templatesettings___lodash.templatesettings_4.2.0.tgz"; | ||
5400 | url = "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz"; | ||
5401 | sha1 = "e481310f049d3cf6d47e912ad09313b154f0fb33"; | ||
5402 | }; | ||
5403 | } | ||
5404 | { | ||
5405 | name = "lodash.transform___lodash.transform_4.6.0.tgz"; | ||
5406 | path = fetchurl { | ||
5407 | name = "lodash.transform___lodash.transform_4.6.0.tgz"; | ||
5408 | url = "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz"; | ||
5409 | sha1 = "12306422f63324aed8483d3f38332b5f670547a0"; | ||
5410 | }; | ||
5411 | } | ||
5412 | { | ||
5413 | name = "lodash.uniq___lodash.uniq_4.5.0.tgz"; | ||
5414 | path = fetchurl { | ||
5415 | name = "lodash.uniq___lodash.uniq_4.5.0.tgz"; | ||
5416 | url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; | ||
5417 | sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; | ||
5418 | }; | ||
5419 | } | ||
5420 | { | ||
5421 | name = "lodash___lodash_4.17.15.tgz"; | ||
5422 | path = fetchurl { | ||
5423 | name = "lodash___lodash_4.17.15.tgz"; | ||
5424 | url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz"; | ||
5425 | sha1 = "b447f6670a0455bbfeedd11392eff330ea097548"; | ||
5426 | }; | ||
5427 | } | ||
5428 | { | ||
5429 | name = "log_symbols___log_symbols_2.2.0.tgz"; | ||
5430 | path = fetchurl { | ||
5431 | name = "log_symbols___log_symbols_2.2.0.tgz"; | ||
5432 | url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz"; | ||
5433 | sha1 = "5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"; | ||
5434 | }; | ||
5435 | } | ||
5436 | { | ||
5437 | name = "loglevel___loglevel_1.6.8.tgz"; | ||
5438 | path = fetchurl { | ||
5439 | name = "loglevel___loglevel_1.6.8.tgz"; | ||
5440 | url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz"; | ||
5441 | sha1 = "8a25fb75d092230ecd4457270d80b54e28011171"; | ||
5442 | }; | ||
5443 | } | ||
5444 | { | ||
5445 | name = "loose_envify___loose_envify_1.4.0.tgz"; | ||
5446 | path = fetchurl { | ||
5447 | name = "loose_envify___loose_envify_1.4.0.tgz"; | ||
5448 | url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz"; | ||
5449 | sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf"; | ||
5450 | }; | ||
5451 | } | ||
5452 | { | ||
5453 | name = "lower_case___lower_case_1.1.4.tgz"; | ||
5454 | path = fetchurl { | ||
5455 | name = "lower_case___lower_case_1.1.4.tgz"; | ||
5456 | url = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz"; | ||
5457 | sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"; | ||
5458 | }; | ||
5459 | } | ||
5460 | { | ||
5461 | name = "lru_cache___lru_cache_4.1.5.tgz"; | ||
5462 | path = fetchurl { | ||
5463 | name = "lru_cache___lru_cache_4.1.5.tgz"; | ||
5464 | url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz"; | ||
5465 | sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"; | ||
5466 | }; | ||
5467 | } | ||
5468 | { | ||
5469 | name = "lru_cache___lru_cache_5.1.1.tgz"; | ||
5470 | path = fetchurl { | ||
5471 | name = "lru_cache___lru_cache_5.1.1.tgz"; | ||
5472 | url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz"; | ||
5473 | sha1 = "1da27e6710271947695daf6848e847f01d84b920"; | ||
5474 | }; | ||
5475 | } | ||
5476 | { | ||
5477 | name = "make_dir___make_dir_2.1.0.tgz"; | ||
5478 | path = fetchurl { | ||
5479 | name = "make_dir___make_dir_2.1.0.tgz"; | ||
5480 | url = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz"; | ||
5481 | sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5"; | ||
5482 | }; | ||
5483 | } | ||
5484 | { | ||
5485 | name = "make_dir___make_dir_3.1.0.tgz"; | ||
5486 | path = fetchurl { | ||
5487 | name = "make_dir___make_dir_3.1.0.tgz"; | ||
5488 | url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz"; | ||
5489 | sha1 = "415e967046b3a7f1d185277d84aa58203726a13f"; | ||
5490 | }; | ||
5491 | } | ||
5492 | { | ||
5493 | name = "map_cache___map_cache_0.2.2.tgz"; | ||
5494 | path = fetchurl { | ||
5495 | name = "map_cache___map_cache_0.2.2.tgz"; | ||
5496 | url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz"; | ||
5497 | sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; | ||
5498 | }; | ||
5499 | } | ||
5500 | { | ||
5501 | name = "map_visit___map_visit_1.0.0.tgz"; | ||
5502 | path = fetchurl { | ||
5503 | name = "map_visit___map_visit_1.0.0.tgz"; | ||
5504 | url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz"; | ||
5505 | sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; | ||
5506 | }; | ||
5507 | } | ||
5508 | { | ||
5509 | name = "md5.js___md5.js_1.3.5.tgz"; | ||
5510 | path = fetchurl { | ||
5511 | name = "md5.js___md5.js_1.3.5.tgz"; | ||
5512 | url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz"; | ||
5513 | sha1 = "b5d07b8e3216e3e27cd728d72f70d1e6a342005f"; | ||
5514 | }; | ||
5515 | } | ||
5516 | { | ||
5517 | name = "mdn_data___mdn_data_2.0.4.tgz"; | ||
5518 | path = fetchurl { | ||
5519 | name = "mdn_data___mdn_data_2.0.4.tgz"; | ||
5520 | url = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz"; | ||
5521 | sha1 = "699b3c38ac6f1d728091a64650b65d388502fd5b"; | ||
5522 | }; | ||
5523 | } | ||
5524 | { | ||
5525 | name = "mdn_data___mdn_data_2.0.6.tgz"; | ||
5526 | path = fetchurl { | ||
5527 | name = "mdn_data___mdn_data_2.0.6.tgz"; | ||
5528 | url = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz"; | ||
5529 | sha1 = "852dc60fcaa5daa2e8cf6c9189c440ed3e042978"; | ||
5530 | }; | ||
5531 | } | ||
5532 | { | ||
5533 | name = "media_typer___media_typer_0.3.0.tgz"; | ||
5534 | path = fetchurl { | ||
5535 | name = "media_typer___media_typer_0.3.0.tgz"; | ||
5536 | url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz"; | ||
5537 | sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; | ||
5538 | }; | ||
5539 | } | ||
5540 | { | ||
5541 | name = "memory_fs___memory_fs_0.4.1.tgz"; | ||
5542 | path = fetchurl { | ||
5543 | name = "memory_fs___memory_fs_0.4.1.tgz"; | ||
5544 | url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz"; | ||
5545 | sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552"; | ||
5546 | }; | ||
5547 | } | ||
5548 | { | ||
5549 | name = "memory_fs___memory_fs_0.5.0.tgz"; | ||
5550 | path = fetchurl { | ||
5551 | name = "memory_fs___memory_fs_0.5.0.tgz"; | ||
5552 | url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz"; | ||
5553 | sha1 = "324c01288b88652966d161db77838720845a8e3c"; | ||
5554 | }; | ||
5555 | } | ||
5556 | { | ||
5557 | name = "merge_descriptors___merge_descriptors_1.0.1.tgz"; | ||
5558 | path = fetchurl { | ||
5559 | name = "merge_descriptors___merge_descriptors_1.0.1.tgz"; | ||
5560 | url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; | ||
5561 | sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; | ||
5562 | }; | ||
5563 | } | ||
5564 | { | ||
5565 | name = "merge_source_map___merge_source_map_1.1.0.tgz"; | ||
5566 | path = fetchurl { | ||
5567 | name = "merge_source_map___merge_source_map_1.1.0.tgz"; | ||
5568 | url = "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz"; | ||
5569 | sha1 = "2fdde7e6020939f70906a68f2d7ae685e4c8c646"; | ||
5570 | }; | ||
5571 | } | ||
5572 | { | ||
5573 | name = "merge_stream___merge_stream_2.0.0.tgz"; | ||
5574 | path = fetchurl { | ||
5575 | name = "merge_stream___merge_stream_2.0.0.tgz"; | ||
5576 | url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz"; | ||
5577 | sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60"; | ||
5578 | }; | ||
5579 | } | ||
5580 | { | ||
5581 | name = "merge2___merge2_1.4.1.tgz"; | ||
5582 | path = fetchurl { | ||
5583 | name = "merge2___merge2_1.4.1.tgz"; | ||
5584 | url = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz"; | ||
5585 | sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae"; | ||
5586 | }; | ||
5587 | } | ||
5588 | { | ||
5589 | name = "methods___methods_1.1.2.tgz"; | ||
5590 | path = fetchurl { | ||
5591 | name = "methods___methods_1.1.2.tgz"; | ||
5592 | url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz"; | ||
5593 | sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; | ||
5594 | }; | ||
5595 | } | ||
5596 | { | ||
5597 | name = "micromatch___micromatch_3.1.10.tgz"; | ||
5598 | path = fetchurl { | ||
5599 | name = "micromatch___micromatch_3.1.10.tgz"; | ||
5600 | url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz"; | ||
5601 | sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23"; | ||
5602 | }; | ||
5603 | } | ||
5604 | { | ||
5605 | name = "miller_rabin___miller_rabin_4.0.1.tgz"; | ||
5606 | path = fetchurl { | ||
5607 | name = "miller_rabin___miller_rabin_4.0.1.tgz"; | ||
5608 | url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz"; | ||
5609 | sha1 = "f080351c865b0dc562a8462966daa53543c78a4d"; | ||
5610 | }; | ||
5611 | } | ||
5612 | { | ||
5613 | name = "mime_db___mime_db_1.44.0.tgz"; | ||
5614 | path = fetchurl { | ||
5615 | name = "mime_db___mime_db_1.44.0.tgz"; | ||
5616 | url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz"; | ||
5617 | sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"; | ||
5618 | }; | ||
5619 | } | ||
5620 | { | ||
5621 | name = "mime_types___mime_types_2.1.27.tgz"; | ||
5622 | path = fetchurl { | ||
5623 | name = "mime_types___mime_types_2.1.27.tgz"; | ||
5624 | url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz"; | ||
5625 | sha1 = "47949f98e279ea53119f5722e0f34e529bec009f"; | ||
5626 | }; | ||
5627 | } | ||
5628 | { | ||
5629 | name = "mime___mime_1.6.0.tgz"; | ||
5630 | path = fetchurl { | ||
5631 | name = "mime___mime_1.6.0.tgz"; | ||
5632 | url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz"; | ||
5633 | sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1"; | ||
5634 | }; | ||
5635 | } | ||
5636 | { | ||
5637 | name = "mime___mime_2.4.6.tgz"; | ||
5638 | path = fetchurl { | ||
5639 | name = "mime___mime_2.4.6.tgz"; | ||
5640 | url = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz"; | ||
5641 | sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1"; | ||
5642 | }; | ||
5643 | } | ||
5644 | { | ||
5645 | name = "mimic_fn___mimic_fn_1.2.0.tgz"; | ||
5646 | path = fetchurl { | ||
5647 | name = "mimic_fn___mimic_fn_1.2.0.tgz"; | ||
5648 | url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz"; | ||
5649 | sha1 = "820c86a39334640e99516928bd03fca88057d022"; | ||
5650 | }; | ||
5651 | } | ||
5652 | { | ||
5653 | name = "mimic_fn___mimic_fn_2.1.0.tgz"; | ||
5654 | path = fetchurl { | ||
5655 | name = "mimic_fn___mimic_fn_2.1.0.tgz"; | ||
5656 | url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz"; | ||
5657 | sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"; | ||
5658 | }; | ||
5659 | } | ||
5660 | { | ||
5661 | name = "mini_css_extract_plugin___mini_css_extract_plugin_0.9.0.tgz"; | ||
5662 | path = fetchurl { | ||
5663 | name = "mini_css_extract_plugin___mini_css_extract_plugin_0.9.0.tgz"; | ||
5664 | url = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz"; | ||
5665 | sha1 = "47f2cf07aa165ab35733b1fc97d4c46c0564339e"; | ||
5666 | }; | ||
5667 | } | ||
5668 | { | ||
5669 | name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz"; | ||
5670 | path = fetchurl { | ||
5671 | name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz"; | ||
5672 | url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; | ||
5673 | sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"; | ||
5674 | }; | ||
5675 | } | ||
5676 | { | ||
5677 | name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz"; | ||
5678 | path = fetchurl { | ||
5679 | name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz"; | ||
5680 | url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"; | ||
5681 | sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"; | ||
5682 | }; | ||
5683 | } | ||
5684 | { | ||
5685 | name = "minimatch___minimatch_3.0.4.tgz"; | ||
5686 | path = fetchurl { | ||
5687 | name = "minimatch___minimatch_3.0.4.tgz"; | ||
5688 | url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"; | ||
5689 | sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; | ||
5690 | }; | ||
5691 | } | ||
5692 | { | ||
5693 | name = "minimist___minimist_1.2.5.tgz"; | ||
5694 | path = fetchurl { | ||
5695 | name = "minimist___minimist_1.2.5.tgz"; | ||
5696 | url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz"; | ||
5697 | sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602"; | ||
5698 | }; | ||
5699 | } | ||
5700 | { | ||
5701 | name = "minipass_collect___minipass_collect_1.0.2.tgz"; | ||
5702 | path = fetchurl { | ||
5703 | name = "minipass_collect___minipass_collect_1.0.2.tgz"; | ||
5704 | url = "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz"; | ||
5705 | sha1 = "22b813bf745dc6edba2576b940022ad6edc8c617"; | ||
5706 | }; | ||
5707 | } | ||
5708 | { | ||
5709 | name = "minipass_flush___minipass_flush_1.0.5.tgz"; | ||
5710 | path = fetchurl { | ||
5711 | name = "minipass_flush___minipass_flush_1.0.5.tgz"; | ||
5712 | url = "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz"; | ||
5713 | sha1 = "82e7135d7e89a50ffe64610a787953c4c4cbb373"; | ||
5714 | }; | ||
5715 | } | ||
5716 | { | ||
5717 | name = "minipass_pipeline___minipass_pipeline_1.2.3.tgz"; | ||
5718 | path = fetchurl { | ||
5719 | name = "minipass_pipeline___minipass_pipeline_1.2.3.tgz"; | ||
5720 | url = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz"; | ||
5721 | sha1 = "55f7839307d74859d6e8ada9c3ebe72cec216a34"; | ||
5722 | }; | ||
5723 | } | ||
5724 | { | ||
5725 | name = "minipass___minipass_3.1.3.tgz"; | ||
5726 | path = fetchurl { | ||
5727 | name = "minipass___minipass_3.1.3.tgz"; | ||
5728 | url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz"; | ||
5729 | sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd"; | ||
5730 | }; | ||
5731 | } | ||
5732 | { | ||
5733 | name = "mississippi___mississippi_3.0.0.tgz"; | ||
5734 | path = fetchurl { | ||
5735 | name = "mississippi___mississippi_3.0.0.tgz"; | ||
5736 | url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz"; | ||
5737 | sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022"; | ||
5738 | }; | ||
5739 | } | ||
5740 | { | ||
5741 | name = "mixin_deep___mixin_deep_1.3.2.tgz"; | ||
5742 | path = fetchurl { | ||
5743 | name = "mixin_deep___mixin_deep_1.3.2.tgz"; | ||
5744 | url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz"; | ||
5745 | sha1 = "1120b43dc359a785dce65b55b82e257ccf479566"; | ||
5746 | }; | ||
5747 | } | ||
5748 | { | ||
5749 | name = "mkdirp___mkdirp_0.5.5.tgz"; | ||
5750 | path = fetchurl { | ||
5751 | name = "mkdirp___mkdirp_0.5.5.tgz"; | ||
5752 | url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz"; | ||
5753 | sha1 = "d91cefd62d1436ca0f41620e251288d420099def"; | ||
5754 | }; | ||
5755 | } | ||
5756 | { | ||
5757 | name = "move_concurrently___move_concurrently_1.0.1.tgz"; | ||
5758 | path = fetchurl { | ||
5759 | name = "move_concurrently___move_concurrently_1.0.1.tgz"; | ||
5760 | url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz"; | ||
5761 | sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92"; | ||
5762 | }; | ||
5763 | } | ||
5764 | { | ||
5765 | name = "ms___ms_2.0.0.tgz"; | ||
5766 | path = fetchurl { | ||
5767 | name = "ms___ms_2.0.0.tgz"; | ||
5768 | url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz"; | ||
5769 | sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; | ||
5770 | }; | ||
5771 | } | ||
5772 | { | ||
5773 | name = "ms___ms_2.1.1.tgz"; | ||
5774 | path = fetchurl { | ||
5775 | name = "ms___ms_2.1.1.tgz"; | ||
5776 | url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz"; | ||
5777 | sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"; | ||
5778 | }; | ||
5779 | } | ||
5780 | { | ||
5781 | name = "ms___ms_2.1.2.tgz"; | ||
5782 | path = fetchurl { | ||
5783 | name = "ms___ms_2.1.2.tgz"; | ||
5784 | url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz"; | ||
5785 | sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009"; | ||
5786 | }; | ||
5787 | } | ||
5788 | { | ||
5789 | name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz"; | ||
5790 | path = fetchurl { | ||
5791 | name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz"; | ||
5792 | url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz"; | ||
5793 | sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901"; | ||
5794 | }; | ||
5795 | } | ||
5796 | { | ||
5797 | name = "multicast_dns___multicast_dns_6.2.3.tgz"; | ||
5798 | path = fetchurl { | ||
5799 | name = "multicast_dns___multicast_dns_6.2.3.tgz"; | ||
5800 | url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz"; | ||
5801 | sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229"; | ||
5802 | }; | ||
5803 | } | ||
5804 | { | ||
5805 | name = "mute_stream___mute_stream_0.0.8.tgz"; | ||
5806 | path = fetchurl { | ||
5807 | name = "mute_stream___mute_stream_0.0.8.tgz"; | ||
5808 | url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz"; | ||
5809 | sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d"; | ||
5810 | }; | ||
5811 | } | ||
5812 | { | ||
5813 | name = "mz___mz_2.7.0.tgz"; | ||
5814 | path = fetchurl { | ||
5815 | name = "mz___mz_2.7.0.tgz"; | ||
5816 | url = "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz"; | ||
5817 | sha1 = "95008057a56cafadc2bc63dde7f9ff6955948e32"; | ||
5818 | }; | ||
5819 | } | ||
5820 | { | ||
5821 | name = "nan___nan_2.14.1.tgz"; | ||
5822 | path = fetchurl { | ||
5823 | name = "nan___nan_2.14.1.tgz"; | ||
5824 | url = "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz"; | ||
5825 | sha1 = "d7be34dfa3105b91494c3147089315eff8874b01"; | ||
5826 | }; | ||
5827 | } | ||
5828 | { | ||
5829 | name = "nanomatch___nanomatch_1.2.13.tgz"; | ||
5830 | path = fetchurl { | ||
5831 | name = "nanomatch___nanomatch_1.2.13.tgz"; | ||
5832 | url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz"; | ||
5833 | sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119"; | ||
5834 | }; | ||
5835 | } | ||
5836 | { | ||
5837 | name = "natural_compare___natural_compare_1.4.0.tgz"; | ||
5838 | path = fetchurl { | ||
5839 | name = "natural_compare___natural_compare_1.4.0.tgz"; | ||
5840 | url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz"; | ||
5841 | sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; | ||
5842 | }; | ||
5843 | } | ||
5844 | { | ||
5845 | name = "negotiator___negotiator_0.6.2.tgz"; | ||
5846 | path = fetchurl { | ||
5847 | name = "negotiator___negotiator_0.6.2.tgz"; | ||
5848 | url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz"; | ||
5849 | sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb"; | ||
5850 | }; | ||
5851 | } | ||
5852 | { | ||
5853 | name = "neo_async___neo_async_2.6.1.tgz"; | ||
5854 | path = fetchurl { | ||
5855 | name = "neo_async___neo_async_2.6.1.tgz"; | ||
5856 | url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz"; | ||
5857 | sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c"; | ||
5858 | }; | ||
5859 | } | ||
5860 | { | ||
5861 | name = "nice_try___nice_try_1.0.5.tgz"; | ||
5862 | path = fetchurl { | ||
5863 | name = "nice_try___nice_try_1.0.5.tgz"; | ||
5864 | url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz"; | ||
5865 | sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366"; | ||
5866 | }; | ||
5867 | } | ||
5868 | { | ||
5869 | name = "no_case___no_case_2.3.2.tgz"; | ||
5870 | path = fetchurl { | ||
5871 | name = "no_case___no_case_2.3.2.tgz"; | ||
5872 | url = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz"; | ||
5873 | sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac"; | ||
5874 | }; | ||
5875 | } | ||
5876 | { | ||
5877 | name = "node_forge___node_forge_0.9.0.tgz"; | ||
5878 | path = fetchurl { | ||
5879 | name = "node_forge___node_forge_0.9.0.tgz"; | ||
5880 | url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz"; | ||
5881 | sha1 = "d624050edbb44874adca12bb9a52ec63cb782579"; | ||
5882 | }; | ||
5883 | } | ||
5884 | { | ||
5885 | name = "node_ipc___node_ipc_9.1.1.tgz"; | ||
5886 | path = fetchurl { | ||
5887 | name = "node_ipc___node_ipc_9.1.1.tgz"; | ||
5888 | url = "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.1.tgz"; | ||
5889 | sha1 = "4e245ed6938e65100e595ebc5dc34b16e8dd5d69"; | ||
5890 | }; | ||
5891 | } | ||
5892 | { | ||
5893 | name = "node_libs_browser___node_libs_browser_2.2.1.tgz"; | ||
5894 | path = fetchurl { | ||
5895 | name = "node_libs_browser___node_libs_browser_2.2.1.tgz"; | ||
5896 | url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz"; | ||
5897 | sha1 = "b64f513d18338625f90346d27b0d235e631f6425"; | ||
5898 | }; | ||
5899 | } | ||
5900 | { | ||
5901 | name = "node_releases___node_releases_1.1.58.tgz"; | ||
5902 | path = fetchurl { | ||
5903 | name = "node_releases___node_releases_1.1.58.tgz"; | ||
5904 | url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz"; | ||
5905 | sha1 = "8ee20eef30fa60e52755fcc0942def5a734fe935"; | ||
5906 | }; | ||
5907 | } | ||
5908 | { | ||
5909 | name = "normalize_package_data___normalize_package_data_2.5.0.tgz"; | ||
5910 | path = fetchurl { | ||
5911 | name = "normalize_package_data___normalize_package_data_2.5.0.tgz"; | ||
5912 | url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz"; | ||
5913 | sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8"; | ||
5914 | }; | ||
5915 | } | ||
5916 | { | ||
5917 | name = "normalize_path___normalize_path_1.0.0.tgz"; | ||
5918 | path = fetchurl { | ||
5919 | name = "normalize_path___normalize_path_1.0.0.tgz"; | ||
5920 | url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz"; | ||
5921 | sha1 = "32d0e472f91ff345701c15a8311018d3b0a90379"; | ||
5922 | }; | ||
5923 | } | ||
5924 | { | ||
5925 | name = "normalize_path___normalize_path_2.1.1.tgz"; | ||
5926 | path = fetchurl { | ||
5927 | name = "normalize_path___normalize_path_2.1.1.tgz"; | ||
5928 | url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz"; | ||
5929 | sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; | ||
5930 | }; | ||
5931 | } | ||
5932 | { | ||
5933 | name = "normalize_path___normalize_path_3.0.0.tgz"; | ||
5934 | path = fetchurl { | ||
5935 | name = "normalize_path___normalize_path_3.0.0.tgz"; | ||
5936 | url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz"; | ||
5937 | sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65"; | ||
5938 | }; | ||
5939 | } | ||
5940 | { | ||
5941 | name = "normalize_range___normalize_range_0.1.2.tgz"; | ||
5942 | path = fetchurl { | ||
5943 | name = "normalize_range___normalize_range_0.1.2.tgz"; | ||
5944 | url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz"; | ||
5945 | sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942"; | ||
5946 | }; | ||
5947 | } | ||
5948 | { | ||
5949 | name = "normalize_url___normalize_url_1.9.1.tgz"; | ||
5950 | path = fetchurl { | ||
5951 | name = "normalize_url___normalize_url_1.9.1.tgz"; | ||
5952 | url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz"; | ||
5953 | sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c"; | ||
5954 | }; | ||
5955 | } | ||
5956 | { | ||
5957 | name = "normalize_url___normalize_url_3.3.0.tgz"; | ||
5958 | path = fetchurl { | ||
5959 | name = "normalize_url___normalize_url_3.3.0.tgz"; | ||
5960 | url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz"; | ||
5961 | sha1 = "b2e1c4dc4f7c6d57743df733a4f5978d18650559"; | ||
5962 | }; | ||
5963 | } | ||
5964 | { | ||
5965 | name = "npm_run_path___npm_run_path_2.0.2.tgz"; | ||
5966 | path = fetchurl { | ||
5967 | name = "npm_run_path___npm_run_path_2.0.2.tgz"; | ||
5968 | url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz"; | ||
5969 | sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f"; | ||
5970 | }; | ||
5971 | } | ||
5972 | { | ||
5973 | name = "npm_run_path___npm_run_path_4.0.1.tgz"; | ||
5974 | path = fetchurl { | ||
5975 | name = "npm_run_path___npm_run_path_4.0.1.tgz"; | ||
5976 | url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz"; | ||
5977 | sha1 = "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"; | ||
5978 | }; | ||
5979 | } | ||
5980 | { | ||
5981 | name = "nth_check___nth_check_1.0.2.tgz"; | ||
5982 | path = fetchurl { | ||
5983 | name = "nth_check___nth_check_1.0.2.tgz"; | ||
5984 | url = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz"; | ||
5985 | sha1 = "b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"; | ||
5986 | }; | ||
5987 | } | ||
5988 | { | ||
5989 | name = "num2fraction___num2fraction_1.2.2.tgz"; | ||
5990 | path = fetchurl { | ||
5991 | name = "num2fraction___num2fraction_1.2.2.tgz"; | ||
5992 | url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz"; | ||
5993 | sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"; | ||
5994 | }; | ||
5995 | } | ||
5996 | { | ||
5997 | name = "oauth_sign___oauth_sign_0.9.0.tgz"; | ||
5998 | path = fetchurl { | ||
5999 | name = "oauth_sign___oauth_sign_0.9.0.tgz"; | ||
6000 | url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz"; | ||
6001 | sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455"; | ||
6002 | }; | ||
6003 | } | ||
6004 | { | ||
6005 | name = "object_assign___object_assign_4.1.1.tgz"; | ||
6006 | path = fetchurl { | ||
6007 | name = "object_assign___object_assign_4.1.1.tgz"; | ||
6008 | url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz"; | ||
6009 | sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; | ||
6010 | }; | ||
6011 | } | ||
6012 | { | ||
6013 | name = "object_copy___object_copy_0.1.0.tgz"; | ||
6014 | path = fetchurl { | ||
6015 | name = "object_copy___object_copy_0.1.0.tgz"; | ||
6016 | url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz"; | ||
6017 | sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; | ||
6018 | }; | ||
6019 | } | ||
6020 | { | ||
6021 | name = "object_hash___object_hash_1.3.1.tgz"; | ||
6022 | path = fetchurl { | ||
6023 | name = "object_hash___object_hash_1.3.1.tgz"; | ||
6024 | url = "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz"; | ||
6025 | sha1 = "fde452098a951cb145f039bb7d455449ddc126df"; | ||
6026 | }; | ||
6027 | } | ||
6028 | { | ||
6029 | name = "object_inspect___object_inspect_1.7.0.tgz"; | ||
6030 | path = fetchurl { | ||
6031 | name = "object_inspect___object_inspect_1.7.0.tgz"; | ||
6032 | url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz"; | ||
6033 | sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"; | ||
6034 | }; | ||
6035 | } | ||
6036 | { | ||
6037 | name = "object_is___object_is_1.1.2.tgz"; | ||
6038 | path = fetchurl { | ||
6039 | name = "object_is___object_is_1.1.2.tgz"; | ||
6040 | url = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz"; | ||
6041 | sha1 = "c5d2e87ff9e119f78b7a088441519e2eec1573b6"; | ||
6042 | }; | ||
6043 | } | ||
6044 | { | ||
6045 | name = "object_keys___object_keys_1.1.1.tgz"; | ||
6046 | path = fetchurl { | ||
6047 | name = "object_keys___object_keys_1.1.1.tgz"; | ||
6048 | url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz"; | ||
6049 | sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e"; | ||
6050 | }; | ||
6051 | } | ||
6052 | { | ||
6053 | name = "object_visit___object_visit_1.0.1.tgz"; | ||
6054 | path = fetchurl { | ||
6055 | name = "object_visit___object_visit_1.0.1.tgz"; | ||
6056 | url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz"; | ||
6057 | sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; | ||
6058 | }; | ||
6059 | } | ||
6060 | { | ||
6061 | name = "object.assign___object.assign_4.1.0.tgz"; | ||
6062 | path = fetchurl { | ||
6063 | name = "object.assign___object.assign_4.1.0.tgz"; | ||
6064 | url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz"; | ||
6065 | sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da"; | ||
6066 | }; | ||
6067 | } | ||
6068 | { | ||
6069 | name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.0.tgz"; | ||
6070 | path = fetchurl { | ||
6071 | name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.0.tgz"; | ||
6072 | url = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz"; | ||
6073 | sha1 = "369bf1f9592d8ab89d712dced5cb81c7c5352649"; | ||
6074 | }; | ||
6075 | } | ||
6076 | { | ||
6077 | name = "object.pick___object.pick_1.3.0.tgz"; | ||
6078 | path = fetchurl { | ||
6079 | name = "object.pick___object.pick_1.3.0.tgz"; | ||
6080 | url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz"; | ||
6081 | sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; | ||
6082 | }; | ||
6083 | } | ||
6084 | { | ||
6085 | name = "object.values___object.values_1.1.1.tgz"; | ||
6086 | path = fetchurl { | ||
6087 | name = "object.values___object.values_1.1.1.tgz"; | ||
6088 | url = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz"; | ||
6089 | sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"; | ||
6090 | }; | ||
6091 | } | ||
6092 | { | ||
6093 | name = "obuf___obuf_1.1.2.tgz"; | ||
6094 | path = fetchurl { | ||
6095 | name = "obuf___obuf_1.1.2.tgz"; | ||
6096 | url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz"; | ||
6097 | sha1 = "09bea3343d41859ebd446292d11c9d4db619084e"; | ||
6098 | }; | ||
6099 | } | ||
6100 | { | ||
6101 | name = "on_finished___on_finished_2.3.0.tgz"; | ||
6102 | path = fetchurl { | ||
6103 | name = "on_finished___on_finished_2.3.0.tgz"; | ||
6104 | url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz"; | ||
6105 | sha1 = "20f1336481b083cd75337992a16971aa2d906947"; | ||
6106 | }; | ||
6107 | } | ||
6108 | { | ||
6109 | name = "on_headers___on_headers_1.0.2.tgz"; | ||
6110 | path = fetchurl { | ||
6111 | name = "on_headers___on_headers_1.0.2.tgz"; | ||
6112 | url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz"; | ||
6113 | sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f"; | ||
6114 | }; | ||
6115 | } | ||
6116 | { | ||
6117 | name = "once___once_1.4.0.tgz"; | ||
6118 | path = fetchurl { | ||
6119 | name = "once___once_1.4.0.tgz"; | ||
6120 | url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; | ||
6121 | sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; | ||
6122 | }; | ||
6123 | } | ||
6124 | { | ||
6125 | name = "onetime___onetime_2.0.1.tgz"; | ||
6126 | path = fetchurl { | ||
6127 | name = "onetime___onetime_2.0.1.tgz"; | ||
6128 | url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz"; | ||
6129 | sha1 = "067428230fd67443b2794b22bba528b6867962d4"; | ||
6130 | }; | ||
6131 | } | ||
6132 | { | ||
6133 | name = "onetime___onetime_5.1.0.tgz"; | ||
6134 | path = fetchurl { | ||
6135 | name = "onetime___onetime_5.1.0.tgz"; | ||
6136 | url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz"; | ||
6137 | sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5"; | ||
6138 | }; | ||
6139 | } | ||
6140 | { | ||
6141 | name = "open___open_6.4.0.tgz"; | ||
6142 | path = fetchurl { | ||
6143 | name = "open___open_6.4.0.tgz"; | ||
6144 | url = "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz"; | ||
6145 | sha1 = "5c13e96d0dc894686164f18965ecfe889ecfc8a9"; | ||
6146 | }; | ||
6147 | } | ||
6148 | { | ||
6149 | name = "opener___opener_1.5.1.tgz"; | ||
6150 | path = fetchurl { | ||
6151 | name = "opener___opener_1.5.1.tgz"; | ||
6152 | url = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz"; | ||
6153 | sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"; | ||
6154 | }; | ||
6155 | } | ||
6156 | { | ||
6157 | name = "opn___opn_5.5.0.tgz"; | ||
6158 | path = fetchurl { | ||
6159 | name = "opn___opn_5.5.0.tgz"; | ||
6160 | url = "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz"; | ||
6161 | sha1 = "fc7164fab56d235904c51c3b27da6758ca3b9bfc"; | ||
6162 | }; | ||
6163 | } | ||
6164 | { | ||
6165 | name = "optionator___optionator_0.9.1.tgz"; | ||
6166 | path = fetchurl { | ||
6167 | name = "optionator___optionator_0.9.1.tgz"; | ||
6168 | url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz"; | ||
6169 | sha1 = "4f236a6373dae0566a6d43e1326674f50c291499"; | ||
6170 | }; | ||
6171 | } | ||
6172 | { | ||
6173 | name = "ora___ora_3.4.0.tgz"; | ||
6174 | path = fetchurl { | ||
6175 | name = "ora___ora_3.4.0.tgz"; | ||
6176 | url = "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz"; | ||
6177 | sha1 = "bf0752491059a3ef3ed4c85097531de9fdbcd318"; | ||
6178 | }; | ||
6179 | } | ||
6180 | { | ||
6181 | name = "original___original_1.0.2.tgz"; | ||
6182 | path = fetchurl { | ||
6183 | name = "original___original_1.0.2.tgz"; | ||
6184 | url = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz"; | ||
6185 | sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f"; | ||
6186 | }; | ||
6187 | } | ||
6188 | { | ||
6189 | name = "os_browserify___os_browserify_0.3.0.tgz"; | ||
6190 | path = fetchurl { | ||
6191 | name = "os_browserify___os_browserify_0.3.0.tgz"; | ||
6192 | url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz"; | ||
6193 | sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; | ||
6194 | }; | ||
6195 | } | ||
6196 | { | ||
6197 | name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; | ||
6198 | path = fetchurl { | ||
6199 | name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; | ||
6200 | url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; | ||
6201 | sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; | ||
6202 | }; | ||
6203 | } | ||
6204 | { | ||
6205 | name = "p_finally___p_finally_1.0.0.tgz"; | ||
6206 | path = fetchurl { | ||
6207 | name = "p_finally___p_finally_1.0.0.tgz"; | ||
6208 | url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz"; | ||
6209 | sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae"; | ||
6210 | }; | ||
6211 | } | ||
6212 | { | ||
6213 | name = "p_finally___p_finally_2.0.1.tgz"; | ||
6214 | path = fetchurl { | ||
6215 | name = "p_finally___p_finally_2.0.1.tgz"; | ||
6216 | url = "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz"; | ||
6217 | sha1 = "bd6fcaa9c559a096b680806f4d657b3f0f240561"; | ||
6218 | }; | ||
6219 | } | ||
6220 | { | ||
6221 | name = "p_limit___p_limit_1.3.0.tgz"; | ||
6222 | path = fetchurl { | ||
6223 | name = "p_limit___p_limit_1.3.0.tgz"; | ||
6224 | url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz"; | ||
6225 | sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"; | ||
6226 | }; | ||
6227 | } | ||
6228 | { | ||
6229 | name = "p_limit___p_limit_2.3.0.tgz"; | ||
6230 | path = fetchurl { | ||
6231 | name = "p_limit___p_limit_2.3.0.tgz"; | ||
6232 | url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz"; | ||
6233 | sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1"; | ||
6234 | }; | ||
6235 | } | ||
6236 | { | ||
6237 | name = "p_locate___p_locate_2.0.0.tgz"; | ||
6238 | path = fetchurl { | ||
6239 | name = "p_locate___p_locate_2.0.0.tgz"; | ||
6240 | url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz"; | ||
6241 | sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; | ||
6242 | }; | ||
6243 | } | ||
6244 | { | ||
6245 | name = "p_locate___p_locate_3.0.0.tgz"; | ||
6246 | path = fetchurl { | ||
6247 | name = "p_locate___p_locate_3.0.0.tgz"; | ||
6248 | url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz"; | ||
6249 | sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4"; | ||
6250 | }; | ||
6251 | } | ||
6252 | { | ||
6253 | name = "p_locate___p_locate_4.1.0.tgz"; | ||
6254 | path = fetchurl { | ||
6255 | name = "p_locate___p_locate_4.1.0.tgz"; | ||
6256 | url = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz"; | ||
6257 | sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07"; | ||
6258 | }; | ||
6259 | } | ||
6260 | { | ||
6261 | name = "p_map___p_map_2.1.0.tgz"; | ||
6262 | path = fetchurl { | ||
6263 | name = "p_map___p_map_2.1.0.tgz"; | ||
6264 | url = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz"; | ||
6265 | sha1 = "310928feef9c9ecc65b68b17693018a665cea175"; | ||
6266 | }; | ||
6267 | } | ||
6268 | { | ||
6269 | name = "p_map___p_map_3.0.0.tgz"; | ||
6270 | path = fetchurl { | ||
6271 | name = "p_map___p_map_3.0.0.tgz"; | ||
6272 | url = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz"; | ||
6273 | sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d"; | ||
6274 | }; | ||
6275 | } | ||
6276 | { | ||
6277 | name = "p_retry___p_retry_3.0.1.tgz"; | ||
6278 | path = fetchurl { | ||
6279 | name = "p_retry___p_retry_3.0.1.tgz"; | ||
6280 | url = "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz"; | ||
6281 | sha1 = "316b4c8893e2c8dc1cfa891f406c4b422bebf328"; | ||
6282 | }; | ||
6283 | } | ||
6284 | { | ||
6285 | name = "p_try___p_try_1.0.0.tgz"; | ||
6286 | path = fetchurl { | ||
6287 | name = "p_try___p_try_1.0.0.tgz"; | ||
6288 | url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz"; | ||
6289 | sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; | ||
6290 | }; | ||
6291 | } | ||
6292 | { | ||
6293 | name = "p_try___p_try_2.2.0.tgz"; | ||
6294 | path = fetchurl { | ||
6295 | name = "p_try___p_try_2.2.0.tgz"; | ||
6296 | url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz"; | ||
6297 | sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6"; | ||
6298 | }; | ||
6299 | } | ||
6300 | { | ||
6301 | name = "pako___pako_1.0.11.tgz"; | ||
6302 | path = fetchurl { | ||
6303 | name = "pako___pako_1.0.11.tgz"; | ||
6304 | url = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz"; | ||
6305 | sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf"; | ||
6306 | }; | ||
6307 | } | ||
6308 | { | ||
6309 | name = "parallel_transform___parallel_transform_1.2.0.tgz"; | ||
6310 | path = fetchurl { | ||
6311 | name = "parallel_transform___parallel_transform_1.2.0.tgz"; | ||
6312 | url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz"; | ||
6313 | sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc"; | ||
6314 | }; | ||
6315 | } | ||
6316 | { | ||
6317 | name = "param_case___param_case_2.1.1.tgz"; | ||
6318 | path = fetchurl { | ||
6319 | name = "param_case___param_case_2.1.1.tgz"; | ||
6320 | url = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz"; | ||
6321 | sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247"; | ||
6322 | }; | ||
6323 | } | ||
6324 | { | ||
6325 | name = "parent_module___parent_module_1.0.1.tgz"; | ||
6326 | path = fetchurl { | ||
6327 | name = "parent_module___parent_module_1.0.1.tgz"; | ||
6328 | url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz"; | ||
6329 | sha1 = "691d2709e78c79fae3a156622452d00762caaaa2"; | ||
6330 | }; | ||
6331 | } | ||
6332 | { | ||
6333 | name = "parse_asn1___parse_asn1_5.1.5.tgz"; | ||
6334 | path = fetchurl { | ||
6335 | name = "parse_asn1___parse_asn1_5.1.5.tgz"; | ||
6336 | url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz"; | ||
6337 | sha1 = "003271343da58dc94cace494faef3d2147ecea0e"; | ||
6338 | }; | ||
6339 | } | ||
6340 | { | ||
6341 | name = "parse_json___parse_json_4.0.0.tgz"; | ||
6342 | path = fetchurl { | ||
6343 | name = "parse_json___parse_json_4.0.0.tgz"; | ||
6344 | url = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz"; | ||
6345 | sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0"; | ||
6346 | }; | ||
6347 | } | ||
6348 | { | ||
6349 | name = "parse_json___parse_json_5.0.0.tgz"; | ||
6350 | path = fetchurl { | ||
6351 | name = "parse_json___parse_json_5.0.0.tgz"; | ||
6352 | url = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz"; | ||
6353 | sha1 = "73e5114c986d143efa3712d4ea24db9a4266f60f"; | ||
6354 | }; | ||
6355 | } | ||
6356 | { | ||
6357 | name = "parse5_htmlparser2_tree_adapter___parse5_htmlparser2_tree_adapter_5.1.1.tgz"; | ||
6358 | path = fetchurl { | ||
6359 | name = "parse5_htmlparser2_tree_adapter___parse5_htmlparser2_tree_adapter_5.1.1.tgz"; | ||
6360 | url = "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz"; | ||
6361 | sha1 = "e8c743d4e92194d5293ecde2b08be31e67461cbc"; | ||
6362 | }; | ||
6363 | } | ||
6364 | { | ||
6365 | name = "parse5___parse5_5.1.1.tgz"; | ||
6366 | path = fetchurl { | ||
6367 | name = "parse5___parse5_5.1.1.tgz"; | ||
6368 | url = "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz"; | ||
6369 | sha1 = "f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"; | ||
6370 | }; | ||
6371 | } | ||
6372 | { | ||
6373 | name = "parseurl___parseurl_1.3.3.tgz"; | ||
6374 | path = fetchurl { | ||
6375 | name = "parseurl___parseurl_1.3.3.tgz"; | ||
6376 | url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz"; | ||
6377 | sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4"; | ||
6378 | }; | ||
6379 | } | ||
6380 | { | ||
6381 | name = "pascalcase___pascalcase_0.1.1.tgz"; | ||
6382 | path = fetchurl { | ||
6383 | name = "pascalcase___pascalcase_0.1.1.tgz"; | ||
6384 | url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz"; | ||
6385 | sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; | ||
6386 | }; | ||
6387 | } | ||
6388 | { | ||
6389 | name = "path_browserify___path_browserify_0.0.1.tgz"; | ||
6390 | path = fetchurl { | ||
6391 | name = "path_browserify___path_browserify_0.0.1.tgz"; | ||
6392 | url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz"; | ||
6393 | sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"; | ||
6394 | }; | ||
6395 | } | ||
6396 | { | ||
6397 | name = "path_dirname___path_dirname_1.0.2.tgz"; | ||
6398 | path = fetchurl { | ||
6399 | name = "path_dirname___path_dirname_1.0.2.tgz"; | ||
6400 | url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz"; | ||
6401 | sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; | ||
6402 | }; | ||
6403 | } | ||
6404 | { | ||
6405 | name = "path_exists___path_exists_2.1.0.tgz"; | ||
6406 | path = fetchurl { | ||
6407 | name = "path_exists___path_exists_2.1.0.tgz"; | ||
6408 | url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz"; | ||
6409 | sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b"; | ||
6410 | }; | ||
6411 | } | ||
6412 | { | ||
6413 | name = "path_exists___path_exists_3.0.0.tgz"; | ||
6414 | path = fetchurl { | ||
6415 | name = "path_exists___path_exists_3.0.0.tgz"; | ||
6416 | url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz"; | ||
6417 | sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; | ||
6418 | }; | ||
6419 | } | ||
6420 | { | ||
6421 | name = "path_exists___path_exists_4.0.0.tgz"; | ||
6422 | path = fetchurl { | ||
6423 | name = "path_exists___path_exists_4.0.0.tgz"; | ||
6424 | url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz"; | ||
6425 | sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"; | ||
6426 | }; | ||
6427 | } | ||
6428 | { | ||
6429 | name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; | ||
6430 | path = fetchurl { | ||
6431 | name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; | ||
6432 | url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; | ||
6433 | sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; | ||
6434 | }; | ||
6435 | } | ||
6436 | { | ||
6437 | name = "path_is_inside___path_is_inside_1.0.2.tgz"; | ||
6438 | path = fetchurl { | ||
6439 | name = "path_is_inside___path_is_inside_1.0.2.tgz"; | ||
6440 | url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz"; | ||
6441 | sha1 = "365417dede44430d1c11af61027facf074bdfc53"; | ||
6442 | }; | ||
6443 | } | ||
6444 | { | ||
6445 | name = "path_key___path_key_2.0.1.tgz"; | ||
6446 | path = fetchurl { | ||
6447 | name = "path_key___path_key_2.0.1.tgz"; | ||
6448 | url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz"; | ||
6449 | sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; | ||
6450 | }; | ||
6451 | } | ||
6452 | { | ||
6453 | name = "path_key___path_key_3.1.1.tgz"; | ||
6454 | path = fetchurl { | ||
6455 | name = "path_key___path_key_3.1.1.tgz"; | ||
6456 | url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz"; | ||
6457 | sha1 = "581f6ade658cbba65a0d3380de7753295054f375"; | ||
6458 | }; | ||
6459 | } | ||
6460 | { | ||
6461 | name = "path_parse___path_parse_1.0.6.tgz"; | ||
6462 | path = fetchurl { | ||
6463 | name = "path_parse___path_parse_1.0.6.tgz"; | ||
6464 | url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz"; | ||
6465 | sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c"; | ||
6466 | }; | ||
6467 | } | ||
6468 | { | ||
6469 | name = "path_to_regexp___path_to_regexp_0.1.7.tgz"; | ||
6470 | path = fetchurl { | ||
6471 | name = "path_to_regexp___path_to_regexp_0.1.7.tgz"; | ||
6472 | url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; | ||
6473 | sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; | ||
6474 | }; | ||
6475 | } | ||
6476 | { | ||
6477 | name = "path_type___path_type_3.0.0.tgz"; | ||
6478 | path = fetchurl { | ||
6479 | name = "path_type___path_type_3.0.0.tgz"; | ||
6480 | url = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz"; | ||
6481 | sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"; | ||
6482 | }; | ||
6483 | } | ||
6484 | { | ||
6485 | name = "pbkdf2___pbkdf2_3.1.1.tgz"; | ||
6486 | path = fetchurl { | ||
6487 | name = "pbkdf2___pbkdf2_3.1.1.tgz"; | ||
6488 | url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz"; | ||
6489 | sha1 = "cb8724b0fada984596856d1a6ebafd3584654b94"; | ||
6490 | }; | ||
6491 | } | ||
6492 | { | ||
6493 | name = "performance_now___performance_now_2.1.0.tgz"; | ||
6494 | path = fetchurl { | ||
6495 | name = "performance_now___performance_now_2.1.0.tgz"; | ||
6496 | url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz"; | ||
6497 | sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; | ||
6498 | }; | ||
6499 | } | ||
6500 | { | ||
6501 | name = "picomatch___picomatch_2.2.2.tgz"; | ||
6502 | path = fetchurl { | ||
6503 | name = "picomatch___picomatch_2.2.2.tgz"; | ||
6504 | url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz"; | ||
6505 | sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad"; | ||
6506 | }; | ||
6507 | } | ||
6508 | { | ||
6509 | name = "pify___pify_2.3.0.tgz"; | ||
6510 | path = fetchurl { | ||
6511 | name = "pify___pify_2.3.0.tgz"; | ||
6512 | url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz"; | ||
6513 | sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; | ||
6514 | }; | ||
6515 | } | ||
6516 | { | ||
6517 | name = "pify___pify_3.0.0.tgz"; | ||
6518 | path = fetchurl { | ||
6519 | name = "pify___pify_3.0.0.tgz"; | ||
6520 | url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz"; | ||
6521 | sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; | ||
6522 | }; | ||
6523 | } | ||
6524 | { | ||
6525 | name = "pify___pify_4.0.1.tgz"; | ||
6526 | path = fetchurl { | ||
6527 | name = "pify___pify_4.0.1.tgz"; | ||
6528 | url = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz"; | ||
6529 | sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231"; | ||
6530 | }; | ||
6531 | } | ||
6532 | { | ||
6533 | name = "pinkie_promise___pinkie_promise_2.0.1.tgz"; | ||
6534 | path = fetchurl { | ||
6535 | name = "pinkie_promise___pinkie_promise_2.0.1.tgz"; | ||
6536 | url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; | ||
6537 | sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; | ||
6538 | }; | ||
6539 | } | ||
6540 | { | ||
6541 | name = "pinkie___pinkie_2.0.4.tgz"; | ||
6542 | path = fetchurl { | ||
6543 | name = "pinkie___pinkie_2.0.4.tgz"; | ||
6544 | url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz"; | ||
6545 | sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; | ||
6546 | }; | ||
6547 | } | ||
6548 | { | ||
6549 | name = "pkg_dir___pkg_dir_1.0.0.tgz"; | ||
6550 | path = fetchurl { | ||
6551 | name = "pkg_dir___pkg_dir_1.0.0.tgz"; | ||
6552 | url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz"; | ||
6553 | sha1 = "7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"; | ||
6554 | }; | ||
6555 | } | ||
6556 | { | ||
6557 | name = "pkg_dir___pkg_dir_3.0.0.tgz"; | ||
6558 | path = fetchurl { | ||
6559 | name = "pkg_dir___pkg_dir_3.0.0.tgz"; | ||
6560 | url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz"; | ||
6561 | sha1 = "2749020f239ed990881b1f71210d51eb6523bea3"; | ||
6562 | }; | ||
6563 | } | ||
6564 | { | ||
6565 | name = "pkg_dir___pkg_dir_4.2.0.tgz"; | ||
6566 | path = fetchurl { | ||
6567 | name = "pkg_dir___pkg_dir_4.2.0.tgz"; | ||
6568 | url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz"; | ||
6569 | sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3"; | ||
6570 | }; | ||
6571 | } | ||
6572 | { | ||
6573 | name = "pkg_up___pkg_up_2.0.0.tgz"; | ||
6574 | path = fetchurl { | ||
6575 | name = "pkg_up___pkg_up_2.0.0.tgz"; | ||
6576 | url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz"; | ||
6577 | sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f"; | ||
6578 | }; | ||
6579 | } | ||
6580 | { | ||
6581 | name = "pnp_webpack_plugin___pnp_webpack_plugin_1.6.4.tgz"; | ||
6582 | path = fetchurl { | ||
6583 | name = "pnp_webpack_plugin___pnp_webpack_plugin_1.6.4.tgz"; | ||
6584 | url = "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz"; | ||
6585 | sha1 = "c9711ac4dc48a685dabafc86f8b6dd9f8df84149"; | ||
6586 | }; | ||
6587 | } | ||
6588 | { | ||
6589 | name = "portfinder___portfinder_1.0.26.tgz"; | ||
6590 | path = fetchurl { | ||
6591 | name = "portfinder___portfinder_1.0.26.tgz"; | ||
6592 | url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz"; | ||
6593 | sha1 = "475658d56ca30bed72ac7f1378ed350bd1b64e70"; | ||
6594 | }; | ||
6595 | } | ||
6596 | { | ||
6597 | name = "posix_character_classes___posix_character_classes_0.1.1.tgz"; | ||
6598 | path = fetchurl { | ||
6599 | name = "posix_character_classes___posix_character_classes_0.1.1.tgz"; | ||
6600 | url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz"; | ||
6601 | sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"; | ||
6602 | }; | ||
6603 | } | ||
6604 | { | ||
6605 | name = "postcss_calc___postcss_calc_7.0.2.tgz"; | ||
6606 | path = fetchurl { | ||
6607 | name = "postcss_calc___postcss_calc_7.0.2.tgz"; | ||
6608 | url = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz"; | ||
6609 | sha1 = "504efcd008ca0273120568b0792b16cdcde8aac1"; | ||
6610 | }; | ||
6611 | } | ||
6612 | { | ||
6613 | name = "postcss_colormin___postcss_colormin_4.0.3.tgz"; | ||
6614 | path = fetchurl { | ||
6615 | name = "postcss_colormin___postcss_colormin_4.0.3.tgz"; | ||
6616 | url = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz"; | ||
6617 | sha1 = "ae060bce93ed794ac71264f08132d550956bd381"; | ||
6618 | }; | ||
6619 | } | ||
6620 | { | ||
6621 | name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz"; | ||
6622 | path = fetchurl { | ||
6623 | name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz"; | ||
6624 | url = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz"; | ||
6625 | sha1 = "ca3813ed4da0f812f9d43703584e449ebe189a7f"; | ||
6626 | }; | ||
6627 | } | ||
6628 | { | ||
6629 | name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz"; | ||
6630 | path = fetchurl { | ||
6631 | name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz"; | ||
6632 | url = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz"; | ||
6633 | sha1 = "1fbabd2c246bff6aaad7997b2b0918f4d7af4033"; | ||
6634 | }; | ||
6635 | } | ||
6636 | { | ||
6637 | name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz"; | ||
6638 | path = fetchurl { | ||
6639 | name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz"; | ||
6640 | url = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz"; | ||
6641 | sha1 = "3fe133cd3c82282e550fc9b239176a9207b784eb"; | ||
6642 | }; | ||
6643 | } | ||
6644 | { | ||
6645 | name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz"; | ||
6646 | path = fetchurl { | ||
6647 | name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz"; | ||
6648 | url = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz"; | ||
6649 | sha1 = "c8c951e9f73ed9428019458444a02ad90bb9f765"; | ||
6650 | }; | ||
6651 | } | ||
6652 | { | ||
6653 | name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz"; | ||
6654 | path = fetchurl { | ||
6655 | name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz"; | ||
6656 | url = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz"; | ||
6657 | sha1 = "652aef8a96726f029f5e3e00146ee7a4e755ff57"; | ||
6658 | }; | ||
6659 | } | ||
6660 | { | ||
6661 | name = "postcss_load_config___postcss_load_config_2.1.0.tgz"; | ||
6662 | path = fetchurl { | ||
6663 | name = "postcss_load_config___postcss_load_config_2.1.0.tgz"; | ||
6664 | url = "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz"; | ||
6665 | sha1 = "c84d692b7bb7b41ddced94ee62e8ab31b417b003"; | ||
6666 | }; | ||
6667 | } | ||
6668 | { | ||
6669 | name = "postcss_loader___postcss_loader_3.0.0.tgz"; | ||
6670 | path = fetchurl { | ||
6671 | name = "postcss_loader___postcss_loader_3.0.0.tgz"; | ||
6672 | url = "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz"; | ||
6673 | sha1 = "6b97943e47c72d845fa9e03f273773d4e8dd6c2d"; | ||
6674 | }; | ||
6675 | } | ||
6676 | { | ||
6677 | name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz"; | ||
6678 | path = fetchurl { | ||
6679 | name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz"; | ||
6680 | url = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz"; | ||
6681 | sha1 = "62f49a13e4a0ee04e7b98f42bb16062ca2549e24"; | ||
6682 | }; | ||
6683 | } | ||
6684 | { | ||
6685 | name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz"; | ||
6686 | path = fetchurl { | ||
6687 | name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz"; | ||
6688 | url = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz"; | ||
6689 | sha1 = "362bea4ff5a1f98e4075a713c6cb25aefef9a650"; | ||
6690 | }; | ||
6691 | } | ||
6692 | { | ||
6693 | name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz"; | ||
6694 | path = fetchurl { | ||
6695 | name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz"; | ||
6696 | url = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz"; | ||
6697 | sha1 = "cd4c344cce474343fac5d82206ab2cbcb8afd5a6"; | ||
6698 | }; | ||
6699 | } | ||
6700 | { | ||
6701 | name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz"; | ||
6702 | path = fetchurl { | ||
6703 | name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz"; | ||
6704 | url = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz"; | ||
6705 | sha1 = "93b29c2ff5099c535eecda56c4aa6e665a663471"; | ||
6706 | }; | ||
6707 | } | ||
6708 | { | ||
6709 | name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz"; | ||
6710 | path = fetchurl { | ||
6711 | name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz"; | ||
6712 | url = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz"; | ||
6713 | sha1 = "6b9cef030c11e35261f95f618c90036d680db874"; | ||
6714 | }; | ||
6715 | } | ||
6716 | { | ||
6717 | name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz"; | ||
6718 | path = fetchurl { | ||
6719 | name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz"; | ||
6720 | url = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz"; | ||
6721 | sha1 = "e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"; | ||
6722 | }; | ||
6723 | } | ||
6724 | { | ||
6725 | name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz"; | ||
6726 | path = fetchurl { | ||
6727 | name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz"; | ||
6728 | url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz"; | ||
6729 | sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e"; | ||
6730 | }; | ||
6731 | } | ||
6732 | { | ||
6733 | name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz"; | ||
6734 | path = fetchurl { | ||
6735 | name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz"; | ||
6736 | url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz"; | ||
6737 | sha1 = "e8a6561be914aaf3c052876377524ca90dbb7915"; | ||
6738 | }; | ||
6739 | } | ||
6740 | { | ||
6741 | name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz"; | ||
6742 | path = fetchurl { | ||
6743 | name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz"; | ||
6744 | url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz"; | ||
6745 | sha1 = "385cae013cc7743f5a7d7602d1073a89eaae62ee"; | ||
6746 | }; | ||
6747 | } | ||
6748 | { | ||
6749 | name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz"; | ||
6750 | path = fetchurl { | ||
6751 | name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz"; | ||
6752 | url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz"; | ||
6753 | sha1 = "5b5000d6ebae29b4255301b4a3a54574423e7f10"; | ||
6754 | }; | ||
6755 | } | ||
6756 | { | ||
6757 | name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz"; | ||
6758 | path = fetchurl { | ||
6759 | name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz"; | ||
6760 | url = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz"; | ||
6761 | sha1 = "8b35add3aee83a136b0471e0d59be58a50285dd4"; | ||
6762 | }; | ||
6763 | } | ||
6764 | { | ||
6765 | name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz"; | ||
6766 | path = fetchurl { | ||
6767 | name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz"; | ||
6768 | url = "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz"; | ||
6769 | sha1 = "0dbe04a4ce9063d4667ed2be476bb830c825935a"; | ||
6770 | }; | ||
6771 | } | ||
6772 | { | ||
6773 | name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz"; | ||
6774 | path = fetchurl { | ||
6775 | name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz"; | ||
6776 | url = "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz"; | ||
6777 | sha1 = "05f757f84f260437378368a91f8932d4b102917f"; | ||
6778 | }; | ||
6779 | } | ||
6780 | { | ||
6781 | name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz"; | ||
6782 | path = fetchurl { | ||
6783 | name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz"; | ||
6784 | url = "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz"; | ||
6785 | sha1 = "c4ebbc289f3991a028d44751cbdd11918b17910c"; | ||
6786 | }; | ||
6787 | } | ||
6788 | { | ||
6789 | name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz"; | ||
6790 | path = fetchurl { | ||
6791 | name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz"; | ||
6792 | url = "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz"; | ||
6793 | sha1 = "cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"; | ||
6794 | }; | ||
6795 | } | ||
6796 | { | ||
6797 | name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz"; | ||
6798 | path = fetchurl { | ||
6799 | name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz"; | ||
6800 | url = "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz"; | ||
6801 | sha1 = "8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"; | ||
6802 | }; | ||
6803 | } | ||
6804 | { | ||
6805 | name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz"; | ||
6806 | path = fetchurl { | ||
6807 | name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz"; | ||
6808 | url = "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz"; | ||
6809 | sha1 = "841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"; | ||
6810 | }; | ||
6811 | } | ||
6812 | { | ||
6813 | name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz"; | ||
6814 | path = fetchurl { | ||
6815 | name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz"; | ||
6816 | url = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz"; | ||
6817 | sha1 = "10e437f86bc7c7e58f7b9652ed878daaa95faae1"; | ||
6818 | }; | ||
6819 | } | ||
6820 | { | ||
6821 | name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz"; | ||
6822 | path = fetchurl { | ||
6823 | name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz"; | ||
6824 | url = "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz"; | ||
6825 | sha1 = "bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"; | ||
6826 | }; | ||
6827 | } | ||
6828 | { | ||
6829 | name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz"; | ||
6830 | path = fetchurl { | ||
6831 | name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz"; | ||
6832 | url = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz"; | ||
6833 | sha1 = "0cf75c820ec7d5c4d280189559e0b571ebac0eee"; | ||
6834 | }; | ||
6835 | } | ||
6836 | { | ||
6837 | name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz"; | ||
6838 | path = fetchurl { | ||
6839 | name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz"; | ||
6840 | url = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz"; | ||
6841 | sha1 = "7fd42ebea5e9c814609639e2c2e84ae270ba48df"; | ||
6842 | }; | ||
6843 | } | ||
6844 | { | ||
6845 | name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz"; | ||
6846 | path = fetchurl { | ||
6847 | name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz"; | ||
6848 | url = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz"; | ||
6849 | sha1 = "17efa405eacc6e07be3414a5ca2d1074681d4e29"; | ||
6850 | }; | ||
6851 | } | ||
6852 | { | ||
6853 | name = "postcss_selector_parser___postcss_selector_parser_3.1.2.tgz"; | ||
6854 | path = fetchurl { | ||
6855 | name = "postcss_selector_parser___postcss_selector_parser_3.1.2.tgz"; | ||
6856 | url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz"; | ||
6857 | sha1 = "b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"; | ||
6858 | }; | ||
6859 | } | ||
6860 | { | ||
6861 | name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz"; | ||
6862 | path = fetchurl { | ||
6863 | name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz"; | ||
6864 | url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz"; | ||
6865 | sha1 = "934cf799d016c83411859e09dcecade01286ec5c"; | ||
6866 | }; | ||
6867 | } | ||
6868 | { | ||
6869 | name = "postcss_svgo___postcss_svgo_4.0.2.tgz"; | ||
6870 | path = fetchurl { | ||
6871 | name = "postcss_svgo___postcss_svgo_4.0.2.tgz"; | ||
6872 | url = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz"; | ||
6873 | sha1 = "17b997bc711b333bab143aaed3b8d3d6e3d38258"; | ||
6874 | }; | ||
6875 | } | ||
6876 | { | ||
6877 | name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz"; | ||
6878 | path = fetchurl { | ||
6879 | name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz"; | ||
6880 | url = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz"; | ||
6881 | sha1 = "9446911f3289bfd64c6d680f073c03b1f9ee4bac"; | ||
6882 | }; | ||
6883 | } | ||
6884 | { | ||
6885 | name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz"; | ||
6886 | path = fetchurl { | ||
6887 | name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz"; | ||
6888 | url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz"; | ||
6889 | sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281"; | ||
6890 | }; | ||
6891 | } | ||
6892 | { | ||
6893 | name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz"; | ||
6894 | path = fetchurl { | ||
6895 | name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz"; | ||
6896 | url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz"; | ||
6897 | sha1 = "443f6a20ced6481a2bda4fa8532a6e55d789a2cb"; | ||
6898 | }; | ||
6899 | } | ||
6900 | { | ||
6901 | name = "postcss___postcss_7.0.32.tgz"; | ||
6902 | path = fetchurl { | ||
6903 | name = "postcss___postcss_7.0.32.tgz"; | ||
6904 | url = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz"; | ||
6905 | sha1 = "4310d6ee347053da3433db2be492883d62cec59d"; | ||
6906 | }; | ||
6907 | } | ||
6908 | { | ||
6909 | name = "prelude_ls___prelude_ls_1.2.1.tgz"; | ||
6910 | path = fetchurl { | ||
6911 | name = "prelude_ls___prelude_ls_1.2.1.tgz"; | ||
6912 | url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz"; | ||
6913 | sha1 = "debc6489d7a6e6b0e7611888cec880337d316396"; | ||
6914 | }; | ||
6915 | } | ||
6916 | { | ||
6917 | name = "prepend_http___prepend_http_1.0.4.tgz"; | ||
6918 | path = fetchurl { | ||
6919 | name = "prepend_http___prepend_http_1.0.4.tgz"; | ||
6920 | url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz"; | ||
6921 | sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"; | ||
6922 | }; | ||
6923 | } | ||
6924 | { | ||
6925 | name = "prettier_linter_helpers___prettier_linter_helpers_1.0.0.tgz"; | ||
6926 | path = fetchurl { | ||
6927 | name = "prettier_linter_helpers___prettier_linter_helpers_1.0.0.tgz"; | ||
6928 | url = "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"; | ||
6929 | sha1 = "d23d41fe1375646de2d0104d3454a3008802cf7b"; | ||
6930 | }; | ||
6931 | } | ||
6932 | { | ||
6933 | name = "prettier___prettier_1.19.1.tgz"; | ||
6934 | path = fetchurl { | ||
6935 | name = "prettier___prettier_1.19.1.tgz"; | ||
6936 | url = "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz"; | ||
6937 | sha1 = "f7d7f5ff8a9cd872a7be4ca142095956a60797cb"; | ||
6938 | }; | ||
6939 | } | ||
6940 | { | ||
6941 | name = "prettier___prettier_2.0.5.tgz"; | ||
6942 | path = fetchurl { | ||
6943 | name = "prettier___prettier_2.0.5.tgz"; | ||
6944 | url = "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz"; | ||
6945 | sha1 = "d6d56282455243f2f92cc1716692c08aa31522d4"; | ||
6946 | }; | ||
6947 | } | ||
6948 | { | ||
6949 | name = "pretty_bytes___pretty_bytes_5.3.0.tgz"; | ||
6950 | path = fetchurl { | ||
6951 | name = "pretty_bytes___pretty_bytes_5.3.0.tgz"; | ||
6952 | url = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz"; | ||
6953 | sha1 = "f2849e27db79fb4d6cfe24764fc4134f165989f2"; | ||
6954 | }; | ||
6955 | } | ||
6956 | { | ||
6957 | name = "pretty_error___pretty_error_2.1.1.tgz"; | ||
6958 | path = fetchurl { | ||
6959 | name = "pretty_error___pretty_error_2.1.1.tgz"; | ||
6960 | url = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz"; | ||
6961 | sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"; | ||
6962 | }; | ||
6963 | } | ||
6964 | { | ||
6965 | name = "private___private_0.1.8.tgz"; | ||
6966 | path = fetchurl { | ||
6967 | name = "private___private_0.1.8.tgz"; | ||
6968 | url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz"; | ||
6969 | sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff"; | ||
6970 | }; | ||
6971 | } | ||
6972 | { | ||
6973 | name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; | ||
6974 | path = fetchurl { | ||
6975 | name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; | ||
6976 | url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; | ||
6977 | sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"; | ||
6978 | }; | ||
6979 | } | ||
6980 | { | ||
6981 | name = "process___process_0.11.10.tgz"; | ||
6982 | path = fetchurl { | ||
6983 | name = "process___process_0.11.10.tgz"; | ||
6984 | url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz"; | ||
6985 | sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; | ||
6986 | }; | ||
6987 | } | ||
6988 | { | ||
6989 | name = "progress___progress_2.0.3.tgz"; | ||
6990 | path = fetchurl { | ||
6991 | name = "progress___progress_2.0.3.tgz"; | ||
6992 | url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz"; | ||
6993 | sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"; | ||
6994 | }; | ||
6995 | } | ||
6996 | { | ||
6997 | name = "promise_inflight___promise_inflight_1.0.1.tgz"; | ||
6998 | path = fetchurl { | ||
6999 | name = "promise_inflight___promise_inflight_1.0.1.tgz"; | ||
7000 | url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz"; | ||
7001 | sha1 = "98472870bf228132fcbdd868129bad12c3c029e3"; | ||
7002 | }; | ||
7003 | } | ||
7004 | { | ||
7005 | name = "proxy_addr___proxy_addr_2.0.6.tgz"; | ||
7006 | path = fetchurl { | ||
7007 | name = "proxy_addr___proxy_addr_2.0.6.tgz"; | ||
7008 | url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz"; | ||
7009 | sha1 = "fdc2336505447d3f2f2c638ed272caf614bbb2bf"; | ||
7010 | }; | ||
7011 | } | ||
7012 | { | ||
7013 | name = "prr___prr_1.0.1.tgz"; | ||
7014 | path = fetchurl { | ||
7015 | name = "prr___prr_1.0.1.tgz"; | ||
7016 | url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz"; | ||
7017 | sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; | ||
7018 | }; | ||
7019 | } | ||
7020 | { | ||
7021 | name = "pseudomap___pseudomap_1.0.2.tgz"; | ||
7022 | path = fetchurl { | ||
7023 | name = "pseudomap___pseudomap_1.0.2.tgz"; | ||
7024 | url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz"; | ||
7025 | sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; | ||
7026 | }; | ||
7027 | } | ||
7028 | { | ||
7029 | name = "psl___psl_1.8.0.tgz"; | ||
7030 | path = fetchurl { | ||
7031 | name = "psl___psl_1.8.0.tgz"; | ||
7032 | url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz"; | ||
7033 | sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24"; | ||
7034 | }; | ||
7035 | } | ||
7036 | { | ||
7037 | name = "public_encrypt___public_encrypt_4.0.3.tgz"; | ||
7038 | path = fetchurl { | ||
7039 | name = "public_encrypt___public_encrypt_4.0.3.tgz"; | ||
7040 | url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz"; | ||
7041 | sha1 = "4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"; | ||
7042 | }; | ||
7043 | } | ||
7044 | { | ||
7045 | name = "pump___pump_2.0.1.tgz"; | ||
7046 | path = fetchurl { | ||
7047 | name = "pump___pump_2.0.1.tgz"; | ||
7048 | url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz"; | ||
7049 | sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909"; | ||
7050 | }; | ||
7051 | } | ||
7052 | { | ||
7053 | name = "pump___pump_3.0.0.tgz"; | ||
7054 | path = fetchurl { | ||
7055 | name = "pump___pump_3.0.0.tgz"; | ||
7056 | url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz"; | ||
7057 | sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64"; | ||
7058 | }; | ||
7059 | } | ||
7060 | { | ||
7061 | name = "pumpify___pumpify_1.5.1.tgz"; | ||
7062 | path = fetchurl { | ||
7063 | name = "pumpify___pumpify_1.5.1.tgz"; | ||
7064 | url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz"; | ||
7065 | sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce"; | ||
7066 | }; | ||
7067 | } | ||
7068 | { | ||
7069 | name = "punycode___punycode_1.3.2.tgz"; | ||
7070 | path = fetchurl { | ||
7071 | name = "punycode___punycode_1.3.2.tgz"; | ||
7072 | url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz"; | ||
7073 | sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; | ||
7074 | }; | ||
7075 | } | ||
7076 | { | ||
7077 | name = "punycode___punycode_1.4.1.tgz"; | ||
7078 | path = fetchurl { | ||
7079 | name = "punycode___punycode_1.4.1.tgz"; | ||
7080 | url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz"; | ||
7081 | sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; | ||
7082 | }; | ||
7083 | } | ||
7084 | { | ||
7085 | name = "punycode___punycode_2.1.1.tgz"; | ||
7086 | path = fetchurl { | ||
7087 | name = "punycode___punycode_2.1.1.tgz"; | ||
7088 | url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz"; | ||
7089 | sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec"; | ||
7090 | }; | ||
7091 | } | ||
7092 | { | ||
7093 | name = "q___q_1.5.1.tgz"; | ||
7094 | path = fetchurl { | ||
7095 | name = "q___q_1.5.1.tgz"; | ||
7096 | url = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz"; | ||
7097 | sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7"; | ||
7098 | }; | ||
7099 | } | ||
7100 | { | ||
7101 | name = "qs___qs_6.7.0.tgz"; | ||
7102 | path = fetchurl { | ||
7103 | name = "qs___qs_6.7.0.tgz"; | ||
7104 | url = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz"; | ||
7105 | sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc"; | ||
7106 | }; | ||
7107 | } | ||
7108 | { | ||
7109 | name = "qs___qs_6.5.2.tgz"; | ||
7110 | path = fetchurl { | ||
7111 | name = "qs___qs_6.5.2.tgz"; | ||
7112 | url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz"; | ||
7113 | sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36"; | ||
7114 | }; | ||
7115 | } | ||
7116 | { | ||
7117 | name = "query_string___query_string_4.3.4.tgz"; | ||
7118 | path = fetchurl { | ||
7119 | name = "query_string___query_string_4.3.4.tgz"; | ||
7120 | url = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz"; | ||
7121 | sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb"; | ||
7122 | }; | ||
7123 | } | ||
7124 | { | ||
7125 | name = "querystring_es3___querystring_es3_0.2.1.tgz"; | ||
7126 | path = fetchurl { | ||
7127 | name = "querystring_es3___querystring_es3_0.2.1.tgz"; | ||
7128 | url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz"; | ||
7129 | sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; | ||
7130 | }; | ||
7131 | } | ||
7132 | { | ||
7133 | name = "querystring___querystring_0.2.0.tgz"; | ||
7134 | path = fetchurl { | ||
7135 | name = "querystring___querystring_0.2.0.tgz"; | ||
7136 | url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz"; | ||
7137 | sha1 = "b209849203bb25df820da756e747005878521620"; | ||
7138 | }; | ||
7139 | } | ||
7140 | { | ||
7141 | name = "querystringify___querystringify_2.1.1.tgz"; | ||
7142 | path = fetchurl { | ||
7143 | name = "querystringify___querystringify_2.1.1.tgz"; | ||
7144 | url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz"; | ||
7145 | sha1 = "60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"; | ||
7146 | }; | ||
7147 | } | ||
7148 | { | ||
7149 | name = "randombytes___randombytes_2.1.0.tgz"; | ||
7150 | path = fetchurl { | ||
7151 | name = "randombytes___randombytes_2.1.0.tgz"; | ||
7152 | url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz"; | ||
7153 | sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a"; | ||
7154 | }; | ||
7155 | } | ||
7156 | { | ||
7157 | name = "randomfill___randomfill_1.0.4.tgz"; | ||
7158 | path = fetchurl { | ||
7159 | name = "randomfill___randomfill_1.0.4.tgz"; | ||
7160 | url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz"; | ||
7161 | sha1 = "c92196fc86ab42be983f1bf31778224931d61458"; | ||
7162 | }; | ||
7163 | } | ||
7164 | { | ||
7165 | name = "range_parser___range_parser_1.2.1.tgz"; | ||
7166 | path = fetchurl { | ||
7167 | name = "range_parser___range_parser_1.2.1.tgz"; | ||
7168 | url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz"; | ||
7169 | sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031"; | ||
7170 | }; | ||
7171 | } | ||
7172 | { | ||
7173 | name = "raw_body___raw_body_2.4.0.tgz"; | ||
7174 | path = fetchurl { | ||
7175 | name = "raw_body___raw_body_2.4.0.tgz"; | ||
7176 | url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz"; | ||
7177 | sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332"; | ||
7178 | }; | ||
7179 | } | ||
7180 | { | ||
7181 | name = "raw_loader___raw_loader_4.0.1.tgz"; | ||
7182 | path = fetchurl { | ||
7183 | name = "raw_loader___raw_loader_4.0.1.tgz"; | ||
7184 | url = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.1.tgz"; | ||
7185 | sha1 = "14e1f726a359b68437e183d5a5b7d33a3eba6933"; | ||
7186 | }; | ||
7187 | } | ||
7188 | { | ||
7189 | name = "read_pkg___read_pkg_5.2.0.tgz"; | ||
7190 | path = fetchurl { | ||
7191 | name = "read_pkg___read_pkg_5.2.0.tgz"; | ||
7192 | url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz"; | ||
7193 | sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc"; | ||
7194 | }; | ||
7195 | } | ||
7196 | { | ||
7197 | name = "readable_stream___readable_stream_2.3.7.tgz"; | ||
7198 | path = fetchurl { | ||
7199 | name = "readable_stream___readable_stream_2.3.7.tgz"; | ||
7200 | url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz"; | ||
7201 | sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57"; | ||
7202 | }; | ||
7203 | } | ||
7204 | { | ||
7205 | name = "readable_stream___readable_stream_3.6.0.tgz"; | ||
7206 | path = fetchurl { | ||
7207 | name = "readable_stream___readable_stream_3.6.0.tgz"; | ||
7208 | url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz"; | ||
7209 | sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198"; | ||
7210 | }; | ||
7211 | } | ||
7212 | { | ||
7213 | name = "readdirp___readdirp_2.2.1.tgz"; | ||
7214 | path = fetchurl { | ||
7215 | name = "readdirp___readdirp_2.2.1.tgz"; | ||
7216 | url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz"; | ||
7217 | sha1 = "0e87622a3325aa33e892285caf8b4e846529a525"; | ||
7218 | }; | ||
7219 | } | ||
7220 | { | ||
7221 | name = "readdirp___readdirp_3.4.0.tgz"; | ||
7222 | path = fetchurl { | ||
7223 | name = "readdirp___readdirp_3.4.0.tgz"; | ||
7224 | url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz"; | ||
7225 | sha1 = "9fdccdf9e9155805449221ac645e8303ab5b9ada"; | ||
7226 | }; | ||
7227 | } | ||
7228 | { | ||
7229 | name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz"; | ||
7230 | path = fetchurl { | ||
7231 | name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz"; | ||
7232 | url = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz"; | ||
7233 | sha1 = "e5de7111d655e7ba60c057dbe9ff37c87e65cdec"; | ||
7234 | }; | ||
7235 | } | ||
7236 | { | ||
7237 | name = "regenerate___regenerate_1.4.1.tgz"; | ||
7238 | path = fetchurl { | ||
7239 | name = "regenerate___regenerate_1.4.1.tgz"; | ||
7240 | url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz"; | ||
7241 | sha1 = "cad92ad8e6b591773485fbe05a485caf4f457e6f"; | ||
7242 | }; | ||
7243 | } | ||
7244 | { | ||
7245 | name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz"; | ||
7246 | path = fetchurl { | ||
7247 | name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz"; | ||
7248 | url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"; | ||
7249 | sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"; | ||
7250 | }; | ||
7251 | } | ||
7252 | { | ||
7253 | name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz"; | ||
7254 | path = fetchurl { | ||
7255 | name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz"; | ||
7256 | url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz"; | ||
7257 | sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697"; | ||
7258 | }; | ||
7259 | } | ||
7260 | { | ||
7261 | name = "regenerator_transform___regenerator_transform_0.14.4.tgz"; | ||
7262 | path = fetchurl { | ||
7263 | name = "regenerator_transform___regenerator_transform_0.14.4.tgz"; | ||
7264 | url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz"; | ||
7265 | sha1 = "5266857896518d1616a78a0479337a30ea974cc7"; | ||
7266 | }; | ||
7267 | } | ||
7268 | { | ||
7269 | name = "regex_not___regex_not_1.0.2.tgz"; | ||
7270 | path = fetchurl { | ||
7271 | name = "regex_not___regex_not_1.0.2.tgz"; | ||
7272 | url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz"; | ||
7273 | sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c"; | ||
7274 | }; | ||
7275 | } | ||
7276 | { | ||
7277 | name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz"; | ||
7278 | path = fetchurl { | ||
7279 | name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz"; | ||
7280 | url = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz"; | ||
7281 | sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"; | ||
7282 | }; | ||
7283 | } | ||
7284 | { | ||
7285 | name = "regexpp___regexpp_3.1.0.tgz"; | ||
7286 | path = fetchurl { | ||
7287 | name = "regexpp___regexpp_3.1.0.tgz"; | ||
7288 | url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz"; | ||
7289 | sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"; | ||
7290 | }; | ||
7291 | } | ||
7292 | { | ||
7293 | name = "regexpu_core___regexpu_core_4.7.0.tgz"; | ||
7294 | path = fetchurl { | ||
7295 | name = "regexpu_core___regexpu_core_4.7.0.tgz"; | ||
7296 | url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz"; | ||
7297 | sha1 = "fcbf458c50431b0bb7b45d6967b8192d91f3d938"; | ||
7298 | }; | ||
7299 | } | ||
7300 | { | ||
7301 | name = "register_service_worker___register_service_worker_1.7.1.tgz"; | ||
7302 | path = fetchurl { | ||
7303 | name = "register_service_worker___register_service_worker_1.7.1.tgz"; | ||
7304 | url = "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.1.tgz"; | ||
7305 | sha1 = "6308347ac6c0af0f6c0b22ea5d59d25e836bc932"; | ||
7306 | }; | ||
7307 | } | ||
7308 | { | ||
7309 | name = "regjsgen___regjsgen_0.5.2.tgz"; | ||
7310 | path = fetchurl { | ||
7311 | name = "regjsgen___regjsgen_0.5.2.tgz"; | ||
7312 | url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz"; | ||
7313 | sha1 = "92ff295fb1deecbf6ecdab2543d207e91aa33733"; | ||
7314 | }; | ||
7315 | } | ||
7316 | { | ||
7317 | name = "regjsparser___regjsparser_0.6.4.tgz"; | ||
7318 | path = fetchurl { | ||
7319 | name = "regjsparser___regjsparser_0.6.4.tgz"; | ||
7320 | url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz"; | ||
7321 | sha1 = "a769f8684308401a66e9b529d2436ff4d0666272"; | ||
7322 | }; | ||
7323 | } | ||
7324 | { | ||
7325 | name = "relateurl___relateurl_0.2.7.tgz"; | ||
7326 | path = fetchurl { | ||
7327 | name = "relateurl___relateurl_0.2.7.tgz"; | ||
7328 | url = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz"; | ||
7329 | sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9"; | ||
7330 | }; | ||
7331 | } | ||
7332 | { | ||
7333 | name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; | ||
7334 | path = fetchurl { | ||
7335 | name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; | ||
7336 | url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; | ||
7337 | sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; | ||
7338 | }; | ||
7339 | } | ||
7340 | { | ||
7341 | name = "renderkid___renderkid_2.0.3.tgz"; | ||
7342 | path = fetchurl { | ||
7343 | name = "renderkid___renderkid_2.0.3.tgz"; | ||
7344 | url = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz"; | ||
7345 | sha1 = "380179c2ff5ae1365c522bf2fcfcff01c5b74149"; | ||
7346 | }; | ||
7347 | } | ||
7348 | { | ||
7349 | name = "repeat_element___repeat_element_1.1.3.tgz"; | ||
7350 | path = fetchurl { | ||
7351 | name = "repeat_element___repeat_element_1.1.3.tgz"; | ||
7352 | url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz"; | ||
7353 | sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce"; | ||
7354 | }; | ||
7355 | } | ||
7356 | { | ||
7357 | name = "repeat_string___repeat_string_1.6.1.tgz"; | ||
7358 | path = fetchurl { | ||
7359 | name = "repeat_string___repeat_string_1.6.1.tgz"; | ||
7360 | url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz"; | ||
7361 | sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; | ||
7362 | }; | ||
7363 | } | ||
7364 | { | ||
7365 | name = "request_promise_core___request_promise_core_1.1.3.tgz"; | ||
7366 | path = fetchurl { | ||
7367 | name = "request_promise_core___request_promise_core_1.1.3.tgz"; | ||
7368 | url = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz"; | ||
7369 | sha1 = "e9a3c081b51380dfea677336061fea879a829ee9"; | ||
7370 | }; | ||
7371 | } | ||
7372 | { | ||
7373 | name = "request_promise_native___request_promise_native_1.0.8.tgz"; | ||
7374 | path = fetchurl { | ||
7375 | name = "request_promise_native___request_promise_native_1.0.8.tgz"; | ||
7376 | url = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz"; | ||
7377 | sha1 = "a455b960b826e44e2bf8999af64dff2bfe58cb36"; | ||
7378 | }; | ||
7379 | } | ||
7380 | { | ||
7381 | name = "request___request_2.88.2.tgz"; | ||
7382 | path = fetchurl { | ||
7383 | name = "request___request_2.88.2.tgz"; | ||
7384 | url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz"; | ||
7385 | sha1 = "d73c918731cb5a87da047e207234146f664d12b3"; | ||
7386 | }; | ||
7387 | } | ||
7388 | { | ||
7389 | name = "require_directory___require_directory_2.1.1.tgz"; | ||
7390 | path = fetchurl { | ||
7391 | name = "require_directory___require_directory_2.1.1.tgz"; | ||
7392 | url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz"; | ||
7393 | sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; | ||
7394 | }; | ||
7395 | } | ||
7396 | { | ||
7397 | name = "require_main_filename___require_main_filename_2.0.0.tgz"; | ||
7398 | path = fetchurl { | ||
7399 | name = "require_main_filename___require_main_filename_2.0.0.tgz"; | ||
7400 | url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz"; | ||
7401 | sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b"; | ||
7402 | }; | ||
7403 | } | ||
7404 | { | ||
7405 | name = "requires_port___requires_port_1.0.0.tgz"; | ||
7406 | path = fetchurl { | ||
7407 | name = "requires_port___requires_port_1.0.0.tgz"; | ||
7408 | url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz"; | ||
7409 | sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; | ||
7410 | }; | ||
7411 | } | ||
7412 | { | ||
7413 | name = "resolve_cwd___resolve_cwd_2.0.0.tgz"; | ||
7414 | path = fetchurl { | ||
7415 | name = "resolve_cwd___resolve_cwd_2.0.0.tgz"; | ||
7416 | url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz"; | ||
7417 | sha1 = "00a9f7387556e27038eae232caa372a6a59b665a"; | ||
7418 | }; | ||
7419 | } | ||
7420 | { | ||
7421 | name = "resolve_from___resolve_from_3.0.0.tgz"; | ||
7422 | path = fetchurl { | ||
7423 | name = "resolve_from___resolve_from_3.0.0.tgz"; | ||
7424 | url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz"; | ||
7425 | sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748"; | ||
7426 | }; | ||
7427 | } | ||
7428 | { | ||
7429 | name = "resolve_from___resolve_from_4.0.0.tgz"; | ||
7430 | path = fetchurl { | ||
7431 | name = "resolve_from___resolve_from_4.0.0.tgz"; | ||
7432 | url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz"; | ||
7433 | sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6"; | ||
7434 | }; | ||
7435 | } | ||
7436 | { | ||
7437 | name = "resolve_url___resolve_url_0.2.1.tgz"; | ||
7438 | path = fetchurl { | ||
7439 | name = "resolve_url___resolve_url_0.2.1.tgz"; | ||
7440 | url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz"; | ||
7441 | sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; | ||
7442 | }; | ||
7443 | } | ||
7444 | { | ||
7445 | name = "resolve___resolve_1.17.0.tgz"; | ||
7446 | path = fetchurl { | ||
7447 | name = "resolve___resolve_1.17.0.tgz"; | ||
7448 | url = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz"; | ||
7449 | sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444"; | ||
7450 | }; | ||
7451 | } | ||
7452 | { | ||
7453 | name = "restore_cursor___restore_cursor_2.0.0.tgz"; | ||
7454 | path = fetchurl { | ||
7455 | name = "restore_cursor___restore_cursor_2.0.0.tgz"; | ||
7456 | url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz"; | ||
7457 | sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf"; | ||
7458 | }; | ||
7459 | } | ||
7460 | { | ||
7461 | name = "restore_cursor___restore_cursor_3.1.0.tgz"; | ||
7462 | path = fetchurl { | ||
7463 | name = "restore_cursor___restore_cursor_3.1.0.tgz"; | ||
7464 | url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz"; | ||
7465 | sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e"; | ||
7466 | }; | ||
7467 | } | ||
7468 | { | ||
7469 | name = "ret___ret_0.1.15.tgz"; | ||
7470 | path = fetchurl { | ||
7471 | name = "ret___ret_0.1.15.tgz"; | ||
7472 | url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz"; | ||
7473 | sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"; | ||
7474 | }; | ||
7475 | } | ||
7476 | { | ||
7477 | name = "retry___retry_0.12.0.tgz"; | ||
7478 | path = fetchurl { | ||
7479 | name = "retry___retry_0.12.0.tgz"; | ||
7480 | url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz"; | ||
7481 | sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b"; | ||
7482 | }; | ||
7483 | } | ||
7484 | { | ||
7485 | name = "rgb_regex___rgb_regex_1.0.1.tgz"; | ||
7486 | path = fetchurl { | ||
7487 | name = "rgb_regex___rgb_regex_1.0.1.tgz"; | ||
7488 | url = "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz"; | ||
7489 | sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1"; | ||
7490 | }; | ||
7491 | } | ||
7492 | { | ||
7493 | name = "rgba_regex___rgba_regex_1.0.0.tgz"; | ||
7494 | path = fetchurl { | ||
7495 | name = "rgba_regex___rgba_regex_1.0.0.tgz"; | ||
7496 | url = "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz"; | ||
7497 | sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3"; | ||
7498 | }; | ||
7499 | } | ||
7500 | { | ||
7501 | name = "rimraf___rimraf_2.6.3.tgz"; | ||
7502 | path = fetchurl { | ||
7503 | name = "rimraf___rimraf_2.6.3.tgz"; | ||
7504 | url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz"; | ||
7505 | sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"; | ||
7506 | }; | ||
7507 | } | ||
7508 | { | ||
7509 | name = "rimraf___rimraf_2.7.1.tgz"; | ||
7510 | path = fetchurl { | ||
7511 | name = "rimraf___rimraf_2.7.1.tgz"; | ||
7512 | url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz"; | ||
7513 | sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec"; | ||
7514 | }; | ||
7515 | } | ||
7516 | { | ||
7517 | name = "ripemd160___ripemd160_2.0.2.tgz"; | ||
7518 | path = fetchurl { | ||
7519 | name = "ripemd160___ripemd160_2.0.2.tgz"; | ||
7520 | url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz"; | ||
7521 | sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c"; | ||
7522 | }; | ||
7523 | } | ||
7524 | { | ||
7525 | name = "run_async___run_async_2.4.1.tgz"; | ||
7526 | path = fetchurl { | ||
7527 | name = "run_async___run_async_2.4.1.tgz"; | ||
7528 | url = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz"; | ||
7529 | sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455"; | ||
7530 | }; | ||
7531 | } | ||
7532 | { | ||
7533 | name = "run_queue___run_queue_1.0.3.tgz"; | ||
7534 | path = fetchurl { | ||
7535 | name = "run_queue___run_queue_1.0.3.tgz"; | ||
7536 | url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz"; | ||
7537 | sha1 = "e848396f057d223f24386924618e25694161ec47"; | ||
7538 | }; | ||
7539 | } | ||
7540 | { | ||
7541 | name = "rxjs___rxjs_6.5.5.tgz"; | ||
7542 | path = fetchurl { | ||
7543 | name = "rxjs___rxjs_6.5.5.tgz"; | ||
7544 | url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz"; | ||
7545 | sha1 = "c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"; | ||
7546 | }; | ||
7547 | } | ||
7548 | { | ||
7549 | name = "safe_buffer___safe_buffer_5.1.2.tgz"; | ||
7550 | path = fetchurl { | ||
7551 | name = "safe_buffer___safe_buffer_5.1.2.tgz"; | ||
7552 | url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; | ||
7553 | sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; | ||
7554 | }; | ||
7555 | } | ||
7556 | { | ||
7557 | name = "safe_buffer___safe_buffer_5.2.1.tgz"; | ||
7558 | path = fetchurl { | ||
7559 | name = "safe_buffer___safe_buffer_5.2.1.tgz"; | ||
7560 | url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz"; | ||
7561 | sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"; | ||
7562 | }; | ||
7563 | } | ||
7564 | { | ||
7565 | name = "safe_regex___safe_regex_1.1.0.tgz"; | ||
7566 | path = fetchurl { | ||
7567 | name = "safe_regex___safe_regex_1.1.0.tgz"; | ||
7568 | url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz"; | ||
7569 | sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; | ||
7570 | }; | ||
7571 | } | ||
7572 | { | ||
7573 | name = "safer_buffer___safer_buffer_2.1.2.tgz"; | ||
7574 | path = fetchurl { | ||
7575 | name = "safer_buffer___safer_buffer_2.1.2.tgz"; | ||
7576 | url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"; | ||
7577 | sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a"; | ||
7578 | }; | ||
7579 | } | ||
7580 | { | ||
7581 | name = "sass_loader___sass_loader_8.0.2.tgz"; | ||
7582 | path = fetchurl { | ||
7583 | name = "sass_loader___sass_loader_8.0.2.tgz"; | ||
7584 | url = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz"; | ||
7585 | sha1 = "debecd8c3ce243c76454f2e8290482150380090d"; | ||
7586 | }; | ||
7587 | } | ||
7588 | { | ||
7589 | name = "sass___sass_1.26.8.tgz"; | ||
7590 | path = fetchurl { | ||
7591 | name = "sass___sass_1.26.8.tgz"; | ||
7592 | url = "https://registry.yarnpkg.com/sass/-/sass-1.26.8.tgz"; | ||
7593 | sha1 = "312652530721f9568d4c4000b0db07ec6eb23325"; | ||
7594 | }; | ||
7595 | } | ||
7596 | { | ||
7597 | name = "sax___sax_1.2.4.tgz"; | ||
7598 | path = fetchurl { | ||
7599 | name = "sax___sax_1.2.4.tgz"; | ||
7600 | url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"; | ||
7601 | sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9"; | ||
7602 | }; | ||
7603 | } | ||
7604 | { | ||
7605 | name = "schema_utils___schema_utils_1.0.0.tgz"; | ||
7606 | path = fetchurl { | ||
7607 | name = "schema_utils___schema_utils_1.0.0.tgz"; | ||
7608 | url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz"; | ||
7609 | sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770"; | ||
7610 | }; | ||
7611 | } | ||
7612 | { | ||
7613 | name = "schema_utils___schema_utils_2.7.0.tgz"; | ||
7614 | path = fetchurl { | ||
7615 | name = "schema_utils___schema_utils_2.7.0.tgz"; | ||
7616 | url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz"; | ||
7617 | sha1 = "17151f76d8eae67fbbf77960c33c676ad9f4efc7"; | ||
7618 | }; | ||
7619 | } | ||
7620 | { | ||
7621 | name = "select_hose___select_hose_2.0.0.tgz"; | ||
7622 | path = fetchurl { | ||
7623 | name = "select_hose___select_hose_2.0.0.tgz"; | ||
7624 | url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz"; | ||
7625 | sha1 = "625d8658f865af43ec962bfc376a37359a4994ca"; | ||
7626 | }; | ||
7627 | } | ||
7628 | { | ||
7629 | name = "selfsigned___selfsigned_1.10.7.tgz"; | ||
7630 | path = fetchurl { | ||
7631 | name = "selfsigned___selfsigned_1.10.7.tgz"; | ||
7632 | url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz"; | ||
7633 | sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b"; | ||
7634 | }; | ||
7635 | } | ||
7636 | { | ||
7637 | name = "semver___semver_5.7.1.tgz"; | ||
7638 | path = fetchurl { | ||
7639 | name = "semver___semver_5.7.1.tgz"; | ||
7640 | url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz"; | ||
7641 | sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7"; | ||
7642 | }; | ||
7643 | } | ||
7644 | { | ||
7645 | name = "semver___semver_7.0.0.tgz"; | ||
7646 | path = fetchurl { | ||
7647 | name = "semver___semver_7.0.0.tgz"; | ||
7648 | url = "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz"; | ||
7649 | sha1 = "5f3ca35761e47e05b206c6daff2cf814f0316b8e"; | ||
7650 | }; | ||
7651 | } | ||
7652 | { | ||
7653 | name = "semver___semver_6.3.0.tgz"; | ||
7654 | path = fetchurl { | ||
7655 | name = "semver___semver_6.3.0.tgz"; | ||
7656 | url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz"; | ||
7657 | sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d"; | ||
7658 | }; | ||
7659 | } | ||
7660 | { | ||
7661 | name = "semver___semver_7.3.2.tgz"; | ||
7662 | path = fetchurl { | ||
7663 | name = "semver___semver_7.3.2.tgz"; | ||
7664 | url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz"; | ||
7665 | sha1 = "604962b052b81ed0786aae84389ffba70ffd3938"; | ||
7666 | }; | ||
7667 | } | ||
7668 | { | ||
7669 | name = "send___send_0.17.1.tgz"; | ||
7670 | path = fetchurl { | ||
7671 | name = "send___send_0.17.1.tgz"; | ||
7672 | url = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz"; | ||
7673 | sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8"; | ||
7674 | }; | ||
7675 | } | ||
7676 | { | ||
7677 | name = "serialize_javascript___serialize_javascript_2.1.2.tgz"; | ||
7678 | path = fetchurl { | ||
7679 | name = "serialize_javascript___serialize_javascript_2.1.2.tgz"; | ||
7680 | url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz"; | ||
7681 | sha1 = "ecec53b0e0317bdc95ef76ab7074b7384785fa61"; | ||
7682 | }; | ||
7683 | } | ||
7684 | { | ||
7685 | name = "serialize_javascript___serialize_javascript_3.1.0.tgz"; | ||
7686 | path = fetchurl { | ||
7687 | name = "serialize_javascript___serialize_javascript_3.1.0.tgz"; | ||
7688 | url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz"; | ||
7689 | sha1 = "8bf3a9170712664ef2561b44b691eafe399214ea"; | ||
7690 | }; | ||
7691 | } | ||
7692 | { | ||
7693 | name = "serve_index___serve_index_1.9.1.tgz"; | ||
7694 | path = fetchurl { | ||
7695 | name = "serve_index___serve_index_1.9.1.tgz"; | ||
7696 | url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz"; | ||
7697 | sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239"; | ||
7698 | }; | ||
7699 | } | ||
7700 | { | ||
7701 | name = "serve_static___serve_static_1.14.1.tgz"; | ||
7702 | path = fetchurl { | ||
7703 | name = "serve_static___serve_static_1.14.1.tgz"; | ||
7704 | url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz"; | ||
7705 | sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9"; | ||
7706 | }; | ||
7707 | } | ||
7708 | { | ||
7709 | name = "set_blocking___set_blocking_2.0.0.tgz"; | ||
7710 | path = fetchurl { | ||
7711 | name = "set_blocking___set_blocking_2.0.0.tgz"; | ||
7712 | url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz"; | ||
7713 | sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; | ||
7714 | }; | ||
7715 | } | ||
7716 | { | ||
7717 | name = "set_value___set_value_2.0.1.tgz"; | ||
7718 | path = fetchurl { | ||
7719 | name = "set_value___set_value_2.0.1.tgz"; | ||
7720 | url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz"; | ||
7721 | sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b"; | ||
7722 | }; | ||
7723 | } | ||
7724 | { | ||
7725 | name = "setimmediate___setimmediate_1.0.5.tgz"; | ||
7726 | path = fetchurl { | ||
7727 | name = "setimmediate___setimmediate_1.0.5.tgz"; | ||
7728 | url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz"; | ||
7729 | sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; | ||
7730 | }; | ||
7731 | } | ||
7732 | { | ||
7733 | name = "setprototypeof___setprototypeof_1.1.0.tgz"; | ||
7734 | path = fetchurl { | ||
7735 | name = "setprototypeof___setprototypeof_1.1.0.tgz"; | ||
7736 | url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz"; | ||
7737 | sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656"; | ||
7738 | }; | ||
7739 | } | ||
7740 | { | ||
7741 | name = "setprototypeof___setprototypeof_1.1.1.tgz"; | ||
7742 | path = fetchurl { | ||
7743 | name = "setprototypeof___setprototypeof_1.1.1.tgz"; | ||
7744 | url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz"; | ||
7745 | sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683"; | ||
7746 | }; | ||
7747 | } | ||
7748 | { | ||
7749 | name = "sha.js___sha.js_2.4.11.tgz"; | ||
7750 | path = fetchurl { | ||
7751 | name = "sha.js___sha.js_2.4.11.tgz"; | ||
7752 | url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz"; | ||
7753 | sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7"; | ||
7754 | }; | ||
7755 | } | ||
7756 | { | ||
7757 | name = "shallow_clone___shallow_clone_3.0.1.tgz"; | ||
7758 | path = fetchurl { | ||
7759 | name = "shallow_clone___shallow_clone_3.0.1.tgz"; | ||
7760 | url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz"; | ||
7761 | sha1 = "8f2981ad92531f55035b01fb230769a40e02efa3"; | ||
7762 | }; | ||
7763 | } | ||
7764 | { | ||
7765 | name = "shebang_command___shebang_command_1.2.0.tgz"; | ||
7766 | path = fetchurl { | ||
7767 | name = "shebang_command___shebang_command_1.2.0.tgz"; | ||
7768 | url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz"; | ||
7769 | sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; | ||
7770 | }; | ||
7771 | } | ||
7772 | { | ||
7773 | name = "shebang_command___shebang_command_2.0.0.tgz"; | ||
7774 | path = fetchurl { | ||
7775 | name = "shebang_command___shebang_command_2.0.0.tgz"; | ||
7776 | url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz"; | ||
7777 | sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea"; | ||
7778 | }; | ||
7779 | } | ||
7780 | { | ||
7781 | name = "shebang_regex___shebang_regex_1.0.0.tgz"; | ||
7782 | path = fetchurl { | ||
7783 | name = "shebang_regex___shebang_regex_1.0.0.tgz"; | ||
7784 | url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz"; | ||
7785 | sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; | ||
7786 | }; | ||
7787 | } | ||
7788 | { | ||
7789 | name = "shebang_regex___shebang_regex_3.0.0.tgz"; | ||
7790 | path = fetchurl { | ||
7791 | name = "shebang_regex___shebang_regex_3.0.0.tgz"; | ||
7792 | url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz"; | ||
7793 | sha1 = "ae16f1644d873ecad843b0307b143362d4c42172"; | ||
7794 | }; | ||
7795 | } | ||
7796 | { | ||
7797 | name = "shell_quote___shell_quote_1.7.2.tgz"; | ||
7798 | path = fetchurl { | ||
7799 | name = "shell_quote___shell_quote_1.7.2.tgz"; | ||
7800 | url = "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz"; | ||
7801 | sha1 = "67a7d02c76c9da24f99d20808fcaded0e0e04be2"; | ||
7802 | }; | ||
7803 | } | ||
7804 | { | ||
7805 | name = "signal_exit___signal_exit_3.0.3.tgz"; | ||
7806 | path = fetchurl { | ||
7807 | name = "signal_exit___signal_exit_3.0.3.tgz"; | ||
7808 | url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz"; | ||
7809 | sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c"; | ||
7810 | }; | ||
7811 | } | ||
7812 | { | ||
7813 | name = "simple_swizzle___simple_swizzle_0.2.2.tgz"; | ||
7814 | path = fetchurl { | ||
7815 | name = "simple_swizzle___simple_swizzle_0.2.2.tgz"; | ||
7816 | url = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; | ||
7817 | sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a"; | ||
7818 | }; | ||
7819 | } | ||
7820 | { | ||
7821 | name = "slash___slash_1.0.0.tgz"; | ||
7822 | path = fetchurl { | ||
7823 | name = "slash___slash_1.0.0.tgz"; | ||
7824 | url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz"; | ||
7825 | sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"; | ||
7826 | }; | ||
7827 | } | ||
7828 | { | ||
7829 | name = "slash___slash_2.0.0.tgz"; | ||
7830 | path = fetchurl { | ||
7831 | name = "slash___slash_2.0.0.tgz"; | ||
7832 | url = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz"; | ||
7833 | sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44"; | ||
7834 | }; | ||
7835 | } | ||
7836 | { | ||
7837 | name = "slice_ansi___slice_ansi_2.1.0.tgz"; | ||
7838 | path = fetchurl { | ||
7839 | name = "slice_ansi___slice_ansi_2.1.0.tgz"; | ||
7840 | url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz"; | ||
7841 | sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636"; | ||
7842 | }; | ||
7843 | } | ||
7844 | { | ||
7845 | name = "snapdragon_node___snapdragon_node_2.1.1.tgz"; | ||
7846 | path = fetchurl { | ||
7847 | name = "snapdragon_node___snapdragon_node_2.1.1.tgz"; | ||
7848 | url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; | ||
7849 | sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b"; | ||
7850 | }; | ||
7851 | } | ||
7852 | { | ||
7853 | name = "snapdragon_util___snapdragon_util_3.0.1.tgz"; | ||
7854 | path = fetchurl { | ||
7855 | name = "snapdragon_util___snapdragon_util_3.0.1.tgz"; | ||
7856 | url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; | ||
7857 | sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2"; | ||
7858 | }; | ||
7859 | } | ||
7860 | { | ||
7861 | name = "snapdragon___snapdragon_0.8.2.tgz"; | ||
7862 | path = fetchurl { | ||
7863 | name = "snapdragon___snapdragon_0.8.2.tgz"; | ||
7864 | url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz"; | ||
7865 | sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d"; | ||
7866 | }; | ||
7867 | } | ||
7868 | { | ||
7869 | name = "sockjs_client___sockjs_client_1.4.0.tgz"; | ||
7870 | path = fetchurl { | ||
7871 | name = "sockjs_client___sockjs_client_1.4.0.tgz"; | ||
7872 | url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz"; | ||
7873 | sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5"; | ||
7874 | }; | ||
7875 | } | ||
7876 | { | ||
7877 | name = "sockjs___sockjs_0.3.20.tgz"; | ||
7878 | path = fetchurl { | ||
7879 | name = "sockjs___sockjs_0.3.20.tgz"; | ||
7880 | url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz"; | ||
7881 | sha1 = "b26a283ec562ef8b2687b44033a4eeceac75d855"; | ||
7882 | }; | ||
7883 | } | ||
7884 | { | ||
7885 | name = "sort_keys___sort_keys_1.1.2.tgz"; | ||
7886 | path = fetchurl { | ||
7887 | name = "sort_keys___sort_keys_1.1.2.tgz"; | ||
7888 | url = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz"; | ||
7889 | sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad"; | ||
7890 | }; | ||
7891 | } | ||
7892 | { | ||
7893 | name = "source_list_map___source_list_map_2.0.1.tgz"; | ||
7894 | path = fetchurl { | ||
7895 | name = "source_list_map___source_list_map_2.0.1.tgz"; | ||
7896 | url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz"; | ||
7897 | sha1 = "3993bd873bfc48479cca9ea3a547835c7c154b34"; | ||
7898 | }; | ||
7899 | } | ||
7900 | { | ||
7901 | name = "source_map_resolve___source_map_resolve_0.5.3.tgz"; | ||
7902 | path = fetchurl { | ||
7903 | name = "source_map_resolve___source_map_resolve_0.5.3.tgz"; | ||
7904 | url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz"; | ||
7905 | sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a"; | ||
7906 | }; | ||
7907 | } | ||
7908 | { | ||
7909 | name = "source_map_support___source_map_support_0.5.19.tgz"; | ||
7910 | path = fetchurl { | ||
7911 | name = "source_map_support___source_map_support_0.5.19.tgz"; | ||
7912 | url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz"; | ||
7913 | sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61"; | ||
7914 | }; | ||
7915 | } | ||
7916 | { | ||
7917 | name = "source_map_url___source_map_url_0.4.0.tgz"; | ||
7918 | path = fetchurl { | ||
7919 | name = "source_map_url___source_map_url_0.4.0.tgz"; | ||
7920 | url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz"; | ||
7921 | sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3"; | ||
7922 | }; | ||
7923 | } | ||
7924 | { | ||
7925 | name = "source_map___source_map_0.5.7.tgz"; | ||
7926 | path = fetchurl { | ||
7927 | name = "source_map___source_map_0.5.7.tgz"; | ||
7928 | url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; | ||
7929 | sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; | ||
7930 | }; | ||
7931 | } | ||
7932 | { | ||
7933 | name = "source_map___source_map_0.6.1.tgz"; | ||
7934 | path = fetchurl { | ||
7935 | name = "source_map___source_map_0.6.1.tgz"; | ||
7936 | url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz"; | ||
7937 | sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263"; | ||
7938 | }; | ||
7939 | } | ||
7940 | { | ||
7941 | name = "spdx_correct___spdx_correct_3.1.1.tgz"; | ||
7942 | path = fetchurl { | ||
7943 | name = "spdx_correct___spdx_correct_3.1.1.tgz"; | ||
7944 | url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz"; | ||
7945 | sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"; | ||
7946 | }; | ||
7947 | } | ||
7948 | { | ||
7949 | name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz"; | ||
7950 | path = fetchurl { | ||
7951 | name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz"; | ||
7952 | url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz"; | ||
7953 | sha1 = "3f28ce1a77a00372683eade4a433183527a2163d"; | ||
7954 | }; | ||
7955 | } | ||
7956 | { | ||
7957 | name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz"; | ||
7958 | path = fetchurl { | ||
7959 | name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz"; | ||
7960 | url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz"; | ||
7961 | sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679"; | ||
7962 | }; | ||
7963 | } | ||
7964 | { | ||
7965 | name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz"; | ||
7966 | path = fetchurl { | ||
7967 | name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz"; | ||
7968 | url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"; | ||
7969 | sha1 = "3694b5804567a458d3c8045842a6358632f62654"; | ||
7970 | }; | ||
7971 | } | ||
7972 | { | ||
7973 | name = "spdy_transport___spdy_transport_3.0.0.tgz"; | ||
7974 | path = fetchurl { | ||
7975 | name = "spdy_transport___spdy_transport_3.0.0.tgz"; | ||
7976 | url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz"; | ||
7977 | sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31"; | ||
7978 | }; | ||
7979 | } | ||
7980 | { | ||
7981 | name = "spdy___spdy_4.0.2.tgz"; | ||
7982 | path = fetchurl { | ||
7983 | name = "spdy___spdy_4.0.2.tgz"; | ||
7984 | url = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz"; | ||
7985 | sha1 = "b74f466203a3eda452c02492b91fb9e84a27677b"; | ||
7986 | }; | ||
7987 | } | ||
7988 | { | ||
7989 | name = "split_string___split_string_3.1.0.tgz"; | ||
7990 | path = fetchurl { | ||
7991 | name = "split_string___split_string_3.1.0.tgz"; | ||
7992 | url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz"; | ||
7993 | sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2"; | ||
7994 | }; | ||
7995 | } | ||
7996 | { | ||
7997 | name = "sprintf_js___sprintf_js_1.0.3.tgz"; | ||
7998 | path = fetchurl { | ||
7999 | name = "sprintf_js___sprintf_js_1.0.3.tgz"; | ||
8000 | url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz"; | ||
8001 | sha1 = "04e6926f662895354f3dd015203633b857297e2c"; | ||
8002 | }; | ||
8003 | } | ||
8004 | { | ||
8005 | name = "sshpk___sshpk_1.16.1.tgz"; | ||
8006 | path = fetchurl { | ||
8007 | name = "sshpk___sshpk_1.16.1.tgz"; | ||
8008 | url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz"; | ||
8009 | sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877"; | ||
8010 | }; | ||
8011 | } | ||
8012 | { | ||
8013 | name = "ssri___ssri_6.0.1.tgz"; | ||
8014 | path = fetchurl { | ||
8015 | name = "ssri___ssri_6.0.1.tgz"; | ||
8016 | url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz"; | ||
8017 | sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8"; | ||
8018 | }; | ||
8019 | } | ||
8020 | { | ||
8021 | name = "ssri___ssri_7.1.0.tgz"; | ||
8022 | path = fetchurl { | ||
8023 | name = "ssri___ssri_7.1.0.tgz"; | ||
8024 | url = "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz"; | ||
8025 | sha1 = "92c241bf6de82365b5c7fb4bd76e975522e1294d"; | ||
8026 | }; | ||
8027 | } | ||
8028 | { | ||
8029 | name = "stable___stable_0.1.8.tgz"; | ||
8030 | path = fetchurl { | ||
8031 | name = "stable___stable_0.1.8.tgz"; | ||
8032 | url = "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz"; | ||
8033 | sha1 = "836eb3c8382fe2936feaf544631017ce7d47a3cf"; | ||
8034 | }; | ||
8035 | } | ||
8036 | { | ||
8037 | name = "stackframe___stackframe_1.2.0.tgz"; | ||
8038 | path = fetchurl { | ||
8039 | name = "stackframe___stackframe_1.2.0.tgz"; | ||
8040 | url = "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz"; | ||
8041 | sha1 = "52429492d63c62eb989804c11552e3d22e779303"; | ||
8042 | }; | ||
8043 | } | ||
8044 | { | ||
8045 | name = "static_extend___static_extend_0.1.2.tgz"; | ||
8046 | path = fetchurl { | ||
8047 | name = "static_extend___static_extend_0.1.2.tgz"; | ||
8048 | url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz"; | ||
8049 | sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; | ||
8050 | }; | ||
8051 | } | ||
8052 | { | ||
8053 | name = "statuses___statuses_1.5.0.tgz"; | ||
8054 | path = fetchurl { | ||
8055 | name = "statuses___statuses_1.5.0.tgz"; | ||
8056 | url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz"; | ||
8057 | sha1 = "161c7dac177659fd9811f43771fa99381478628c"; | ||
8058 | }; | ||
8059 | } | ||
8060 | { | ||
8061 | name = "stealthy_require___stealthy_require_1.1.1.tgz"; | ||
8062 | path = fetchurl { | ||
8063 | name = "stealthy_require___stealthy_require_1.1.1.tgz"; | ||
8064 | url = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz"; | ||
8065 | sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b"; | ||
8066 | }; | ||
8067 | } | ||
8068 | { | ||
8069 | name = "stream_browserify___stream_browserify_2.0.2.tgz"; | ||
8070 | path = fetchurl { | ||
8071 | name = "stream_browserify___stream_browserify_2.0.2.tgz"; | ||
8072 | url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz"; | ||
8073 | sha1 = "87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"; | ||
8074 | }; | ||
8075 | } | ||
8076 | { | ||
8077 | name = "stream_each___stream_each_1.2.3.tgz"; | ||
8078 | path = fetchurl { | ||
8079 | name = "stream_each___stream_each_1.2.3.tgz"; | ||
8080 | url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz"; | ||
8081 | sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae"; | ||
8082 | }; | ||
8083 | } | ||
8084 | { | ||
8085 | name = "stream_http___stream_http_2.8.3.tgz"; | ||
8086 | path = fetchurl { | ||
8087 | name = "stream_http___stream_http_2.8.3.tgz"; | ||
8088 | url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz"; | ||
8089 | sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc"; | ||
8090 | }; | ||
8091 | } | ||
8092 | { | ||
8093 | name = "stream_shift___stream_shift_1.0.1.tgz"; | ||
8094 | path = fetchurl { | ||
8095 | name = "stream_shift___stream_shift_1.0.1.tgz"; | ||
8096 | url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz"; | ||
8097 | sha1 = "d7088281559ab2778424279b0877da3c392d5a3d"; | ||
8098 | }; | ||
8099 | } | ||
8100 | { | ||
8101 | name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz"; | ||
8102 | path = fetchurl { | ||
8103 | name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz"; | ||
8104 | url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"; | ||
8105 | sha1 = "279b225df1d582b1f54e65addd4352e18faa0713"; | ||
8106 | }; | ||
8107 | } | ||
8108 | { | ||
8109 | name = "string_width___string_width_2.1.1.tgz"; | ||
8110 | path = fetchurl { | ||
8111 | name = "string_width___string_width_2.1.1.tgz"; | ||
8112 | url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz"; | ||
8113 | sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e"; | ||
8114 | }; | ||
8115 | } | ||
8116 | { | ||
8117 | name = "string_width___string_width_3.1.0.tgz"; | ||
8118 | path = fetchurl { | ||
8119 | name = "string_width___string_width_3.1.0.tgz"; | ||
8120 | url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz"; | ||
8121 | sha1 = "22767be21b62af1081574306f69ac51b62203961"; | ||
8122 | }; | ||
8123 | } | ||
8124 | { | ||
8125 | name = "string_width___string_width_4.2.0.tgz"; | ||
8126 | path = fetchurl { | ||
8127 | name = "string_width___string_width_4.2.0.tgz"; | ||
8128 | url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz"; | ||
8129 | sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5"; | ||
8130 | }; | ||
8131 | } | ||
8132 | { | ||
8133 | name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz"; | ||
8134 | path = fetchurl { | ||
8135 | name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz"; | ||
8136 | url = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz"; | ||
8137 | sha1 = "85812a6b847ac002270f5808146064c995fb6913"; | ||
8138 | }; | ||
8139 | } | ||
8140 | { | ||
8141 | name = "string.prototype.trimleft___string.prototype.trimleft_2.1.2.tgz"; | ||
8142 | path = fetchurl { | ||
8143 | name = "string.prototype.trimleft___string.prototype.trimleft_2.1.2.tgz"; | ||
8144 | url = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz"; | ||
8145 | sha1 = "4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"; | ||
8146 | }; | ||
8147 | } | ||
8148 | { | ||
8149 | name = "string.prototype.trimright___string.prototype.trimright_2.1.2.tgz"; | ||
8150 | path = fetchurl { | ||
8151 | name = "string.prototype.trimright___string.prototype.trimright_2.1.2.tgz"; | ||
8152 | url = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz"; | ||
8153 | sha1 = "c76f1cef30f21bbad8afeb8db1511496cfb0f2a3"; | ||
8154 | }; | ||
8155 | } | ||
8156 | { | ||
8157 | name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz"; | ||
8158 | path = fetchurl { | ||
8159 | name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz"; | ||
8160 | url = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz"; | ||
8161 | sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"; | ||
8162 | }; | ||
8163 | } | ||
8164 | { | ||
8165 | name = "string_decoder___string_decoder_1.3.0.tgz"; | ||
8166 | path = fetchurl { | ||
8167 | name = "string_decoder___string_decoder_1.3.0.tgz"; | ||
8168 | url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz"; | ||
8169 | sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e"; | ||
8170 | }; | ||
8171 | } | ||
8172 | { | ||
8173 | name = "string_decoder___string_decoder_1.1.1.tgz"; | ||
8174 | path = fetchurl { | ||
8175 | name = "string_decoder___string_decoder_1.1.1.tgz"; | ||
8176 | url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; | ||
8177 | sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8"; | ||
8178 | }; | ||
8179 | } | ||
8180 | { | ||
8181 | name = "stringify_object___stringify_object_3.3.0.tgz"; | ||
8182 | path = fetchurl { | ||
8183 | name = "stringify_object___stringify_object_3.3.0.tgz"; | ||
8184 | url = "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz"; | ||
8185 | sha1 = "703065aefca19300d3ce88af4f5b3956d7556629"; | ||
8186 | }; | ||
8187 | } | ||
8188 | { | ||
8189 | name = "strip_ansi___strip_ansi_3.0.1.tgz"; | ||
8190 | path = fetchurl { | ||
8191 | name = "strip_ansi___strip_ansi_3.0.1.tgz"; | ||
8192 | url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz"; | ||
8193 | sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; | ||
8194 | }; | ||
8195 | } | ||
8196 | { | ||
8197 | name = "strip_ansi___strip_ansi_4.0.0.tgz"; | ||
8198 | path = fetchurl { | ||
8199 | name = "strip_ansi___strip_ansi_4.0.0.tgz"; | ||
8200 | url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz"; | ||
8201 | sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; | ||
8202 | }; | ||
8203 | } | ||
8204 | { | ||
8205 | name = "strip_ansi___strip_ansi_5.2.0.tgz"; | ||
8206 | path = fetchurl { | ||
8207 | name = "strip_ansi___strip_ansi_5.2.0.tgz"; | ||
8208 | url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz"; | ||
8209 | sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"; | ||
8210 | }; | ||
8211 | } | ||
8212 | { | ||
8213 | name = "strip_ansi___strip_ansi_6.0.0.tgz"; | ||
8214 | path = fetchurl { | ||
8215 | name = "strip_ansi___strip_ansi_6.0.0.tgz"; | ||
8216 | url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz"; | ||
8217 | sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532"; | ||
8218 | }; | ||
8219 | } | ||
8220 | { | ||
8221 | name = "strip_comments___strip_comments_1.0.2.tgz"; | ||
8222 | path = fetchurl { | ||
8223 | name = "strip_comments___strip_comments_1.0.2.tgz"; | ||
8224 | url = "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz"; | ||
8225 | sha1 = "82b9c45e7f05873bee53f37168af930aa368679d"; | ||
8226 | }; | ||
8227 | } | ||
8228 | { | ||
8229 | name = "strip_eof___strip_eof_1.0.0.tgz"; | ||
8230 | path = fetchurl { | ||
8231 | name = "strip_eof___strip_eof_1.0.0.tgz"; | ||
8232 | url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz"; | ||
8233 | sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf"; | ||
8234 | }; | ||
8235 | } | ||
8236 | { | ||
8237 | name = "strip_final_newline___strip_final_newline_2.0.0.tgz"; | ||
8238 | path = fetchurl { | ||
8239 | name = "strip_final_newline___strip_final_newline_2.0.0.tgz"; | ||
8240 | url = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz"; | ||
8241 | sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"; | ||
8242 | }; | ||
8243 | } | ||
8244 | { | ||
8245 | name = "strip_indent___strip_indent_2.0.0.tgz"; | ||
8246 | path = fetchurl { | ||
8247 | name = "strip_indent___strip_indent_2.0.0.tgz"; | ||
8248 | url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz"; | ||
8249 | sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68"; | ||
8250 | }; | ||
8251 | } | ||
8252 | { | ||
8253 | name = "strip_json_comments___strip_json_comments_3.1.0.tgz"; | ||
8254 | path = fetchurl { | ||
8255 | name = "strip_json_comments___strip_json_comments_3.1.0.tgz"; | ||
8256 | url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz"; | ||
8257 | sha1 = "7638d31422129ecf4457440009fba03f9f9ac180"; | ||
8258 | }; | ||
8259 | } | ||
8260 | { | ||
8261 | name = "stylehacks___stylehacks_4.0.3.tgz"; | ||
8262 | path = fetchurl { | ||
8263 | name = "stylehacks___stylehacks_4.0.3.tgz"; | ||
8264 | url = "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz"; | ||
8265 | sha1 = "6718fcaf4d1e07d8a1318690881e8d96726a71d5"; | ||
8266 | }; | ||
8267 | } | ||
8268 | { | ||
8269 | name = "supports_color___supports_color_2.0.0.tgz"; | ||
8270 | path = fetchurl { | ||
8271 | name = "supports_color___supports_color_2.0.0.tgz"; | ||
8272 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz"; | ||
8273 | sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; | ||
8274 | }; | ||
8275 | } | ||
8276 | { | ||
8277 | name = "supports_color___supports_color_5.5.0.tgz"; | ||
8278 | path = fetchurl { | ||
8279 | name = "supports_color___supports_color_5.5.0.tgz"; | ||
8280 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz"; | ||
8281 | sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f"; | ||
8282 | }; | ||
8283 | } | ||
8284 | { | ||
8285 | name = "supports_color___supports_color_6.1.0.tgz"; | ||
8286 | path = fetchurl { | ||
8287 | name = "supports_color___supports_color_6.1.0.tgz"; | ||
8288 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz"; | ||
8289 | sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3"; | ||
8290 | }; | ||
8291 | } | ||
8292 | { | ||
8293 | name = "supports_color___supports_color_7.1.0.tgz"; | ||
8294 | path = fetchurl { | ||
8295 | name = "supports_color___supports_color_7.1.0.tgz"; | ||
8296 | url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz"; | ||
8297 | sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1"; | ||
8298 | }; | ||
8299 | } | ||
8300 | { | ||
8301 | name = "svg_tags___svg_tags_1.0.0.tgz"; | ||
8302 | path = fetchurl { | ||
8303 | name = "svg_tags___svg_tags_1.0.0.tgz"; | ||
8304 | url = "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz"; | ||
8305 | sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764"; | ||
8306 | }; | ||
8307 | } | ||
8308 | { | ||
8309 | name = "svgo___svgo_1.3.2.tgz"; | ||
8310 | path = fetchurl { | ||
8311 | name = "svgo___svgo_1.3.2.tgz"; | ||
8312 | url = "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz"; | ||
8313 | sha1 = "b6dc511c063346c9e415b81e43401145b96d4167"; | ||
8314 | }; | ||
8315 | } | ||
8316 | { | ||
8317 | name = "table___table_5.4.6.tgz"; | ||
8318 | path = fetchurl { | ||
8319 | name = "table___table_5.4.6.tgz"; | ||
8320 | url = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz"; | ||
8321 | sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e"; | ||
8322 | }; | ||
8323 | } | ||
8324 | { | ||
8325 | name = "tapable___tapable_1.1.3.tgz"; | ||
8326 | path = fetchurl { | ||
8327 | name = "tapable___tapable_1.1.3.tgz"; | ||
8328 | url = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz"; | ||
8329 | sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"; | ||
8330 | }; | ||
8331 | } | ||
8332 | { | ||
8333 | name = "terser_webpack_plugin___terser_webpack_plugin_1.4.4.tgz"; | ||
8334 | path = fetchurl { | ||
8335 | name = "terser_webpack_plugin___terser_webpack_plugin_1.4.4.tgz"; | ||
8336 | url = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz"; | ||
8337 | sha1 = "2c63544347324baafa9a56baaddf1634c8abfc2f"; | ||
8338 | }; | ||
8339 | } | ||
8340 | { | ||
8341 | name = "terser_webpack_plugin___terser_webpack_plugin_2.3.7.tgz"; | ||
8342 | path = fetchurl { | ||
8343 | name = "terser_webpack_plugin___terser_webpack_plugin_2.3.7.tgz"; | ||
8344 | url = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz"; | ||
8345 | sha1 = "4910ff5d1a872168cc7fa6cd3749e2b0d60a8a0b"; | ||
8346 | }; | ||
8347 | } | ||
8348 | { | ||
8349 | name = "terser___terser_4.7.0.tgz"; | ||
8350 | path = fetchurl { | ||
8351 | name = "terser___terser_4.7.0.tgz"; | ||
8352 | url = "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz"; | ||
8353 | sha1 = "15852cf1a08e3256a80428e865a2fa893ffba006"; | ||
8354 | }; | ||
8355 | } | ||
8356 | { | ||
8357 | name = "text_table___text_table_0.2.0.tgz"; | ||
8358 | path = fetchurl { | ||
8359 | name = "text_table___text_table_0.2.0.tgz"; | ||
8360 | url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"; | ||
8361 | sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4"; | ||
8362 | }; | ||
8363 | } | ||
8364 | { | ||
8365 | name = "thenify_all___thenify_all_1.6.0.tgz"; | ||
8366 | path = fetchurl { | ||
8367 | name = "thenify_all___thenify_all_1.6.0.tgz"; | ||
8368 | url = "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz"; | ||
8369 | sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"; | ||
8370 | }; | ||
8371 | } | ||
8372 | { | ||
8373 | name = "thenify___thenify_3.3.0.tgz"; | ||
8374 | path = fetchurl { | ||
8375 | name = "thenify___thenify_3.3.0.tgz"; | ||
8376 | url = "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz"; | ||
8377 | sha1 = "e69e38a1babe969b0108207978b9f62b88604839"; | ||
8378 | }; | ||
8379 | } | ||
8380 | { | ||
8381 | name = "thread_loader___thread_loader_2.1.3.tgz"; | ||
8382 | path = fetchurl { | ||
8383 | name = "thread_loader___thread_loader_2.1.3.tgz"; | ||
8384 | url = "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz"; | ||
8385 | sha1 = "cbd2c139fc2b2de6e9d28f62286ab770c1acbdda"; | ||
8386 | }; | ||
8387 | } | ||
8388 | { | ||
8389 | name = "through2___through2_2.0.5.tgz"; | ||
8390 | path = fetchurl { | ||
8391 | name = "through2___through2_2.0.5.tgz"; | ||
8392 | url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz"; | ||
8393 | sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd"; | ||
8394 | }; | ||
8395 | } | ||
8396 | { | ||
8397 | name = "through___through_2.3.8.tgz"; | ||
8398 | path = fetchurl { | ||
8399 | name = "through___through_2.3.8.tgz"; | ||
8400 | url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz"; | ||
8401 | sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; | ||
8402 | }; | ||
8403 | } | ||
8404 | { | ||
8405 | name = "thunky___thunky_1.1.0.tgz"; | ||
8406 | path = fetchurl { | ||
8407 | name = "thunky___thunky_1.1.0.tgz"; | ||
8408 | url = "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz"; | ||
8409 | sha1 = "5abaf714a9405db0504732bbccd2cedd9ef9537d"; | ||
8410 | }; | ||
8411 | } | ||
8412 | { | ||
8413 | name = "timers_browserify___timers_browserify_2.0.11.tgz"; | ||
8414 | path = fetchurl { | ||
8415 | name = "timers_browserify___timers_browserify_2.0.11.tgz"; | ||
8416 | url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz"; | ||
8417 | sha1 = "800b1f3eee272e5bc53ee465a04d0e804c31211f"; | ||
8418 | }; | ||
8419 | } | ||
8420 | { | ||
8421 | name = "timsort___timsort_0.3.0.tgz"; | ||
8422 | path = fetchurl { | ||
8423 | name = "timsort___timsort_0.3.0.tgz"; | ||
8424 | url = "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz"; | ||
8425 | sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4"; | ||
8426 | }; | ||
8427 | } | ||
8428 | { | ||
8429 | name = "tmp___tmp_0.0.33.tgz"; | ||
8430 | path = fetchurl { | ||
8431 | name = "tmp___tmp_0.0.33.tgz"; | ||
8432 | url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz"; | ||
8433 | sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9"; | ||
8434 | }; | ||
8435 | } | ||
8436 | { | ||
8437 | name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz"; | ||
8438 | path = fetchurl { | ||
8439 | name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz"; | ||
8440 | url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; | ||
8441 | sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; | ||
8442 | }; | ||
8443 | } | ||
8444 | { | ||
8445 | name = "to_fast_properties___to_fast_properties_2.0.0.tgz"; | ||
8446 | path = fetchurl { | ||
8447 | name = "to_fast_properties___to_fast_properties_2.0.0.tgz"; | ||
8448 | url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz"; | ||
8449 | sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e"; | ||
8450 | }; | ||
8451 | } | ||
8452 | { | ||
8453 | name = "to_object_path___to_object_path_0.3.0.tgz"; | ||
8454 | path = fetchurl { | ||
8455 | name = "to_object_path___to_object_path_0.3.0.tgz"; | ||
8456 | url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz"; | ||
8457 | sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af"; | ||
8458 | }; | ||
8459 | } | ||
8460 | { | ||
8461 | name = "to_regex_range___to_regex_range_2.1.1.tgz"; | ||
8462 | path = fetchurl { | ||
8463 | name = "to_regex_range___to_regex_range_2.1.1.tgz"; | ||
8464 | url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz"; | ||
8465 | sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38"; | ||
8466 | }; | ||
8467 | } | ||
8468 | { | ||
8469 | name = "to_regex_range___to_regex_range_5.0.1.tgz"; | ||
8470 | path = fetchurl { | ||
8471 | name = "to_regex_range___to_regex_range_5.0.1.tgz"; | ||
8472 | url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz"; | ||
8473 | sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4"; | ||
8474 | }; | ||
8475 | } | ||
8476 | { | ||
8477 | name = "to_regex___to_regex_3.0.2.tgz"; | ||
8478 | path = fetchurl { | ||
8479 | name = "to_regex___to_regex_3.0.2.tgz"; | ||
8480 | url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz"; | ||
8481 | sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"; | ||
8482 | }; | ||
8483 | } | ||
8484 | { | ||
8485 | name = "toidentifier___toidentifier_1.0.0.tgz"; | ||
8486 | path = fetchurl { | ||
8487 | name = "toidentifier___toidentifier_1.0.0.tgz"; | ||
8488 | url = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz"; | ||
8489 | sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553"; | ||
8490 | }; | ||
8491 | } | ||
8492 | { | ||
8493 | name = "toposort___toposort_1.0.7.tgz"; | ||
8494 | path = fetchurl { | ||
8495 | name = "toposort___toposort_1.0.7.tgz"; | ||
8496 | url = "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz"; | ||
8497 | sha1 = "2e68442d9f64ec720b8cc89e6443ac6caa950029"; | ||
8498 | }; | ||
8499 | } | ||
8500 | { | ||
8501 | name = "tough_cookie___tough_cookie_2.5.0.tgz"; | ||
8502 | path = fetchurl { | ||
8503 | name = "tough_cookie___tough_cookie_2.5.0.tgz"; | ||
8504 | url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz"; | ||
8505 | sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"; | ||
8506 | }; | ||
8507 | } | ||
8508 | { | ||
8509 | name = "tryer___tryer_1.0.1.tgz"; | ||
8510 | path = fetchurl { | ||
8511 | name = "tryer___tryer_1.0.1.tgz"; | ||
8512 | url = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz"; | ||
8513 | sha1 = "f2c85406800b9b0f74c9f7465b81eaad241252f8"; | ||
8514 | }; | ||
8515 | } | ||
8516 | { | ||
8517 | name = "ts_pnp___ts_pnp_1.2.0.tgz"; | ||
8518 | path = fetchurl { | ||
8519 | name = "ts_pnp___ts_pnp_1.2.0.tgz"; | ||
8520 | url = "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz"; | ||
8521 | sha1 = "a500ad084b0798f1c3071af391e65912c86bca92"; | ||
8522 | }; | ||
8523 | } | ||
8524 | { | ||
8525 | name = "tslib___tslib_1.13.0.tgz"; | ||
8526 | path = fetchurl { | ||
8527 | name = "tslib___tslib_1.13.0.tgz"; | ||
8528 | url = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz"; | ||
8529 | sha1 = "c881e13cc7015894ed914862d276436fa9a47043"; | ||
8530 | }; | ||
8531 | } | ||
8532 | { | ||
8533 | name = "tty_browserify___tty_browserify_0.0.0.tgz"; | ||
8534 | path = fetchurl { | ||
8535 | name = "tty_browserify___tty_browserify_0.0.0.tgz"; | ||
8536 | url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz"; | ||
8537 | sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6"; | ||
8538 | }; | ||
8539 | } | ||
8540 | { | ||
8541 | name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; | ||
8542 | path = fetchurl { | ||
8543 | name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; | ||
8544 | url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; | ||
8545 | sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; | ||
8546 | }; | ||
8547 | } | ||
8548 | { | ||
8549 | name = "tweetnacl___tweetnacl_0.14.5.tgz"; | ||
8550 | path = fetchurl { | ||
8551 | name = "tweetnacl___tweetnacl_0.14.5.tgz"; | ||
8552 | url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz"; | ||
8553 | sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; | ||
8554 | }; | ||
8555 | } | ||
8556 | { | ||
8557 | name = "type_check___type_check_0.4.0.tgz"; | ||
8558 | path = fetchurl { | ||
8559 | name = "type_check___type_check_0.4.0.tgz"; | ||
8560 | url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz"; | ||
8561 | sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1"; | ||
8562 | }; | ||
8563 | } | ||
8564 | { | ||
8565 | name = "type_fest___type_fest_0.11.0.tgz"; | ||
8566 | path = fetchurl { | ||
8567 | name = "type_fest___type_fest_0.11.0.tgz"; | ||
8568 | url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz"; | ||
8569 | sha1 = "97abf0872310fed88a5c466b25681576145e33f1"; | ||
8570 | }; | ||
8571 | } | ||
8572 | { | ||
8573 | name = "type_fest___type_fest_0.6.0.tgz"; | ||
8574 | path = fetchurl { | ||
8575 | name = "type_fest___type_fest_0.6.0.tgz"; | ||
8576 | url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz"; | ||
8577 | sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b"; | ||
8578 | }; | ||
8579 | } | ||
8580 | { | ||
8581 | name = "type_fest___type_fest_0.8.1.tgz"; | ||
8582 | path = fetchurl { | ||
8583 | name = "type_fest___type_fest_0.8.1.tgz"; | ||
8584 | url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz"; | ||
8585 | sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d"; | ||
8586 | }; | ||
8587 | } | ||
8588 | { | ||
8589 | name = "type_is___type_is_1.6.18.tgz"; | ||
8590 | path = fetchurl { | ||
8591 | name = "type_is___type_is_1.6.18.tgz"; | ||
8592 | url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz"; | ||
8593 | sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131"; | ||
8594 | }; | ||
8595 | } | ||
8596 | { | ||
8597 | name = "typedarray___typedarray_0.0.6.tgz"; | ||
8598 | path = fetchurl { | ||
8599 | name = "typedarray___typedarray_0.0.6.tgz"; | ||
8600 | url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz"; | ||
8601 | sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; | ||
8602 | }; | ||
8603 | } | ||
8604 | { | ||
8605 | name = "uglify_js___uglify_js_3.4.10.tgz"; | ||
8606 | path = fetchurl { | ||
8607 | name = "uglify_js___uglify_js_3.4.10.tgz"; | ||
8608 | url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz"; | ||
8609 | sha1 = "9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"; | ||
8610 | }; | ||
8611 | } | ||
8612 | { | ||
8613 | name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz"; | ||
8614 | path = fetchurl { | ||
8615 | name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz"; | ||
8616 | url = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz"; | ||
8617 | sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818"; | ||
8618 | }; | ||
8619 | } | ||
8620 | { | ||
8621 | name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz"; | ||
8622 | path = fetchurl { | ||
8623 | name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz"; | ||
8624 | url = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz"; | ||
8625 | sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c"; | ||
8626 | }; | ||
8627 | } | ||
8628 | { | ||
8629 | name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz"; | ||
8630 | path = fetchurl { | ||
8631 | name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz"; | ||
8632 | url = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz"; | ||
8633 | sha1 = "0d91f600eeeb3096aa962b1d6fc88876e64ea531"; | ||
8634 | }; | ||
8635 | } | ||
8636 | { | ||
8637 | name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.1.0.tgz"; | ||
8638 | path = fetchurl { | ||
8639 | name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.1.0.tgz"; | ||
8640 | url = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz"; | ||
8641 | sha1 = "dd57a99f6207bedff4628abefb94c50db941c8f4"; | ||
8642 | }; | ||
8643 | } | ||
8644 | { | ||
8645 | name = "union_value___union_value_1.0.1.tgz"; | ||
8646 | path = fetchurl { | ||
8647 | name = "union_value___union_value_1.0.1.tgz"; | ||
8648 | url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz"; | ||
8649 | sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847"; | ||
8650 | }; | ||
8651 | } | ||
8652 | { | ||
8653 | name = "uniq___uniq_1.0.1.tgz"; | ||
8654 | path = fetchurl { | ||
8655 | name = "uniq___uniq_1.0.1.tgz"; | ||
8656 | url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz"; | ||
8657 | sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff"; | ||
8658 | }; | ||
8659 | } | ||
8660 | { | ||
8661 | name = "uniqs___uniqs_2.0.0.tgz"; | ||
8662 | path = fetchurl { | ||
8663 | name = "uniqs___uniqs_2.0.0.tgz"; | ||
8664 | url = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz"; | ||
8665 | sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02"; | ||
8666 | }; | ||
8667 | } | ||
8668 | { | ||
8669 | name = "unique_filename___unique_filename_1.1.1.tgz"; | ||
8670 | path = fetchurl { | ||
8671 | name = "unique_filename___unique_filename_1.1.1.tgz"; | ||
8672 | url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz"; | ||
8673 | sha1 = "1d69769369ada0583103a1e6ae87681b56573230"; | ||
8674 | }; | ||
8675 | } | ||
8676 | { | ||
8677 | name = "unique_slug___unique_slug_2.0.2.tgz"; | ||
8678 | path = fetchurl { | ||
8679 | name = "unique_slug___unique_slug_2.0.2.tgz"; | ||
8680 | url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz"; | ||
8681 | sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c"; | ||
8682 | }; | ||
8683 | } | ||
8684 | { | ||
8685 | name = "universalify___universalify_0.1.2.tgz"; | ||
8686 | path = fetchurl { | ||
8687 | name = "universalify___universalify_0.1.2.tgz"; | ||
8688 | url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz"; | ||
8689 | sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66"; | ||
8690 | }; | ||
8691 | } | ||
8692 | { | ||
8693 | name = "unpipe___unpipe_1.0.0.tgz"; | ||
8694 | path = fetchurl { | ||
8695 | name = "unpipe___unpipe_1.0.0.tgz"; | ||
8696 | url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz"; | ||
8697 | sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; | ||
8698 | }; | ||
8699 | } | ||
8700 | { | ||
8701 | name = "unquote___unquote_1.1.1.tgz"; | ||
8702 | path = fetchurl { | ||
8703 | name = "unquote___unquote_1.1.1.tgz"; | ||
8704 | url = "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz"; | ||
8705 | sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544"; | ||
8706 | }; | ||
8707 | } | ||
8708 | { | ||
8709 | name = "unset_value___unset_value_1.0.0.tgz"; | ||
8710 | path = fetchurl { | ||
8711 | name = "unset_value___unset_value_1.0.0.tgz"; | ||
8712 | url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz"; | ||
8713 | sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; | ||
8714 | }; | ||
8715 | } | ||
8716 | { | ||
8717 | name = "upath___upath_1.2.0.tgz"; | ||
8718 | path = fetchurl { | ||
8719 | name = "upath___upath_1.2.0.tgz"; | ||
8720 | url = "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz"; | ||
8721 | sha1 = "8f66dbcd55a883acdae4408af8b035a5044c1894"; | ||
8722 | }; | ||
8723 | } | ||
8724 | { | ||
8725 | name = "upper_case___upper_case_1.1.3.tgz"; | ||
8726 | path = fetchurl { | ||
8727 | name = "upper_case___upper_case_1.1.3.tgz"; | ||
8728 | url = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz"; | ||
8729 | sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598"; | ||
8730 | }; | ||
8731 | } | ||
8732 | { | ||
8733 | name = "uri_js___uri_js_4.2.2.tgz"; | ||
8734 | path = fetchurl { | ||
8735 | name = "uri_js___uri_js_4.2.2.tgz"; | ||
8736 | url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz"; | ||
8737 | sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0"; | ||
8738 | }; | ||
8739 | } | ||
8740 | { | ||
8741 | name = "urix___urix_0.1.0.tgz"; | ||
8742 | path = fetchurl { | ||
8743 | name = "urix___urix_0.1.0.tgz"; | ||
8744 | url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz"; | ||
8745 | sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; | ||
8746 | }; | ||
8747 | } | ||
8748 | { | ||
8749 | name = "url_loader___url_loader_2.3.0.tgz"; | ||
8750 | path = fetchurl { | ||
8751 | name = "url_loader___url_loader_2.3.0.tgz"; | ||
8752 | url = "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz"; | ||
8753 | sha1 = "e0e2ef658f003efb8ca41b0f3ffbf76bab88658b"; | ||
8754 | }; | ||
8755 | } | ||
8756 | { | ||
8757 | name = "url_parse___url_parse_1.4.7.tgz"; | ||
8758 | path = fetchurl { | ||
8759 | name = "url_parse___url_parse_1.4.7.tgz"; | ||
8760 | url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz"; | ||
8761 | sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278"; | ||
8762 | }; | ||
8763 | } | ||
8764 | { | ||
8765 | name = "url___url_0.11.0.tgz"; | ||
8766 | path = fetchurl { | ||
8767 | name = "url___url_0.11.0.tgz"; | ||
8768 | url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz"; | ||
8769 | sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; | ||
8770 | }; | ||
8771 | } | ||
8772 | { | ||
8773 | name = "use___use_3.1.1.tgz"; | ||
8774 | path = fetchurl { | ||
8775 | name = "use___use_3.1.1.tgz"; | ||
8776 | url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz"; | ||
8777 | sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f"; | ||
8778 | }; | ||
8779 | } | ||
8780 | { | ||
8781 | name = "util_deprecate___util_deprecate_1.0.2.tgz"; | ||
8782 | path = fetchurl { | ||
8783 | name = "util_deprecate___util_deprecate_1.0.2.tgz"; | ||
8784 | url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; | ||
8785 | sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; | ||
8786 | }; | ||
8787 | } | ||
8788 | { | ||
8789 | name = "util.promisify___util.promisify_1.0.0.tgz"; | ||
8790 | path = fetchurl { | ||
8791 | name = "util.promisify___util.promisify_1.0.0.tgz"; | ||
8792 | url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz"; | ||
8793 | sha1 = "440f7165a459c9a16dc145eb8e72f35687097030"; | ||
8794 | }; | ||
8795 | } | ||
8796 | { | ||
8797 | name = "util.promisify___util.promisify_1.0.1.tgz"; | ||
8798 | path = fetchurl { | ||
8799 | name = "util.promisify___util.promisify_1.0.1.tgz"; | ||
8800 | url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz"; | ||
8801 | sha1 = "6baf7774b80eeb0f7520d8b81d07982a59abbaee"; | ||
8802 | }; | ||
8803 | } | ||
8804 | { | ||
8805 | name = "util___util_0.10.3.tgz"; | ||
8806 | path = fetchurl { | ||
8807 | name = "util___util_0.10.3.tgz"; | ||
8808 | url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz"; | ||
8809 | sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; | ||
8810 | }; | ||
8811 | } | ||
8812 | { | ||
8813 | name = "util___util_0.11.1.tgz"; | ||
8814 | path = fetchurl { | ||
8815 | name = "util___util_0.11.1.tgz"; | ||
8816 | url = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz"; | ||
8817 | sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61"; | ||
8818 | }; | ||
8819 | } | ||
8820 | { | ||
8821 | name = "utila___utila_0.4.0.tgz"; | ||
8822 | path = fetchurl { | ||
8823 | name = "utila___utila_0.4.0.tgz"; | ||
8824 | url = "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz"; | ||
8825 | sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c"; | ||
8826 | }; | ||
8827 | } | ||
8828 | { | ||
8829 | name = "utils_merge___utils_merge_1.0.1.tgz"; | ||
8830 | path = fetchurl { | ||
8831 | name = "utils_merge___utils_merge_1.0.1.tgz"; | ||
8832 | url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz"; | ||
8833 | sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; | ||
8834 | }; | ||
8835 | } | ||
8836 | { | ||
8837 | name = "uuid___uuid_3.4.0.tgz"; | ||
8838 | path = fetchurl { | ||
8839 | name = "uuid___uuid_3.4.0.tgz"; | ||
8840 | url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz"; | ||
8841 | sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee"; | ||
8842 | }; | ||
8843 | } | ||
8844 | { | ||
8845 | name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz"; | ||
8846 | path = fetchurl { | ||
8847 | name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz"; | ||
8848 | url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz"; | ||
8849 | sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745"; | ||
8850 | }; | ||
8851 | } | ||
8852 | { | ||
8853 | name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz"; | ||
8854 | path = fetchurl { | ||
8855 | name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz"; | ||
8856 | url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"; | ||
8857 | sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"; | ||
8858 | }; | ||
8859 | } | ||
8860 | { | ||
8861 | name = "vary___vary_1.1.2.tgz"; | ||
8862 | path = fetchurl { | ||
8863 | name = "vary___vary_1.1.2.tgz"; | ||
8864 | url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz"; | ||
8865 | sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; | ||
8866 | }; | ||
8867 | } | ||
8868 | { | ||
8869 | name = "vendors___vendors_1.0.4.tgz"; | ||
8870 | path = fetchurl { | ||
8871 | name = "vendors___vendors_1.0.4.tgz"; | ||
8872 | url = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz"; | ||
8873 | sha1 = "e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"; | ||
8874 | }; | ||
8875 | } | ||
8876 | { | ||
8877 | name = "verror___verror_1.10.0.tgz"; | ||
8878 | path = fetchurl { | ||
8879 | name = "verror___verror_1.10.0.tgz"; | ||
8880 | url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz"; | ||
8881 | sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; | ||
8882 | }; | ||
8883 | } | ||
8884 | { | ||
8885 | name = "vm_browserify___vm_browserify_1.1.2.tgz"; | ||
8886 | path = fetchurl { | ||
8887 | name = "vm_browserify___vm_browserify_1.1.2.tgz"; | ||
8888 | url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz"; | ||
8889 | sha1 = "78641c488b8e6ca91a75f511e7a3b32a86e5dda0"; | ||
8890 | }; | ||
8891 | } | ||
8892 | { | ||
8893 | name = "vue_eslint_parser___vue_eslint_parser_7.1.0.tgz"; | ||
8894 | path = fetchurl { | ||
8895 | name = "vue_eslint_parser___vue_eslint_parser_7.1.0.tgz"; | ||
8896 | url = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.1.0.tgz"; | ||
8897 | sha1 = "9cdbcc823e656b087507a1911732b867ac101e83"; | ||
8898 | }; | ||
8899 | } | ||
8900 | { | ||
8901 | name = "vue_hot_reload_api___vue_hot_reload_api_2.3.4.tgz"; | ||
8902 | path = fetchurl { | ||
8903 | name = "vue_hot_reload_api___vue_hot_reload_api_2.3.4.tgz"; | ||
8904 | url = "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz"; | ||
8905 | sha1 = "532955cc1eb208a3d990b3a9f9a70574657e08f2"; | ||
8906 | }; | ||
8907 | } | ||
8908 | { | ||
8909 | name = "vue_loader___vue_loader_15.9.2.tgz"; | ||
8910 | path = fetchurl { | ||
8911 | name = "vue_loader___vue_loader_15.9.2.tgz"; | ||
8912 | url = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.2.tgz"; | ||
8913 | sha1 = "ae01f5f4c9c6a04bff4483912e72ef91a402c1ae"; | ||
8914 | }; | ||
8915 | } | ||
8916 | { | ||
8917 | name = "vue_style_loader___vue_style_loader_4.1.2.tgz"; | ||
8918 | path = fetchurl { | ||
8919 | name = "vue_style_loader___vue_style_loader_4.1.2.tgz"; | ||
8920 | url = "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz"; | ||
8921 | sha1 = "dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"; | ||
8922 | }; | ||
8923 | } | ||
8924 | { | ||
8925 | name = "vue_template_compiler___vue_template_compiler_2.6.11.tgz"; | ||
8926 | path = fetchurl { | ||
8927 | name = "vue_template_compiler___vue_template_compiler_2.6.11.tgz"; | ||
8928 | url = "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz"; | ||
8929 | sha1 = "c04704ef8f498b153130018993e56309d4698080"; | ||
8930 | }; | ||
8931 | } | ||
8932 | { | ||
8933 | name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz"; | ||
8934 | path = fetchurl { | ||
8935 | name = "vue_template_es2015_compiler___vue_template_es2015_compiler_1.9.1.tgz"; | ||
8936 | url = "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz"; | ||
8937 | sha1 = "1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"; | ||
8938 | }; | ||
8939 | } | ||
8940 | { | ||
8941 | name = "vue___vue_2.6.11.tgz"; | ||
8942 | path = fetchurl { | ||
8943 | name = "vue___vue_2.6.11.tgz"; | ||
8944 | url = "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz"; | ||
8945 | sha1 = "76594d877d4b12234406e84e35275c6d514125c5"; | ||
8946 | }; | ||
8947 | } | ||
8948 | { | ||
8949 | name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz"; | ||
8950 | path = fetchurl { | ||
8951 | name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz"; | ||
8952 | url = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz"; | ||
8953 | sha1 = "9948a1866cbbd6cb824dea13a7ed691f6c8ddff0"; | ||
8954 | }; | ||
8955 | } | ||
8956 | { | ||
8957 | name = "watchpack___watchpack_1.7.2.tgz"; | ||
8958 | path = fetchurl { | ||
8959 | name = "watchpack___watchpack_1.7.2.tgz"; | ||
8960 | url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz"; | ||
8961 | sha1 = "c02e4d4d49913c3e7e122c3325365af9d331e9aa"; | ||
8962 | }; | ||
8963 | } | ||
8964 | { | ||
8965 | name = "wbuf___wbuf_1.7.3.tgz"; | ||
8966 | path = fetchurl { | ||
8967 | name = "wbuf___wbuf_1.7.3.tgz"; | ||
8968 | url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz"; | ||
8969 | sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df"; | ||
8970 | }; | ||
8971 | } | ||
8972 | { | ||
8973 | name = "wcwidth___wcwidth_1.0.1.tgz"; | ||
8974 | path = fetchurl { | ||
8975 | name = "wcwidth___wcwidth_1.0.1.tgz"; | ||
8976 | url = "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz"; | ||
8977 | sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"; | ||
8978 | }; | ||
8979 | } | ||
8980 | { | ||
8981 | name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.8.0.tgz"; | ||
8982 | path = fetchurl { | ||
8983 | name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.8.0.tgz"; | ||
8984 | url = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz"; | ||
8985 | sha1 = "ce6b3f908daf069fd1f7266f692cbb3bded9ba16"; | ||
8986 | }; | ||
8987 | } | ||
8988 | { | ||
8989 | name = "webpack_chain___webpack_chain_6.4.0.tgz"; | ||
8990 | path = fetchurl { | ||
8991 | name = "webpack_chain___webpack_chain_6.4.0.tgz"; | ||
8992 | url = "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.4.0.tgz"; | ||
8993 | sha1 = "22f0b27b6a9bc9ee3cba4f9e6513cf66394034e2"; | ||
8994 | }; | ||
8995 | } | ||
8996 | { | ||
8997 | name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz"; | ||
8998 | path = fetchurl { | ||
8999 | name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz"; | ||
9000 | url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz"; | ||
9001 | sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3"; | ||
9002 | }; | ||
9003 | } | ||
9004 | { | ||
9005 | name = "webpack_dev_server___webpack_dev_server_3.11.0.tgz"; | ||
9006 | path = fetchurl { | ||
9007 | name = "webpack_dev_server___webpack_dev_server_3.11.0.tgz"; | ||
9008 | url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz"; | ||
9009 | sha1 = "8f154a3bce1bcfd1cc618ef4e703278855e7ff8c"; | ||
9010 | }; | ||
9011 | } | ||
9012 | { | ||
9013 | name = "webpack_log___webpack_log_2.0.0.tgz"; | ||
9014 | path = fetchurl { | ||
9015 | name = "webpack_log___webpack_log_2.0.0.tgz"; | ||
9016 | url = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz"; | ||
9017 | sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f"; | ||
9018 | }; | ||
9019 | } | ||
9020 | { | ||
9021 | name = "webpack_merge___webpack_merge_4.2.2.tgz"; | ||
9022 | path = fetchurl { | ||
9023 | name = "webpack_merge___webpack_merge_4.2.2.tgz"; | ||
9024 | url = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz"; | ||
9025 | sha1 = "a27c52ea783d1398afd2087f547d7b9d2f43634d"; | ||
9026 | }; | ||
9027 | } | ||
9028 | { | ||
9029 | name = "webpack_sources___webpack_sources_1.4.3.tgz"; | ||
9030 | path = fetchurl { | ||
9031 | name = "webpack_sources___webpack_sources_1.4.3.tgz"; | ||
9032 | url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz"; | ||
9033 | sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933"; | ||
9034 | }; | ||
9035 | } | ||
9036 | { | ||
9037 | name = "webpack___webpack_4.43.0.tgz"; | ||
9038 | path = fetchurl { | ||
9039 | name = "webpack___webpack_4.43.0.tgz"; | ||
9040 | url = "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz"; | ||
9041 | sha1 = "c48547b11d563224c561dad1172c8aa0b8a678e6"; | ||
9042 | }; | ||
9043 | } | ||
9044 | { | ||
9045 | name = "websocket_driver___websocket_driver_0.6.5.tgz"; | ||
9046 | path = fetchurl { | ||
9047 | name = "websocket_driver___websocket_driver_0.6.5.tgz"; | ||
9048 | url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz"; | ||
9049 | sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36"; | ||
9050 | }; | ||
9051 | } | ||
9052 | { | ||
9053 | name = "websocket_driver___websocket_driver_0.7.4.tgz"; | ||
9054 | path = fetchurl { | ||
9055 | name = "websocket_driver___websocket_driver_0.7.4.tgz"; | ||
9056 | url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz"; | ||
9057 | sha1 = "89ad5295bbf64b480abcba31e4953aca706f5760"; | ||
9058 | }; | ||
9059 | } | ||
9060 | { | ||
9061 | name = "websocket_extensions___websocket_extensions_0.1.4.tgz"; | ||
9062 | path = fetchurl { | ||
9063 | name = "websocket_extensions___websocket_extensions_0.1.4.tgz"; | ||
9064 | url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz"; | ||
9065 | sha1 = "7f8473bc839dfd87608adb95d7eb075211578a42"; | ||
9066 | }; | ||
9067 | } | ||
9068 | { | ||
9069 | name = "which_module___which_module_2.0.0.tgz"; | ||
9070 | path = fetchurl { | ||
9071 | name = "which_module___which_module_2.0.0.tgz"; | ||
9072 | url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz"; | ||
9073 | sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; | ||
9074 | }; | ||
9075 | } | ||
9076 | { | ||
9077 | name = "which___which_1.3.1.tgz"; | ||
9078 | path = fetchurl { | ||
9079 | name = "which___which_1.3.1.tgz"; | ||
9080 | url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz"; | ||
9081 | sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a"; | ||
9082 | }; | ||
9083 | } | ||
9084 | { | ||
9085 | name = "which___which_2.0.2.tgz"; | ||
9086 | path = fetchurl { | ||
9087 | name = "which___which_2.0.2.tgz"; | ||
9088 | url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz"; | ||
9089 | sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"; | ||
9090 | }; | ||
9091 | } | ||
9092 | { | ||
9093 | name = "word_wrap___word_wrap_1.2.3.tgz"; | ||
9094 | path = fetchurl { | ||
9095 | name = "word_wrap___word_wrap_1.2.3.tgz"; | ||
9096 | url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz"; | ||
9097 | sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c"; | ||
9098 | }; | ||
9099 | } | ||
9100 | { | ||
9101 | name = "workbox_background_sync___workbox_background_sync_4.3.1.tgz"; | ||
9102 | path = fetchurl { | ||
9103 | name = "workbox_background_sync___workbox_background_sync_4.3.1.tgz"; | ||
9104 | url = "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz"; | ||
9105 | sha1 = "26821b9bf16e9e37fd1d640289edddc08afd1950"; | ||
9106 | }; | ||
9107 | } | ||
9108 | { | ||
9109 | name = "workbox_broadcast_update___workbox_broadcast_update_4.3.1.tgz"; | ||
9110 | path = fetchurl { | ||
9111 | name = "workbox_broadcast_update___workbox_broadcast_update_4.3.1.tgz"; | ||
9112 | url = "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz"; | ||
9113 | sha1 = "e2c0280b149e3a504983b757606ad041f332c35b"; | ||
9114 | }; | ||
9115 | } | ||
9116 | { | ||
9117 | name = "workbox_build___workbox_build_4.3.1.tgz"; | ||
9118 | path = fetchurl { | ||
9119 | name = "workbox_build___workbox_build_4.3.1.tgz"; | ||
9120 | url = "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz"; | ||
9121 | sha1 = "414f70fb4d6de47f6538608b80ec52412d233e64"; | ||
9122 | }; | ||
9123 | } | ||
9124 | { | ||
9125 | name = "workbox_cacheable_response___workbox_cacheable_response_4.3.1.tgz"; | ||
9126 | path = fetchurl { | ||
9127 | name = "workbox_cacheable_response___workbox_cacheable_response_4.3.1.tgz"; | ||
9128 | url = "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz"; | ||
9129 | sha1 = "f53e079179c095a3f19e5313b284975c91428c91"; | ||
9130 | }; | ||
9131 | } | ||
9132 | { | ||
9133 | name = "workbox_core___workbox_core_4.3.1.tgz"; | ||
9134 | path = fetchurl { | ||
9135 | name = "workbox_core___workbox_core_4.3.1.tgz"; | ||
9136 | url = "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz"; | ||
9137 | sha1 = "005d2c6a06a171437afd6ca2904a5727ecd73be6"; | ||
9138 | }; | ||
9139 | } | ||
9140 | { | ||
9141 | name = "workbox_expiration___workbox_expiration_4.3.1.tgz"; | ||
9142 | path = fetchurl { | ||
9143 | name = "workbox_expiration___workbox_expiration_4.3.1.tgz"; | ||
9144 | url = "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz"; | ||
9145 | sha1 = "d790433562029e56837f341d7f553c4a78ebe921"; | ||
9146 | }; | ||
9147 | } | ||
9148 | { | ||
9149 | name = "workbox_google_analytics___workbox_google_analytics_4.3.1.tgz"; | ||
9150 | path = fetchurl { | ||
9151 | name = "workbox_google_analytics___workbox_google_analytics_4.3.1.tgz"; | ||
9152 | url = "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz"; | ||
9153 | sha1 = "9eda0183b103890b5c256e6f4ea15a1f1548519a"; | ||
9154 | }; | ||
9155 | } | ||
9156 | { | ||
9157 | name = "workbox_navigation_preload___workbox_navigation_preload_4.3.1.tgz"; | ||
9158 | path = fetchurl { | ||
9159 | name = "workbox_navigation_preload___workbox_navigation_preload_4.3.1.tgz"; | ||
9160 | url = "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz"; | ||
9161 | sha1 = "29c8e4db5843803b34cd96dc155f9ebd9afa453d"; | ||
9162 | }; | ||
9163 | } | ||
9164 | { | ||
9165 | name = "workbox_precaching___workbox_precaching_4.3.1.tgz"; | ||
9166 | path = fetchurl { | ||
9167 | name = "workbox_precaching___workbox_precaching_4.3.1.tgz"; | ||
9168 | url = "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz"; | ||
9169 | sha1 = "9fc45ed122d94bbe1f0ea9584ff5940960771cba"; | ||
9170 | }; | ||
9171 | } | ||
9172 | { | ||
9173 | name = "workbox_range_requests___workbox_range_requests_4.3.1.tgz"; | ||
9174 | path = fetchurl { | ||
9175 | name = "workbox_range_requests___workbox_range_requests_4.3.1.tgz"; | ||
9176 | url = "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz"; | ||
9177 | sha1 = "f8a470188922145cbf0c09a9a2d5e35645244e74"; | ||
9178 | }; | ||
9179 | } | ||
9180 | { | ||
9181 | name = "workbox_routing___workbox_routing_4.3.1.tgz"; | ||
9182 | path = fetchurl { | ||
9183 | name = "workbox_routing___workbox_routing_4.3.1.tgz"; | ||
9184 | url = "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz"; | ||
9185 | sha1 = "a675841af623e0bb0c67ce4ed8e724ac0bed0cda"; | ||
9186 | }; | ||
9187 | } | ||
9188 | { | ||
9189 | name = "workbox_strategies___workbox_strategies_4.3.1.tgz"; | ||
9190 | path = fetchurl { | ||
9191 | name = "workbox_strategies___workbox_strategies_4.3.1.tgz"; | ||
9192 | url = "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz"; | ||
9193 | sha1 = "d2be03c4ef214c115e1ab29c9c759c9fe3e9e646"; | ||
9194 | }; | ||
9195 | } | ||
9196 | { | ||
9197 | name = "workbox_streams___workbox_streams_4.3.1.tgz"; | ||
9198 | path = fetchurl { | ||
9199 | name = "workbox_streams___workbox_streams_4.3.1.tgz"; | ||
9200 | url = "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz"; | ||
9201 | sha1 = "0b57da70e982572de09c8742dd0cb40a6b7c2cc3"; | ||
9202 | }; | ||
9203 | } | ||
9204 | { | ||
9205 | name = "workbox_sw___workbox_sw_4.3.1.tgz"; | ||
9206 | path = fetchurl { | ||
9207 | name = "workbox_sw___workbox_sw_4.3.1.tgz"; | ||
9208 | url = "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz"; | ||
9209 | sha1 = "df69e395c479ef4d14499372bcd84c0f5e246164"; | ||
9210 | }; | ||
9211 | } | ||
9212 | { | ||
9213 | name = "workbox_webpack_plugin___workbox_webpack_plugin_4.3.1.tgz"; | ||
9214 | path = fetchurl { | ||
9215 | name = "workbox_webpack_plugin___workbox_webpack_plugin_4.3.1.tgz"; | ||
9216 | url = "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz"; | ||
9217 | sha1 = "47ff5ea1cc074b6c40fb5a86108863a24120d4bd"; | ||
9218 | }; | ||
9219 | } | ||
9220 | { | ||
9221 | name = "workbox_window___workbox_window_4.3.1.tgz"; | ||
9222 | path = fetchurl { | ||
9223 | name = "workbox_window___workbox_window_4.3.1.tgz"; | ||
9224 | url = "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz"; | ||
9225 | sha1 = "ee6051bf10f06afa5483c9b8dfa0531994ede0f3"; | ||
9226 | }; | ||
9227 | } | ||
9228 | { | ||
9229 | name = "worker_farm___worker_farm_1.7.0.tgz"; | ||
9230 | path = fetchurl { | ||
9231 | name = "worker_farm___worker_farm_1.7.0.tgz"; | ||
9232 | url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz"; | ||
9233 | sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8"; | ||
9234 | }; | ||
9235 | } | ||
9236 | { | ||
9237 | name = "wrap_ansi___wrap_ansi_5.1.0.tgz"; | ||
9238 | path = fetchurl { | ||
9239 | name = "wrap_ansi___wrap_ansi_5.1.0.tgz"; | ||
9240 | url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz"; | ||
9241 | sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09"; | ||
9242 | }; | ||
9243 | } | ||
9244 | { | ||
9245 | name = "wrap_ansi___wrap_ansi_6.2.0.tgz"; | ||
9246 | path = fetchurl { | ||
9247 | name = "wrap_ansi___wrap_ansi_6.2.0.tgz"; | ||
9248 | url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz"; | ||
9249 | sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53"; | ||
9250 | }; | ||
9251 | } | ||
9252 | { | ||
9253 | name = "wrappy___wrappy_1.0.2.tgz"; | ||
9254 | path = fetchurl { | ||
9255 | name = "wrappy___wrappy_1.0.2.tgz"; | ||
9256 | url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; | ||
9257 | sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; | ||
9258 | }; | ||
9259 | } | ||
9260 | { | ||
9261 | name = "write___write_1.0.3.tgz"; | ||
9262 | path = fetchurl { | ||
9263 | name = "write___write_1.0.3.tgz"; | ||
9264 | url = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz"; | ||
9265 | sha1 = "0800e14523b923a387e415123c865616aae0f5c3"; | ||
9266 | }; | ||
9267 | } | ||
9268 | { | ||
9269 | name = "ws___ws_6.2.1.tgz"; | ||
9270 | path = fetchurl { | ||
9271 | name = "ws___ws_6.2.1.tgz"; | ||
9272 | url = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz"; | ||
9273 | sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"; | ||
9274 | }; | ||
9275 | } | ||
9276 | { | ||
9277 | name = "xtend___xtend_4.0.2.tgz"; | ||
9278 | path = fetchurl { | ||
9279 | name = "xtend___xtend_4.0.2.tgz"; | ||
9280 | url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz"; | ||
9281 | sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54"; | ||
9282 | }; | ||
9283 | } | ||
9284 | { | ||
9285 | name = "y18n___y18n_4.0.0.tgz"; | ||
9286 | path = fetchurl { | ||
9287 | name = "y18n___y18n_4.0.0.tgz"; | ||
9288 | url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz"; | ||
9289 | sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b"; | ||
9290 | }; | ||
9291 | } | ||
9292 | { | ||
9293 | name = "yallist___yallist_2.1.2.tgz"; | ||
9294 | path = fetchurl { | ||
9295 | name = "yallist___yallist_2.1.2.tgz"; | ||
9296 | url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz"; | ||
9297 | sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; | ||
9298 | }; | ||
9299 | } | ||
9300 | { | ||
9301 | name = "yallist___yallist_3.1.1.tgz"; | ||
9302 | path = fetchurl { | ||
9303 | name = "yallist___yallist_3.1.1.tgz"; | ||
9304 | url = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz"; | ||
9305 | sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"; | ||
9306 | }; | ||
9307 | } | ||
9308 | { | ||
9309 | name = "yallist___yallist_4.0.0.tgz"; | ||
9310 | path = fetchurl { | ||
9311 | name = "yallist___yallist_4.0.0.tgz"; | ||
9312 | url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz"; | ||
9313 | sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72"; | ||
9314 | }; | ||
9315 | } | ||
9316 | { | ||
9317 | name = "yargs_parser___yargs_parser_13.1.2.tgz"; | ||
9318 | path = fetchurl { | ||
9319 | name = "yargs_parser___yargs_parser_13.1.2.tgz"; | ||
9320 | url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz"; | ||
9321 | sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38"; | ||
9322 | }; | ||
9323 | } | ||
9324 | { | ||
9325 | name = "yargs_parser___yargs_parser_18.1.3.tgz"; | ||
9326 | path = fetchurl { | ||
9327 | name = "yargs_parser___yargs_parser_18.1.3.tgz"; | ||
9328 | url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz"; | ||
9329 | sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0"; | ||
9330 | }; | ||
9331 | } | ||
9332 | { | ||
9333 | name = "yargs___yargs_13.3.2.tgz"; | ||
9334 | path = fetchurl { | ||
9335 | name = "yargs___yargs_13.3.2.tgz"; | ||
9336 | url = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz"; | ||
9337 | sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"; | ||
9338 | }; | ||
9339 | } | ||
9340 | { | ||
9341 | name = "yargs___yargs_15.3.1.tgz"; | ||
9342 | path = fetchurl { | ||
9343 | name = "yargs___yargs_15.3.1.tgz"; | ||
9344 | url = "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz"; | ||
9345 | sha1 = "9505b472763963e54afe60148ad27a330818e98b"; | ||
9346 | }; | ||
9347 | } | ||
9348 | { | ||
9349 | name = "yorkie___yorkie_2.0.0.tgz"; | ||
9350 | path = fetchurl { | ||
9351 | name = "yorkie___yorkie_2.0.0.tgz"; | ||
9352 | url = "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz"; | ||
9353 | sha1 = "92411912d435214e12c51c2ae1093e54b6bb83d9"; | ||
9354 | }; | ||
9355 | } | ||
9356 | ]; | ||
9357 | } | ||
diff --git a/modules/private/websites/tools/tools/ldap.nix b/modules/private/websites/tools/tools/ldap.nix deleted file mode 100644 index 2ca59f7..0000000 --- a/modules/private/websites/tools/tools/ldap.nix +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | { lib, php, env, writeText, phpldapadmin, config }: | ||
2 | rec { | ||
3 | activationScript = { | ||
4 | deps = [ "httpd" ]; | ||
5 | text = '' | ||
6 | install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/phpldapadmin | ||
7 | ''; | ||
8 | }; | ||
9 | keys."webapps/tools-ldap" = { | ||
10 | user = apache.user; | ||
11 | group = apache.group; | ||
12 | permissions = "0400"; | ||
13 | text = '' | ||
14 | <?php | ||
15 | $config->custom->appearance['show_clear_password'] = true; | ||
16 | $config->custom->appearance['hide_template_warning'] = true; | ||
17 | $config->custom->appearance['theme'] = "tango"; | ||
18 | $config->custom->appearance['minimalMode'] = false; | ||
19 | $config->custom->appearance['tree'] = 'AJAXTree'; | ||
20 | |||
21 | $servers = new Datastore(); | ||
22 | |||
23 | $servers->newServer('ldap_pla'); | ||
24 | $servers->setValue('server','name','Immae’s LDAP'); | ||
25 | $servers->setValue('server','host','ldaps://${env.ldap.host}'); | ||
26 | $servers->setValue('login','auth_type','cookie'); | ||
27 | $servers->setValue('login','bind_id','${env.ldap.dn}'); | ||
28 | $servers->setValue('login','bind_pass','${env.ldap.password}'); | ||
29 | $servers->setValue('appearance','pla_password_hash','ssha'); | ||
30 | $servers->setValue('login','attr','uid'); | ||
31 | $servers->setValue('login','fallback_dn',true); | ||
32 | ''; | ||
33 | }; | ||
34 | webRoot = phpldapadmin.override { config = config.secrets.fullPaths."webapps/tools-ldap"; }; | ||
35 | apache = rec { | ||
36 | user = "wwwrun"; | ||
37 | group = "wwwrun"; | ||
38 | modules = [ "proxy_fcgi" ]; | ||
39 | root = "${webRoot}/htdocs"; | ||
40 | vhostConf = socket: '' | ||
41 | Alias /ldap "${root}" | ||
42 | <Directory "${root}"> | ||
43 | DirectoryIndex index.php | ||
44 | <FilesMatch "\.php$"> | ||
45 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
46 | </FilesMatch> | ||
47 | |||
48 | AllowOverride None | ||
49 | Require all granted | ||
50 | </Directory> | ||
51 | ''; | ||
52 | }; | ||
53 | phpFpm = rec { | ||
54 | serviceDeps = [ "openldap.service" ]; | ||
55 | basedir = builtins.concatStringsSep ":" [ webRoot config.secrets.fullPaths."webapps/tools-ldap" ]; | ||
56 | pool = { | ||
57 | "listen.owner" = apache.user; | ||
58 | "listen.group" = apache.group; | ||
59 | "pm" = "ondemand"; | ||
60 | "pm.max_children" = "60"; | ||
61 | "pm.process_idle_timeout" = "60"; | ||
62 | |||
63 | # Needed to avoid clashes in browser cookies (same domain) | ||
64 | "php_value[session.name]" = "LdapPHPSESSID"; | ||
65 | "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/phpldapadmin"; | ||
66 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/phpldapadmin"; | ||
67 | }; | ||
68 | }; | ||
69 | } | ||
diff --git a/modules/private/websites/tools/tools/phpbb.nix b/modules/private/websites/tools/tools/phpbb.nix deleted file mode 100644 index 77845c3..0000000 --- a/modules/private/websites/tools/tools/phpbb.nix +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | { lib, phpbb, gnused }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/phpbb"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | if [ ! -d ${varDir} ]; then | ||
8 | install -m 0755 -o ${apache.user} -g ${apache.user} -d ${varDir} | ||
9 | cp -a ${phpbb}/vars/* ${varDir} | ||
10 | chown -R ${apache.user}:${apache.user} ${varDir} | ||
11 | fi | ||
12 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
13 | ''; | ||
14 | }; | ||
15 | webRoot = phpbb; | ||
16 | apache = rec { | ||
17 | user = "wwwrun"; | ||
18 | group = "wwwrun"; | ||
19 | modules = [ "proxy_fcgi" ]; | ||
20 | root = webRoot; | ||
21 | vhostConf = socket: '' | ||
22 | Alias /forum "${root}" | ||
23 | <Directory "${root}"> | ||
24 | DirectoryIndex index.php | ||
25 | <FilesMatch "\.php$"> | ||
26 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
27 | </FilesMatch> | ||
28 | |||
29 | AllowOverride All | ||
30 | Options FollowSymlinks | ||
31 | Require all granted | ||
32 | </Directory> | ||
33 | # add instal to the list after install | ||
34 | <LocationMatch "^/(cache|files|install|store)> | ||
35 | Require all denied | ||
36 | </LocationMatch> | ||
37 | ''; | ||
38 | }; | ||
39 | phpFpm = rec { | ||
40 | serviceDeps = [ "postgresql.service" ]; | ||
41 | basedir = builtins.concatStringsSep ":" [ "/run/wrappers/bin/sendmail" phpbb varDir ]; | ||
42 | pool = { | ||
43 | "listen.owner" = apache.user; | ||
44 | "listen.group" = apache.group; | ||
45 | "pm" = "ondemand"; | ||
46 | "pm.max_children" = "60"; | ||
47 | "pm.process_idle_timeout" = "60"; | ||
48 | |||
49 | # Needed to avoid clashes in browser cookies (same domain) | ||
50 | "php_value[session.name]" = "PhpBBPHPSESSID"; | ||
51 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
52 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
53 | }; | ||
54 | }; | ||
55 | } | ||
diff --git a/modules/private/websites/tools/tools/rompr.nix b/modules/private/websites/tools/tools/rompr.nix deleted file mode 100644 index e80d6b2..0000000 --- a/modules/private/websites/tools/tools/rompr.nix +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | { lib, env, rompr }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/rompr"; | ||
4 | activationScript = '' | ||
5 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ | ||
6 | ${varDir}/prefs ${varDir}/albumart ${varDir}/phpSessions | ||
7 | ''; | ||
8 | webRoot = rompr; | ||
9 | apache = rec { | ||
10 | user = "wwwrun"; | ||
11 | group = "wwwrun"; | ||
12 | modules = [ "headers" "mime" "proxy_fcgi" ]; | ||
13 | root = webRoot; | ||
14 | vhostConf = socket: '' | ||
15 | Alias /rompr ${root} | ||
16 | |||
17 | <Directory ${root}> | ||
18 | Options Indexes FollowSymLinks | ||
19 | DirectoryIndex index.php | ||
20 | AllowOverride all | ||
21 | Require all granted | ||
22 | Order allow,deny | ||
23 | Allow from all | ||
24 | ErrorDocument 404 /rompr/404.php | ||
25 | AddType image/x-icon .ico | ||
26 | |||
27 | <FilesMatch "\.php$"> | ||
28 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
29 | </FilesMatch> | ||
30 | </Directory> | ||
31 | |||
32 | <Directory ${root}/albumart/small> | ||
33 | Header Set Cache-Control "max-age=0, no-store" | ||
34 | Header Set Cache-Control "no-cache, must-revalidate" | ||
35 | </Directory> | ||
36 | |||
37 | <Directory ${root}/albumart/asdownloaded> | ||
38 | Header Set Cache-Control "max-age=0, no-store" | ||
39 | Header Set Cache-Control "no-cache, must-revalidate" | ||
40 | </Directory> | ||
41 | |||
42 | <LocationMatch "^/rompr"> | ||
43 | Use LDAPConnect | ||
44 | Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu | ||
45 | </LocationMatch> | ||
46 | ''; | ||
47 | }; | ||
48 | phpFpm = rec { | ||
49 | basedir = builtins.concatStringsSep ":" [ webRoot varDir ]; | ||
50 | pool = { | ||
51 | "listen.owner" = apache.user; | ||
52 | "listen.group" = apache.group; | ||
53 | "pm" = "ondemand"; | ||
54 | "pm.max_children" = "60"; | ||
55 | "pm.process_idle_timeout" = "60"; | ||
56 | |||
57 | # Needed to avoid clashes in browser cookies (same domain) | ||
58 | "php_value[session.name]" = "RomprPHPSESSID"; | ||
59 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
60 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
61 | "php_flag[magic_quotes_gpc]" = "Off"; | ||
62 | "php_flag[track_vars]" = "On"; | ||
63 | "php_flag[register_globals]" = "Off"; | ||
64 | "php_admin_flag[allow_url_fopen]" = "On"; | ||
65 | "php_value[include_path]" = "${webRoot}"; | ||
66 | "php_admin_value[upload_tmp_dir]" = "${varDir}/prefs"; | ||
67 | "php_admin_value[post_max_size]" = "32M"; | ||
68 | "php_admin_value[upload_max_filesize]" = "32M"; | ||
69 | "php_admin_value[memory_limit]" = "256M"; | ||
70 | }; | ||
71 | }; | ||
72 | } | ||
diff --git a/modules/private/websites/tools/tools/shaarli.nix b/modules/private/websites/tools/tools/shaarli.nix deleted file mode 100644 index d128465..0000000 --- a/modules/private/websites/tools/tools/shaarli.nix +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | { lib, env, stdenv, fetchurl, shaarli, config }: | ||
2 | let | ||
3 | varDir = "/var/lib/shaarli"; | ||
4 | in rec { | ||
5 | activationScript = '' | ||
6 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ | ||
7 | ${varDir}/cache ${varDir}/pagecache ${varDir}/tmp ${varDir}/data \ | ||
8 | ${varDir}/phpSessions | ||
9 | ''; | ||
10 | webRoot = shaarli varDir; | ||
11 | apache = rec { | ||
12 | user = "wwwrun"; | ||
13 | group = "wwwrun"; | ||
14 | modules = [ "proxy_fcgi" "rewrite" "env" ]; | ||
15 | root = webRoot; | ||
16 | vhostConf = socket: '' | ||
17 | Alias /Shaarli "${root}" | ||
18 | |||
19 | Include ${config.secrets.fullPaths."webapps/tools-shaarli"} | ||
20 | <Location /Shaarli> | ||
21 | Header set Access-Control-Allow-Origin "*" | ||
22 | Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" | ||
23 | Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization, Client-Security-Token, Accept-Encoding" | ||
24 | </Location> | ||
25 | <Directory "${root}"> | ||
26 | DirectoryIndex index.php index.htm index.html | ||
27 | Options Indexes FollowSymLinks MultiViews Includes | ||
28 | AllowOverride All | ||
29 | Require all granted | ||
30 | <FilesMatch "\.php$"> | ||
31 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
32 | </FilesMatch> | ||
33 | </Directory> | ||
34 | ''; | ||
35 | }; | ||
36 | keys."webapps/tools-shaarli" = { | ||
37 | user = apache.user; | ||
38 | group = apache.group; | ||
39 | permissions = "0400"; | ||
40 | text = '' | ||
41 | SetEnv SHAARLI_LDAP_PASSWORD "${env.ldap.password}" | ||
42 | SetEnv SHAARLI_LDAP_DN "${env.ldap.dn}" | ||
43 | SetEnv SHAARLI_LDAP_HOST "ldaps://${env.ldap.host}" | ||
44 | SetEnv SHAARLI_LDAP_BASE "${env.ldap.base}" | ||
45 | SetEnv SHAARLI_LDAP_FILTER "${env.ldap.filter}" | ||
46 | ''; | ||
47 | }; | ||
48 | phpFpm = rec { | ||
49 | serviceDeps = [ "openldap.service" ]; | ||
50 | basedir = builtins.concatStringsSep ":" [ webRoot varDir ]; | ||
51 | pool = { | ||
52 | "listen.owner" = apache.user; | ||
53 | "listen.group" = apache.group; | ||
54 | "pm" = "ondemand"; | ||
55 | "pm.max_children" = "60"; | ||
56 | "pm.process_idle_timeout" = "60"; | ||
57 | |||
58 | # Needed to avoid clashes in browser cookies (same domain) | ||
59 | "php_value[session.name]" = "ShaarliPHPSESSID"; | ||
60 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
61 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
62 | "php_admin_value[upload_max_filesize]" = "200M"; | ||
63 | "php_admin_value[post_max_size]" = "200M"; | ||
64 | }; | ||
65 | }; | ||
66 | } | ||
diff --git a/modules/private/websites/tools/tools/ttrss.nix b/modules/private/websites/tools/tools/ttrss.nix deleted file mode 100644 index 1dc99ed..0000000 --- a/modules/private/websites/tools/tools/ttrss.nix +++ /dev/null | |||
@@ -1,129 +0,0 @@ | |||
1 | { php, env, ttrss, ttrss-plugins, config }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/ttrss"; | ||
4 | activationScript = { | ||
5 | deps = [ "wrappers" ]; | ||
6 | text = '' | ||
7 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ | ||
8 | ${varDir}/lock ${varDir}/cache ${varDir}/feed-icons | ||
9 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/cache/export/ \ | ||
10 | ${varDir}/cache/feeds/ \ | ||
11 | ${varDir}/cache/images/ \ | ||
12 | ${varDir}/cache/js/ \ | ||
13 | ${varDir}/cache/simplepie/ \ | ||
14 | ${varDir}/cache/upload/ | ||
15 | touch ${varDir}/feed-icons/index.html | ||
16 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | ||
17 | ''; | ||
18 | }; | ||
19 | keys."webapps/tools-ttrss" = { | ||
20 | user = apache.user; | ||
21 | group = apache.group; | ||
22 | permissions = "0400"; | ||
23 | text = '' | ||
24 | <?php | ||
25 | |||
26 | define('PHP_EXECUTABLE', '${php}/bin/php'); | ||
27 | |||
28 | define('LOCK_DIRECTORY', 'lock'); | ||
29 | define('CACHE_DIR', 'cache'); | ||
30 | define('ICONS_DIR', 'feed-icons'); | ||
31 | define('ICONS_URL', 'feed-icons'); | ||
32 | define('SELF_URL_PATH', 'https://tools.immae.eu/ttrss/'); | ||
33 | |||
34 | define('MYSQL_CHARSET', 'UTF8'); | ||
35 | |||
36 | define('DB_TYPE', 'pgsql'); | ||
37 | define('DB_HOST', '${env.postgresql.socket}'); | ||
38 | define('DB_USER', '${env.postgresql.user}'); | ||
39 | define('DB_NAME', '${env.postgresql.database}'); | ||
40 | define('DB_PASS', '${env.postgresql.password}'); | ||
41 | define('DB_PORT', '${env.postgresql.port}'); | ||
42 | |||
43 | define('AUTH_AUTO_CREATE', true); | ||
44 | define('AUTH_AUTO_LOGIN', true); | ||
45 | |||
46 | define('SINGLE_USER_MODE', false); | ||
47 | |||
48 | define('SIMPLE_UPDATE_MODE', false); | ||
49 | define('CHECK_FOR_UPDATES', true); | ||
50 | |||
51 | define('FORCE_ARTICLE_PURGE', 0); | ||
52 | define('SESSION_COOKIE_LIFETIME', 60*60*24*120); | ||
53 | define('ENABLE_GZIP_OUTPUT', false); | ||
54 | |||
55 | define('PLUGINS', 'auth_ldap, note, instances'); | ||
56 | |||
57 | define('LOG_DESTINATION', '''); | ||
58 | define('CONFIG_VERSION', 26); | ||
59 | |||
60 | |||
61 | define('SPHINX_SERVER', 'localhost:9312'); | ||
62 | define('SPHINX_INDEX', 'ttrss, delta'); | ||
63 | |||
64 | define('ENABLE_REGISTRATION', false); | ||
65 | define('REG_NOTIFY_ADDRESS', 'ttrss@tools.immae.eu'); | ||
66 | define('REG_MAX_USERS', 10); | ||
67 | |||
68 | define('SMTP_FROM_NAME', 'Tiny Tiny RSS'); | ||
69 | define('SMTP_FROM_ADDRESS', 'ttrss@tools.immae.eu'); | ||
70 | define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours'); | ||
71 | |||
72 | define('LDAP_AUTH_SERVER_URI', 'ldap://${env.ldap.host}:389/'); | ||
73 | define('LDAP_AUTH_USETLS', TRUE); | ||
74 | define('LDAP_AUTH_ALLOW_UNTRUSTED_CERT', TRUE); | ||
75 | define('LDAP_AUTH_BASEDN', '${env.ldap.base}'); | ||
76 | define('LDAP_AUTH_ANONYMOUSBEFOREBIND', FALSE); | ||
77 | define('LDAP_AUTH_SEARCHFILTER', '${env.ldap.filter}'); | ||
78 | |||
79 | define('LDAP_AUTH_BINDDN', '${env.ldap.dn}'); | ||
80 | define('LDAP_AUTH_BINDPW', '${env.ldap.password}'); | ||
81 | define('LDAP_AUTH_LOGIN_ATTRIB', 'immaeTtrssLogin'); | ||
82 | |||
83 | define('LDAP_AUTH_LOG_ATTEMPTS', FALSE); | ||
84 | define('LDAP_AUTH_DEBUG', FALSE); | ||
85 | ''; | ||
86 | }; | ||
87 | webRoot = (ttrss.override { ttrss_config = config.secrets.fullPaths."webapps/tools-ttrss"; }).withPlugins (p: [ | ||
88 | p.auth_ldap p.ff_instagram p.tumblr_gdpr_ua | ||
89 | (p.af_feedmod.override { patched = true; }) | ||
90 | (p.feediron.override { patched = true; }) | ||
91 | ]); | ||
92 | apache = rec { | ||
93 | user = "wwwrun"; | ||
94 | group = "wwwrun"; | ||
95 | modules = [ "proxy_fcgi" ]; | ||
96 | root = webRoot; | ||
97 | vhostConf = socket: '' | ||
98 | Alias /ttrss "${root}" | ||
99 | <Directory "${root}"> | ||
100 | DirectoryIndex index.php | ||
101 | <FilesMatch "\.php$"> | ||
102 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
103 | </FilesMatch> | ||
104 | |||
105 | AllowOverride All | ||
106 | Options FollowSymlinks | ||
107 | Require all granted | ||
108 | </Directory> | ||
109 | ''; | ||
110 | }; | ||
111 | phpFpm = rec { | ||
112 | serviceDeps = [ "postgresql.service" "openldap.service" ]; | ||
113 | basedir = builtins.concatStringsSep ":" ( | ||
114 | [ webRoot config.secrets.fullPaths."webapps/tools-ttrss" varDir ] | ||
115 | ++ webRoot.plugins); | ||
116 | pool = { | ||
117 | "listen.owner" = apache.user; | ||
118 | "listen.group" = apache.group; | ||
119 | "pm" = "ondemand"; | ||
120 | "pm.max_children" = "60"; | ||
121 | "pm.process_idle_timeout" = "60"; | ||
122 | |||
123 | # Needed to avoid clashes in browser cookies (same domain) | ||
124 | "php_value[session.name]" = "TtrssPHPSESSID"; | ||
125 | "php_admin_value[open_basedir]" = "${basedir}:/tmp"; | ||
126 | "php_admin_value[session.save_path]" = "${varDir}/phpSessions"; | ||
127 | }; | ||
128 | }; | ||
129 | } | ||
diff --git a/modules/private/websites/tools/tools/wallabag.nix b/modules/private/websites/tools/tools/wallabag.nix deleted file mode 100644 index 0ebdb0b..0000000 --- a/modules/private/websites/tools/tools/wallabag.nix +++ /dev/null | |||
@@ -1,142 +0,0 @@ | |||
1 | { env, wallabag, mylibs, config }: | ||
2 | rec { | ||
3 | varDir = "/var/lib/wallabag"; | ||
4 | keys."webapps/tools-wallabag" = { | ||
5 | user = apache.user; | ||
6 | group = apache.group; | ||
7 | permissions = "0400"; | ||
8 | text = '' | ||
9 | # This file is auto-generated during the composer install | ||
10 | parameters: | ||
11 | database_driver: pdo_pgsql | ||
12 | database_driver_class: Wallabag\CoreBundle\Doctrine\DBAL\Driver\CustomPostgreSQLDriver | ||
13 | database_host: ${env.postgresql.socket} | ||
14 | database_port: ${env.postgresql.port} | ||
15 | database_name: ${env.postgresql.database} | ||
16 | database_user: ${env.postgresql.user} | ||
17 | database_password: ${env.postgresql.password} | ||
18 | database_path: null | ||
19 | database_table_prefix: wallabag_ | ||
20 | database_socket: null | ||
21 | database_charset: utf8 | ||
22 | domain_name: https://tools.immae.eu/wallabag | ||
23 | mailer_transport: sendmail | ||
24 | mailer_host: 127.0.0.1 | ||
25 | mailer_user: null | ||
26 | mailer_password: null | ||
27 | locale: fr | ||
28 | secret: ${env.secret} | ||
29 | twofactor_auth: true | ||
30 | twofactor_sender: wallabag@tools.immae.eu | ||
31 | fosuser_registration: false | ||
32 | fosuser_confirmation: true | ||
33 | from_email: wallabag@tools.immae.eu | ||
34 | rss_limit: 50 | ||
35 | rabbitmq_host: localhost | ||
36 | rabbitmq_port: 5672 | ||
37 | rabbitmq_user: guest | ||
38 | rabbitmq_password: guest | ||
39 | rabbitmq_prefetch_count: 10 | ||
40 | redis_scheme: unix | ||
41 | redis_host: null | ||
42 | redis_port: null | ||
43 | redis_path: ${env.redis.socket} | ||
44 | redis_password: null | ||
45 | sites_credentials: { } | ||
46 | ldap_enabled: true | ||
47 | ldap_host: ${env.ldap.host} | ||
48 | ldap_port: 636 | ||
49 | ldap_tls: false | ||
50 | ldap_ssl: true | ||
51 | ldap_bind_requires_dn: true | ||
52 | ldap_base: '${env.ldap.base}' | ||
53 | ldap_manager_dn: '${env.ldap.dn}' | ||
54 | ldap_manager_pw: ${env.ldap.password} | ||
55 | ldap_filter: '${env.ldap.filter}' | ||
56 | ldap_admin_filter: '${env.ldap.admin_filter}' | ||
57 | ldap_username_attribute: uid | ||
58 | ldap_email_attribute: mail | ||
59 | ldap_name_attribute: cn | ||
60 | ldap_enabled_attribute: null | ||
61 | services: | ||
62 | swiftmailer.mailer.default.transport: | ||
63 | class: Swift_SendmailTransport | ||
64 | arguments: ['/run/wrappers/bin/sendmail -bs'] | ||
65 | ''; | ||
66 | }; | ||
67 | webappDir = wallabag.override { ldap = true; wallabag_config = config.secrets.fullPaths."webapps/tools-wallabag"; }; | ||
68 | activationScript = '' | ||
69 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \ | ||
70 | ${varDir}/var ${varDir}/data/db ${varDir}/assets/images | ||
71 | ''; | ||
72 | webRoot = "${webappDir}/web"; | ||
73 | # Domain migration: Table wallabag_entry contains whole | ||
74 | # https://tools.immae.eu/wallabag domain name in preview_picture | ||
75 | apache = rec { | ||
76 | user = "wwwrun"; | ||
77 | group = "wwwrun"; | ||
78 | modules = [ "proxy_fcgi" ]; | ||
79 | root = webRoot; | ||
80 | vhostConf = socket: '' | ||
81 | Alias /wallabag "${root}" | ||
82 | <Directory "${root}"> | ||
83 | AllowOverride None | ||
84 | Require all granted | ||
85 | # For OAuth (apps) | ||
86 | CGIPassAuth On | ||
87 | |||
88 | <FilesMatch "\.php$"> | ||
89 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
90 | </FilesMatch> | ||
91 | |||
92 | <IfModule mod_rewrite.c> | ||
93 | Options -MultiViews | ||
94 | RewriteEngine On | ||
95 | RewriteCond %{REQUEST_FILENAME} !-f | ||
96 | RewriteRule ^(.*)$ app.php [QSA,L] | ||
97 | </IfModule> | ||
98 | </Directory> | ||
99 | <Directory "${root}/bundles"> | ||
100 | <IfModule mod_rewrite.c> | ||
101 | RewriteEngine Off | ||
102 | </IfModule> | ||
103 | </Directory> | ||
104 | <Directory "${varDir}/assets"> | ||
105 | AllowOverride None | ||
106 | Require all granted | ||
107 | </Directory> | ||
108 | ''; | ||
109 | }; | ||
110 | phpFpm = rec { | ||
111 | preStart = '' | ||
112 | if [ ! -f "${varDir}/currentWebappDir" -o \ | ||
113 | ! -f "${varDir}/currentKey" -o \ | ||
114 | "${webappDir}" != "$(cat ${varDir}/currentWebappDir 2>/dev/null)" ] \ | ||
115 | || ! sha512sum -c --status ${varDir}/currentKey; then | ||
116 | pushd ${webappDir} > /dev/null | ||
117 | /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod cache:clear | ||
118 | rm -rf /var/lib/wallabag/var/cache/pro_ | ||
119 | /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod doctrine:migrations:migrate --no-interaction | ||
120 | popd > /dev/null | ||
121 | echo -n "${webappDir}" > ${varDir}/currentWebappDir | ||
122 | sha512sum ${config.secrets.fullPaths."webapps/tools-wallabag"} > ${varDir}/currentKey | ||
123 | fi | ||
124 | ''; | ||
125 | serviceDeps = [ "postgresql.service" "openldap.service" ]; | ||
126 | basedir = builtins.concatStringsSep ":" [ webappDir config.secrets.fullPaths."webapps/tools-wallabag" varDir ]; | ||
127 | pool = { | ||
128 | "listen.owner" = apache.user; | ||
129 | "listen.group" = apache.group; | ||
130 | "pm" = "dynamic"; | ||
131 | "pm.max_children" = "60"; | ||
132 | "pm.start_servers" = "2"; | ||
133 | "pm.min_spare_servers" = "1"; | ||
134 | "pm.max_spare_servers" = "10"; | ||
135 | |||
136 | # Needed to avoid clashes in browser cookies (same domain) | ||
137 | "php_value[session.name]" = "WallabagPHPSESSID"; | ||
138 | "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${basedir}:/tmp"; | ||
139 | "php_value[max_execution_time]" = "300"; | ||
140 | }; | ||
141 | }; | ||
142 | } | ||
diff --git a/modules/private/websites/tools/tools/webhooks.nix b/modules/private/websites/tools/tools/webhooks.nix deleted file mode 100644 index 785e22b..0000000 --- a/modules/private/websites/tools/tools/webhooks.nix +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | { lib, env }: | ||
2 | { | ||
3 | keys = lib.attrsets.mapAttrs' (k: v: | ||
4 | lib.nameValuePair "webapps/webhooks/${k}.php" { | ||
5 | user = "wwwrun"; | ||
6 | group = "wwwrun"; | ||
7 | permissions = "0400"; | ||
8 | text = v; | ||
9 | }) env // { | ||
10 | "webapps/webhooks" = { | ||
11 | isDir = true; | ||
12 | user = "wwwrun"; | ||
13 | group = "wwwrun"; | ||
14 | permissions = "0500"; | ||
15 | }; | ||
16 | }; | ||
17 | } | ||
diff --git a/modules/private/websites/tools/tools/ympd.nix b/modules/private/websites/tools/tools/ympd.nix deleted file mode 100644 index 531b1a9..0000000 --- a/modules/private/websites/tools/tools/ympd.nix +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | { env }: | ||
2 | let | ||
3 | ympd = rec { | ||
4 | config = { | ||
5 | webPort = "localhost:${toString env.listenPort}"; | ||
6 | host = env.mpd.host; | ||
7 | port = env.mpd.port; | ||
8 | }; | ||
9 | apache = { | ||
10 | modules = [ | ||
11 | "proxy_wstunnel" | ||
12 | ]; | ||
13 | vhostConf = '' | ||
14 | <LocationMatch "^/mpd(?!/music.(mp3|ogg))"> | ||
15 | Use LDAPConnect | ||
16 | Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu | ||
17 | </LocationMatch> | ||
18 | |||
19 | RedirectMatch permanent "^/mpd$" "/mpd/" | ||
20 | <Location "/mpd/"> | ||
21 | ProxyPass http://${config.webPort}/ | ||
22 | ProxyPassReverse http://${config.webPort}/ | ||
23 | ProxyPreserveHost on | ||
24 | </Location> | ||
25 | <Location "/mpd/ws"> | ||
26 | ProxyPass ws://${config.webPort}/ws | ||
27 | </Location> | ||
28 | <Location "/mpd/music.mp3"> | ||
29 | ProxyPass unix:///run/mpd/mp3.sock|http://tools.immae.eu/mpd/mp3 | ||
30 | ProxyPassReverse unix:///run/mpd/mp3.sock|http://tools.immae.eu/mpd/mp3 | ||
31 | </Location> | ||
32 | <Location "/mpd/music.ogg"> | ||
33 | ProxyPass unix:///run/mpd/ogg.sock|http://tools.immae.eu/mpd/ogg | ||
34 | ProxyPassReverse unix:///run/mpd/ogg.sock|http://tools.immae.eu/mpd/ogg | ||
35 | </Location> | ||
36 | ''; | ||
37 | }; | ||
38 | }; | ||
39 | in | ||
40 | ympd | ||
diff --git a/modules/private/websites/tools/tools/yourls.nix b/modules/private/websites/tools/tools/yourls.nix deleted file mode 100644 index 3717520..0000000 --- a/modules/private/websites/tools/tools/yourls.nix +++ /dev/null | |||
@@ -1,86 +0,0 @@ | |||
1 | { env, yourls, yourls-plugins, config }: | ||
2 | rec { | ||
3 | activationScript = { | ||
4 | deps = [ "httpd" ]; | ||
5 | text = '' | ||
6 | install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/yourls | ||
7 | ''; | ||
8 | }; | ||
9 | keys."webapps/tools-yourls" = { | ||
10 | user = apache.user; | ||
11 | group = apache.group; | ||
12 | permissions = "0400"; | ||
13 | text = '' | ||
14 | <?php | ||
15 | define( 'YOURLS_DB_USER', '${env.mysql.user}' ); | ||
16 | define( 'YOURLS_DB_PASS', '${env.mysql.password}' ); | ||
17 | define( 'YOURLS_DB_NAME', '${env.mysql.database}' ); | ||
18 | define( 'YOURLS_DB_HOST', '${env.mysql.host}' ); | ||
19 | define( 'YOURLS_DB_PREFIX', 'yourls_' ); | ||
20 | define( 'YOURLS_SITE', 'https://tools.immae.eu/url' ); | ||
21 | define( 'YOURLS_HOURS_OFFSET', 0 ); | ||
22 | define( 'YOURLS_LANG', ''' ); | ||
23 | define( 'YOURLS_UNIQUE_URLS', true ); | ||
24 | define( 'YOURLS_PRIVATE', true ); | ||
25 | define( 'YOURLS_COOKIEKEY', '${env.cookieKey}' ); | ||
26 | $yourls_user_passwords = array(); | ||
27 | define( 'YOURLS_DEBUG', false ); | ||
28 | define( 'YOURLS_URL_CONVERT', 36 ); | ||
29 | $yourls_reserved_URL = array(); | ||
30 | define( 'LDAPAUTH_HOST', 'ldaps://${env.ldap.host}' ); | ||
31 | define( 'LDAPAUTH_PORT', '636' ); | ||
32 | define( 'LDAPAUTH_BASE', '${env.ldap.base}' ); | ||
33 | define( 'LDAPAUTH_SEARCH_USER', '${env.ldap.dn}' ); | ||
34 | define( 'LDAPAUTH_SEARCH_PASS', '${env.ldap.password}' ); | ||
35 | |||
36 | define( 'LDAPAUTH_GROUP_ATTR', 'memberof' ); | ||
37 | define( 'LDAPAUTH_GROUP_REQ', 'cn=admin,cn=yourls,ou=services,dc=immae,dc=eu'); | ||
38 | |||
39 | define( 'LDAPAUTH_USERCACHE_TYPE', 0); | ||
40 | ''; | ||
41 | }; | ||
42 | webRoot = (yourls.override { yourls_config = config.secrets.fullPaths."webapps/tools-yourls"; }).withPlugins (p: [p.ldap]); | ||
43 | apache = rec { | ||
44 | user = "wwwrun"; | ||
45 | group = "wwwrun"; | ||
46 | modules = [ "proxy_fcgi" ]; | ||
47 | root = webRoot; | ||
48 | vhostConf = socket: '' | ||
49 | Alias /url "${root}" | ||
50 | <Directory "${root}"> | ||
51 | <FilesMatch "\.php$"> | ||
52 | SetHandler "proxy:unix:${socket}|fcgi://localhost" | ||
53 | </FilesMatch> | ||
54 | |||
55 | AllowOverride None | ||
56 | Require all granted | ||
57 | <IfModule mod_rewrite.c> | ||
58 | RewriteEngine On | ||
59 | RewriteBase /url/ | ||
60 | RewriteCond %{REQUEST_FILENAME} !-f | ||
61 | RewriteCond %{REQUEST_FILENAME} !-d | ||
62 | RewriteRule ^.*$ /url/yourls-loader.php [L] | ||
63 | </IfModule> | ||
64 | DirectoryIndex index.php | ||
65 | </Directory> | ||
66 | ''; | ||
67 | }; | ||
68 | phpFpm = rec { | ||
69 | serviceDeps = [ "mysql.service" "openldap.service" ]; | ||
70 | basedir = builtins.concatStringsSep ":" ( | ||
71 | [ webRoot config.secrets.fullPaths."webapps/tools-yourls" ] | ||
72 | ++ webRoot.plugins); | ||
73 | pool = { | ||
74 | "listen.owner" = apache.user; | ||
75 | "listen.group" = apache.group; | ||
76 | "pm" = "ondemand"; | ||
77 | "pm.max_children" = "60"; | ||
78 | "pm.process_idle_timeout" = "60"; | ||
79 | |||
80 | # Needed to avoid clashes in browser cookies (same domain) | ||
81 | "php_value[session.name]" = "YourlsPHPSESSID"; | ||
82 | "php_admin_value[open_basedir]" = "${basedir}:/tmp:/var/lib/php/sessions/yourls"; | ||
83 | "php_admin_value[session.save_path]" = "/var/lib/php/sessions/yourls"; | ||
84 | }; | ||
85 | }; | ||
86 | } | ||
diff --git a/modules/private/websites/tools/vpn/default.nix b/modules/private/websites/tools/vpn/default.nix deleted file mode 100644 index 9cd499b..0000000 --- a/modules/private/websites/tools/vpn/default.nix +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.vpn; | ||
4 | in { | ||
5 | config = lib.mkIf cfg.enable { | ||
6 | services.websites.env.tools.vhostConfs.vpn = { | ||
7 | certName = "eldiron"; | ||
8 | addToCerts = true; | ||
9 | hosts = [ "vpn.immae.eu" ]; | ||
10 | root = ./www; | ||
11 | }; | ||
12 | }; | ||
13 | } | ||
diff --git a/modules/private/websites/tools/vpn/www/index.html b/modules/private/websites/tools/vpn/www/index.html deleted file mode 100644 index fc2618a..0000000 --- a/modules/private/websites/tools/vpn/www/index.html +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | ||
2 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
3 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
4 | <head> | ||
5 | <title>VPN configuration</title> | ||
6 | <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> | ||
7 | <link rel="stylesheet" href="style.css" type="text/css" /> | ||
8 | <meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
9 | </head> | ||
10 | <body> | ||
11 | <div class="instructions"> | ||
12 | <h2>Installation</h2> | ||
13 | <ul> | ||
14 | <li>Installer tinc</li> | ||
15 | <li>Créer un fichier /etc/tinc/Immae/tinc.conf sur ce modèle, en remplaçant la ligne <code>A choisir</code> par un nom de la forme DomaineMachine. La machine sera accessible par <code>machine.domaine.immae.eu</code> par la suite | ||
16 | <pre> | ||
17 | Name = A choisir | ||
18 | Mode = switch | ||
19 | Interface = vpn6 | ||
20 | ConnectTo = ImmaeEu | ||
21 | |||
22 | # The tap device tinc will use. | ||
23 | # Default is /dev/tap0 for ethertap or FreeBSD, | ||
24 | # /dev/tun0 for Solaris and OpenBSD, | ||
25 | # and /dev/net/tun for Linux tun/tap device. | ||
26 | Device = /dev/net/tun | ||
27 | LocalDiscovery = yes | ||
28 | </pre> | ||
29 | </li> | ||
30 | <li>Vérifier l'existence du device indiqué à la ligne "<code>Device</code>" dans le système. | ||
31 | <pre>ls /dev/net/tun</pre> | ||
32 | </li> | ||
33 | <li><em class="important">Si tinc tourne déjà, l'arrêter !!</em></li> | ||
34 | <li>Générer les clés : | ||
35 | <pre>tincd -K -n Immae</pre> | ||
36 | Stocker la clé privée dans <code>/etc/tinc/Immae/rsa_key.priv</code> et la clé publique dans un autre dossier<br /> | ||
37 | (<em>pas <code>/etc/tinc/Immae/hosts/</code> comme proposé par défaut</em>).<br /> | ||
38 | L'endroit importe peu, elle ne sera pas conservée.</li> | ||
39 | <li>M'envoyer le nom choisi dans <code>tinc.conf</code>, et la clé publique</li> | ||
40 | <li>Cloner le dépôt des hôtes du réseau | ||
41 | <pre> | ||
42 | cd /etc/tinc/Immae | ||
43 | git clone https://git.immae.eu/perso/Immae/Config/tinc/hosts | ||
44 | </pre> | ||
45 | </li> | ||
46 | <li>Une fois que j'ai confirmé avoir reçu la clé : | ||
47 | <pre> | ||
48 | cd /etc/tinc/Immae/hosts | ||
49 | git pull origin master | ||
50 | </pre> | ||
51 | </li> | ||
52 | <li>Uniquement pour Debian/Ubuntu: Ajouter <code>Immae</code> dans <code>/etc/tinc/nets.boot</code> (créer le fichier si nécessaire).</li> | ||
53 | <li>Selon le système, démarrer tinc : | ||
54 | <pre> | ||
55 | /etc/init.d/tinc start | ||
56 | </pre> | ||
57 | ou | ||
58 | <pre> | ||
59 | systemctl enable tincd@Immae.service | ||
60 | systemctl start tincd@Immae.service | ||
61 | </pre> | ||
62 | </li> | ||
63 | </ul> | ||
64 | |||
65 | <h2>Choix d'ip</h2> | ||
66 | <ul> | ||
67 | <li>Choisir une ip : <code>2001:aaaa:b:cccc:d::xxxx:yyyy/96</code> (le préfixe <code>2001:aaaa:b:cccc:d</code> est imposé). Choix uniquement sur le <code>yyyy</code> (n'importe quel nombre entre <code>1</code> et <code>ffff</code>), le <code>xxxx</code> est dépendant du domaine</li> | ||
68 | <li>M'envoyer le choix de l'ip</li> | ||
69 | |||
70 | <li>Si on veut éviter de passer systématiquement par le serveur immae.eu (Par | ||
71 | défaut linux préfère l'ipv6 dès qu'il en a possibilité), modifier le fichier | ||
72 | <code>/etc/gai.conf</code>. Quelques lignes à décommenter, tout est déjà dans le fichier : | ||
73 | <pre> | ||
74 | (...) | ||
75 | # | ||
76 | precedence ::1/128 50 | ||
77 | precedence ::/0 40 | ||
78 | precedence 2002::/16 30 | ||
79 | precedence ::/96 20 | ||
80 | #precedence ::ffff:0:0/96 10 | ||
81 | # | ||
82 | # For sites which prefer IPv4 connections change the last line to | ||
83 | # | ||
84 | precedence ::ffff:0:0/96 100 | ||
85 | (...) | ||
86 | </pre> | ||
87 | </li> | ||
88 | </ul> | ||
89 | </div> | ||
90 | </body> | ||
91 | </html> | ||
diff --git a/modules/private/websites/tools/vpn/www/style.css b/modules/private/websites/tools/vpn/www/style.css deleted file mode 100644 index b177fec..0000000 --- a/modules/private/websites/tools/vpn/www/style.css +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | * { | ||
2 | margin:0; | ||
3 | padding:0; | ||
4 | -webkit-box-sizing:border-box; | ||
5 | -moz-box-sizing:border-box; | ||
6 | box-sizing: border-box; | ||
7 | } | ||
8 | |||
9 | html { | ||
10 | min-height:100%; | ||
11 | border-top:10px solid #ECEEF1; | ||
12 | border-bottom:10px solid #ECEEF1; | ||
13 | color:#61666c; | ||
14 | font-weight:400; | ||
15 | font-size:1em; | ||
16 | font-family:'Open Sans', sans-serif; | ||
17 | line-height:2em; | ||
18 | } | ||
19 | body { | ||
20 | padding:20px; | ||
21 | -webkit-backface-visibility:hidden; | ||
22 | } | ||
23 | code { | ||
24 | font-family:consolas,monospace; | ||
25 | } | ||
26 | a { | ||
27 | color:#61666c; | ||
28 | text-decoration:none; | ||
29 | } | ||
30 | a, img { | ||
31 | border:none; | ||
32 | outline:none | ||
33 | } | ||
34 | a:hover { | ||
35 | color:#2a2a2a; | ||
36 | } | ||
37 | |||
38 | .instructions { | ||
39 | margin:0 auto; | ||
40 | padding-top:20px; | ||
41 | max-width:80%; | ||
42 | } | ||
43 | |||
44 | .instructions a { | ||
45 | text-decoration: underline; | ||
46 | } | ||
47 | |||
48 | .instructions h2 { | ||
49 | margin-top: 10px; | ||
50 | } | ||
51 | .instructions em.important:before { | ||
52 | content: "⚠ Important ⚠ "; | ||
53 | color: red; | ||
54 | } | ||
55 | .instructions pre { | ||
56 | width: 50em; | ||
57 | padding: 10px 15px; | ||
58 | display: table; | ||
59 | border: 1px inset black; | ||
60 | line-height: 1em; | ||
61 | } | ||
diff --git a/modules/webapps/diaspora.nix b/modules/webapps/diaspora.nix deleted file mode 100644 index d9e9989..0000000 --- a/modules/webapps/diaspora.nix +++ /dev/null | |||
@@ -1,173 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | name = "diaspora"; | ||
4 | cfg = config.services.diaspora; | ||
5 | |||
6 | uid = config.ids.uids.diaspora; | ||
7 | gid = config.ids.gids.diaspora; | ||
8 | in | ||
9 | { | ||
10 | options.services.diaspora = { | ||
11 | enable = lib.mkEnableOption "Enable Diaspora’s service"; | ||
12 | user = lib.mkOption { | ||
13 | type = lib.types.str; | ||
14 | default = name; | ||
15 | description = "User account under which Diaspora runs"; | ||
16 | }; | ||
17 | group = lib.mkOption { | ||
18 | type = lib.types.str; | ||
19 | default = name; | ||
20 | description = "Group under which Diaspora runs"; | ||
21 | }; | ||
22 | adminEmail = lib.mkOption { | ||
23 | type = lib.types.str; | ||
24 | example = "admin@example.com"; | ||
25 | description = "Admin e-mail for Diaspora"; | ||
26 | }; | ||
27 | dataDir = lib.mkOption { | ||
28 | type = lib.types.path; | ||
29 | default = "/var/lib/${name}"; | ||
30 | description = '' | ||
31 | The directory where Diaspora stores its data. | ||
32 | ''; | ||
33 | }; | ||
34 | socketsDir = lib.mkOption { | ||
35 | type = lib.types.path; | ||
36 | default = "/run/${name}"; | ||
37 | description = '' | ||
38 | The directory where Diaspora puts runtime files and sockets. | ||
39 | ''; | ||
40 | }; | ||
41 | configDir = lib.mkOption { | ||
42 | type = lib.types.path; | ||
43 | description = '' | ||
44 | The configuration path for Diaspora. | ||
45 | ''; | ||
46 | }; | ||
47 | package = lib.mkOption { | ||
48 | type = lib.types.package; | ||
49 | default = pkgs.webapps.diaspora; | ||
50 | description = '' | ||
51 | Diaspora package to use. | ||
52 | ''; | ||
53 | }; | ||
54 | # Output variables | ||
55 | systemdStateDirectory = lib.mkOption { | ||
56 | type = lib.types.str; | ||
57 | # Use ReadWritePaths= instead if varDir is outside of /var/lib | ||
58 | default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; | ||
59 | lib.strings.removePrefix "/var/lib/" cfg.dataDir; | ||
60 | description = '' | ||
61 | Adjusted Diaspora data directory for systemd | ||
62 | ''; | ||
63 | readOnly = true; | ||
64 | }; | ||
65 | systemdRuntimeDirectory = lib.mkOption { | ||
66 | type = lib.types.str; | ||
67 | # Use ReadWritePaths= instead if socketsDir is outside of /run | ||
68 | default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; | ||
69 | lib.strings.removePrefix "/run/" cfg.socketsDir; | ||
70 | description = '' | ||
71 | Adjusted Diaspora sockets directory for systemd | ||
72 | ''; | ||
73 | readOnly = true; | ||
74 | }; | ||
75 | workdir = lib.mkOption { | ||
76 | type = lib.types.package; | ||
77 | default = cfg.package.override { | ||
78 | varDir = cfg.dataDir; | ||
79 | podmin_email = cfg.adminEmail; | ||
80 | config_dir = cfg.configDir; | ||
81 | }; | ||
82 | description = '' | ||
83 | Adjusted diaspora package with overriden values | ||
84 | ''; | ||
85 | readOnly = true; | ||
86 | }; | ||
87 | sockets = lib.mkOption { | ||
88 | type = lib.types.attrsOf lib.types.path; | ||
89 | default = { | ||
90 | rails = "${cfg.socketsDir}/diaspora.sock"; | ||
91 | eye = "${cfg.socketsDir}/eye.sock"; | ||
92 | }; | ||
93 | readOnly = true; | ||
94 | description = '' | ||
95 | Diaspora sockets | ||
96 | ''; | ||
97 | }; | ||
98 | pids = lib.mkOption { | ||
99 | type = lib.types.attrsOf lib.types.path; | ||
100 | default = { | ||
101 | eye = "${cfg.socketsDir}/eye.pid"; | ||
102 | }; | ||
103 | readOnly = true; | ||
104 | description = '' | ||
105 | Diaspora pids | ||
106 | ''; | ||
107 | }; | ||
108 | }; | ||
109 | |||
110 | config = lib.mkIf cfg.enable { | ||
111 | users.users = lib.optionalAttrs (cfg.user == name) { | ||
112 | "${name}" = { | ||
113 | inherit uid; | ||
114 | group = cfg.group; | ||
115 | description = "Diaspora user"; | ||
116 | home = cfg.dataDir; | ||
117 | packages = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby ]; | ||
118 | useDefaultShell = true; | ||
119 | }; | ||
120 | }; | ||
121 | users.groups = lib.optionalAttrs (cfg.group == name) { | ||
122 | "${name}" = { | ||
123 | inherit gid; | ||
124 | }; | ||
125 | }; | ||
126 | |||
127 | systemd.services.diaspora = { | ||
128 | description = "Diaspora"; | ||
129 | wantedBy = [ "multi-user.target" ]; | ||
130 | after = [ | ||
131 | "network.target" "redis.service" "postgresql.service" | ||
132 | ]; | ||
133 | wants = [ | ||
134 | "redis.service" "postgresql.service" | ||
135 | ]; | ||
136 | |||
137 | environment.RAILS_ENV = "production"; | ||
138 | environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}"; | ||
139 | environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile"; | ||
140 | environment.EYE_SOCK = cfg.sockets.eye; | ||
141 | environment.EYE_PID = cfg.pids.eye; | ||
142 | |||
143 | path = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby pkgs.curl pkgs.which pkgs.gawk ]; | ||
144 | |||
145 | preStart = '' | ||
146 | install -m 0755 -d ${cfg.dataDir}/uploads ${cfg.dataDir}/tmp ${cfg.dataDir}/log | ||
147 | install -m 0700 -d ${cfg.dataDir}/tmp/pids | ||
148 | if [ ! -f ${cfg.dataDir}/schedule.yml ]; then | ||
149 | echo "{}" > ${cfg.dataDir}/schedule.yml | ||
150 | fi | ||
151 | ./bin/bundle exec rails db:migrate | ||
152 | ''; | ||
153 | |||
154 | script = '' | ||
155 | exec ${cfg.workdir}/script/server | ||
156 | ''; | ||
157 | |||
158 | serviceConfig = { | ||
159 | User = cfg.user; | ||
160 | PrivateTmp = true; | ||
161 | Restart = "always"; | ||
162 | Type = "simple"; | ||
163 | WorkingDirectory = cfg.workdir; | ||
164 | StateDirectory = cfg.systemdStateDirectory; | ||
165 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
166 | StandardInput = "null"; | ||
167 | KillMode = "control-group"; | ||
168 | }; | ||
169 | |||
170 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
171 | }; | ||
172 | }; | ||
173 | } | ||
diff --git a/modules/webapps/etherpad-lite.nix b/modules/webapps/etherpad-lite.nix deleted file mode 100644 index 2e09952..0000000 --- a/modules/webapps/etherpad-lite.nix +++ /dev/null | |||
@@ -1,162 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | name = "etherpad-lite"; | ||
4 | cfg = config.services.etherpad-lite; | ||
5 | |||
6 | uid = config.ids.uids.etherpad-lite; | ||
7 | gid = config.ids.gids.etherpad-lite; | ||
8 | in | ||
9 | { | ||
10 | options.services.etherpad-lite = { | ||
11 | enable = lib.mkEnableOption "Enable Etherpad lite’s service"; | ||
12 | user = lib.mkOption { | ||
13 | type = lib.types.str; | ||
14 | default = name; | ||
15 | description = "User account under which Etherpad lite runs"; | ||
16 | }; | ||
17 | group = lib.mkOption { | ||
18 | type = lib.types.str; | ||
19 | default = name; | ||
20 | description = "Group under which Etherpad lite runs"; | ||
21 | }; | ||
22 | dataDir = lib.mkOption { | ||
23 | type = lib.types.path; | ||
24 | default = "/var/lib/${name}"; | ||
25 | description = '' | ||
26 | The directory where Etherpad lite stores its data. | ||
27 | ''; | ||
28 | }; | ||
29 | socketsDir = lib.mkOption { | ||
30 | type = lib.types.path; | ||
31 | default = "/run/${name}"; | ||
32 | description = '' | ||
33 | The directory where Etherpad lite stores its sockets. | ||
34 | ''; | ||
35 | }; | ||
36 | configFile = lib.mkOption { | ||
37 | type = lib.types.path; | ||
38 | description = '' | ||
39 | The config file path for Etherpad lite. | ||
40 | ''; | ||
41 | }; | ||
42 | sessionKeyFile = lib.mkOption { | ||
43 | type = lib.types.path; | ||
44 | description = '' | ||
45 | The Session key file path for Etherpad lite. | ||
46 | ''; | ||
47 | }; | ||
48 | apiKeyFile = lib.mkOption { | ||
49 | type = lib.types.path; | ||
50 | description = '' | ||
51 | The API key file path for Etherpad lite. | ||
52 | ''; | ||
53 | }; | ||
54 | package = lib.mkOption { | ||
55 | type = lib.types.package; | ||
56 | default = pkgs.webapps.etherpad-lite; | ||
57 | description = '' | ||
58 | Etherpad lite package to use. | ||
59 | ''; | ||
60 | example = lib.literalExample '' | ||
61 | pkgs.webapps.etherpad-lite.withModules (p: [ p.ep_align ]); | ||
62 | ''; | ||
63 | }; | ||
64 | modules = lib.mkOption { | ||
65 | type = lib.types.listOf lib.types.package; | ||
66 | default = []; | ||
67 | description = '' | ||
68 | Etherpad lite modules to use. | ||
69 | DEPRECATED: use package directly | ||
70 | ''; | ||
71 | }; | ||
72 | # Output variables | ||
73 | workdir = lib.mkOption { | ||
74 | type = lib.types.package; | ||
75 | default = cfg.package.withModules (_: cfg.modules); | ||
76 | description = '' | ||
77 | Adjusted Etherpad lite package with plugins | ||
78 | ''; | ||
79 | readOnly = true; | ||
80 | }; | ||
81 | systemdStateDirectory = lib.mkOption { | ||
82 | type = lib.types.str; | ||
83 | # Use ReadWritePaths= instead if varDir is outside of /var/lib | ||
84 | default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; | ||
85 | lib.strings.removePrefix "/var/lib/" cfg.dataDir; | ||
86 | description = '' | ||
87 | Adjusted Etherpad lite data directory for systemd | ||
88 | ''; | ||
89 | readOnly = true; | ||
90 | }; | ||
91 | systemdRuntimeDirectory = lib.mkOption { | ||
92 | type = lib.types.str; | ||
93 | # Use ReadWritePaths= instead if socketsDir is outside of /run | ||
94 | default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; | ||
95 | lib.strings.removePrefix "/run/" cfg.socketsDir; | ||
96 | description = '' | ||
97 | Adjusted Etherpad lite sockets directory for systemd | ||
98 | ''; | ||
99 | readOnly = true; | ||
100 | }; | ||
101 | sockets = lib.mkOption { | ||
102 | type = lib.types.attrsOf lib.types.path; | ||
103 | default = { | ||
104 | node = "${cfg.socketsDir}/etherpad-lite.sock"; | ||
105 | }; | ||
106 | readOnly = true; | ||
107 | description = '' | ||
108 | Etherpad lite sockets | ||
109 | ''; | ||
110 | }; | ||
111 | }; | ||
112 | |||
113 | config = lib.mkIf cfg.enable { | ||
114 | systemd.services.etherpad-lite = { | ||
115 | description = "Etherpad-lite"; | ||
116 | wantedBy = [ "multi-user.target" ]; | ||
117 | after = [ "network.target" "postgresql.service" ]; | ||
118 | wants = [ "postgresql.service" ]; | ||
119 | |||
120 | environment.NODE_ENV = "production"; | ||
121 | environment.HOME = cfg.workdir; | ||
122 | |||
123 | path = [ pkgs.nodejs ]; | ||
124 | |||
125 | script = '' | ||
126 | exec ${pkgs.nodejs}/bin/node ${cfg.workdir}/src/node/server.js \ | ||
127 | --sessionkey ${cfg.sessionKeyFile} \ | ||
128 | --apikey ${cfg.apiKeyFile} \ | ||
129 | --settings ${cfg.configFile} | ||
130 | ''; | ||
131 | |||
132 | postStart = '' | ||
133 | while [ ! -S ${cfg.sockets.node} ]; do | ||
134 | sleep 0.5 | ||
135 | done | ||
136 | chmod a+w ${cfg.sockets.node} | ||
137 | ''; | ||
138 | serviceConfig = { | ||
139 | DynamicUser = true; | ||
140 | User = cfg.user; | ||
141 | Group = cfg.group; | ||
142 | WorkingDirectory = cfg.workdir; | ||
143 | PrivateTmp = true; | ||
144 | NoNewPrivileges = true; | ||
145 | PrivateDevices = true; | ||
146 | ProtectHome = true; | ||
147 | ProtectControlGroups = true; | ||
148 | ProtectKernelModules = true; | ||
149 | Restart = "always"; | ||
150 | Type = "simple"; | ||
151 | TimeoutSec = 60; | ||
152 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
153 | StateDirectory= cfg.systemdStateDirectory; | ||
154 | ExecStartPre = [ | ||
155 | "+${pkgs.coreutils}/bin/install -d -m 0755 -o ${cfg.user} -g ${cfg.group} ${cfg.dataDir}/ep_initialized" | ||
156 | "+${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} ${cfg.configFile} ${cfg.sessionKeyFile} ${cfg.apiKeyFile}" | ||
157 | ]; | ||
158 | }; | ||
159 | }; | ||
160 | |||
161 | }; | ||
162 | } | ||
diff --git a/modules/webapps/mastodon.nix b/modules/webapps/mastodon.nix deleted file mode 100644 index df2dbb2..0000000 --- a/modules/webapps/mastodon.nix +++ /dev/null | |||
@@ -1,265 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | name = "mastodon"; | ||
4 | cfg = config.services.mastodon; | ||
5 | |||
6 | uid = config.ids.uids.mastodon; | ||
7 | gid = config.ids.gids.mastodon; | ||
8 | in | ||
9 | { | ||
10 | options.services.mastodon = { | ||
11 | enable = lib.mkEnableOption "Enable Mastodon’s service"; | ||
12 | user = lib.mkOption { | ||
13 | type = lib.types.str; | ||
14 | default = name; | ||
15 | description = "User account under which Mastodon runs"; | ||
16 | }; | ||
17 | group = lib.mkOption { | ||
18 | type = lib.types.str; | ||
19 | default = name; | ||
20 | description = "Group under which Mastodon runs"; | ||
21 | }; | ||
22 | dataDir = lib.mkOption { | ||
23 | type = lib.types.path; | ||
24 | default = "/var/lib/${name}"; | ||
25 | description = '' | ||
26 | The directory where Mastodon stores its data. | ||
27 | ''; | ||
28 | }; | ||
29 | socketsPrefix = lib.mkOption { | ||
30 | type = lib.types.str; | ||
31 | default = "live"; | ||
32 | description = '' | ||
33 | The prefix to use for Mastodon sockets. | ||
34 | ''; | ||
35 | }; | ||
36 | socketsDir = lib.mkOption { | ||
37 | type = lib.types.path; | ||
38 | default = "/run/${name}"; | ||
39 | description = '' | ||
40 | The directory where Mastodon puts runtime files and sockets. | ||
41 | ''; | ||
42 | }; | ||
43 | configFile = lib.mkOption { | ||
44 | type = lib.types.path; | ||
45 | description = '' | ||
46 | The configuration file path for Mastodon. | ||
47 | ''; | ||
48 | }; | ||
49 | package = lib.mkOption { | ||
50 | type = lib.types.package; | ||
51 | default = pkgs.webapps.mastodon; | ||
52 | description = '' | ||
53 | Mastodon package to use. | ||
54 | ''; | ||
55 | }; | ||
56 | # Output variables | ||
57 | workdir = lib.mkOption { | ||
58 | type = lib.types.package; | ||
59 | default = cfg.package.override { varDir = cfg.dataDir; }; | ||
60 | description = '' | ||
61 | Adjusted mastodon package with overriden varDir | ||
62 | ''; | ||
63 | readOnly = true; | ||
64 | }; | ||
65 | systemdStateDirectory = lib.mkOption { | ||
66 | type = lib.types.str; | ||
67 | # Use ReadWritePaths= instead if varDir is outside of /var/lib | ||
68 | default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; | ||
69 | lib.strings.removePrefix "/var/lib/" cfg.dataDir; | ||
70 | description = '' | ||
71 | Adjusted Mastodon data directory for systemd | ||
72 | ''; | ||
73 | readOnly = true; | ||
74 | }; | ||
75 | systemdRuntimeDirectory = lib.mkOption { | ||
76 | type = lib.types.str; | ||
77 | # Use ReadWritePaths= instead if socketsDir is outside of /run | ||
78 | default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; | ||
79 | lib.strings.removePrefix "/run/" cfg.socketsDir; | ||
80 | description = '' | ||
81 | Adjusted Mastodon sockets directory for systemd | ||
82 | ''; | ||
83 | readOnly = true; | ||
84 | }; | ||
85 | sockets = lib.mkOption { | ||
86 | type = lib.types.attrsOf lib.types.path; | ||
87 | default = { | ||
88 | node = "${cfg.socketsDir}/${cfg.socketsPrefix}_node.sock"; | ||
89 | rails = "${cfg.socketsDir}/${cfg.socketsPrefix}_puma.sock"; | ||
90 | }; | ||
91 | readOnly = true; | ||
92 | description = '' | ||
93 | Mastodon sockets | ||
94 | ''; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | config = lib.mkIf cfg.enable { | ||
99 | users.users = lib.optionalAttrs (cfg.user == name) { | ||
100 | "${name}" = { | ||
101 | inherit uid; | ||
102 | group = cfg.group; | ||
103 | description = "Mastodon user"; | ||
104 | home = cfg.dataDir; | ||
105 | useDefaultShell = true; | ||
106 | }; | ||
107 | }; | ||
108 | users.groups = lib.optionalAttrs (cfg.group == name) { | ||
109 | "${name}" = { | ||
110 | inherit gid; | ||
111 | }; | ||
112 | }; | ||
113 | |||
114 | systemd.slices.mastodon = { | ||
115 | description = "Mastodon slice"; | ||
116 | }; | ||
117 | |||
118 | systemd.services.mastodon-streaming = { | ||
119 | description = "Mastodon Streaming"; | ||
120 | wantedBy = [ "multi-user.target" ]; | ||
121 | after = [ "network.target" "mastodon-web.service" ]; | ||
122 | |||
123 | environment.NODE_ENV = "production"; | ||
124 | environment.SOCKET = cfg.sockets.node; | ||
125 | |||
126 | path = [ pkgs.nodejs pkgs.bashInteractive ]; | ||
127 | |||
128 | script = '' | ||
129 | exec npm run start | ||
130 | ''; | ||
131 | |||
132 | postStart = '' | ||
133 | while [ ! -S $SOCKET ]; do | ||
134 | sleep 0.5 | ||
135 | done | ||
136 | chmod a+w $SOCKET | ||
137 | ''; | ||
138 | |||
139 | postStop = '' | ||
140 | rm $SOCKET | ||
141 | ''; | ||
142 | |||
143 | serviceConfig = { | ||
144 | Slice = "mastodon.slice"; | ||
145 | User = cfg.user; | ||
146 | EnvironmentFile = cfg.configFile; | ||
147 | PrivateTmp = true; | ||
148 | Restart = "always"; | ||
149 | TimeoutSec = 15; | ||
150 | Type = "simple"; | ||
151 | WorkingDirectory = cfg.workdir; | ||
152 | StateDirectory = cfg.systemdStateDirectory; | ||
153 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
154 | RuntimeDirectoryPreserve = "yes"; | ||
155 | }; | ||
156 | |||
157 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
158 | }; | ||
159 | |||
160 | systemd.services.mastodon-web = { | ||
161 | description = "Mastodon Web app"; | ||
162 | wantedBy = [ "multi-user.target" ]; | ||
163 | after = [ "network.target" ]; | ||
164 | |||
165 | environment.RAILS_ENV = "production"; | ||
166 | environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}"; | ||
167 | environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile"; | ||
168 | environment.SOCKET = cfg.sockets.rails; | ||
169 | |||
170 | path = [ cfg.workdir.gems cfg.workdir.gems.ruby pkgs.file pkgs.imagemagick ]; | ||
171 | |||
172 | preStart = '' | ||
173 | install -m 0755 -d ${cfg.dataDir}/tmp/cache | ||
174 | ./bin/bundle exec rails db:migrate | ||
175 | ''; | ||
176 | |||
177 | script = '' | ||
178 | exec ./bin/bundle exec puma -C config/puma.rb | ||
179 | ''; | ||
180 | |||
181 | postStart = '' | ||
182 | exec ./bin/tootctl cache clear | ||
183 | ''; | ||
184 | serviceConfig = { | ||
185 | Slice = "mastodon.slice"; | ||
186 | User = cfg.user; | ||
187 | EnvironmentFile = cfg.configFile; | ||
188 | PrivateTmp = true; | ||
189 | Restart = "always"; | ||
190 | TimeoutSec = 60; | ||
191 | Type = "simple"; | ||
192 | WorkingDirectory = cfg.workdir; | ||
193 | StateDirectory = cfg.systemdStateDirectory; | ||
194 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
195 | RuntimeDirectoryPreserve = "yes"; | ||
196 | }; | ||
197 | |||
198 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
199 | }; | ||
200 | |||
201 | systemd.services.mastodon-cleanup = { | ||
202 | description = "Cleanup mastodon"; | ||
203 | startAt = "daily"; | ||
204 | restartIfChanged = false; | ||
205 | |||
206 | environment.RAILS_ENV = "production"; | ||
207 | environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}"; | ||
208 | environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile"; | ||
209 | environment.SOCKET = cfg.sockets.rails; | ||
210 | |||
211 | path = [ cfg.workdir.gems cfg.workdir.gems.ruby pkgs.file ]; | ||
212 | |||
213 | script = '' | ||
214 | exec ./bin/tootctl media remove --days 30 | ||
215 | ''; | ||
216 | |||
217 | serviceConfig = { | ||
218 | User = cfg.user; | ||
219 | EnvironmentFile = cfg.configFile; | ||
220 | PrivateTmp = true; | ||
221 | Type = "oneshot"; | ||
222 | WorkingDirectory = cfg.workdir; | ||
223 | StateDirectory = cfg.systemdStateDirectory; | ||
224 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
225 | RuntimeDirectoryPreserve = "yes"; | ||
226 | }; | ||
227 | |||
228 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
229 | }; | ||
230 | |||
231 | systemd.services.mastodon-sidekiq = { | ||
232 | description = "Mastodon Sidekiq"; | ||
233 | wantedBy = [ "multi-user.target" ]; | ||
234 | after = [ "network.target" "mastodon-web.service" ]; | ||
235 | |||
236 | environment.RAILS_ENV="production"; | ||
237 | environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}"; | ||
238 | environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile"; | ||
239 | environment.DB_POOL="5"; | ||
240 | |||
241 | path = [ cfg.workdir.gems cfg.workdir.gems.ruby pkgs.imagemagick pkgs.ffmpeg pkgs.file ]; | ||
242 | |||
243 | script = '' | ||
244 | exec ./bin/bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push | ||
245 | ''; | ||
246 | |||
247 | serviceConfig = { | ||
248 | Slice = "mastodon.slice"; | ||
249 | User = cfg.user; | ||
250 | EnvironmentFile = cfg.configFile; | ||
251 | PrivateTmp = true; | ||
252 | Restart = "always"; | ||
253 | TimeoutSec = 15; | ||
254 | Type = "simple"; | ||
255 | WorkingDirectory = cfg.workdir; | ||
256 | StateDirectory = cfg.systemdStateDirectory; | ||
257 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
258 | RuntimeDirectoryPreserve = "yes"; | ||
259 | }; | ||
260 | |||
261 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
262 | }; | ||
263 | |||
264 | }; | ||
265 | } | ||
diff --git a/modules/webapps/mediagoblin.nix b/modules/webapps/mediagoblin.nix deleted file mode 100644 index 3fe5e38..0000000 --- a/modules/webapps/mediagoblin.nix +++ /dev/null | |||
@@ -1,231 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | name = "mediagoblin"; | ||
4 | cfg = config.services.mediagoblin; | ||
5 | |||
6 | uid = config.ids.uids.mediagoblin; | ||
7 | gid = config.ids.gids.mediagoblin; | ||
8 | |||
9 | paste_local = pkgs.writeText "paste_local.ini" '' | ||
10 | [DEFAULT] | ||
11 | debug = false | ||
12 | |||
13 | [pipeline:main] | ||
14 | pipeline = mediagoblin | ||
15 | |||
16 | [app:mediagoblin] | ||
17 | use = egg:mediagoblin#app | ||
18 | config = ${cfg.configFile} ${cfg.package}/mediagoblin.ini | ||
19 | /mgoblin_static = ${cfg.package}/mediagoblin/static | ||
20 | |||
21 | [loggers] | ||
22 | keys = root | ||
23 | |||
24 | [handlers] | ||
25 | keys = console | ||
26 | |||
27 | [formatters] | ||
28 | keys = generic | ||
29 | |||
30 | [logger_root] | ||
31 | level = INFO | ||
32 | handlers = console | ||
33 | |||
34 | [handler_console] | ||
35 | class = StreamHandler | ||
36 | args = (sys.stderr,) | ||
37 | level = NOTSET | ||
38 | formatter = generic | ||
39 | |||
40 | [formatter_generic] | ||
41 | format = %(levelname)-7.7s [%(name)s] %(message)s | ||
42 | |||
43 | [filter:errors] | ||
44 | use = egg:mediagoblin#errors | ||
45 | debug = false | ||
46 | |||
47 | [server:main] | ||
48 | use = egg:waitress#main | ||
49 | unix_socket = ${cfg.sockets.paster} | ||
50 | unix_socket_perms = 777 | ||
51 | url_scheme = https | ||
52 | ''; | ||
53 | in | ||
54 | { | ||
55 | options.services.mediagoblin = { | ||
56 | enable = lib.mkEnableOption "Enable Mediagoblin’s service"; | ||
57 | user = lib.mkOption { | ||
58 | type = lib.types.str; | ||
59 | default = name; | ||
60 | description = "User account under which Mediagoblin runs"; | ||
61 | }; | ||
62 | group = lib.mkOption { | ||
63 | type = lib.types.str; | ||
64 | default = name; | ||
65 | description = "Group under which Mediagoblin runs"; | ||
66 | }; | ||
67 | dataDir = lib.mkOption { | ||
68 | type = lib.types.path; | ||
69 | default = "/var/lib/${name}"; | ||
70 | description = '' | ||
71 | The directory where Mediagoblin stores its data. | ||
72 | ''; | ||
73 | }; | ||
74 | socketsDir = lib.mkOption { | ||
75 | type = lib.types.path; | ||
76 | default = "/run/${name}"; | ||
77 | description = '' | ||
78 | The directory where Mediagoblin puts runtime files and sockets. | ||
79 | ''; | ||
80 | }; | ||
81 | configFile = lib.mkOption { | ||
82 | type = lib.types.path; | ||
83 | description = '' | ||
84 | The configuration file path for Mediagoblin. | ||
85 | ''; | ||
86 | }; | ||
87 | package = lib.mkOption { | ||
88 | type = lib.types.package; | ||
89 | default = pkgs.webapps.mediagoblin; | ||
90 | example = lib.literalExample '' | ||
91 | pkgs.webapps.mediagoblin.withPlugins (p: [p.basicsearch]) | ||
92 | ''; | ||
93 | description = '' | ||
94 | Mediagoblin package to use. | ||
95 | ''; | ||
96 | }; | ||
97 | systemdStateDirectory = lib.mkOption { | ||
98 | type = lib.types.str; | ||
99 | # Use ReadWritePaths= instead if varDir is outside of /var/lib | ||
100 | default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; | ||
101 | lib.strings.removePrefix "/var/lib/" cfg.dataDir; | ||
102 | description = '' | ||
103 | Adjusted Mediagoblin data directory for systemd | ||
104 | ''; | ||
105 | readOnly = true; | ||
106 | }; | ||
107 | systemdRuntimeDirectory = lib.mkOption { | ||
108 | type = lib.types.str; | ||
109 | # Use ReadWritePaths= instead if socketsDir is outside of /run | ||
110 | default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; | ||
111 | lib.strings.removePrefix "/run/" cfg.socketsDir; | ||
112 | description = '' | ||
113 | Adjusted Mediagoblin sockets directory for systemd | ||
114 | ''; | ||
115 | readOnly = true; | ||
116 | }; | ||
117 | sockets = lib.mkOption { | ||
118 | type = lib.types.attrsOf lib.types.path; | ||
119 | default = { | ||
120 | paster = "${cfg.socketsDir}/mediagoblin.sock"; | ||
121 | }; | ||
122 | readOnly = true; | ||
123 | description = '' | ||
124 | Mediagoblin sockets | ||
125 | ''; | ||
126 | }; | ||
127 | pids = lib.mkOption { | ||
128 | type = lib.types.attrsOf lib.types.path; | ||
129 | default = { | ||
130 | paster = "${cfg.socketsDir}/mediagoblin.pid"; | ||
131 | celery = "${cfg.socketsDir}/mediagoblin-celeryd.pid"; | ||
132 | }; | ||
133 | readOnly = true; | ||
134 | description = '' | ||
135 | Mediagoblin pid files | ||
136 | ''; | ||
137 | }; | ||
138 | }; | ||
139 | |||
140 | config = lib.mkIf cfg.enable { | ||
141 | users.users = lib.optionalAttrs (cfg.user == name) { | ||
142 | "${name}" = { | ||
143 | inherit uid; | ||
144 | group = cfg.group; | ||
145 | description = "Mediagoblin user"; | ||
146 | home = cfg.dataDir; | ||
147 | useDefaultShell = true; | ||
148 | }; | ||
149 | }; | ||
150 | users.groups = lib.optionalAttrs (cfg.group == name) { | ||
151 | "${name}" = { | ||
152 | inherit gid; | ||
153 | }; | ||
154 | }; | ||
155 | |||
156 | systemd.slices.mediagoblin = { | ||
157 | description = "Mediagoblin slice"; | ||
158 | }; | ||
159 | systemd.services.mediagoblin-web = { | ||
160 | description = "Mediagoblin service"; | ||
161 | wantedBy = [ "multi-user.target" ]; | ||
162 | after = [ "network.target" ]; | ||
163 | wants = [ "postgresql.service" "redis.service" ]; | ||
164 | |||
165 | environment.SCRIPT_NAME = "/mediagoblin/"; | ||
166 | |||
167 | script = '' | ||
168 | exec ./bin/paster serve \ | ||
169 | ${paste_local} \ | ||
170 | --pid-file=${cfg.pids.paster} | ||
171 | ''; | ||
172 | preStop = '' | ||
173 | exec ./bin/paster serve \ | ||
174 | --pid-file=${cfg.pids.paster} \ | ||
175 | ${paste_local} stop | ||
176 | ''; | ||
177 | preStart = '' | ||
178 | if [ -d ${cfg.dataDir}/plugin_static/ ]; then | ||
179 | rm ${cfg.dataDir}/plugin_static/coreplugin_basic_auth | ||
180 | ln -sf ${cfg.package}/mediagoblin/plugins/basic_auth/static ${cfg.dataDir}/plugin_static/coreplugin_basic_auth | ||
181 | fi | ||
182 | ./bin/gmg -cf ${cfg.configFile} dbupdate | ||
183 | ''; | ||
184 | |||
185 | serviceConfig = { | ||
186 | Slice = "mediagoblin.slice"; | ||
187 | User = cfg.user; | ||
188 | PrivateTmp = true; | ||
189 | Restart = "always"; | ||
190 | TimeoutSec = 15; | ||
191 | Type = "simple"; | ||
192 | WorkingDirectory = cfg.package; | ||
193 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
194 | StateDirectory= cfg.systemdStateDirectory; | ||
195 | PIDFile = cfg.pids.paster; | ||
196 | }; | ||
197 | |||
198 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
199 | }; | ||
200 | |||
201 | systemd.services.mediagoblin-celeryd = { | ||
202 | description = "Mediagoblin service"; | ||
203 | wantedBy = [ "multi-user.target" ]; | ||
204 | after = [ "network.target" "mediagoblin-web.service" ]; | ||
205 | |||
206 | environment.MEDIAGOBLIN_CONFIG = cfg.configFile; | ||
207 | environment.CELERY_CONFIG_MODULE = "mediagoblin.init.celery.from_celery"; | ||
208 | |||
209 | script = '' | ||
210 | exec ./bin/celery worker \ | ||
211 | --logfile=${cfg.dataDir}/celery.log \ | ||
212 | --loglevel=INFO | ||
213 | ''; | ||
214 | |||
215 | serviceConfig = { | ||
216 | Slice = "mediagoblin.slice"; | ||
217 | User = cfg.user; | ||
218 | PrivateTmp = true; | ||
219 | Restart = "always"; | ||
220 | TimeoutSec = 60; | ||
221 | Type = "simple"; | ||
222 | WorkingDirectory = cfg.package; | ||
223 | RuntimeDirectory = cfg.systemdRuntimeDirectory; | ||
224 | StateDirectory= cfg.systemdStateDirectory; | ||
225 | PIDFile = cfg.pids.celery; | ||
226 | }; | ||
227 | |||
228 | unitConfig.RequiresMountsFor = cfg.dataDir; | ||
229 | }; | ||
230 | }; | ||
231 | } | ||
diff --git a/modules/webapps/webstats/default.nix b/modules/webapps/webstats/default.nix deleted file mode 100644 index e873af2..0000000 --- a/modules/webapps/webstats/default.nix +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | name = "goaccess"; | ||
4 | cfg = config.services.webstats; | ||
5 | in { | ||
6 | options.services.webstats = { | ||
7 | dataDir = lib.mkOption { | ||
8 | type = lib.types.path; | ||
9 | default = "/var/lib/${name}"; | ||
10 | description = '' | ||
11 | The directory where Goaccess stores its data. | ||
12 | ''; | ||
13 | }; | ||
14 | sites = lib.mkOption { | ||
15 | type = lib.types.listOf (lib.types.submodule { | ||
16 | options = { | ||
17 | conf = lib.mkOption { | ||
18 | type = lib.types.nullOr lib.types.path; | ||
19 | default = null; | ||
20 | description = '' | ||
21 | use custom goaccess configuration file instead of the | ||
22 | default one. | ||
23 | ''; | ||
24 | }; | ||
25 | name = lib.mkOption { | ||
26 | type = lib.types.str; | ||
27 | description = '' | ||
28 | Domain name. Corresponds to the Apache file name and the | ||
29 | folder name in which the state will be saved. | ||
30 | ''; | ||
31 | }; | ||
32 | }; | ||
33 | }); | ||
34 | default = []; | ||
35 | description = "Sites to generate stats"; | ||
36 | }; | ||
37 | }; | ||
38 | |||
39 | config = lib.mkIf (builtins.length cfg.sites > 0) { | ||
40 | users.users.root.packages = [ | ||
41 | pkgs.goaccess | ||
42 | ]; | ||
43 | |||
44 | services.cron = { | ||
45 | enable = true; | ||
46 | systemCronJobs = let | ||
47 | stats = domain: conf: let | ||
48 | config = if builtins.isNull conf | ||
49 | then pkgs.runCommand "goaccess.conf" { | ||
50 | dbPath = "${cfg.dataDir}/${domain}"; | ||
51 | } "substituteAll ${./goaccess.conf} $out" | ||
52 | else conf; | ||
53 | d = pkgs.writeScriptBin "stats-${domain}" '' | ||
54 | #!${pkgs.stdenv.shell} | ||
55 | set -e | ||
56 | shopt -s nullglob | ||
57 | TMPFILE=$(mktemp) | ||
58 | trap "rm -f $TMPFILE" EXIT | ||
59 | |||
60 | mkdir -p ${cfg.dataDir}/${domain} | ||
61 | for i in /var/log/httpd/access-${domain}*.gz; do | ||
62 | zcat "$i" >> $TMPFILE | ||
63 | done | ||
64 | cat /var/log/httpd/access-${domain}.log > $TMPFILE | ||
65 | ${pkgs.goaccess}/bin/goaccess $TMPFILE --no-progress -o ${cfg.dataDir}/${domain}/index.html -p ${config} | ||
66 | ''; | ||
67 | in "${d}/bin/stats-${domain}"; | ||
68 | allStats = sites: pkgs.writeScript "stats" '' | ||
69 | #!${pkgs.stdenv.shell} | ||
70 | |||
71 | mkdir -p ${cfg.dataDir} | ||
72 | ${builtins.concatStringsSep "\n" (map (v: stats v.name v.conf) sites)} | ||
73 | ''; | ||
74 | in | ||
75 | [ | ||
76 | "5 0 * * * root ${allStats cfg.sites}" | ||
77 | ]; | ||
78 | }; | ||
79 | }; | ||
80 | } | ||
diff --git a/modules/webapps/webstats/goaccess.conf b/modules/webapps/webstats/goaccess.conf deleted file mode 100644 index c6c244a..0000000 --- a/modules/webapps/webstats/goaccess.conf +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | time-format %H:%M:%S | ||
2 | date-format %d/%b/%Y | ||
3 | |||
4 | log-format VCOMBINED | ||
5 | #= %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u" | ||
6 | |||
7 | html-prefs {"theme":"bright","layout":"vertical"} | ||
8 | |||
9 | # old | ||
10 | exclude-ip 188.165.209.148 | ||
11 | exclude-ip 178.33.252.96 | ||
12 | exclude-ip 2001:41d0:2:9c94::1 | ||
13 | exclude-ip 2001:41d0:2:9c94:: | ||
14 | # eldiron | ||
15 | exclude-ip 176.9.151.89 | ||
16 | exclude-ip 2a01:4f8:160:3445:: | ||
17 | # monitoring-1 | ||
18 | exclude-ip 95.216.164.150 | ||
19 | exclude-ip 2a01:4f9:c010:1c95:: | ||
20 | |||
21 | no-query-string true | ||
22 | |||
23 | persist true | ||
24 | restore true | ||
25 | db-path @dbPath@ | ||
26 | |||
27 | ignore-panel REFERRERS | ||
28 | ignore-panel KEYPHRASES | ||
29 | |||
30 | static-file .css | ||
31 | static-file .js | ||
32 | static-file .jpg | ||
33 | static-file .png | ||
34 | static-file .gif | ||
35 | static-file .ico | ||
36 | static-file .jpeg | ||
37 | static-file .pdf | ||
38 | static-file .csv | ||
39 | static-file .mpeg | ||
40 | static-file .mpg | ||
41 | static-file .swf | ||
42 | static-file .woff | ||
43 | static-file .woff2 | ||
44 | static-file .xls | ||
45 | static-file .xlsx | ||
46 | static-file .doc | ||
47 | static-file .docx | ||
48 | static-file .ppt | ||
49 | static-file .pptx | ||
50 | static-file .txt | ||
51 | static-file .zip | ||
52 | static-file .ogg | ||
53 | static-file .mp3 | ||
54 | static-file .mp4 | ||
55 | static-file .exe | ||
56 | static-file .iso | ||
57 | static-file .gz | ||
58 | static-file .rar | ||
59 | static-file .svg | ||
60 | static-file .bmp | ||
61 | static-file .tar | ||
62 | static-file .tgz | ||
63 | static-file .tiff | ||
64 | static-file .tif | ||
65 | static-file .ttf | ||
66 | static-file .flv | ||
67 | #static-file .less | ||
68 | #static-file .ac3 | ||
69 | #static-file .avi | ||
70 | #static-file .bz2 | ||
71 | #static-file .class | ||
72 | #static-file .cue | ||
73 | #static-file .dae | ||
74 | #static-file .dat | ||
75 | #static-file .dts | ||
76 | #static-file .ejs | ||
77 | #static-file .eot | ||
78 | #static-file .eps | ||
79 | #static-file .img | ||
80 | #static-file .jar | ||
81 | #static-file .map | ||
82 | #static-file .mid | ||
83 | #static-file .midi | ||
84 | #static-file .ogv | ||
85 | #static-file .webm | ||
86 | #static-file .mkv | ||
87 | #static-file .odp | ||
88 | #static-file .ods | ||
89 | #static-file .odt | ||
90 | #static-file .otf | ||
91 | #static-file .pict | ||
92 | #static-file .pls | ||
93 | #static-file .ps | ||
94 | #static-file .qt | ||
95 | #static-file .rm | ||
96 | #static-file .svgz | ||
97 | #static-file .wav | ||
98 | #static-file .webp | ||
99 | |||
100 | |||
diff --git a/modules/websites/default.nix b/modules/websites/default.nix deleted file mode 100644 index 6658c66..0000000 --- a/modules/websites/default.nix +++ /dev/null | |||
@@ -1,281 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: with lib; | ||
2 | let | ||
3 | cfg = config.services.websites; | ||
4 | in | ||
5 | { | ||
6 | options.services.websites = with types; { | ||
7 | certs = mkOption { | ||
8 | description = "Default websites configuration for certificates as accepted by acme"; | ||
9 | }; | ||
10 | env = mkOption { | ||
11 | default = {}; | ||
12 | description = "Each type of website to enable will target a distinct httpd server"; | ||
13 | type = attrsOf (submodule { | ||
14 | options = { | ||
15 | enable = mkEnableOption "Enable websites of this type"; | ||
16 | adminAddr = mkOption { | ||
17 | type = str; | ||
18 | description = "Admin e-mail address of the instance"; | ||
19 | }; | ||
20 | httpdName = mkOption { | ||
21 | type = str; | ||
22 | description = "Name of the httpd instance to assign this type to"; | ||
23 | }; | ||
24 | ips = mkOption { | ||
25 | type = listOf str; | ||
26 | default = []; | ||
27 | description = "ips to listen to"; | ||
28 | }; | ||
29 | modules = mkOption { | ||
30 | type = listOf str; | ||
31 | default = []; | ||
32 | description = "Additional modules to load in Apache"; | ||
33 | }; | ||
34 | extraConfig = mkOption { | ||
35 | type = listOf lines; | ||
36 | default = []; | ||
37 | description = "Additional configuration to append to Apache"; | ||
38 | }; | ||
39 | nosslVhost = mkOption { | ||
40 | description = "A default nossl vhost for captive portals"; | ||
41 | default = {}; | ||
42 | type = submodule { | ||
43 | options = { | ||
44 | enable = mkEnableOption "Add default no-ssl vhost for this instance"; | ||
45 | host = mkOption { | ||
46 | type = str; | ||
47 | description = "The hostname to use for this vhost"; | ||
48 | }; | ||
49 | root = mkOption { | ||
50 | type = path; | ||
51 | default = ./nosslVhost; | ||
52 | description = "The root folder to serve"; | ||
53 | }; | ||
54 | indexFile = mkOption { | ||
55 | type = str; | ||
56 | default = "index.html"; | ||
57 | description = "The index file to show."; | ||
58 | }; | ||
59 | }; | ||
60 | }; | ||
61 | }; | ||
62 | fallbackVhost = mkOption { | ||
63 | description = "The fallback vhost that will be defined as first vhost in Apache"; | ||
64 | type = submodule { | ||
65 | options = { | ||
66 | certName = mkOption { type = str; }; | ||
67 | hosts = mkOption { type = listOf str; }; | ||
68 | root = mkOption { type = nullOr path; }; | ||
69 | forceSSL = mkOption { | ||
70 | type = bool; | ||
71 | default = true; | ||
72 | description = '' | ||
73 | Automatically create a corresponding non-ssl vhost | ||
74 | that will only redirect to the ssl version | ||
75 | ''; | ||
76 | }; | ||
77 | extraConfig = mkOption { type = listOf lines; default = []; }; | ||
78 | }; | ||
79 | }; | ||
80 | }; | ||
81 | vhostNoSSLConfs = mkOption { | ||
82 | default = {}; | ||
83 | description = "List of no ssl vhosts to define for Apache"; | ||
84 | type = attrsOf (submodule { | ||
85 | options = { | ||
86 | hosts = mkOption { type = listOf str; }; | ||
87 | root = mkOption { type = nullOr path; }; | ||
88 | extraConfig = mkOption { type = listOf lines; default = []; }; | ||
89 | }; | ||
90 | }); | ||
91 | }; | ||
92 | vhostConfs = mkOption { | ||
93 | default = {}; | ||
94 | description = "List of vhosts to define for Apache"; | ||
95 | type = attrsOf (submodule { | ||
96 | options = { | ||
97 | certName = mkOption { type = str; }; | ||
98 | addToCerts = mkOption { | ||
99 | type = bool; | ||
100 | default = false; | ||
101 | description = "Use these to certificates. Is ignored (considered true) if certMainHost is not null"; | ||
102 | }; | ||
103 | certMainHost = mkOption { | ||
104 | type = nullOr str; | ||
105 | description = "Use that host as 'main host' for acme certs"; | ||
106 | default = null; | ||
107 | }; | ||
108 | hosts = mkOption { type = listOf str; }; | ||
109 | root = mkOption { type = nullOr path; }; | ||
110 | forceSSL = mkOption { | ||
111 | type = bool; | ||
112 | default = true; | ||
113 | description = '' | ||
114 | Automatically create a corresponding non-ssl vhost | ||
115 | that will only redirect to the ssl version | ||
116 | ''; | ||
117 | }; | ||
118 | extraConfig = mkOption { type = listOf lines; default = []; }; | ||
119 | }; | ||
120 | }); | ||
121 | }; | ||
122 | watchPaths = mkOption { | ||
123 | type = listOf str; | ||
124 | default = []; | ||
125 | description = '' | ||
126 | Paths to watch that should trigger a reload of httpd | ||
127 | ''; | ||
128 | }; | ||
129 | }; | ||
130 | }); | ||
131 | }; | ||
132 | }; | ||
133 | |||
134 | config.services.httpd = let | ||
135 | nosslVhost = ips: cfg: { | ||
136 | listen = map (ip: { inherit ip; port = 80; }) ips; | ||
137 | hostName = cfg.host; | ||
138 | logFormat = "combinedVhost"; | ||
139 | documentRoot = cfg.root; | ||
140 | extraConfig = '' | ||
141 | <Directory ${cfg.root}> | ||
142 | DirectoryIndex ${cfg.indexFile} | ||
143 | AllowOverride None | ||
144 | Require all granted | ||
145 | |||
146 | RewriteEngine on | ||
147 | RewriteRule ^/(.+) / [L] | ||
148 | </Directory> | ||
149 | ''; | ||
150 | }; | ||
151 | toVhost = ips: vhostConf: { | ||
152 | forceSSL = vhostConf.forceSSL or true; | ||
153 | useACMEHost = vhostConf.certName; | ||
154 | logFormat = "combinedVhost"; | ||
155 | listen = if vhostConf.forceSSL | ||
156 | then lists.flatten (map (ip: [{ inherit ip; port = 443; ssl = true; } { inherit ip; port = 80; }]) ips) | ||
157 | else map (ip: { inherit ip; port = 443; ssl = true; }) ips; | ||
158 | hostName = builtins.head vhostConf.hosts; | ||
159 | serverAliases = builtins.tail vhostConf.hosts or []; | ||
160 | documentRoot = vhostConf.root; | ||
161 | extraConfig = builtins.concatStringsSep "\n" vhostConf.extraConfig; | ||
162 | }; | ||
163 | toVhostNoSSL = ips: vhostConf: { | ||
164 | logFormat = "combinedVhost"; | ||
165 | listen = map (ip: { inherit ip; port = 80; }) ips; | ||
166 | hostName = builtins.head vhostConf.hosts; | ||
167 | serverAliases = builtins.tail vhostConf.hosts or []; | ||
168 | documentRoot = vhostConf.root; | ||
169 | extraConfig = builtins.concatStringsSep "\n" vhostConf.extraConfig; | ||
170 | }; | ||
171 | in attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
172 | icfg.httpdName (mkIf icfg.enable { | ||
173 | enable = true; | ||
174 | logPerVirtualHost = true; | ||
175 | multiProcessingModule = "worker"; | ||
176 | # https://ssl-config.mozilla.org/#server=apache&version=2.4.41&config=intermediate&openssl=1.0.2t&guideline=5.4 | ||
177 | # test with https://www.ssllabs.com/ssltest/analyze.html?d=www.immae.eu&s=176.9.151.154&latest | ||
178 | sslProtocols = "all -SSLv3 -TLSv1 -TLSv1.1"; | ||
179 | sslCiphers = builtins.concatStringsSep ":" [ | ||
180 | "ECDHE-ECDSA-AES128-GCM-SHA256" "ECDHE-RSA-AES128-GCM-SHA256" | ||
181 | "ECDHE-ECDSA-AES256-GCM-SHA384" "ECDHE-RSA-AES256-GCM-SHA384" | ||
182 | "ECDHE-ECDSA-CHACHA20-POLY1305" "ECDHE-RSA-CHACHA20-POLY1305" | ||
183 | "DHE-RSA-AES128-GCM-SHA256" "DHE-RSA-AES256-GCM-SHA384" | ||
184 | ]; | ||
185 | inherit (icfg) adminAddr; | ||
186 | logFormat = "combinedVhost"; | ||
187 | extraModules = lists.unique icfg.modules; | ||
188 | extraConfig = builtins.concatStringsSep "\n" icfg.extraConfig; | ||
189 | |||
190 | virtualHosts = with attrsets; { | ||
191 | ___fallbackVhost = toVhost icfg.ips icfg.fallbackVhost; | ||
192 | } // (optionalAttrs icfg.nosslVhost.enable { | ||
193 | nosslVhost = nosslVhost icfg.ips icfg.nosslVhost; | ||
194 | }) // (mapAttrs' (n: v: nameValuePair ("nossl_" + n) (toVhostNoSSL icfg.ips v)) icfg.vhostNoSSLConfs) | ||
195 | // (mapAttrs' (n: v: nameValuePair ("ssl_" + n) (toVhost icfg.ips v)) icfg.vhostConfs); | ||
196 | }) | ||
197 | ) cfg.env; | ||
198 | |||
199 | config.services.filesWatcher = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
200 | "httpd${icfg.httpdName}" { | ||
201 | paths = icfg.watchPaths; | ||
202 | waitTime = 5; | ||
203 | } | ||
204 | ) cfg.env; | ||
205 | |||
206 | config.security.acme.certs = let | ||
207 | typesToManage = attrsets.filterAttrs (k: v: v.enable) cfg.env; | ||
208 | flatVhosts = lists.flatten (attrsets.mapAttrsToList (k: v: | ||
209 | attrValues v.vhostConfs | ||
210 | ) typesToManage); | ||
211 | groupedCerts = attrsets.filterAttrs | ||
212 | (_: group: builtins.any (v: v.addToCerts || !isNull v.certMainHost) group) | ||
213 | (lists.groupBy (v: v.certName) flatVhosts); | ||
214 | groupToDomain = group: | ||
215 | let | ||
216 | nonNull = builtins.filter (v: !isNull v.certMainHost) group; | ||
217 | domains = lists.unique (map (v: v.certMainHost) nonNull); | ||
218 | in | ||
219 | if builtins.length domains == 0 | ||
220 | then null | ||
221 | else assert (builtins.length domains == 1); (elemAt domains 0); | ||
222 | extraDomains = group: | ||
223 | let | ||
224 | mainDomain = groupToDomain group; | ||
225 | in | ||
226 | lists.remove mainDomain ( | ||
227 | lists.unique ( | ||
228 | lists.flatten (map (c: optionals (c.addToCerts || !isNull c.certMainHost) c.hosts) group) | ||
229 | ) | ||
230 | ); | ||
231 | in attrsets.mapAttrs (k: g: | ||
232 | if (!isNull (groupToDomain g)) | ||
233 | then cfg.certs // { | ||
234 | domain = groupToDomain g; | ||
235 | extraDomains = builtins.listToAttrs ( | ||
236 | map (d: attrsets.nameValuePair d null) (extraDomains g)); | ||
237 | } | ||
238 | else { | ||
239 | extraDomains = builtins.listToAttrs ( | ||
240 | map (d: attrsets.nameValuePair d null) (extraDomains g)); | ||
241 | } | ||
242 | ) groupedCerts; | ||
243 | |||
244 | config.systemd.services = let | ||
245 | package = httpdName: config.services.httpd.${httpdName}.package.out; | ||
246 | cfgFile = httpdName: config.services.httpd.${httpdName}.configFile; | ||
247 | serviceChange = attrsets.mapAttrs' (name: icfg: | ||
248 | attrsets.nameValuePair | ||
249 | "httpd${icfg.httpdName}" { | ||
250 | stopIfChanged = false; | ||
251 | serviceConfig.ExecStart = | ||
252 | lib.mkForce "@${package icfg.httpdName}/bin/httpd httpd -f /etc/httpd/httpd_${icfg.httpdName}.conf"; | ||
253 | serviceConfig.ExecStop = | ||
254 | lib.mkForce "${package icfg.httpdName}/bin/httpd -f /etc/httpd/httpd_${icfg.httpdName}.conf -k graceful-stop"; | ||
255 | serviceConfig.ExecReload = | ||
256 | lib.mkForce "${package icfg.httpdName}/bin/httpd -f /etc/httpd/httpd_${icfg.httpdName}.conf -k graceful"; | ||
257 | } | ||
258 | ) cfg.env; | ||
259 | serviceReload = attrsets.mapAttrs' (name: icfg: | ||
260 | attrsets.nameValuePair | ||
261 | "httpd${icfg.httpdName}-config-reload" { | ||
262 | wants = [ "httpd${icfg.httpdName}.service" ]; | ||
263 | wantedBy = [ "multi-user.target" ]; | ||
264 | restartTriggers = [ (cfgFile icfg.httpdName) ]; | ||
265 | # commented, because can cause extra delays during activate for this config: | ||
266 | # services.nginx.virtualHosts."_".locations."/".proxyPass = "http://blabla:3000"; | ||
267 | # stopIfChanged = false; | ||
268 | serviceConfig.Type = "oneshot"; | ||
269 | serviceConfig.TimeoutSec = 60; | ||
270 | script = '' | ||
271 | if ${pkgs.systemd}/bin/systemctl -q is-active httpd${icfg.httpdName}.service ; then | ||
272 | ${package icfg.httpdName}/bin/httpd -f /etc/httpd/httpd_${icfg.httpdName}.conf -t && \ | ||
273 | ${pkgs.systemd}/bin/systemctl reload httpd${icfg.httpdName}.service | ||
274 | fi | ||
275 | ''; | ||
276 | serviceConfig.RemainAfterExit = true; | ||
277 | } | ||
278 | ) cfg.env; | ||
279 | in | ||
280 | serviceChange // serviceReload; | ||
281 | } | ||
diff --git a/modules/websites/httpd-service-builder.nix b/modules/websites/httpd-service-builder.nix deleted file mode 100644 index 1f7488d..0000000 --- a/modules/websites/httpd-service-builder.nix +++ /dev/null | |||
@@ -1,735 +0,0 @@ | |||
1 | # to help backporting this builder should stay as close as possible to | ||
2 | # nixos/modules/services/web-servers/apache-httpd/default.nix | ||
3 | { httpdName, withUsers ? true }: | ||
4 | { config, lib, pkgs, ... }: | ||
5 | |||
6 | with lib; | ||
7 | |||
8 | let | ||
9 | |||
10 | cfg = config.services.httpd."${httpdName}"; | ||
11 | |||
12 | runtimeDir = "/run/httpd_${httpdName}"; | ||
13 | |||
14 | pkg = cfg.package.out; | ||
15 | |||
16 | httpdConf = cfg.configFile; | ||
17 | |||
18 | php = cfg.phpPackage.override { apacheHttpd = pkg.dev; /* otherwise it only gets .out */ }; | ||
19 | |||
20 | phpMajorVersion = lib.versions.major (lib.getVersion php); | ||
21 | |||
22 | mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = pkg; }; | ||
23 | |||
24 | vhosts = attrValues cfg.virtualHosts; | ||
25 | |||
26 | mkListenInfo = hostOpts: | ||
27 | if hostOpts.listen != [] then hostOpts.listen | ||
28 | else ( | ||
29 | optional (hostOpts.onlySSL || hostOpts.addSSL || hostOpts.forceSSL) { ip = "*"; port = 443; ssl = true; } ++ | ||
30 | optional (!hostOpts.onlySSL) { ip = "*"; port = 80; ssl = false; } | ||
31 | ); | ||
32 | |||
33 | listenInfo = unique (concatMap mkListenInfo vhosts); | ||
34 | |||
35 | enableHttp2 = any (vhost: vhost.http2) vhosts; | ||
36 | enableSSL = any (listen: listen.ssl) listenInfo; | ||
37 | enableUserDir = any (vhost: vhost.enableUserDir) vhosts; | ||
38 | |||
39 | # NOTE: generally speaking order of modules is very important | ||
40 | modules = | ||
41 | [ # required apache modules our httpd service cannot run without | ||
42 | "authn_core" "authz_core" | ||
43 | "log_config" | ||
44 | "mime" "autoindex" "negotiation" "dir" | ||
45 | "alias" "rewrite" | ||
46 | "unixd" "slotmem_shm" "socache_shmcb" | ||
47 | "mpm_${cfg.multiProcessingModule}" | ||
48 | ] | ||
49 | ++ (if cfg.multiProcessingModule == "prefork" then [ "cgi" ] else [ "cgid" ]) | ||
50 | ++ optional enableHttp2 "http2" | ||
51 | ++ optional enableSSL "ssl" | ||
52 | ++ optional enableUserDir "userdir" | ||
53 | ++ optional cfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; } | ||
54 | ++ optional cfg.enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; } | ||
55 | ++ optional cfg.enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; } | ||
56 | ++ cfg.extraModules; | ||
57 | |||
58 | loggingConf = (if cfg.logFormat != "none" then '' | ||
59 | ErrorLog ${cfg.logDir}/error.log | ||
60 | |||
61 | LogLevel notice | ||
62 | |||
63 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | ||
64 | LogFormat "%h %l %u %t \"%r\" %>s %b" common | ||
65 | LogFormat "%{Referer}i -> %U" referer | ||
66 | LogFormat "%{User-agent}i" agent | ||
67 | |||
68 | CustomLog ${cfg.logDir}/access.log ${cfg.logFormat} | ||
69 | '' else '' | ||
70 | ErrorLog /dev/null | ||
71 | ''); | ||
72 | |||
73 | |||
74 | browserHacks = '' | ||
75 | <IfModule mod_setenvif.c> | ||
76 | BrowserMatch "Mozilla/2" nokeepalive | ||
77 | BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 | ||
78 | BrowserMatch "RealPlayer 4\.0" force-response-1.0 | ||
79 | BrowserMatch "Java/1\.0" force-response-1.0 | ||
80 | BrowserMatch "JDK/1\.0" force-response-1.0 | ||
81 | BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully | ||
82 | BrowserMatch "^WebDrive" redirect-carefully | ||
83 | BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully | ||
84 | BrowserMatch "^gnome-vfs" redirect-carefully | ||
85 | </IfModule> | ||
86 | ''; | ||
87 | |||
88 | |||
89 | sslConf = '' | ||
90 | <IfModule mod_ssl.c> | ||
91 | SSLSessionCache shmcb:${runtimeDir}/ssl_scache(512000) | ||
92 | |||
93 | Mutex posixsem | ||
94 | |||
95 | SSLRandomSeed startup builtin | ||
96 | SSLRandomSeed connect builtin | ||
97 | |||
98 | SSLProtocol ${cfg.sslProtocols} | ||
99 | SSLCipherSuite ${cfg.sslCiphers} | ||
100 | SSLHonorCipherOrder on | ||
101 | </IfModule> | ||
102 | ''; | ||
103 | |||
104 | |||
105 | mimeConf = '' | ||
106 | TypesConfig ${pkg}/conf/mime.types | ||
107 | |||
108 | AddType application/x-x509-ca-cert .crt | ||
109 | AddType application/x-pkcs7-crl .crl | ||
110 | AddType application/x-httpd-php .php .phtml | ||
111 | |||
112 | <IfModule mod_mime_magic.c> | ||
113 | MIMEMagicFile ${pkg}/conf/magic | ||
114 | </IfModule> | ||
115 | ''; | ||
116 | |||
117 | mkVHostConf = hostOpts: | ||
118 | let | ||
119 | adminAddr = if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr; | ||
120 | listen = filter (listen: !listen.ssl) (mkListenInfo hostOpts); | ||
121 | listenSSL = filter (listen: listen.ssl) (mkListenInfo hostOpts); | ||
122 | |||
123 | useACME = hostOpts.enableACME || hostOpts.useACMEHost != null; | ||
124 | sslCertDir = | ||
125 | if hostOpts.enableACME then config.security.acme.certs.${hostOpts.hostName}.directory | ||
126 | else if hostOpts.useACMEHost != null then config.security.acme.certs.${hostOpts.useACMEHost}.directory | ||
127 | else abort "This case should never happen."; | ||
128 | |||
129 | sslServerCert = if useACME then "${sslCertDir}/full.pem" else hostOpts.sslServerCert; | ||
130 | sslServerKey = if useACME then "${sslCertDir}/key.pem" else hostOpts.sslServerKey; | ||
131 | sslServerChain = if useACME then "${sslCertDir}/fullchain.pem" else hostOpts.sslServerChain; | ||
132 | |||
133 | acmeChallenge = optionalString useACME '' | ||
134 | Alias /.well-known/acme-challenge/ "${hostOpts.acmeRoot}/.well-known/acme-challenge/" | ||
135 | <Directory "${hostOpts.acmeRoot}"> | ||
136 | AllowOverride None | ||
137 | Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec | ||
138 | Require method GET POST OPTIONS | ||
139 | Require all granted | ||
140 | </Directory> | ||
141 | ''; | ||
142 | in | ||
143 | optionalString (listen != []) '' | ||
144 | <VirtualHost ${concatMapStringsSep " " (listen: "${listen.ip}:${toString listen.port}") listen}> | ||
145 | ServerName ${hostOpts.hostName} | ||
146 | ${concatMapStrings (alias: "ServerAlias ${alias}\n") hostOpts.serverAliases} | ||
147 | ServerAdmin ${adminAddr} | ||
148 | <IfModule mod_ssl.c> | ||
149 | SSLEngine off | ||
150 | </IfModule> | ||
151 | ${acmeChallenge} | ||
152 | ${if hostOpts.forceSSL then '' | ||
153 | <IfModule mod_rewrite.c> | ||
154 | RewriteEngine on | ||
155 | RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge [NC] | ||
156 | RewriteCond %{HTTPS} off | ||
157 | RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} | ||
158 | </IfModule> | ||
159 | '' else mkVHostCommonConf hostOpts} | ||
160 | </VirtualHost> | ||
161 | '' + | ||
162 | optionalString (listenSSL != []) '' | ||
163 | <VirtualHost ${concatMapStringsSep " " (listen: "${listen.ip}:${toString listen.port}") listenSSL}> | ||
164 | ServerName ${hostOpts.hostName} | ||
165 | ${concatMapStrings (alias: "ServerAlias ${alias}\n") hostOpts.serverAliases} | ||
166 | ServerAdmin ${adminAddr} | ||
167 | SSLEngine on | ||
168 | SSLCertificateFile ${sslServerCert} | ||
169 | SSLCertificateKeyFile ${sslServerKey} | ||
170 | ${optionalString hostOpts.http2 "Protocols h2 h2c http/1.1"} | ||
171 | ${acmeChallenge} | ||
172 | ${mkVHostCommonConf hostOpts} | ||
173 | </VirtualHost> | ||
174 | '' | ||
175 | ; | ||
176 | |||
177 | mkVHostCommonConf = hostOpts: | ||
178 | let | ||
179 | documentRoot = if hostOpts.documentRoot != null | ||
180 | then hostOpts.documentRoot | ||
181 | else pkgs.runCommand "empty" { preferLocalBuild = true; } "mkdir -p $out" | ||
182 | ; | ||
183 | |||
184 | mkLocations = locations: concatStringsSep "\n" (map (config: '' | ||
185 | <Location ${config.location}> | ||
186 | ${optionalString (config.proxyPass != null) '' | ||
187 | <IfModule mod_proxy.c> | ||
188 | ProxyPass ${config.proxyPass} | ||
189 | ProxyPassReverse ${config.proxyPass} | ||
190 | </IfModule> | ||
191 | ''} | ||
192 | ${optionalString (config.index != null) '' | ||
193 | <IfModule mod_dir.c> | ||
194 | DirectoryIndex ${config.index} | ||
195 | </IfModule> | ||
196 | ''} | ||
197 | ${optionalString (config.alias != null) '' | ||
198 | <IfModule mod_alias.c> | ||
199 | Alias "${config.alias}" | ||
200 | </IfModule> | ||
201 | ''} | ||
202 | ${config.extraConfig} | ||
203 | </Location> | ||
204 | '') (sortProperties (mapAttrsToList (k: v: v // { location = k; }) locations))); | ||
205 | in | ||
206 | '' | ||
207 | ${optionalString cfg.logPerVirtualHost '' | ||
208 | ErrorLog ${cfg.logDir}/error-${hostOpts.hostName}.log | ||
209 | CustomLog ${cfg.logDir}/access-${hostOpts.hostName}.log ${hostOpts.logFormat} | ||
210 | ''} | ||
211 | |||
212 | ${optionalString (hostOpts.robotsEntries != "") '' | ||
213 | Alias /robots.txt ${pkgs.writeText "robots.txt" hostOpts.robotsEntries} | ||
214 | ''} | ||
215 | |||
216 | DocumentRoot "${documentRoot}" | ||
217 | |||
218 | <Directory "${documentRoot}"> | ||
219 | Options Indexes FollowSymLinks | ||
220 | AllowOverride None | ||
221 | Require all granted | ||
222 | </Directory> | ||
223 | |||
224 | ${optionalString hostOpts.enableUserDir '' | ||
225 | UserDir public_html | ||
226 | UserDir disabled root | ||
227 | <Directory "/home/*/public_html"> | ||
228 | AllowOverride FileInfo AuthConfig Limit Indexes | ||
229 | Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec | ||
230 | <Limit GET POST OPTIONS> | ||
231 | Require all granted | ||
232 | </Limit> | ||
233 | <LimitExcept GET POST OPTIONS> | ||
234 | Require all denied | ||
235 | </LimitExcept> | ||
236 | </Directory> | ||
237 | ''} | ||
238 | |||
239 | ${optionalString (hostOpts.globalRedirect != null && hostOpts.globalRedirect != "") '' | ||
240 | RedirectPermanent / ${hostOpts.globalRedirect} | ||
241 | ''} | ||
242 | |||
243 | ${ | ||
244 | let makeDirConf = elem: '' | ||
245 | Alias ${elem.urlPath} ${elem.dir}/ | ||
246 | <Directory ${elem.dir}> | ||
247 | Options +Indexes | ||
248 | Require all granted | ||
249 | AllowOverride All | ||
250 | </Directory> | ||
251 | ''; | ||
252 | in concatMapStrings makeDirConf hostOpts.servedDirs | ||
253 | } | ||
254 | |||
255 | ${mkLocations hostOpts.locations} | ||
256 | ${hostOpts.extraConfig} | ||
257 | '' | ||
258 | ; | ||
259 | |||
260 | |||
261 | confFile = pkgs.writeText "httpd.conf" '' | ||
262 | |||
263 | ServerRoot ${pkg} | ||
264 | ServerName ${config.networking.hostName} | ||
265 | DefaultRuntimeDir ${runtimeDir}/runtime | ||
266 | |||
267 | PidFile ${runtimeDir}/httpd.pid | ||
268 | |||
269 | ${optionalString (cfg.multiProcessingModule != "prefork") '' | ||
270 | # mod_cgid requires this. | ||
271 | ScriptSock ${runtimeDir}/cgisock | ||
272 | ''} | ||
273 | |||
274 | <IfModule prefork.c> | ||
275 | MaxClients ${toString cfg.maxClients} | ||
276 | MaxRequestsPerChild ${toString cfg.maxRequestsPerChild} | ||
277 | </IfModule> | ||
278 | |||
279 | ${let | ||
280 | toStr = listen: "Listen ${listen.ip}:${toString listen.port} ${if listen.ssl then "https" else "http"}"; | ||
281 | uniqueListen = uniqList {inputList = map toStr listenInfo;}; | ||
282 | in concatStringsSep "\n" uniqueListen | ||
283 | } | ||
284 | |||
285 | User ${cfg.user} | ||
286 | Group ${cfg.group} | ||
287 | |||
288 | ${let | ||
289 | mkModule = module: | ||
290 | if isString module then { name = module; path = "${pkg}/modules/mod_${module}.so"; } | ||
291 | else if isAttrs module then { inherit (module) name path; } | ||
292 | else throw "Expecting either a string or attribute set including a name and path."; | ||
293 | in | ||
294 | concatMapStringsSep "\n" (module: "LoadModule ${module.name}_module ${module.path}") (unique (map mkModule modules)) | ||
295 | } | ||
296 | |||
297 | AddHandler type-map var | ||
298 | |||
299 | <Files ~ "^\.ht"> | ||
300 | Require all denied | ||
301 | </Files> | ||
302 | |||
303 | ${mimeConf} | ||
304 | ${loggingConf} | ||
305 | ${browserHacks} | ||
306 | |||
307 | Include ${pkg}/conf/extra/httpd-default.conf | ||
308 | Include ${pkg}/conf/extra/httpd-autoindex.conf | ||
309 | Include ${pkg}/conf/extra/httpd-multilang-errordoc.conf | ||
310 | Include ${pkg}/conf/extra/httpd-languages.conf | ||
311 | |||
312 | TraceEnable off | ||
313 | |||
314 | ${sslConf} | ||
315 | |||
316 | # Fascist default - deny access to everything. | ||
317 | <Directory /> | ||
318 | Options FollowSymLinks | ||
319 | AllowOverride None | ||
320 | Require all denied | ||
321 | </Directory> | ||
322 | |||
323 | ${cfg.extraConfig} | ||
324 | |||
325 | ${concatMapStringsSep "\n" mkVHostConf vhosts} | ||
326 | ''; | ||
327 | |||
328 | # Generate the PHP configuration file. Should probably be factored | ||
329 | # out into a separate module. | ||
330 | phpIni = pkgs.runCommand "php.ini" | ||
331 | { options = cfg.phpOptions; | ||
332 | preferLocalBuild = true; | ||
333 | } | ||
334 | '' | ||
335 | cat ${php}/etc/php.ini > $out | ||
336 | echo "$options" >> $out | ||
337 | ''; | ||
338 | |||
339 | in | ||
340 | |||
341 | |||
342 | { | ||
343 | |||
344 | imports = [ | ||
345 | (mkRemovedOptionModule [ "services" "httpd" httpdName "extraSubservices" ] "Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") | ||
346 | (mkRemovedOptionModule [ "services" "httpd" httpdName "stateDir" ] "The httpd module now uses /run/httpd as a runtime directory.") | ||
347 | |||
348 | # virtualHosts options | ||
349 | (mkRemovedOptionModule [ "services" "httpd" httpdName "documentRoot" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
350 | (mkRemovedOptionModule [ "services" "httpd" httpdName "enableSSL" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
351 | (mkRemovedOptionModule [ "services" "httpd" httpdName "enableUserDir" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
352 | (mkRemovedOptionModule [ "services" "httpd" httpdName "globalRedirect" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
353 | (mkRemovedOptionModule [ "services" "httpd" httpdName "hostName" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
354 | (mkRemovedOptionModule [ "services" "httpd" httpdName "listen" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
355 | (mkRemovedOptionModule [ "services" "httpd" httpdName "robotsEntries" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
356 | (mkRemovedOptionModule [ "services" "httpd" httpdName "servedDirs" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
357 | (mkRemovedOptionModule [ "services" "httpd" httpdName "servedFiles" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
358 | (mkRemovedOptionModule [ "services" "httpd" httpdName "serverAliases" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
359 | (mkRemovedOptionModule [ "services" "httpd" httpdName "sslServerCert" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
360 | (mkRemovedOptionModule [ "services" "httpd" httpdName "sslServerChain" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
361 | (mkRemovedOptionModule [ "services" "httpd" httpdName "sslServerKey" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
362 | ]; | ||
363 | |||
364 | # interface | ||
365 | |||
366 | options = { | ||
367 | |||
368 | services.httpd."${httpdName}" = { | ||
369 | |||
370 | enable = mkEnableOption "the Apache HTTP Server"; | ||
371 | |||
372 | package = mkOption { | ||
373 | type = types.package; | ||
374 | default = pkgs.apacheHttpd; | ||
375 | defaultText = "pkgs.apacheHttpd"; | ||
376 | description = '' | ||
377 | Overridable attribute of the Apache HTTP Server package to use. | ||
378 | ''; | ||
379 | }; | ||
380 | |||
381 | configFile = mkOption { | ||
382 | type = types.path; | ||
383 | default = confFile; | ||
384 | defaultText = "confFile"; | ||
385 | example = literalExample ''pkgs.writeText "httpd.conf" "# my custom config file ..."''; | ||
386 | description = '' | ||
387 | Override the configuration file used by Apache. By default, | ||
388 | NixOS generates one automatically. | ||
389 | ''; | ||
390 | }; | ||
391 | |||
392 | extraConfig = mkOption { | ||
393 | type = types.lines; | ||
394 | default = ""; | ||
395 | description = '' | ||
396 | Configuration lines appended to the generated Apache | ||
397 | configuration file. Note that this mechanism will not work | ||
398 | when <option>configFile</option> is overridden. | ||
399 | ''; | ||
400 | }; | ||
401 | |||
402 | extraModules = mkOption { | ||
403 | type = types.listOf types.unspecified; | ||
404 | default = []; | ||
405 | example = literalExample '' | ||
406 | [ | ||
407 | "proxy_connect" | ||
408 | { name = "jk"; path = "''${pkgs.tomcat_connectors}/modules/mod_jk.so"; } | ||
409 | ] | ||
410 | ''; | ||
411 | description = '' | ||
412 | Additional Apache modules to be used. These can be | ||
413 | specified as a string in the case of modules distributed | ||
414 | with Apache, or as an attribute set specifying the | ||
415 | <varname>name</varname> and <varname>path</varname> of the | ||
416 | module. | ||
417 | ''; | ||
418 | }; | ||
419 | |||
420 | adminAddr = mkOption { | ||
421 | type = types.str; | ||
422 | example = "admin@example.org"; | ||
423 | description = "E-mail address of the server administrator."; | ||
424 | }; | ||
425 | |||
426 | logFormat = mkOption { | ||
427 | type = types.str; | ||
428 | default = "common"; | ||
429 | example = "combined"; | ||
430 | description = '' | ||
431 | Log format for log files. Possible values are: combined, common, referer, agent. | ||
432 | See <link xlink:href="https://httpd.apache.org/docs/2.4/logs.html"/> for more details. | ||
433 | ''; | ||
434 | }; | ||
435 | |||
436 | logPerVirtualHost = mkOption { | ||
437 | type = types.bool; | ||
438 | default = true; | ||
439 | description = '' | ||
440 | If enabled, each virtual host gets its own | ||
441 | <filename>access.log</filename> and | ||
442 | <filename>error.log</filename>, namely suffixed by the | ||
443 | <option>hostName</option> of the virtual host. | ||
444 | ''; | ||
445 | }; | ||
446 | |||
447 | user = mkOption { | ||
448 | type = types.str; | ||
449 | default = "wwwrun"; | ||
450 | description = '' | ||
451 | User account under which httpd runs. | ||
452 | ''; | ||
453 | }; | ||
454 | |||
455 | group = mkOption { | ||
456 | type = types.str; | ||
457 | default = "wwwrun"; | ||
458 | description = '' | ||
459 | Group under which httpd runs. | ||
460 | ''; | ||
461 | }; | ||
462 | |||
463 | logDir = mkOption { | ||
464 | type = types.path; | ||
465 | default = "/var/log/httpd"; | ||
466 | description = '' | ||
467 | Directory for Apache's log files. It is created automatically. | ||
468 | ''; | ||
469 | }; | ||
470 | |||
471 | virtualHosts = mkOption { | ||
472 | type = with types; attrsOf (submodule (import <nixpkgs/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix>)); | ||
473 | default = { | ||
474 | localhost = { | ||
475 | documentRoot = "${pkg}/htdocs"; | ||
476 | }; | ||
477 | }; | ||
478 | example = literalExample '' | ||
479 | { | ||
480 | "foo.example.com" = { | ||
481 | forceSSL = true; | ||
482 | documentRoot = "/var/www/foo.example.com" | ||
483 | }; | ||
484 | "bar.example.com" = { | ||
485 | addSSL = true; | ||
486 | documentRoot = "/var/www/bar.example.com"; | ||
487 | }; | ||
488 | } | ||
489 | ''; | ||
490 | description = '' | ||
491 | Specification of the virtual hosts served by Apache. Each | ||
492 | element should be an attribute set specifying the | ||
493 | configuration of the virtual host. | ||
494 | ''; | ||
495 | }; | ||
496 | |||
497 | enableMellon = mkOption { | ||
498 | type = types.bool; | ||
499 | default = false; | ||
500 | description = "Whether to enable the mod_auth_mellon module."; | ||
501 | }; | ||
502 | |||
503 | enablePHP = mkOption { | ||
504 | type = types.bool; | ||
505 | default = false; | ||
506 | description = "Whether to enable the PHP module."; | ||
507 | }; | ||
508 | |||
509 | phpPackage = mkOption { | ||
510 | type = types.package; | ||
511 | default = pkgs.php; | ||
512 | defaultText = "pkgs.php"; | ||
513 | description = '' | ||
514 | Overridable attribute of the PHP package to use. | ||
515 | ''; | ||
516 | }; | ||
517 | |||
518 | enablePerl = mkOption { | ||
519 | type = types.bool; | ||
520 | default = false; | ||
521 | description = "Whether to enable the Perl module (mod_perl)."; | ||
522 | }; | ||
523 | |||
524 | phpOptions = mkOption { | ||
525 | type = types.lines; | ||
526 | default = ""; | ||
527 | example = | ||
528 | '' | ||
529 | date.timezone = "CET" | ||
530 | ''; | ||
531 | description = '' | ||
532 | Options appended to the PHP configuration file <filename>php.ini</filename>. | ||
533 | ''; | ||
534 | }; | ||
535 | |||
536 | multiProcessingModule = mkOption { | ||
537 | type = types.enum [ "event" "prefork" "worker" ]; | ||
538 | default = "prefork"; | ||
539 | example = "worker"; | ||
540 | description = | ||
541 | '' | ||
542 | Multi-processing module to be used by Apache. Available | ||
543 | modules are <literal>prefork</literal> (the default; | ||
544 | handles each request in a separate child process), | ||
545 | <literal>worker</literal> (hybrid approach that starts a | ||
546 | number of child processes each running a number of | ||
547 | threads) and <literal>event</literal> (a recent variant of | ||
548 | <literal>worker</literal> that handles persistent | ||
549 | connections more efficiently). | ||
550 | ''; | ||
551 | }; | ||
552 | |||
553 | maxClients = mkOption { | ||
554 | type = types.int; | ||
555 | default = 150; | ||
556 | example = 8; | ||
557 | description = "Maximum number of httpd processes (prefork)"; | ||
558 | }; | ||
559 | |||
560 | maxRequestsPerChild = mkOption { | ||
561 | type = types.int; | ||
562 | default = 0; | ||
563 | example = 500; | ||
564 | description = '' | ||
565 | Maximum number of httpd requests answered per httpd child (prefork), 0 means unlimited. | ||
566 | ''; | ||
567 | }; | ||
568 | |||
569 | sslCiphers = mkOption { | ||
570 | type = types.str; | ||
571 | default = "HIGH:!aNULL:!MD5:!EXP"; | ||
572 | description = "Cipher Suite available for negotiation in SSL proxy handshake."; | ||
573 | }; | ||
574 | |||
575 | sslProtocols = mkOption { | ||
576 | type = types.str; | ||
577 | default = "All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1"; | ||
578 | example = "All -SSLv2 -SSLv3"; | ||
579 | description = "Allowed SSL/TLS protocol versions."; | ||
580 | }; | ||
581 | }; | ||
582 | |||
583 | }; | ||
584 | |||
585 | # implementation | ||
586 | |||
587 | config = mkIf cfg.enable { | ||
588 | |||
589 | assertions = [ | ||
590 | { | ||
591 | assertion = all (hostOpts: !hostOpts.enableSSL) vhosts; | ||
592 | message = '' | ||
593 | The option `services.httpd.virtualHosts.<name>.enableSSL` no longer has any effect; please remove it. | ||
594 | Select one of `services.httpd.virtualHosts.<name>.addSSL`, `services.httpd.virtualHosts.<name>.forceSSL`, | ||
595 | or `services.httpd.virtualHosts.<name>.onlySSL`. | ||
596 | ''; | ||
597 | } | ||
598 | { | ||
599 | assertion = all (hostOpts: with hostOpts; !(addSSL && onlySSL) && !(forceSSL && onlySSL) && !(addSSL && forceSSL)) vhosts; | ||
600 | message = '' | ||
601 | Options `services.httpd.virtualHosts.<name>.addSSL`, | ||
602 | `services.httpd.virtualHosts.<name>.onlySSL` and `services.httpd.virtualHosts.<name>.forceSSL` | ||
603 | are mutually exclusive. | ||
604 | ''; | ||
605 | } | ||
606 | { | ||
607 | assertion = all (hostOpts: !(hostOpts.enableACME && hostOpts.useACMEHost != null)) vhosts; | ||
608 | message = '' | ||
609 | Options `services.httpd.virtualHosts.<name>.enableACME` and | ||
610 | `services.httpd.virtualHosts.<name>.useACMEHost` are mutually exclusive. | ||
611 | ''; | ||
612 | } | ||
613 | ]; | ||
614 | |||
615 | warnings = | ||
616 | mapAttrsToList (name: hostOpts: '' | ||
617 | Using config.services.httpd.virtualHosts."${name}".servedFiles is deprecated and will become unsupported in a future release. Your configuration will continue to work as is but please migrate your configuration to config.services.httpd.virtualHosts."${name}".locations before the 20.09 release of NixOS. | ||
618 | '') (filterAttrs (name: hostOpts: hostOpts.servedFiles != []) cfg.virtualHosts); | ||
619 | |||
620 | users.users = optionalAttrs (withUsers && cfg.user == "wwwrun") { | ||
621 | wwwrun = { | ||
622 | group = cfg.group; | ||
623 | description = "Apache httpd user"; | ||
624 | uid = config.ids.uids.wwwrun; | ||
625 | }; | ||
626 | }; | ||
627 | |||
628 | users.groups = optionalAttrs (withUsers && cfg.group == "wwwrun") { | ||
629 | wwwrun.gid = config.ids.gids.wwwrun; | ||
630 | }; | ||
631 | |||
632 | security.acme.certs = mapAttrs (name: hostOpts: { | ||
633 | user = cfg.user; | ||
634 | group = mkDefault cfg.group; | ||
635 | email = if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr; | ||
636 | webroot = hostOpts.acmeRoot; | ||
637 | extraDomains = genAttrs hostOpts.serverAliases (alias: null); | ||
638 | postRun = "systemctl reload httpd.service"; | ||
639 | }) (filterAttrs (name: hostOpts: hostOpts.enableACME) cfg.virtualHosts); | ||
640 | |||
641 | environment.systemPackages = [ pkg ]; | ||
642 | |||
643 | # required for "apachectl configtest" | ||
644 | environment.etc."httpd/httpd_${httpdName}.conf".source = httpdConf; | ||
645 | |||
646 | services.httpd."${httpdName}" = { phpOptions = | ||
647 | '' | ||
648 | ; Needed for PHP's mail() function. | ||
649 | sendmail_path = sendmail -t -i | ||
650 | |||
651 | ; Don't advertise PHP | ||
652 | expose_php = off | ||
653 | '' + optionalString (config.time.timeZone != null) '' | ||
654 | |||
655 | ; Apparently PHP doesn't use $TZ. | ||
656 | date.timezone = "${config.time.timeZone}" | ||
657 | ''; | ||
658 | |||
659 | extraModules = mkBefore [ | ||
660 | # HTTP authentication mechanisms: basic and digest. | ||
661 | "auth_basic" "auth_digest" | ||
662 | |||
663 | # Authentication: is the user who he claims to be? | ||
664 | "authn_file" "authn_dbm" "authn_anon" | ||
665 | |||
666 | # Authorization: is the user allowed access? | ||
667 | "authz_user" "authz_groupfile" "authz_host" | ||
668 | |||
669 | # Other modules. | ||
670 | "ext_filter" "include" "env" "mime_magic" | ||
671 | "cern_meta" "expires" "headers" "usertrack" "setenvif" | ||
672 | "dav" "status" "asis" "info" "dav_fs" | ||
673 | "vhost_alias" "imagemap" "actions" "speling" | ||
674 | "proxy" "proxy_http" | ||
675 | "cache" "cache_disk" | ||
676 | |||
677 | # For compatibility with old configurations, the new module mod_access_compat is provided. | ||
678 | "access_compat" | ||
679 | ]; | ||
680 | }; | ||
681 | |||
682 | systemd.tmpfiles.rules = | ||
683 | let | ||
684 | svc = config.systemd.services."httpd${httpdName}".serviceConfig; | ||
685 | in | ||
686 | [ | ||
687 | "d '${cfg.logDir}' 0700 ${svc.User} ${svc.Group}" | ||
688 | "Z '${cfg.logDir}' - ${svc.User} ${svc.Group}" | ||
689 | ]; | ||
690 | |||
691 | systemd.services."httpd${httpdName}" = | ||
692 | let | ||
693 | vhostsACME = filter (hostOpts: hostOpts.enableACME) vhosts; | ||
694 | in | ||
695 | { description = "Apache HTTPD"; | ||
696 | |||
697 | wantedBy = [ "multi-user.target" ]; | ||
698 | wants = concatLists (map (hostOpts: [ "acme-${hostOpts.hostName}.service" "acme-selfsigned-${hostOpts.hostName}.service" ]) vhostsACME); | ||
699 | after = [ "network.target" "fs.target" ] ++ map (hostOpts: "acme-selfsigned-${hostOpts.hostName}.service") vhostsACME; | ||
700 | |||
701 | path = | ||
702 | [ pkg pkgs.coreutils pkgs.gnugrep ] | ||
703 | ++ optional cfg.enablePHP pkgs.system-sendmail; # Needed for PHP's mail() function. | ||
704 | |||
705 | environment = | ||
706 | optionalAttrs cfg.enablePHP { PHPRC = phpIni; } | ||
707 | // optionalAttrs cfg.enableMellon { LD_LIBRARY_PATH = "${pkgs.xmlsec}/lib"; }; | ||
708 | |||
709 | preStart = | ||
710 | '' | ||
711 | # Get rid of old semaphores. These tend to accumulate across | ||
712 | # server restarts, eventually preventing it from restarting | ||
713 | # successfully. | ||
714 | for i in $(${pkgs.utillinux}/bin/ipcs -s | grep ' ${cfg.user} ' | cut -f2 -d ' '); do | ||
715 | ${pkgs.utillinux}/bin/ipcrm -s $i | ||
716 | done | ||
717 | ''; | ||
718 | |||
719 | serviceConfig = { | ||
720 | ExecStart = "@${pkg}/bin/httpd httpd -f ${httpdConf}"; | ||
721 | ExecStop = "${pkg}/bin/httpd -f ${httpdConf} -k graceful-stop"; | ||
722 | ExecReload = "${pkg}/bin/httpd -f ${httpdConf} -k graceful"; | ||
723 | User = "root"; | ||
724 | Group = cfg.group; | ||
725 | Type = "forking"; | ||
726 | PIDFile = "${runtimeDir}/httpd.pid"; | ||
727 | Restart = "always"; | ||
728 | RestartSec = "5s"; | ||
729 | RuntimeDirectory = "httpd_${httpdName} httpd_${httpdName}/runtime"; | ||
730 | RuntimeDirectoryMode = "0750"; | ||
731 | }; | ||
732 | }; | ||
733 | |||
734 | }; | ||
735 | } | ||
diff --git a/modules/websites/httpd-service-builder.patch b/modules/websites/httpd-service-builder.patch deleted file mode 100644 index f0ad836..0000000 --- a/modules/websites/httpd-service-builder.patch +++ /dev/null | |||
@@ -1,150 +0,0 @@ | |||
1 | --- /nix/store/xj651aslybfsma20hpbi5nznfcffq8ky-nixexprs.tar.xz/nixos/modules/services/web-servers/apache-httpd/default.nix 1970-01-01 01:00:01.000000000 +0100 | ||
2 | +++ modules/websites/httpd-service-builder.nix 2020-04-04 03:08:29.068490345 +0200 | ||
3 | @@ -1,12 +1,15 @@ | ||
4 | +# to help backporting this builder should stay as close as possible to | ||
5 | +# nixos/modules/services/web-servers/apache-httpd/default.nix | ||
6 | +{ httpdName, withUsers ? true }: | ||
7 | { config, lib, pkgs, ... }: | ||
8 | |||
9 | with lib; | ||
10 | |||
11 | let | ||
12 | |||
13 | - cfg = config.services.httpd; | ||
14 | + cfg = config.services.httpd."${httpdName}"; | ||
15 | |||
16 | - runtimeDir = "/run/httpd"; | ||
17 | + runtimeDir = "/run/httpd_${httpdName}"; | ||
18 | |||
19 | pkg = cfg.package.out; | ||
20 | |||
21 | @@ -318,13 +321,6 @@ | ||
22 | Require all denied | ||
23 | </Directory> | ||
24 | |||
25 | - # But do allow access to files in the store so that we don't have | ||
26 | - # to generate <Directory> clauses for every generated file that we | ||
27 | - # want to serve. | ||
28 | - <Directory /nix/store> | ||
29 | - Require all granted | ||
30 | - </Directory> | ||
31 | - | ||
32 | ${cfg.extraConfig} | ||
33 | |||
34 | ${concatMapStringsSep "\n" mkVHostConf vhosts} | ||
35 | @@ -347,30 +343,30 @@ | ||
36 | { | ||
37 | |||
38 | imports = [ | ||
39 | - (mkRemovedOptionModule [ "services" "httpd" "extraSubservices" ] "Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") | ||
40 | - (mkRemovedOptionModule [ "services" "httpd" "stateDir" ] "The httpd module now uses /run/httpd as a runtime directory.") | ||
41 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "extraSubservices" ] "Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") | ||
42 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "stateDir" ] "The httpd module now uses /run/httpd as a runtime directory.") | ||
43 | |||
44 | # virtualHosts options | ||
45 | - (mkRemovedOptionModule [ "services" "httpd" "documentRoot" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
46 | - (mkRemovedOptionModule [ "services" "httpd" "enableSSL" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
47 | - (mkRemovedOptionModule [ "services" "httpd" "enableUserDir" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
48 | - (mkRemovedOptionModule [ "services" "httpd" "globalRedirect" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
49 | - (mkRemovedOptionModule [ "services" "httpd" "hostName" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
50 | - (mkRemovedOptionModule [ "services" "httpd" "listen" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
51 | - (mkRemovedOptionModule [ "services" "httpd" "robotsEntries" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
52 | - (mkRemovedOptionModule [ "services" "httpd" "servedDirs" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
53 | - (mkRemovedOptionModule [ "services" "httpd" "servedFiles" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
54 | - (mkRemovedOptionModule [ "services" "httpd" "serverAliases" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
55 | - (mkRemovedOptionModule [ "services" "httpd" "sslServerCert" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
56 | - (mkRemovedOptionModule [ "services" "httpd" "sslServerChain" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
57 | - (mkRemovedOptionModule [ "services" "httpd" "sslServerKey" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
58 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "documentRoot" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
59 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "enableSSL" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
60 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "enableUserDir" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
61 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "globalRedirect" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
62 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "hostName" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
63 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "listen" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
64 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "robotsEntries" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
65 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "servedDirs" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
66 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "servedFiles" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
67 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "serverAliases" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
68 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "sslServerCert" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
69 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "sslServerChain" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
70 | + (mkRemovedOptionModule [ "services" "httpd" httpdName "sslServerKey" ] "Please define a virtual host using `services.httpd.virtualHosts`.") | ||
71 | ]; | ||
72 | |||
73 | # interface | ||
74 | |||
75 | options = { | ||
76 | |||
77 | - services.httpd = { | ||
78 | + services.httpd."${httpdName}" = { | ||
79 | |||
80 | enable = mkEnableOption "the Apache HTTP Server"; | ||
81 | |||
82 | @@ -622,7 +618,7 @@ | ||
83 | Using config.services.httpd.virtualHosts."${name}".servedFiles is deprecated and will become unsupported in a future release. Your configuration will continue to work as is but please migrate your configuration to config.services.httpd.virtualHosts."${name}".locations before the 20.09 release of NixOS. | ||
84 | '') (filterAttrs (name: hostOpts: hostOpts.servedFiles != []) cfg.virtualHosts); | ||
85 | |||
86 | - users.users = optionalAttrs (cfg.user == "wwwrun") { | ||
87 | + users.users = optionalAttrs (withUsers && cfg.user == "wwwrun") { | ||
88 | wwwrun = { | ||
89 | group = cfg.group; | ||
90 | description = "Apache httpd user"; | ||
91 | @@ -630,7 +626,7 @@ | ||
92 | }; | ||
93 | }; | ||
94 | |||
95 | - users.groups = optionalAttrs (cfg.group == "wwwrun") { | ||
96 | + users.groups = optionalAttrs (withUsers && cfg.group == "wwwrun") { | ||
97 | wwwrun.gid = config.ids.gids.wwwrun; | ||
98 | }; | ||
99 | |||
100 | @@ -646,9 +642,9 @@ | ||
101 | environment.systemPackages = [ pkg ]; | ||
102 | |||
103 | # required for "apachectl configtest" | ||
104 | - environment.etc."httpd/httpd.conf".source = httpdConf; | ||
105 | + environment.etc."httpd/httpd_${httpdName}.conf".source = httpdConf; | ||
106 | |||
107 | - services.httpd.phpOptions = | ||
108 | + services.httpd."${httpdName}" = { phpOptions = | ||
109 | '' | ||
110 | ; Needed for PHP's mail() function. | ||
111 | sendmail_path = sendmail -t -i | ||
112 | @@ -661,7 +657,7 @@ | ||
113 | date.timezone = "${config.time.timeZone}" | ||
114 | ''; | ||
115 | |||
116 | - services.httpd.extraModules = mkBefore [ | ||
117 | + extraModules = mkBefore [ | ||
118 | # HTTP authentication mechanisms: basic and digest. | ||
119 | "auth_basic" "auth_digest" | ||
120 | |||
121 | @@ -682,17 +678,18 @@ | ||
122 | # For compatibility with old configurations, the new module mod_access_compat is provided. | ||
123 | "access_compat" | ||
124 | ]; | ||
125 | + }; | ||
126 | |||
127 | systemd.tmpfiles.rules = | ||
128 | let | ||
129 | - svc = config.systemd.services.httpd.serviceConfig; | ||
130 | + svc = config.systemd.services."httpd${httpdName}".serviceConfig; | ||
131 | in | ||
132 | [ | ||
133 | "d '${cfg.logDir}' 0700 ${svc.User} ${svc.Group}" | ||
134 | "Z '${cfg.logDir}' - ${svc.User} ${svc.Group}" | ||
135 | ]; | ||
136 | |||
137 | - systemd.services.httpd = | ||
138 | + systemd.services."httpd${httpdName}" = | ||
139 | let | ||
140 | vhostsACME = filter (hostOpts: hostOpts.enableACME) vhosts; | ||
141 | in | ||
142 | @@ -730,7 +727,7 @@ | ||
143 | PIDFile = "${runtimeDir}/httpd.pid"; | ||
144 | Restart = "always"; | ||
145 | RestartSec = "5s"; | ||
146 | - RuntimeDirectory = "httpd httpd/runtime"; | ||
147 | + RuntimeDirectory = "httpd_${httpdName} httpd_${httpdName}/runtime"; | ||
148 | RuntimeDirectoryMode = "0750"; | ||
149 | }; | ||
150 | }; | ||
diff --git a/modules/websites/nosslVhost/index.html b/modules/websites/nosslVhost/index.html deleted file mode 100644 index 4401a80..0000000 --- a/modules/websites/nosslVhost/index.html +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>No SSL site</title> | ||
5 | </head> | ||
6 | <body> | ||
7 | <h1>No SSL on this site</h1> | ||
8 | <p>Use for wifi networks with login page that doesn't work well with | ||
9 | https.</p> | ||
10 | </body> | ||
11 | </html> | ||
diff --git a/modules/websites/php-application.nix b/modules/websites/php-application.nix deleted file mode 100644 index 3a43a45..0000000 --- a/modules/websites/php-application.nix +++ /dev/null | |||
@@ -1,224 +0,0 @@ | |||
1 | { lib, config, pkgs, ... }: | ||
2 | with lib; | ||
3 | let | ||
4 | cfg = config.services.phpApplication; | ||
5 | cfgByEnv = lists.groupBy (x: x.websiteEnv) (builtins.attrValues cfg.apps); | ||
6 | in | ||
7 | { | ||
8 | options = with types; { | ||
9 | services.phpApplication.apps = mkOption { | ||
10 | default = {}; | ||
11 | description = '' | ||
12 | php applications to define | ||
13 | ''; | ||
14 | type = attrsOf (submodule { | ||
15 | options = { | ||
16 | varDir = mkOption { | ||
17 | type = nullOr path; | ||
18 | description = '' | ||
19 | Path to application’s vardir. | ||
20 | ''; | ||
21 | }; | ||
22 | varDirPaths = mkOption { | ||
23 | type = attrsOf str; | ||
24 | default = {}; | ||
25 | description = '' | ||
26 | Map of additional folders => mode to create under varDir | ||
27 | ''; | ||
28 | }; | ||
29 | mode = mkOption { | ||
30 | type = str; | ||
31 | default = "0700"; | ||
32 | description = '' | ||
33 | Mode to apply to the vardir | ||
34 | ''; | ||
35 | }; | ||
36 | phpSession = mkOption { | ||
37 | type = bool; | ||
38 | default = true; | ||
39 | description = "Handle phpsession files separately in vardir"; | ||
40 | }; | ||
41 | phpListen = mkOption { | ||
42 | type = nullOr str; | ||
43 | default = null; | ||
44 | description = "Name of the socket to listen to. Defaults to app name if null"; | ||
45 | }; | ||
46 | phpPool = mkOption { | ||
47 | type = attrsOf str; | ||
48 | default = {}; | ||
49 | description = "Pool configuration to append"; | ||
50 | }; | ||
51 | phpEnv = mkOption { | ||
52 | type = attrsOf str; | ||
53 | default = {}; | ||
54 | description = "Pool environment to append"; | ||
55 | }; | ||
56 | phpPackage = mkOption { | ||
57 | type = attrsOf str; | ||
58 | default = pkgs.php; | ||
59 | description = "Php package to use"; | ||
60 | }; | ||
61 | phpOptions = mkOption { | ||
62 | type = lines; | ||
63 | default = ""; | ||
64 | description = "php configuration to append"; | ||
65 | }; | ||
66 | phpOpenbasedir = mkOption { | ||
67 | type = listOf path; | ||
68 | default = []; | ||
69 | description = '' | ||
70 | paths to add to php open_basedir configuration in addition to app and vardir | ||
71 | ''; | ||
72 | }; | ||
73 | phpWatchFiles = mkOption { | ||
74 | type = listOf path; | ||
75 | default = []; | ||
76 | description = '' | ||
77 | Path to other files to watch to trigger preStart scripts | ||
78 | ''; | ||
79 | }; | ||
80 | websiteEnv = mkOption { | ||
81 | type = str; | ||
82 | description = '' | ||
83 | website instance name to use | ||
84 | ''; | ||
85 | }; | ||
86 | httpdUser = mkOption { | ||
87 | type = str; | ||
88 | default = config.services.httpd.user; | ||
89 | description = '' | ||
90 | httpd user to run the prestart scripts as. | ||
91 | ''; | ||
92 | }; | ||
93 | httpdGroup = mkOption { | ||
94 | type = str; | ||
95 | default = config.services.httpd.group; | ||
96 | description = '' | ||
97 | httpd group to run the prestart scripts as. | ||
98 | ''; | ||
99 | }; | ||
100 | httpdWatchFiles = mkOption { | ||
101 | type = listOf path; | ||
102 | default = []; | ||
103 | description = '' | ||
104 | Path to other files to watch to trigger httpd reload | ||
105 | ''; | ||
106 | }; | ||
107 | app = mkOption { | ||
108 | type = path; | ||
109 | description = '' | ||
110 | Path to application root | ||
111 | ''; | ||
112 | }; | ||
113 | webRoot = mkOption { | ||
114 | type = nullOr path; | ||
115 | description = '' | ||
116 | Path to the web root path of the application. May differ from the application itself (usually a subdirectory) | ||
117 | ''; | ||
118 | }; | ||
119 | preStartActions = mkOption { | ||
120 | type = listOf str; | ||
121 | default = []; | ||
122 | description = '' | ||
123 | List of actions to run as apache user at preStart when | ||
124 | whatchFiles or app dir changed. | ||
125 | ''; | ||
126 | }; | ||
127 | serviceDeps = mkOption { | ||
128 | type = listOf str; | ||
129 | default = []; | ||
130 | description = '' | ||
131 | List of systemd services this application depends on | ||
132 | ''; | ||
133 | }; | ||
134 | }; | ||
135 | }); | ||
136 | }; | ||
137 | # Read-only variables | ||
138 | services.phpApplication.phpListenPaths = mkOption { | ||
139 | type = attrsOf path; | ||
140 | default = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
141 | name config.services.phpfpm.pools."${name}".socket | ||
142 | ) cfg.apps; | ||
143 | readOnly = true; | ||
144 | description = '' | ||
145 | Full paths to listen for php | ||
146 | ''; | ||
147 | }; | ||
148 | }; | ||
149 | |||
150 | config = { | ||
151 | services.websites.env = attrsets.mapAttrs' (name: cfgs: attrsets.nameValuePair | ||
152 | name { | ||
153 | modules = [ "proxy_fcgi" ]; | ||
154 | watchPaths = builtins.concatLists (map (c: c.httpdWatchFiles) cfgs); | ||
155 | } | ||
156 | ) cfgByEnv; | ||
157 | |||
158 | services.phpfpm.pools = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
159 | name { | ||
160 | user = icfg.httpdUser; | ||
161 | group = icfg.httpdUser; | ||
162 | settings = { | ||
163 | "listen.owner" = icfg.httpdUser; | ||
164 | "listen.group" = icfg.httpdGroup; | ||
165 | "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" ([icfg.app icfg.varDir] ++ icfg.phpWatchFiles ++ icfg.phpOpenbasedir); | ||
166 | } | ||
167 | // optionalAttrs (icfg.phpSession) { "php_admin_value[session.save_path]" = "${icfg.varDir}/phpSessions"; } | ||
168 | // icfg.phpPool; | ||
169 | phpOptions = config.services.phpfpm.phpOptions + icfg.phpOptions; | ||
170 | inherit (icfg) phpEnv phpPackage; | ||
171 | } | ||
172 | ) cfg.apps; | ||
173 | |||
174 | services.filesWatcher = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
175 | "phpfpm-${name}" { | ||
176 | restart = true; | ||
177 | paths = icfg.phpWatchFiles; | ||
178 | } | ||
179 | ) (attrsets.filterAttrs (n: v: builtins.length v.phpWatchFiles > 0) cfg.apps); | ||
180 | |||
181 | systemd.services = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
182 | "phpfpm-${name}" { | ||
183 | after = lib.mkAfter icfg.serviceDeps; | ||
184 | wants = icfg.serviceDeps; | ||
185 | preStart = lib.mkAfter (optionalString (!isNull icfg.varDir) '' | ||
186 | watchFilesChanged() { | ||
187 | ${optionalString (builtins.length icfg.phpWatchFiles == 0) "return 1"} | ||
188 | [ ! -f "${icfg.varDir}"/watchedFiles ] \ | ||
189 | || ! sha512sum -c --status ${icfg.varDir}/watchedFiles | ||
190 | } | ||
191 | appDirChanged() { | ||
192 | [ ! -f "${icfg.varDir}/currentWebappDir" -o \ | ||
193 | "${icfg.app}" != "$(cat ${icfg.varDir}/currentWebappDir 2>/dev/null)" ] | ||
194 | } | ||
195 | updateWatchFiles() { | ||
196 | ${optionalString (builtins.length icfg.phpWatchFiles == 0) "return 0"} | ||
197 | sha512sum ${builtins.concatStringsSep " " icfg.phpWatchFiles} > ${icfg.varDir}/watchedFiles | ||
198 | } | ||
199 | |||
200 | if watchFilesChanged || appDirChanged; then | ||
201 | pushd ${icfg.app} > /dev/null | ||
202 | ${builtins.concatStringsSep "\n " (map (c: "/run/wrappers/bin/sudo -u ${icfg.httpdUser} ${c}") icfg.preStartActions) } | ||
203 | popd > /dev/null | ||
204 | echo -n "${icfg.app}" > ${icfg.varDir}/currentWebappDir | ||
205 | updateWatchFiles | ||
206 | fi | ||
207 | ''); | ||
208 | } | ||
209 | ) cfg.apps; | ||
210 | |||
211 | system.activationScripts = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair | ||
212 | name { | ||
213 | deps = []; | ||
214 | text = optionalString (!isNull icfg.varDir) '' | ||
215 | install -m ${icfg.mode} -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir} | ||
216 | '' + optionalString (icfg.phpSession) '' | ||
217 | install -m 0700 -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}/phpSessions | ||
218 | '' + builtins.concatStringsSep "\n" (attrsets.mapAttrsToList (n: v: '' | ||
219 | install -m ${v} -o ${icfg.httpdUser} -g ${icfg.httpdGroup} -d ${icfg.varDir}/${n} | ||
220 | '') icfg.varDirPaths); | ||
221 | } | ||
222 | ) cfg.apps; | ||
223 | }; | ||
224 | } | ||
diff --git a/modules/zrepl.nix b/modules/zrepl.nix deleted file mode 100644 index 5bcc17b..0000000 --- a/modules/zrepl.nix +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | { config, lib, pkgs, ... }: | ||
2 | let | ||
3 | cfg = config.services.zrepl; | ||
4 | in | ||
5 | { | ||
6 | options = { | ||
7 | services.zrepl = { | ||
8 | enable = lib.mkEnableOption "Enable the zrepl daemon"; | ||
9 | |||
10 | config = lib.mkOption { | ||
11 | type = lib.types.lines; | ||
12 | default = ""; | ||
13 | description = "Configuration"; | ||
14 | }; | ||
15 | }; | ||
16 | }; | ||
17 | |||
18 | config = lib.mkIf cfg.enable { | ||
19 | secrets.keys = { | ||
20 | "zrepl/zrepl.yml" = { | ||
21 | permissions = "0400"; | ||
22 | text = cfg.config; | ||
23 | user = config.systemd.services.zrepl.serviceConfig.User or "root"; | ||
24 | group = config.systemd.services.zrepl.serviceConfig.Group or "root"; | ||
25 | }; | ||
26 | }; | ||
27 | services.filesWatcher.zrepl = { | ||
28 | restart = true; | ||
29 | paths = [ config.secrets.fullPaths."zrepl/zrepl.yml" ]; | ||
30 | }; | ||
31 | systemd.services.zrepl = { | ||
32 | description = "zrepl daemon"; | ||
33 | wantedBy = [ "multi-user.target" ]; | ||
34 | path = [ pkgs.zfs pkgs.openssh ]; | ||
35 | serviceConfig = { | ||
36 | ExecStart = | ||
37 | let configFile = config.secrets.fullPaths."zrepl/zrepl.yml"; | ||
38 | in "${pkgs.zrepl}/bin/zrepl daemon --config ${configFile}"; | ||
39 | Type = "simple"; | ||
40 | RuntimeDirectory= "zrepl"; | ||
41 | RuntimeDirectoryMode= "0700"; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
45 | } | ||