aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md108
-rw-r--r--flake.lock77
-rw-r--r--flake.nix40
-rw-r--r--module/as-formats.nix160
-rw-r--r--module/as-options.nix144
-rw-r--r--module/default.nix182
-rw-r--r--pkgs/default.nix10
-rw-r--r--pkgs/mautrix-instagram/default.nix77
-rw-r--r--pkgs/mautrix-twitter/default.nix77
-rw-r--r--pkgs/mautrix-wsproxy/default.nix34
-rw-r--r--pkgs/mx-puppet-groupme/default.nix46
-rwxr-xr-xpkgs/mx-puppet-groupme/generate.sh16
-rw-r--r--pkgs/mx-puppet-groupme/node-composition.nix17
-rw-r--r--pkgs/mx-puppet-groupme/node-env.nix567
-rw-r--r--pkgs/mx-puppet-groupme/node-packages.nix3342
-rw-r--r--pkgs/mx-puppet-groupme/package-lock.json2527
-rw-r--r--pkgs/mx-puppet-groupme/package.json24
-rw-r--r--pkgs/mx-puppet-slack/default.nix59
-rwxr-xr-xpkgs/mx-puppet-slack/generate.sh24
-rw-r--r--pkgs/mx-puppet-slack/node-composition.nix20
-rw-r--r--pkgs/mx-puppet-slack/node-env.nix578
-rw-r--r--pkgs/mx-puppet-slack/node-packages.nix4217
-rw-r--r--profile.nix73
-rw-r--r--test.nix123
24 files changed, 12542 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..39e7294
--- /dev/null
+++ b/README.md
@@ -0,0 +1,108 @@
+# Universal NixOS module for Matrix appservices
+Use this flake to easily setup matrix appservices on a nixos server.
+
+You no longer have to think about generating registration files or
+configuring docker or systemd to run the appservices.
+
+This module can take care of the heavy lifting, so you only have to
+think about the important settings that the appservice needs.
+
+## Usage
+Once you have imported the module(see next section), you can spin
+up most appservices with just a few lines of nixos configuration.
+
+For example, here is how you would setup mautrix-whatsapp:
+```
+{ pkgs, ... }:
+{
+ services.matrix-appservices = {
+ whatsapp = {
+ port = 29183;
+ format = "mautrix-go";
+ package = pkgs.mautrix-whatsapp;
+ };
+ };
+}
+```
+
+There you go! Once you rebuild, mautrix-whatsapp will be running
+as a systemd service named `matrix-as-whatsapp` and all its data will
+be stored in `/var/lib/matrix-as-whatsapp`.
+
+If you would like the module to configure synapse or dendrite to
+include all appservice registration files you can just set:
+`services.matrix-appservices.addRegistrationFiles = true`.
+
+## Configuring
+There are many options available to configure the way each appservice
+is setup. But to consolidate similarities, there are three formats
+available which set sane defaults for those options: `mautrix-go`,
+`mautrix-python`, and `mx-puppet`.
+
+For the majority of appservices meant for personal use, you likely
+will only have to set a `port`, `format`, and `package`. And if the
+appservice is more complicated you can take advantage of the other
+options to
+
+In the preStart script of each appservice, a registration file is automatically
+generated with random strings for the important tokens and any data passed
+to the `registrationData` option. This file will be available to your `settings`
+and `startScript` as `$REGISTRATION_FILE`.
+
+After this, a configuration file is generated based on the `settings` passed
+to the appservice. Environment variables are also substuted in with envsubst,
+so the `environmentFile` option can be used to pass secrets for the appservice.
+
+### Environment Variables
+These variables are available in your `startScript` and `settings`(substituted in):
+ - $REGISTRATION_FILE => The registration file generated automatically
+ - $SETTINGS_FILE => Settings file generated
+ - $DIR => Data directory of the appservice
+ - $AS_TOKEN => Appservice token(needs to be kept secret)
+ - $HS_TOKEN => Homeserver token(needs to be kept secret)
+
+## Importing the module
+### With Flakes
+Add this flake as an input, then import the `nixosModule` output in
+your configuration.
+```
+{
+ inputs.nix-matrix-appservices.url = "gitlab:coffeetables/nix-matrix-appservices";
+
+ outputs = { self, nixpkgs, nix-matrix-appservices }: {
+ # change `yourhostname` to your actual hostname
+ nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
+ # change to your system:
+ system = "x86_64-linux";
+ modules = [
+ ./configuration.nix
+ nix-matrix-appservices.nixosModule
+ ];
+ };
+ };
+}
+```
+Or if you use digga/devos or flake-utils-plus, you could pass the module
+to the `hostDefaults.modules` argument, which is under the `nixos` category in digga.
+
+### Without Flakes(legacy)
+In your `configuration.nix` or any other profile/module:
+```
+{ pkgs, ... }:
+let
+ nix-matrix-appservices = fetchTarball
+ "https://gitlab.com/coffeetables/nix-matrix-appservices/-/archive/master/myrdd-master.tar.gz";
+{
+ imports = [
+ "${nix-matrix-appservices}/module"
+ ];
+}
+```
+
+## TODO
+ - [ ] Generate docs for options
+ - [ ] Re-package matrix-appservices even ones in nixpkgs, so I can export packages
+ that I know work with the module
+ - [ ] Improve test to message the bot and check for a response to ensure registration was
+ done right
+ - [ ] Test more appservices(right now only discord is being tested)
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..d3d2487
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,77 @@
+{
+ "nodes": {
+ "devshell": {
+ "locked": {
+ "lastModified": 1642188268,
+ "narHash": "sha256-DNz4xScpXIn7rSDohdayBpPR9H9OWCMDOgTYegX081k=",
+ "owner": "numtide",
+ "repo": "devshell",
+ "rev": "696acc29668b644df1740b69e1601119bf6da83b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "devshell",
+ "type": "github"
+ }
+ },
+ "flake-utils": {
+ "locked": {
+ "lastModified": 1638122382,
+ "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "fup": {
+ "inputs": {
+ "flake-utils": "flake-utils"
+ },
+ "locked": {
+ "lastModified": 1638994888,
+ "narHash": "sha256-iz/ynGNZlvqKCOnFrEKqGA+BVKGQMG+g2JT+e3OOLN8=",
+ "owner": "divnix",
+ "repo": "flake-utils-plus",
+ "rev": "b4f9f517574cb7bd6ee3f19c72c19634c9f536e1",
+ "type": "github"
+ },
+ "original": {
+ "owner": "divnix",
+ "repo": "flake-utils-plus",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1642388384,
+ "narHash": "sha256-ooGGteIJHxB0wIC6Hnn2Yn+rPPQR5yxO8GNu74OZoO0=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "fc618794a5faac44e203b3a66002bd8d883019c4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "release-21.11",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "devshell": "devshell",
+ "fup": "fup",
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..b7319cf
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,40 @@
+{
+ inputs = {
+ fup.url = "github:divnix/flake-utils-plus";
+ devshell.url = "github:numtide/devshell";
+ nixpkgs.url = "github:NixOS/nixpkgs/release-21.11";
+ };
+
+ outputs = inputs@{ self, nixpkgs, fup, devshell }:
+ fup.lib.mkFlake {
+ inherit self inputs;
+
+ supportedSystems = [ "aarch64-linux" "x86_64-linux" ];
+
+ nixosModules.matrix-appservices = import ./module;
+ nixosModule = self.nixosModules.matrix-appservices;
+
+ overlays.matrix-appservices = import ./pkgs;
+ overlay = self.overlays.matrix-appservices;
+
+ sharedOverlays = [
+ self.overlay
+ devshell.overlay
+ ];
+
+ channels.pkgs.input = nixpkgs;
+
+ outputsBuilder = { pkgs }: {
+ packages = {
+ inherit (pkgs)
+ mx-puppet-groupme
+ mx-puppet-slack
+
+ mautrix-twitter
+ mautrix-instagram
+ ;
+ };
+ checks.matrix-appservices = import ./test.nix { inherit pkgs; };
+ };
+ };
+}
diff --git a/module/as-formats.nix b/module/as-formats.nix
new file mode 100644
index 0000000..fa7a4cf
--- /dev/null
+++ b/module/as-formats.nix
@@ -0,0 +1,160 @@
+{ name, systemConfig, asConfig, lib, pkgs, ... }:
+
+with lib;
+let
+ inherit (systemConfig.services.matrix-appservices)
+ homeserverURL
+ homeserverDomain;
+ package = asConfig.package;
+ pname = getName package;
+ command = "${package}/bin/${pname}";
+
+ mautrix = {
+ startupScript = ''
+ ${command} --config=$SETTINGS_FILE \
+ --registration=$REGISTRATION_FILE
+ '';
+
+ settings = {
+ homeserver = {
+ address = homeserverURL;
+ domain = homeserverDomain;
+ };
+
+ appservice = with asConfig; {
+ address = "http://${host}:${toString port}";
+
+ hostname = host;
+ inherit port;
+
+ state_store_path = "$DIR/mx-state.json";
+ # mautrix stores the registration tokens in the config file
+ as_token = "$AS_TOKEN";
+ hs_token = "$HS_TOKEN";
+ };
+
+ bridge = {
+ username_template = "${name}_{userid}";
+ permissions = {
+ ${homeserverDomain} = "user";
+ };
+ };
+ };
+ };
+
+in
+{
+ other = {
+ description = ''
+ No defaults will be set.
+ '';
+ };
+
+ matrix-appservice = {
+ startupScript = ''
+ ${command} \
+ --config=$SETTINGS_FILE \
+ --port=$(echo ${asConfig.listenAddress} | sed 's/.*://') \
+ --file=$REGISTRATION_FILE
+ '';
+
+ description = ''
+ For bridges based on the matrix-appservice-bridge library. The settings for these
+ bridges are NOT configured automatically, because of the various differences
+ between them.
+ '';
+ };
+
+ mx-puppet = {
+ startupScript = ''
+ ${command} \
+ --config=$SETTINGS_FILE \
+ --registration-file=$REGISTRATION_FILE
+ '';
+
+ registrationData =
+ let
+ # mx-puppet virtual users are always created based on the package name
+ botName = removePrefix "mx-puppet-" pname;
+ in
+ {
+ id = "${botName}-puppet";
+ sender_localpart = "_${botName}puppet_bot";
+ protocols = [ ];
+ namespaces = {
+ rooms = [ ];
+ users = [
+ {
+ regex = "@_${botName}puppet_.*:${homeserverDomain}";
+ exclusive = true;
+ }
+ ];
+ aliases = [
+ {
+ regex = "#_${botName}puppet_.*:${homeserverDomain}";
+ exclusive = true;
+ }
+ ];
+ };
+ };
+
+ settings = {
+ bridge = {
+ inherit (asConfig) port;
+ bindAddress = asConfig.host;
+ domain = homeserverDomain;
+ homeserverUrl = homeserverURL;
+ };
+ database.filename = "$DIR/database.db";
+ provisioning.whitelist = [ "@.*:${homeserverDomain}" ];
+ relay.whitelist = [ "@.*:${homeserverDomain}" ];
+ selfService.whitelist = [ "@.*:${homeserverDomain}" ];
+ logging = {
+ lineDateFormat = "";
+ files = [ ];
+ };
+ };
+
+ serviceConfig.WorkingDirectory =
+ "${package}/lib/node_modules/${pname}";
+
+ description = ''
+ For bridges based on the mx-puppet-bridge library. The settings will be
+ configured to use a sqlite database. Make sure to override database.filename,
+ if you plan to use another database.
+ '';
+
+ };
+
+ mautrix-go = {
+ inherit (mautrix) startupScript;
+
+ settings = recursiveUpdate mautrix.settings {
+ bridge.username_template = "${name}_{{.}}";
+ appservice.database = {
+ type = "sqlite3";
+ uri = "$DIR/database.db";
+ };
+ };
+
+ description = ''
+ The settings are configured to use a sqlite database. The startupScript will
+ create a new config file on every run to set the tokens, because mautrix
+ requires them to be in the config file.
+ '';
+ };
+
+ mautrix-python = {
+ settings = recursiveUpdate mautrix.settings {
+ appservice.database = "sqlite:///$DIR/database.db";
+ };
+
+ startupScript = optionalString (package ? alembic)
+ "${package.alembic}/bin/alembic -x config=$SETTINGS_FILE upgrade head\n"
+ + mautrix.startupScript;
+ description = ''
+ Same properties as mautrix-go. This will also upgrade the database on every run
+ '';
+ };
+
+}
diff --git a/module/as-options.nix b/module/as-options.nix
new file mode 100644
index 0000000..2afbbbf
--- /dev/null
+++ b/module/as-options.nix
@@ -0,0 +1,144 @@
+{ systemConfig, lib, pkgs, ... }:
+with lib;
+types.submodule ({ config, name, ... }:
+ let
+ inherit (systemConfig.services.matrix-appservices)
+ homeserverDomain;
+
+ asFormats = (import ./as-formats.nix) {
+ inherit name lib pkgs systemConfig;
+ asConfig = config;
+ };
+ asFormat = asFormats.${config.format};
+ settingsFormat = pkgs.formats.json { };
+ in
+ {
+ options = rec {
+
+ format = mkOption {
+ type = types.enum (mapAttrsToList (n: _: n) asFormats);
+ default = "other";
+ description = ''
+ Format of the appservice, used to set option defaults for appservice.
+ This is usually determined by the library the appservice is based on.
+
+ Below are descriptions for each format
+
+ '' + (concatStringsSep "\n" (mapAttrsToList
+ (n: v: "${n}: ${v.description}")
+ asFormats));
+ };
+
+ package = mkOption {
+ type = types.nullOr types.package;
+ default = null;
+ example = "pkgs.mautrix-whatsapp";
+ description = ''
+ The package for the appservice. Used by formats except 'other'.
+ This is unecessary if startupScript is set.
+ '';
+ };
+
+ settings = mkOption rec {
+ type = settingsFormat.type;
+ apply = recursiveUpdate default;
+ default = asFormat.settings or { };
+ defaultText = "Format will attempt to configure database and allow homeserver users";
+ example = literalExpression ''
+ {
+ bridge = {
+ domain = "public-domain.tld";
+ homeserverUrl = "http://public-domain.tld:8008";
+ };
+ }
+ '';
+ description = ''
+ Appservice configuration as a Nix attribute set.
+ All environment variables will be substituted.
+ Including:
+ - $DIR which refers to the appservice's data directory.
+ - $AS_TOKEN, $HS_TOKEN which refers to the Appservice and
+ Homeserver registration tokens.
+
+ Secret tokens, should be specified in serviceConfig.EnvironmentFile
+ instead of this world-readable attribute set.
+
+ Configuration options should match those described as per your appservice's settings
+ Check out the confg sample for this.
+
+ '';
+ };
+
+ registrationData = mkOption {
+ type = settingsFormat.type;
+ default = asFormat.registrationData or {
+ namespaces = {
+ users = [
+ {
+ regex = "@${name}_.*:${homeserverDomain}";
+ exclusive = true;
+ }
+ {
+ regex = "@${name}bot:${homeserverDomain}";
+ exclusive = true;
+ }
+ ];
+ };
+ };
+ defaultText = ''
+ Reserve usernames under the homeserver that start with
+ this appservice's name followed by an _ or "bot"
+ '';
+ description = ''
+ Data to set in the registration file for the appservice. The default
+ set or the format should usually deal with this.
+ '';
+ };
+
+ host = mkOption {
+ type = types.str;
+ default = "localhost";
+ description = ''
+ The host the appservice will listen on.
+ Will need to specified in config, but most formats will do it for you using
+ this option.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ description = ''
+ The port the appservice will listen on.
+ Will need to specified in config, but most formats will do it for you using
+ this option.
+ '';
+ };
+
+ startupScript = mkOption {
+ type = types.str;
+ default = asFormat.startupScript or "";
+ description = ''
+ Script that starts the appservice.
+ The settings file will be available as $SETTINGS_FILE
+ and the registration file as $REGISTRATION_FILE
+ '';
+ };
+
+ serviceConfig = mkOption rec {
+ type = types.attrs;
+ apply = x: default // x;
+ default = asFormat.serviceConfig or { };
+ description = ''
+ Overrides for settings in the service's serviceConfig
+ '';
+ };
+
+ serviceDependencies = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ description = ''
+ Services started before this appservice
+ '';
+ };
+ };
+ })
diff --git a/module/default.nix b/module/default.nix
new file mode 100644
index 0000000..a368365
--- /dev/null
+++ b/module/default.nix
@@ -0,0 +1,182 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.matrix-appservices;
+ asOpts = import ./as-options.nix {
+ inherit lib pkgs;
+ systemConfig = config;
+ };
+ mkService = name: opts:
+ with opts;
+ let
+ settingsFormat = pkgs.formats.json { };
+ dataDir = "/var/lib/matrix-as-${name}";
+ registrationFile = "${dataDir}/${name}-registration.yaml";
+ # Replace all references to $DIR to the dat directory
+ settingsData = settingsFormat.generate "config.json" settings;
+ settingsFile = "${dataDir}/config.json";
+ serviceDeps = [ "network-online.target" ] ++ serviceDependencies;
+
+ registrationContent = {
+ id = name;
+ url = "http://${host}:${toString port}";
+ as_token = "$AS_TOKEN";
+ hs_token = "$HS_TOKEN";
+ sender_localpart = "$SENDER_LOCALPART";
+ rate_limited = false;
+ } // registrationData;
+ in
+ {
+ description = "A matrix appservice for ${name}.";
+
+ wantedBy = [ "multi-user.target" ];
+ wants = serviceDeps;
+ after = serviceDeps;
+ # Appservices don't need synapse up, but synapse exists if registration files are missing
+ before = mkIf (cfg.homeserver != null) [ "${cfg.homeserver}.service" ];
+
+ path = [ pkgs.yq ];
+ environment = {
+ DIR = dataDir;
+ SETTINGS_FILE = settingsFile;
+ REGISTRATION_FILE = registrationFile;
+ };
+
+ preStart = ''
+ if [ ! -f ${registrationFile} ]; then
+ AS_TOKEN=$(cat /proc/sys/kernel/random/uuid) \
+ HS_TOKEN=$(cat /proc/sys/kernel/random/uuid) \
+ SENDER_LOCALPART=$(cat /proc/sys/kernel/random/uuid) \
+ ${pkgs.envsubst}/bin/envsubst \
+ -i ${settingsFormat.generate "config.json" registrationContent} \
+ -o ${registrationFile}
+
+ chmod 640 ${registrationFile}
+ fi
+
+ AS_TOKEN=$(cat ${registrationFile} | yq .as_token | tr -d '"') \
+ HS_TOKEN=$(cat ${registrationFile} | yq .hs_token | tr -d '"') \
+ ${pkgs.envsubst}/bin/envsubst -i ${settingsData} -o ${settingsFile}
+ chmod 640 ${settingsFile}
+ '';
+
+ script = ''
+ ${startupScript}
+ '';
+
+ serviceConfig = {
+ Type = "simple";
+ Restart = "always";
+
+ ProtectSystem = "strict";
+ PrivateTmp = true;
+ ProtectHome = true;
+ ProtectKernelTunables = true;
+ ProtectKernelModules = true;
+ ProtectControlGroups = true;
+
+ User = "matrix-as-${name}";
+ Group = "matrix-as-${name}";
+ WorkingDirectory = dataDir;
+ StateDirectory = "${baseNameOf dataDir}";
+ StateDirectoryMode = "0750";
+ UMask = 0027;
+ } // opts.serviceConfig;
+ };
+
+in
+{
+ options = {
+ services.matrix-appservices = {
+ services = mkOption {
+ type = types.attrsOf asOpts;
+ default = { };
+ example = literalExpression ''
+ whatsapp = {
+ format = "mautrix-go";
+ package = pkgs.mautrix-whatsapp;
+ };
+ '';
+ description = ''
+ Appservices to setup.
+ Each appservice will be started as a systemd service with the prefix matrix-as.
+ And its data will be stored in /var/lib/matrix-as-name.
+ '';
+ };
+
+ homeserver = mkOption {
+ type = types.enum [ "matrix-synapse" "dendrite" null ];
+ default = "matrix-synapse";
+ description = ''
+ The homeserver software the appservices connect to. This will ensure appservices
+ start after the homeserver and it will be used by the addRegistrationFiles option.
+ '';
+ };
+
+ homeserverURL = mkOption {
+ type = types.str;
+ default = "https://${cfg.homeserverDomain}";
+ description = ''
+ URL of the homeserver the apservices connect to
+ '';
+ };
+
+ homeserverDomain = mkOption {
+ type = types.str;
+ default = if config.networking.domain != null then config.networking.domain else "";
+ defaultText = "\${config.networking.domain}";
+ description = ''
+ Domain of the homeserver the appservices connect to
+ '';
+ };
+
+ addRegistrationFiles = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to add the application service registration files to the homeserver configuration.
+ It is recommended to verify appservice files, located in /var/lib/matrix-as-*, before adding them
+ '';
+ };
+ };
+ };
+
+ config = mkIf (cfg.services != { }) {
+
+ assertions = mapAttrsToList
+ (n: v: {
+ assertion = v.format == "other" || v.package != null;
+ message = "A package must be provided if a custom format is set";
+ })
+ cfg.services;
+
+ users.users = mapAttrs'
+ (n: v: nameValuePair "matrix-as-${n}" {
+ group = "matrix-as-${n}";
+ isSystemUser = true;
+ })
+ cfg.services;
+ users.groups = mapAttrs' (n: v: nameValuePair "matrix-as-${n}" { }) cfg.services;
+
+ # Create a service for each appservice
+ systemd.services = (mapAttrs' (n: v: nameValuePair "matrix-as-${n}" (mkService n v)) cfg.services) // {
+ # Add the matrix service to the groups of all appservices to give access to the registration file
+ matrix-synapse.serviceConfig.SupplementaryGroups = mapAttrsToList (n: v: "matrix-as-${n}") cfg.services;
+ dendrite.serviceConfig.SupplementaryGroups = mapAttrsToList (n: v: "matrix-as-${n}") cfg.services;
+ };
+
+ services =
+ let
+ registrationFiles = mapAttrsToList (n: _: "/var/lib/matrix-as-${n}/${n}-registration.yaml")
+ (filterAttrs (_: v: v.registrationData != { }) cfg.services);
+ in
+ mkIf cfg.addRegistrationFiles {
+ matrix-synapse.app_service_config_files = mkIf (cfg.homeserver == "matrix-synapse") registrationFiles;
+ dendrite.settings.app_service_api.config_files = mkIf (cfg.homeserver == "dendrite") registrationFiles;
+ };
+ };
+
+ meta.maintainers = with maintainers; [ pacman99 Flakebi ];
+
+}
diff --git a/pkgs/default.nix b/pkgs/default.nix
new file mode 100644
index 0000000..7589f50
--- /dev/null
+++ b/pkgs/default.nix
@@ -0,0 +1,10 @@
+final: prev: {
+ mx-puppet-groupme = prev.callPackage ./mx-puppet-groupme { };
+ mx-puppet-slack = prev.callPackage ./mx-puppet-slack { };
+
+ mautrix-twitter = prev.callPackage ./mautrix-twitter { };
+ mautrix-instagram = prev.callPackage ./mautrix-instagram { };
+ mautrix-wsproxy = prev.callPackage ./mautrix-wsproxy { };
+
+ matrix-emailbridge = prev.callPackage ./matrix-emailbridge { };
+}
diff --git a/pkgs/mautrix-instagram/default.nix b/pkgs/mautrix-instagram/default.nix
new file mode 100644
index 0000000..14cb1c6
--- /dev/null
+++ b/pkgs/mautrix-instagram/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, lib
+, python3
+, makeWrapper
+, fetchFromGitHub
+}:
+
+with python3.pkgs;
+
+let
+ # officially supported database drivers
+ dbDrivers = [
+ asyncpg
+ # sqlite driver is already shipped with python by default
+ ];
+
+in
+
+buildPythonApplication rec {
+ pname = "mautrix-instagram";
+ version = "unstable-2021-11-15";
+
+ src = fetchFromGitHub {
+ owner = "tulir";
+ repo = pname;
+ rev = "13b6b157b6eaff5c34506a458aa761362aad8c64";
+ sha256 = "1xkjcmh31pzli3dck2glg0a64x59n4x05zjmg2v65rcfz8snb1mw";
+ };
+
+ postPatch = ''
+ sed -i -e '/alembic>/d' requirements.txt
+ '';
+ postFixup = ''
+ makeWrapper ${python}/bin/python $out/bin/mautrix-instagram \
+ --add-flags "-m mautrix_instagram" \
+ --prefix PYTHONPATH : "$(toPythonPath ${mautrix}):$(toPythonPath $out):$PYTHONPATH"
+ '';
+
+ propagatedBuildInputs = [
+ mautrix
+ yarl
+ aiohttp
+ aiosqlite
+ beautifulsoup4
+ sqlalchemy
+ CommonMark
+ ruamel_yaml
+ paho-mqtt
+ python_magic
+ attrs
+ pillow
+ qrcode
+ phonenumbers
+ pycryptodome
+ python-olm
+ unpaddedbase64
+ setuptools
+ ] ++ dbDrivers;
+
+ checkInputs = [
+ pytest
+ pytestrunner
+ pytest-mock
+ pytest-asyncio
+ ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://github.com/tulir/mautrix-instagram";
+ description = "A Matrix-Instagram DM puppeting bridge";
+ license = licenses.agpl3Plus;
+ platforms = platforms.linux;
+ };
+
+}
+
diff --git a/pkgs/mautrix-twitter/default.nix b/pkgs/mautrix-twitter/default.nix
new file mode 100644
index 0000000..be5385a
--- /dev/null
+++ b/pkgs/mautrix-twitter/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, lib
+, python3
+, makeWrapper
+, fetchFromGitHub
+}:
+
+with python3.pkgs;
+
+let
+ # officially supported database drivers
+ dbDrivers = [
+ asyncpg
+ # sqlite driver is already shipped with python by default
+ ];
+
+in
+
+buildPythonApplication rec {
+ pname = "mautrix-twitter";
+ version = "unstable-2021-11-12";
+
+ src = fetchFromGitHub {
+ owner = "mautrix";
+ repo = "twitter";
+ rev = "deae0e10e6e376be2a0d02edcdc70965b46f05a7";
+ sha256 = "sha256-tATiqZlOIi+w6GTBdssv6+pvyHacZh+bDVH5kOrr0Js=";
+ };
+
+ postPatch = ''
+ sed -i -e '/alembic>/d' requirements.txt
+ '';
+ postFixup = ''
+ makeWrapper ${python}/bin/python $out/bin/mautrix-twitter \
+ --add-flags "-m mautrix_twitter" \
+ --prefix PYTHONPATH : "$(toPythonPath ${mautrix}):$(toPythonPath $out):$PYTHONPATH"
+ '';
+
+ propagatedBuildInputs = [
+ mautrix
+ yarl
+ aiohttp
+ aiosqlite
+ beautifulsoup4
+ sqlalchemy
+ CommonMark
+ ruamel_yaml
+ paho-mqtt
+ python_magic
+ attrs
+ pillow
+ qrcode
+ phonenumbers
+ pycryptodome
+ python-olm
+ unpaddedbase64
+ setuptools
+ ] ++ dbDrivers;
+
+ checkInputs = [
+ pytest
+ pytestrunner
+ pytest-mock
+ pytest-asyncio
+ ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://github.com/tulir/mautrix-twitter";
+ description = "A Matrix-Twitter DM puppeting bridge";
+ license = licenses.agpl3Plus;
+ platforms = platforms.linux;
+ };
+
+}
+
diff --git a/pkgs/mautrix-wsproxy/default.nix b/pkgs/mautrix-wsproxy/default.nix
new file mode 100644
index 0000000..fb5d7d9
--- /dev/null
+++ b/pkgs/mautrix-wsproxy/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub, olm }:
+
+buildGoModule rec {
+ pname = "mautrix-wsproxy-bin";
+ version = "unstable-2021-09-07";
+
+ src = fetchFromGitHub {
+ owner = "mautrix";
+ repo = "wsproxy";
+ rev = "2f097e3f2b6d003b3c913933839f12a8cd9d2d41";
+ sha256 = "0sy7ns60nzq58j500cswvj04q75ji18cnn01bacdrqwnklmh2g24";
+ };
+
+ buildInputs = [ olm ];
+
+ vendorSha256 = "sha256-kJw3w14RQBAdMoFItjT/LmzuKaDTR09mW3H+7gNUS3s=";
+
+ doCheck = false;
+
+ runVend = true;
+
+ postInstall = ''
+ mv $out/bin/mautrix-wsproxy $out/bin/mautrix-wsproxy-bin
+
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/mautrix/wsproxy";
+ description = "A simple HTTP push -> websocket proxy for Matrix appservices.";
+ mainProgram = "mautrix-wsproxy-bin";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ pacman99 ];
+ };
+}
diff --git a/pkgs/mx-puppet-groupme/default.nix b/pkgs/mx-puppet-groupme/default.nix
new file mode 100644
index 0000000..56971f9
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitLab, pkgs, lib, nodejs, nodePackages, pkg-config, libjpeg
+, pixman, cairo, pango }:
+
+let
+ # No official version ever released
+ src = fetchFromGitLab {
+ owner = "robintown";
+ repo = "mx-puppet-groupme";
+ rev = "695f97c3ab834403489bb01517d433498118e482";
+ sha256 = "sha256-GPCI1eELNmijBTCdSUi0tnW0XWDPsTCZhEQud5cMBII=";
+ };
+
+ myNodePackages = import ./node-composition.nix {
+ inherit pkgs nodejs;
+ inherit (stdenv.hostPlatform) system;
+ };
+
+in myNodePackages.package.override {
+ pname = "mx-puppet-groupme";
+
+ inherit src;
+ nativeBuildInputs = [ nodePackages.node-pre-gyp pkg-config ];
+ buildInputs = [ nodePackages.typescript libjpeg pixman cairo pango ];
+
+ postInstall = ''
+ # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems
+ patchShebangs --build "$out/lib/node_modules/mx-puppet-groupme/node_modules/"
+ # compile Typescript sources
+ npm run build
+ # Make an executable to run the server
+ mkdir -p $out/bin
+ cat <<EOF > $out/bin/mx-puppet-groupme
+ #!/bin/sh
+ exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-groupme/build/index.js "\$@"
+ EOF
+ chmod +x $out/bin/mx-puppet-groupme
+ '';
+
+ meta = with lib; {
+ description = "A puppeting Matrix bridge for GroupMe built with mx-puppet-bridge";
+ license = licenses.asl20;
+ homepage = "https://gitlab.com/robintown/mx-puppet-groupme";
+ maintainers = with maintainers; [ pacman99 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/mx-puppet-groupme/generate.sh b/pkgs/mx-puppet-groupme/generate.sh
new file mode 100755
index 0000000..90f3ca8
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/generate.sh
@@ -0,0 +1,16 @@
+#! nix-shell -i bash -p nodePackages.node2nix
+
+# No official release
+rev="695f97c3ab834403489bb01517d433498118e482"
+u="https://gitlab.com/robintown/mx-puppet-groupme/-/raw/$rev"
+# Download package.json and package-lock.json
+# curl -o package.json "$u/package.json?inline=false"
+curl -o package-lock.json "$u/package-lock.json?inline=false"
+
+node2nix \
+ --nodejs-12 \
+ --node-env node-env.nix \
+ --input package.json \
+ --lock package-lock.json \
+ --output node-packages.nix \
+ --composition node-composition.nix
diff --git a/pkgs/mx-puppet-groupme/node-composition.nix b/pkgs/mx-puppet-groupme/node-composition.nix
new file mode 100644
index 0000000..64326c6
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+ inherit system;
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+ nodeEnv = import ./node-env.nix {
+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+ inherit pkgs nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+in
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+ inherit nodeEnv;
+}
diff --git a/pkgs/mx-puppet-groupme/node-env.nix b/pkgs/mx-puppet-groupme/node-env.nix
new file mode 100644
index 0000000..c2b7231
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/node-env.nix
@@ -0,0 +1,567 @@
+# This file originates from node2nix
+
+{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
+
+let
+ # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
+ utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
+
+ python = if nodejs ? python then nodejs.python else python2;
+
+ # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+ tarWrapper = runCommand "tarWrapper" {} ''
+ mkdir -p $out/bin
+
+ cat > $out/bin/tar <<EOF
+ #! ${stdenv.shell} -e
+ $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+ EOF
+
+ chmod +x $out/bin/tar
+ '';
+
+ # Function that generates a TGZ file from a NPM project
+ buildNodeSourceDist =
+ { name, version, src, ... }:
+
+ stdenv.mkDerivation {
+ name = "node-tarball-${name}-${version}";
+ inherit src;
+ buildInputs = [ nodejs ];
+ buildPhase = ''
+ export HOME=$TMPDIR
+ tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+ '';
+ installPhase = ''
+ mkdir -p $out/tarballs
+ mv $tgzFile $out/tarballs
+ mkdir -p $out/nix-support
+ echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+ '';
+ };
+
+ includeDependencies = {dependencies}:
+ lib.optionalString (dependencies != [])
+ (lib.concatMapStrings (dependency:
+ ''
+ # Bundle the dependencies of the package
+ mkdir -p node_modules
+ cd node_modules
+
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ if [ ! -e "${dependency.name}" ]
+ then
+ ${composePackage dependency}
+ fi
+
+ cd ..
+ ''
+ ) dependencies);
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+ builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+ DIR=$(pwd)
+ cd $TMPDIR
+
+ unpackFile ${src}
+
+ # Make the base dir in which the target dependency resides first
+ mkdir -p "$(dirname "$DIR/${packageName}")"
+
+ if [ -f "${src}" ]
+ then
+ # Figure out what directory has been unpacked
+ packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+ # Restore write permissions to make building work
+ find "$packageDir" -type d -exec chmod u+x {} \;
+ chmod -R u+w "$packageDir"
+
+ # Move the extracted tarball into the output folder
+ mv "$packageDir" "$DIR/${packageName}"
+ elif [ -d "${src}" ]
+ then
+ # Get a stripped name (without hash) of the source directory.
+ # On old nixpkgs it's already set internally.
+ if [ -z "$strippedName" ]
+ then
+ strippedName="$(stripHash ${src})"
+ fi
+
+ # Restore write permissions to make building work
+ chmod -R u+w "$strippedName"
+
+ # Move the extracted directory into the output folder
+ mv "$strippedName" "$DIR/${packageName}"
+ fi
+
+ # Unset the stripped name to not confuse the next unpack step
+ unset strippedName
+
+ # Include the dependencies of the package
+ cd "$DIR/${packageName}"
+ ${includeDependencies { inherit dependencies; }}
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ '';
+
+ pinpointDependencies = {dependencies, production}:
+ let
+ pinpointDependenciesFromPackageJSON = writeTextFile {
+ name = "pinpointDependencies.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function resolveDependencyVersion(location, name) {
+ if(location == process.env['NIX_STORE']) {
+ return null;
+ } else {
+ var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+ if(fs.existsSync(dependencyPackageJSON)) {
+ var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+ if(dependencyPackageObj.name == name) {
+ return dependencyPackageObj.version;
+ }
+ } else {
+ return resolveDependencyVersion(path.resolve(location, ".."), name);
+ }
+ }
+ }
+
+ function replaceDependencies(dependencies) {
+ if(typeof dependencies == "object" && dependencies !== null) {
+ for(var dependency in dependencies) {
+ var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+ if(resolvedVersion === null) {
+ process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+ } else {
+ dependencies[dependency] = resolvedVersion;
+ }
+ }
+ }
+ }
+
+ /* Read the package.json configuration */
+ var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+ /* Pinpoint all dependencies */
+ replaceDependencies(packageObj.dependencies);
+ if(process.argv[2] == "development") {
+ replaceDependencies(packageObj.devDependencies);
+ }
+ replaceDependencies(packageObj.optionalDependencies);
+
+ /* Write the fixed package.json file */
+ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+ '';
+ };
+ in
+ ''
+ node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+ ${lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+ cd ..
+ fi
+ ''}
+ '';
+
+ # Recursively traverses all dependencies of a package and pinpoints all
+ # dependencies in the package.json file to the versions that are actually
+ # being used.
+
+ pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+ ''
+ if [ -d "${packageName}" ]
+ then
+ cd "${packageName}"
+ ${pinpointDependencies { inherit dependencies production; }}
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ fi
+ '';
+
+ # Extract the Node.js source code which is used to compile packages with
+ # native bindings
+ nodeSources = runCommand "node-sources" {} ''
+ tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+ mv node-* $out
+ '';
+
+ # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+ addIntegrityFieldsScript = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function augmentDependencies(baseDir, dependencies) {
+ for(var dependencyName in dependencies) {
+ var dependency = dependencies[dependencyName];
+
+ // Open package.json and augment metadata fields
+ var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+ var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+ if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+ console.log("Adding metadata fields to: "+packageJSONPath);
+ var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+ if(dependency.integrity) {
+ packageObj["_integrity"] = dependency.integrity;
+ } else {
+ packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+ }
+
+ if(dependency.resolved) {
+ packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+ } else {
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ }
+
+ if(dependency.from !== undefined) { // Adopt from property if one has been provided
+ packageObj["_from"] = dependency.from;
+ }
+
+ fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+ }
+
+ // Augment transitive dependencies
+ if(dependency.dependencies !== undefined) {
+ augmentDependencies(packageJSONDir, dependency.dependencies);
+ }
+ }
+ }
+
+ if(fs.existsSync("./package-lock.json")) {
+ var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+ if(![1, 2].includes(packageLock.lockfileVersion)) {
+ process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
+ process.exit(1);
+ }
+
+ if(packageLock.dependencies !== undefined) {
+ augmentDependencies(".", packageLock.dependencies);
+ }
+ }
+ '';
+ };
+
+ # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+ reconstructPackageLock = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var lockObj = {
+ name: packageObj.name,
+ version: packageObj.version,
+ lockfileVersion: 1,
+ requires: true,
+ dependencies: {}
+ };
+
+ function augmentPackageJSON(filePath, dependencies) {
+ var packageJSON = path.join(filePath, "package.json");
+ if(fs.existsSync(packageJSON)) {
+ var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+ dependencies[packageObj.name] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: {}
+ };
+ processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+ }
+ }
+
+ function processDependencies(dir, dependencies) {
+ if(fs.existsSync(dir)) {
+ var files = fs.readdirSync(dir);
+
+ files.forEach(function(entry) {
+ var filePath = path.join(dir, entry);
+ var stats = fs.statSync(filePath);
+
+ if(stats.isDirectory()) {
+ if(entry.substr(0, 1) == "@") {
+ // When we encounter a namespace folder, augment all packages belonging to the scope
+ var pkgFiles = fs.readdirSync(filePath);
+
+ pkgFiles.forEach(function(entry) {
+ if(stats.isDirectory()) {
+ var pkgFilePath = path.join(filePath, entry);
+ augmentPackageJSON(pkgFilePath, dependencies);
+ }
+ });
+ } else {
+ augmentPackageJSON(filePath, dependencies);
+ }
+ }
+ });
+ }
+ }
+
+ processDependencies("node_modules", lockObj.dependencies);
+
+ fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+ '';
+ };
+
+ prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ in
+ ''
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ source $pinpointDependenciesScriptPath
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ # Deploy the Node.js package by running npm install. Since the
+ # dependencies have been provided already by ourselves, it should not
+ # attempt to install them again, which is good, because we want to make
+ # it Nix's responsibility. If it needs to install any dependencies
+ # anyway (e.g. because the dependency parameters are
+ # incomplete/incorrect), it fails.
+ #
+ # The other responsibilities of NPM are kept -- version checks, build
+ # steps, postprocessing etc.
+
+ export HOME=$TMPDIR
+ cd "${packageName}"
+ runHook preRebuild
+
+ ${lib.optionalString bypassCache ''
+ ${lib.optionalString reconstructLock ''
+ if [ -f package-lock.json ]
+ then
+ echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+ echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+ rm package-lock.json
+ else
+ echo "No package-lock.json file found, reconstructing..."
+ fi
+
+ node ${reconstructPackageLock}
+ ''}
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
+
+ if [ "''${dontNpmInstall-}" != "1" ]
+ then
+ # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+ rm -f npm-shrinkwrap.json
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
+ fi
+ '';
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node_${name}-${version}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ lib.optional (stdenv.isLinux) utillinux
+ ++ lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit nodejs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+ compositionScript = composePackage args;
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ # Create and enter a root node_modules/ folder
+ mkdir -p $out/lib/node_modules
+ cd $out/lib/node_modules
+
+ # Compose the package and all its dependencies
+ source $compositionScriptPath
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Create symlink to the deployed executable folder, if applicable
+ if [ -d "$out/lib/node_modules/.bin" ]
+ then
+ ln -s $out/lib/node_modules/.bin $out/bin
+ fi
+
+ # Create symlinks to the deployed manual page folders, if applicable
+ if [ -d "$out/lib/node_modules/${packageName}/man" ]
+ then
+ mkdir -p $out/share
+ for dir in "$out/lib/node_modules/${packageName}/man/"*
+ do
+ mkdir -p $out/share/man/$(basename "$dir")
+ for page in "$dir"/*
+ do
+ ln -s $page $out/share/man/$(basename "$dir")
+ done
+ done
+ fi
+
+ # Run post install hook, if provided
+ runHook postInstall
+ '';
+ } // extraArgs);
+
+ # Builds a node environment (a node_modules folder and a set of binaries)
+ buildNodeDependencies =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node-dependencies-${name}-${version}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ lib.optional (stdenv.isLinux) utillinux
+ ++ lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall unpackPhase buildPhase;
+
+ includeScript = includeDependencies { inherit dependencies; };
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ mkdir -p $out/${packageName}
+ cd $out/${packageName}
+
+ source $includeScriptPath
+
+ # Create fake package.json to make the npm commands work properly
+ cp ${src}/package.json .
+ chmod 644 package.json
+ ${lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ fi
+ ''}
+
+ # Go to the parent folder to make sure that all packages are pinpointed
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Expose the executables that were installed
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ nodeDependencies = buildNodeDependencies args;
+ in
+ stdenv.mkDerivation {
+ name = "node-shell-${name}-${version}";
+
+ buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+ buildCommand = ''
+ mkdir -p $out/bin
+ cat > $out/bin/shell <<EOF
+ #! ${stdenv.shell} -e
+ $shellHook
+ exec ${stdenv.shell}
+ EOF
+ chmod +x $out/bin/shell
+ '';
+
+ # Provide the dependencies in a development shell through the NODE_PATH environment variable
+ inherit nodeDependencies;
+ shellHook = lib.optionalString (dependencies != []) ''
+ export NODE_PATH=${nodeDependencies}/lib/node_modules
+ export PATH="${nodeDependencies}/bin:$PATH"
+ '';
+ };
+in
+{
+ buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
+ buildNodePackage = lib.makeOverridable buildNodePackage;
+ buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
+ buildNodeShell = lib.makeOverridable buildNodeShell;
+}
diff --git a/pkgs/mx-puppet-groupme/node-packages.nix b/pkgs/mx-puppet-groupme/node-packages.nix
new file mode 100644
index 0000000..95aee7c
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/node-packages.nix
@@ -0,0 +1,3342 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "@dabh/diagnostics-2.0.2" = {
+ name = "_at_dabh_slash_diagnostics";
+ packageName = "@dabh/diagnostics";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+ sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+ };
+ };
+ "@sindresorhus/is-4.0.0" = {
+ name = "_at_sindresorhus_slash_is";
+ packageName = "@sindresorhus/is";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz";
+ sha512 = "FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==";
+ };
+ };
+ "@sorunome/matrix-bot-sdk-0.5.8" = {
+ name = "_at_sorunome_slash_matrix-bot-sdk";
+ packageName = "@sorunome/matrix-bot-sdk";
+ version = "0.5.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.8.tgz";
+ sha512 = "Uifu8saeD1fPrj6F8ZdYiCeADCluySbdi/nVKJy0NQOi6cA5p68ZaeydlCyl+YuFJoCjsDWBe+Szq9CgFd/SpA==";
+ };
+ };
+ "@szmarczak/http-timer-4.0.5" = {
+ name = "_at_szmarczak_slash_http-timer";
+ packageName = "@szmarczak/http-timer";
+ version = "4.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz";
+ sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==";
+ };
+ };
+ "@types/body-parser-1.19.0" = {
+ name = "_at_types_slash_body-parser";
+ packageName = "@types/body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
+ };
+ };
+ "@types/cacheable-request-6.0.1" = {
+ name = "_at_types_slash_cacheable-request";
+ packageName = "@types/cacheable-request";
+ version = "6.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz";
+ sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==";
+ };
+ };
+ "@types/connect-3.4.34" = {
+ name = "_at_types_slash_connect";
+ packageName = "@types/connect";
+ version = "3.4.34";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz";
+ sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
+ };
+ };
+ "@types/express-4.17.11" = {
+ name = "_at_types_slash_express";
+ packageName = "@types/express";
+ version = "4.17.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
+ sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
+ };
+ };
+ "@types/express-serve-static-core-4.17.18" = {
+ name = "_at_types_slash_express-serve-static-core";
+ packageName = "@types/express-serve-static-core";
+ version = "4.17.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
+ sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==";
+ };
+ };
+ "@types/http-cache-semantics-4.0.0" = {
+ name = "_at_types_slash_http-cache-semantics";
+ packageName = "@types/http-cache-semantics";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz";
+ sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
+ };
+ };
+ "@types/keyv-3.1.1" = {
+ name = "_at_types_slash_keyv";
+ packageName = "@types/keyv";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz";
+ sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
+ };
+ };
+ "@types/mime-1.3.2" = {
+ name = "_at_types_slash_mime";
+ packageName = "@types/mime";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz";
+ sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
+ };
+ };
+ "@types/node-14.14.20" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "14.14.20";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz";
+ sha512 = "Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==";
+ };
+ };
+ "@types/qs-6.9.5" = {
+ name = "_at_types_slash_qs";
+ packageName = "@types/qs";
+ version = "6.9.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
+ sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+ };
+ };
+ "@types/range-parser-1.2.3" = {
+ name = "_at_types_slash_range-parser";
+ packageName = "@types/range-parser";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
+ sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
+ };
+ };
+ "@types/responselike-1.0.0" = {
+ name = "_at_types_slash_responselike";
+ packageName = "@types/responselike";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz";
+ sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==";
+ };
+ };
+ "@types/serve-static-1.13.9" = {
+ name = "_at_types_slash_serve-static";
+ packageName = "@types/serve-static";
+ version = "1.13.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz";
+ sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
+ };
+ };
+ "abbrev-1.1.1" = {
+ name = "abbrev";
+ packageName = "abbrev";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+ sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+ };
+ };
+ "accepts-1.3.7" = {
+ name = "accepts";
+ packageName = "accepts";
+ version = "1.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+ sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+ };
+ };
+ "ansi-regex-2.1.1" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ };
+ "ansi-styles-3.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+ };
+ };
+ "ansi-styles-4.3.0" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+ sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+ };
+ };
+ "aproba-1.2.0" = {
+ name = "aproba";
+ packageName = "aproba";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+ sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+ };
+ };
+ "are-we-there-yet-1.1.5" = {
+ name = "are-we-there-yet";
+ packageName = "are-we-there-yet";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+ };
+ };
+ "argparse-1.0.10" = {
+ name = "argparse";
+ packageName = "argparse";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+ sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+ };
+ };
+ "array-back-3.1.0" = {
+ name = "array-back";
+ packageName = "array-back";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
+ sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==";
+ };
+ };
+ "array-back-4.0.1" = {
+ name = "array-back";
+ packageName = "array-back";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz";
+ sha512 = "Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==";
+ };
+ };
+ "array-flatten-1.1.1" = {
+ name = "array-flatten";
+ packageName = "array-flatten";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ };
+ "asap-2.0.6" = {
+ name = "asap";
+ packageName = "asap";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz";
+ sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+ };
+ };
+ "assert-options-0.7.0" = {
+ name = "assert-options";
+ packageName = "assert-options";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz";
+ sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ==";
+ };
+ };
+ "async-3.2.0" = {
+ name = "async";
+ packageName = "async";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+ sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+ };
+ };
+ "asynckit-0.4.0" = {
+ name = "asynckit";
+ packageName = "asynckit";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ };
+ "axios-0.21.1" = {
+ name = "axios";
+ packageName = "axios";
+ version = "0.21.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz";
+ sha512 = "dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==";
+ };
+ };
+ "balanced-match-1.0.0" = {
+ name = "balanced-match";
+ packageName = "balanced-match";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ };
+ "base64-js-1.5.1" = {
+ name = "base64-js";
+ packageName = "base64-js";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+ sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+ };
+ };
+ "basic-auth-2.0.1" = {
+ name = "basic-auth";
+ packageName = "basic-auth";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+ sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
+ };
+ };
+ "better-sqlite3-6.0.1" = {
+ name = "better-sqlite3";
+ packageName = "better-sqlite3";
+ version = "6.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz";
+ sha512 = "4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ==";
+ };
+ };
+ "bindings-1.5.0" = {
+ name = "bindings";
+ packageName = "bindings";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+ sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+ };
+ };
+ "bintrees-1.0.1" = {
+ name = "bintrees";
+ packageName = "bintrees";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz";
+ sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+ };
+ };
+ "bl-4.0.3" = {
+ name = "bl";
+ packageName = "bl";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+ sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
+ };
+ };
+ "blurhash-1.1.3" = {
+ name = "blurhash";
+ packageName = "blurhash";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz";
+ sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==";
+ };
+ };
+ "body-parser-1.19.0" = {
+ name = "body-parser";
+ packageName = "body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+ };
+ };
+ "brace-expansion-1.1.11" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+ };
+ };
+ "buffer-5.7.1" = {
+ name = "buffer";
+ packageName = "buffer";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+ sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+ };
+ };
+ "buffer-writer-2.0.0" = {
+ name = "buffer-writer";
+ packageName = "buffer-writer";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+ sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+ };
+ };
+ "bytes-3.1.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+ sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+ };
+ };
+ "cacheable-lookup-5.0.4" = {
+ name = "cacheable-lookup";
+ packageName = "cacheable-lookup";
+ version = "5.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz";
+ sha512 = "2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==";
+ };
+ };
+ "cacheable-request-7.0.1" = {
+ name = "cacheable-request";
+ packageName = "cacheable-request";
+ version = "7.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz";
+ sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==";
+ };
+ };
+ "canvas-2.6.1" = {
+ name = "canvas";
+ packageName = "canvas";
+ version = "2.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz";
+ sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==";
+ };
+ };
+ "chalk-2.4.2" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+ sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+ };
+ };
+ "chalk-4.1.0" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+ sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+ };
+ };
+ "chownr-1.1.4" = {
+ name = "chownr";
+ packageName = "chownr";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+ sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+ };
+ };
+ "clone-response-1.0.2" = {
+ name = "clone-response";
+ packageName = "clone-response";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz";
+ sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+ };
+ };
+ "code-point-at-1.1.0" = {
+ name = "code-point-at";
+ packageName = "code-point-at";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ };
+ "color-3.0.0" = {
+ name = "color";
+ packageName = "color";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
+ sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+ };
+ };
+ "color-convert-1.9.3" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "1.9.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+ sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+ };
+ };
+ "color-convert-2.0.1" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+ sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+ };
+ };
+ "color-name-1.1.3" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ };
+ "color-name-1.1.4" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+ sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+ };
+ };
+ "color-string-1.5.4" = {
+ name = "color-string";
+ packageName = "color-string";
+ version = "1.5.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
+ sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
+ };
+ };
+ "colors-1.4.0" = {
+ name = "colors";
+ packageName = "colors";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
+ sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
+ };
+ };
+ "colorspace-1.1.2" = {
+ name = "colorspace";
+ packageName = "colorspace";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
+ sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+ };
+ };
+ "combined-stream-1.0.8" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+ };
+ };
+ "command-line-args-5.1.1" = {
+ name = "command-line-args";
+ packageName = "command-line-args";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz";
+ sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==";
+ };
+ };
+ "command-line-usage-6.1.1" = {
+ name = "command-line-usage";
+ packageName = "command-line-usage";
+ version = "6.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz";
+ sha512 = "F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "console-control-strings-1.1.0" = {
+ name = "console-control-strings";
+ packageName = "console-control-strings";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ };
+ "content-disposition-0.5.3" = {
+ name = "content-disposition";
+ packageName = "content-disposition";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+ };
+ };
+ "content-type-1.0.4" = {
+ name = "content-type";
+ packageName = "content-type";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+ sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+ };
+ };
+ "cookie-0.4.0" = {
+ name = "cookie";
+ packageName = "cookie";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+ sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+ };
+ };
+ "cookie-signature-1.0.6" = {
+ name = "cookie-signature";
+ packageName = "cookie-signature";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ };
+ "core-util-is-1.0.2" = {
+ name = "core-util-is";
+ packageName = "core-util-is";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ };
+ "csprng-0.1.2" = {
+ name = "csprng";
+ packageName = "csprng";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/csprng/-/csprng-0.1.2.tgz";
+ sha1 = "4bc68f12fa368d252a59841cbaca974b18ab45e2";
+ };
+ };
+ "cycle-1.0.3" = {
+ name = "cycle";
+ packageName = "cycle";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+ sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+ };
+ };
+ "debug-2.6.9" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.6.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+ sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+ };
+ };
+ "debug-3.2.7" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
+ sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
+ };
+ };
+ "decompress-response-4.2.1" = {
+ name = "decompress-response";
+ packageName = "decompress-response";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
+ sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+ };
+ };
+ "decompress-response-6.0.0" = {
+ name = "decompress-response";
+ packageName = "decompress-response";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz";
+ sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==";
+ };
+ };
+ "deep-extend-0.6.0" = {
+ name = "deep-extend";
+ packageName = "deep-extend";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+ };
+ };
+ "defer-to-connect-2.0.0" = {
+ name = "defer-to-connect";
+ packageName = "defer-to-connect";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
+ sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==";
+ };
+ };
+ "delayed-stream-1.0.0" = {
+ name = "delayed-stream";
+ packageName = "delayed-stream";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ };
+ "delegates-1.0.0" = {
+ name = "delegates";
+ packageName = "delegates";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ };
+ "depd-1.1.2" = {
+ name = "depd";
+ packageName = "depd";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ };
+ "depd-2.0.0" = {
+ name = "depd";
+ packageName = "depd";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+ sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+ };
+ };
+ "destroy-1.0.4" = {
+ name = "destroy";
+ packageName = "destroy";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ };
+ "detect-libc-1.0.3" = {
+ name = "detect-libc";
+ packageName = "detect-libc";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ };
+ "dom-serializer-1.2.0" = {
+ name = "dom-serializer";
+ packageName = "dom-serializer";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz";
+ sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==";
+ };
+ };
+ "domelementtype-2.1.0" = {
+ name = "domelementtype";
+ packageName = "domelementtype";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz";
+ sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==";
+ };
+ };
+ "domhandler-3.3.0" = {
+ name = "domhandler";
+ packageName = "domhandler";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz";
+ sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
+ };
+ };
+ "domhandler-4.0.0" = {
+ name = "domhandler";
+ packageName = "domhandler";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz";
+ sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==";
+ };
+ };
+ "domutils-2.4.4" = {
+ name = "domutils";
+ packageName = "domutils";
+ version = "2.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz";
+ sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==";
+ };
+ };
+ "ee-first-1.1.1" = {
+ name = "ee-first";
+ packageName = "ee-first";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ };
+ "enabled-2.0.0" = {
+ name = "enabled";
+ packageName = "enabled";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+ sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
+ };
+ };
+ "encodeurl-1.0.2" = {
+ name = "encodeurl";
+ packageName = "encodeurl";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ };
+ "end-of-stream-1.4.4" = {
+ name = "end-of-stream";
+ packageName = "end-of-stream";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+ };
+ };
+ "entities-1.1.2" = {
+ name = "entities";
+ packageName = "entities";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+ sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+ };
+ };
+ "entities-2.1.0" = {
+ name = "entities";
+ packageName = "entities";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz";
+ sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==";
+ };
+ };
+ "escape-html-1.0.3" = {
+ name = "escape-html";
+ packageName = "escape-html";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ };
+ "escape-string-regexp-1.0.5" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ };
+ "esprima-4.0.1" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+ sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+ };
+ };
+ "etag-1.8.1" = {
+ name = "etag";
+ packageName = "etag";
+ version = "1.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ };
+ "events-3.2.0" = {
+ name = "events";
+ packageName = "events";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
+ sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
+ };
+ };
+ "expand-template-2.0.3" = {
+ name = "expand-template";
+ packageName = "expand-template";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+ sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+ };
+ };
+ "expire-set-1.0.0" = {
+ name = "expire-set";
+ packageName = "expire-set";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz";
+ sha512 = "wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg==";
+ };
+ };
+ "express-4.17.1" = {
+ name = "express";
+ packageName = "express";
+ version = "4.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+ sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+ };
+ };
+ "extend-shallow-2.0.1" = {
+ name = "extend-shallow";
+ packageName = "extend-shallow";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ };
+ "fast-safe-stringify-2.0.7" = {
+ name = "fast-safe-stringify";
+ packageName = "fast-safe-stringify";
+ version = "2.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
+ sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
+ };
+ };
+ "faye-1.4.0" = {
+ name = "faye";
+ packageName = "faye";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/faye/-/faye-1.4.0.tgz";
+ sha512 = "kRrIg4be8VNYhycS2PY//hpBJSzZPr/DBbcy9VWelhZMW3KhyLkQR0HL0k0MNpmVoNFF4EdfMFkNAWjTP65g6w==";
+ };
+ };
+ "faye-websocket-0.11.3" = {
+ name = "faye-websocket";
+ packageName = "faye-websocket";
+ version = "0.11.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz";
+ sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==";
+ };
+ };
+ "fecha-2.3.3" = {
+ name = "fecha";
+ packageName = "fecha";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
+ sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+ };
+ };
+ "fecha-4.2.0" = {
+ name = "fecha";
+ packageName = "fecha";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+ sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+ };
+ };
+ "file-stream-rotator-0.4.1" = {
+ name = "file-stream-rotator";
+ packageName = "file-stream-rotator";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
+ sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==";
+ };
+ };
+ "file-type-12.4.2" = {
+ name = "file-type";
+ packageName = "file-type";
+ version = "12.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz";
+ sha512 = "UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==";
+ };
+ };
+ "file-uri-to-path-1.0.0" = {
+ name = "file-uri-to-path";
+ packageName = "file-uri-to-path";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+ sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+ };
+ };
+ "finalhandler-1.1.2" = {
+ name = "finalhandler";
+ packageName = "finalhandler";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+ };
+ };
+ "find-replace-3.0.0" = {
+ name = "find-replace";
+ packageName = "find-replace";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz";
+ sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==";
+ };
+ };
+ "fn.name-1.1.0" = {
+ name = "fn.name";
+ packageName = "fn.name";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+ sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+ };
+ };
+ "follow-redirects-1.13.1" = {
+ name = "follow-redirects";
+ packageName = "follow-redirects";
+ version = "1.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz";
+ sha512 = "SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==";
+ };
+ };
+ "form-data-3.0.0" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz";
+ sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==";
+ };
+ };
+ "forwarded-0.1.2" = {
+ name = "forwarded";
+ packageName = "forwarded";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ };
+ "fresh-0.5.2" = {
+ name = "fresh";
+ packageName = "fresh";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ };
+ "fromentries-1.3.2" = {
+ name = "fromentries";
+ packageName = "fromentries";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz";
+ sha512 = "cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==";
+ };
+ };
+ "fs-constants-1.0.0" = {
+ name = "fs-constants";
+ packageName = "fs-constants";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+ sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+ };
+ };
+ "fs-minipass-1.2.7" = {
+ name = "fs-minipass";
+ packageName = "fs-minipass";
+ version = "1.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+ sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+ };
+ };
+ "fs.realpath-1.0.0" = {
+ name = "fs.realpath";
+ packageName = "fs.realpath";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ };
+ "gauge-2.7.4" = {
+ name = "gauge";
+ packageName = "gauge";
+ version = "2.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ };
+ "get-stream-5.2.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+ sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+ };
+ };
+ "github-from-package-0.0.0" = {
+ name = "github-from-package";
+ packageName = "github-from-package";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz";
+ sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+ };
+ };
+ "glob-7.1.6" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+ sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+ };
+ };
+ "glob-to-regexp-0.4.1" = {
+ name = "glob-to-regexp";
+ packageName = "glob-to-regexp";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+ sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
+ };
+ };
+ "got-11.8.1" = {
+ name = "got";
+ packageName = "got";
+ version = "11.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/got/-/got-11.8.1.tgz";
+ sha512 = "9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==";
+ };
+ };
+ "graceful-fs-4.2.4" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+ sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+ };
+ };
+ "has-flag-3.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ };
+ "has-flag-4.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+ sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+ };
+ };
+ "has-unicode-2.0.1" = {
+ name = "has-unicode";
+ packageName = "has-unicode";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ };
+ "hash.js-1.1.7" = {
+ name = "hash.js";
+ packageName = "hash.js";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
+ sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+ };
+ };
+ "hasha-5.2.2" = {
+ name = "hasha";
+ packageName = "hasha";
+ version = "5.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz";
+ sha512 = "Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==";
+ };
+ };
+ "htmlencode-0.0.4" = {
+ name = "htmlencode";
+ packageName = "htmlencode";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz";
+ sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
+ };
+ };
+ "htmlparser2-4.1.0" = {
+ name = "htmlparser2";
+ packageName = "htmlparser2";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz";
+ sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
+ };
+ };
+ "http-cache-semantics-4.1.0" = {
+ name = "http-cache-semantics";
+ packageName = "http-cache-semantics";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
+ sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
+ };
+ };
+ "http-errors-1.7.2" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+ sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+ };
+ };
+ "http-parser-js-0.5.2" = {
+ name = "http-parser-js";
+ packageName = "http-parser-js";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz";
+ sha512 = "opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==";
+ };
+ };
+ "http2-wrapper-1.0.0-beta.5.2" = {
+ name = "http2-wrapper";
+ packageName = "http2-wrapper";
+ version = "1.0.0-beta.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz";
+ sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==";
+ };
+ };
+ "iconv-lite-0.4.24" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+ };
+ };
+ "ieee754-1.2.1" = {
+ name = "ieee754";
+ packageName = "ieee754";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+ sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+ };
+ };
+ "ignore-walk-3.0.3" = {
+ name = "ignore-walk";
+ packageName = "ignore-walk";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
+ sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+ };
+ };
+ "inflight-1.0.6" = {
+ name = "inflight";
+ packageName = "inflight";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ };
+ "inherits-2.0.3" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ };
+ "inherits-2.0.4" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+ sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+ };
+ };
+ "ini-1.3.8" = {
+ name = "ini";
+ packageName = "ini";
+ version = "1.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
+ sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
+ };
+ };
+ "integer-3.0.1" = {
+ name = "integer";
+ packageName = "integer";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz";
+ sha512 = "OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw==";
+ };
+ };
+ "ipaddr.js-1.9.1" = {
+ name = "ipaddr.js";
+ packageName = "ipaddr.js";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+ sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+ };
+ };
+ "is-arrayish-0.3.2" = {
+ name = "is-arrayish";
+ packageName = "is-arrayish";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+ sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+ };
+ };
+ "is-extendable-0.1.1" = {
+ name = "is-extendable";
+ packageName = "is-extendable";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ };
+ "is-fullwidth-code-point-1.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ };
+ "is-promise-2.2.2" = {
+ name = "is-promise";
+ packageName = "is-promise";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz";
+ sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
+ };
+ };
+ "is-stream-2.0.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+ sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+ };
+ };
+ "isarray-1.0.0" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ };
+ "js-yaml-3.14.1" = {
+ name = "js-yaml";
+ packageName = "js-yaml";
+ version = "3.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz";
+ sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
+ };
+ };
+ "json-buffer-3.0.1" = {
+ name = "json-buffer";
+ packageName = "json-buffer";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz";
+ sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==";
+ };
+ };
+ "keyv-4.0.3" = {
+ name = "keyv";
+ packageName = "keyv";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz";
+ sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
+ };
+ };
+ "kuler-2.0.0" = {
+ name = "kuler";
+ packageName = "kuler";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+ sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
+ };
+ };
+ "linkify-it-2.2.0" = {
+ name = "linkify-it";
+ packageName = "linkify-it";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz";
+ sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
+ };
+ };
+ "lodash-4.17.20" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.20";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+ sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+ };
+ };
+ "lodash.camelcase-4.3.0" = {
+ name = "lodash.camelcase";
+ packageName = "lodash.camelcase";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+ sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+ };
+ };
+ "logform-1.10.0" = {
+ name = "logform";
+ packageName = "logform";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
+ sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
+ };
+ };
+ "logform-2.2.0" = {
+ name = "logform";
+ packageName = "logform";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+ sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+ };
+ };
+ "lowdb-1.0.0" = {
+ name = "lowdb";
+ packageName = "lowdb";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz";
+ sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==";
+ };
+ };
+ "lowercase-keys-2.0.0" = {
+ name = "lowercase-keys";
+ packageName = "lowercase-keys";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+ sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==";
+ };
+ };
+ "lru-cache-6.0.0" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+ sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+ };
+ };
+ "markdown-it-9.1.0" = {
+ name = "markdown-it";
+ packageName = "markdown-it";
+ version = "9.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz";
+ sha512 = "xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w==";
+ };
+ };
+ "mdurl-1.0.1" = {
+ name = "mdurl";
+ packageName = "mdurl";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz";
+ sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+ };
+ };
+ "media-typer-0.3.0" = {
+ name = "media-typer";
+ packageName = "media-typer";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ };
+ "merge-descriptors-1.0.1" = {
+ name = "merge-descriptors";
+ packageName = "merge-descriptors";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ };
+ "methods-1.1.2" = {
+ name = "methods";
+ packageName = "methods";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ };
+ "mime-1.6.0" = {
+ name = "mime";
+ packageName = "mime";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+ sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+ };
+ };
+ "mime-db-1.44.0" = {
+ name = "mime-db";
+ packageName = "mime-db";
+ version = "1.44.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+ sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+ };
+ };
+ "mime-types-2.1.27" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "2.1.27";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+ sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+ };
+ };
+ "mimic-response-1.0.1" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
+ sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
+ };
+ };
+ "mimic-response-2.1.0" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
+ sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+ };
+ };
+ "mimic-response-3.1.0" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz";
+ sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==";
+ };
+ };
+ "minimalistic-assert-1.0.1" = {
+ name = "minimalistic-assert";
+ packageName = "minimalistic-assert";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+ sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+ };
+ };
+ "minimist-1.2.5" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+ sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+ };
+ };
+ "minipass-2.9.0" = {
+ name = "minipass";
+ packageName = "minipass";
+ version = "2.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+ sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+ };
+ };
+ "minizlib-1.3.3" = {
+ name = "minizlib";
+ packageName = "minizlib";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+ sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+ };
+ };
+ "mkdirp-0.5.5" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+ sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+ };
+ };
+ "mkdirp-1.0.4" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+ sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+ };
+ };
+ "mkdirp-classic-0.5.3" = {
+ name = "mkdirp-classic";
+ packageName = "mkdirp-classic";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+ sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
+ };
+ };
+ "moment-2.29.1" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.29.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
+ sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
+ };
+ };
+ "morgan-1.10.0" = {
+ name = "morgan";
+ packageName = "morgan";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+ sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
+ };
+ };
+ "ms-2.0.0" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ };
+ "ms-2.1.1" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+ sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+ };
+ };
+ "ms-2.1.3" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+ sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+ };
+ };
+ "mx-puppet-bridge-0.1.4" = {
+ name = "mx-puppet-bridge";
+ packageName = "mx-puppet-bridge";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.4.tgz";
+ sha512 = "Jg4hszVqQv1n35Mvb5HcfK4VafjB0LaCEay8ylgiu/M2oIPE0fadFNdQpkwssXmShDzSeth/xga3HgP8G6O5Fg==";
+ };
+ };
+ "nan-2.14.2" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.14.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
+ sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+ };
+ };
+ "napi-build-utils-1.0.2" = {
+ name = "napi-build-utils";
+ packageName = "napi-build-utils";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+ sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
+ };
+ };
+ "needle-2.6.0" = {
+ name = "needle";
+ packageName = "needle";
+ version = "2.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz";
+ sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==";
+ };
+ };
+ "negotiator-0.6.2" = {
+ name = "negotiator";
+ packageName = "negotiator";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+ sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+ };
+ };
+ "node-abi-2.19.3" = {
+ name = "node-abi";
+ packageName = "node-abi";
+ version = "2.19.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz";
+ sha512 = "9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==";
+ };
+ };
+ "node-pre-gyp-0.11.0" = {
+ name = "node-pre-gyp";
+ packageName = "node-pre-gyp";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+ sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+ };
+ };
+ "noop-logger-0.1.1" = {
+ name = "noop-logger";
+ packageName = "noop-logger";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz";
+ sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+ };
+ };
+ "nopt-4.0.3" = {
+ name = "nopt";
+ packageName = "nopt";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
+ sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+ };
+ };
+ "normalize-url-4.5.0" = {
+ name = "normalize-url";
+ packageName = "normalize-url";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
+ sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
+ };
+ };
+ "npm-bundled-1.1.1" = {
+ name = "npm-bundled";
+ packageName = "npm-bundled";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
+ sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+ };
+ };
+ "npm-normalize-package-bin-1.0.1" = {
+ name = "npm-normalize-package-bin";
+ packageName = "npm-normalize-package-bin";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
+ sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+ };
+ };
+ "npm-packlist-1.4.8" = {
+ name = "npm-packlist";
+ packageName = "npm-packlist";
+ version = "1.4.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
+ sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
+ };
+ };
+ "npmlog-4.1.2" = {
+ name = "npmlog";
+ packageName = "npmlog";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+ sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+ };
+ };
+ "number-is-nan-1.0.1" = {
+ name = "number-is-nan";
+ packageName = "number-is-nan";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ };
+ "object-assign-4.1.1" = {
+ name = "object-assign";
+ packageName = "object-assign";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ };
+ "object-hash-1.3.1" = {
+ name = "object-hash";
+ packageName = "object-hash";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
+ sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
+ };
+ };
+ "on-finished-2.3.0" = {
+ name = "on-finished";
+ packageName = "on-finished";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ };
+ "on-headers-1.0.2" = {
+ name = "on-headers";
+ packageName = "on-headers";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+ sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+ };
+ };
+ "once-1.4.0" = {
+ name = "once";
+ packageName = "once";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ };
+ "one-time-1.0.0" = {
+ name = "one-time";
+ packageName = "one-time";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+ sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
+ };
+ };
+ "os-homedir-1.0.2" = {
+ name = "os-homedir";
+ packageName = "os-homedir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ };
+ "os-tmpdir-1.0.2" = {
+ name = "os-tmpdir";
+ packageName = "os-tmpdir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ };
+ "osenv-0.1.5" = {
+ name = "osenv";
+ packageName = "osenv";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+ sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+ };
+ };
+ "p-cancelable-2.0.0" = {
+ name = "p-cancelable";
+ packageName = "p-cancelable";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
+ sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+ };
+ };
+ "packet-reader-1.0.0" = {
+ name = "packet-reader";
+ packageName = "packet-reader";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+ sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+ };
+ };
+ "parse-srcset-1.0.2" = {
+ name = "parse-srcset";
+ packageName = "parse-srcset";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz";
+ sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1";
+ };
+ };
+ "parseurl-1.3.3" = {
+ name = "parseurl";
+ packageName = "parseurl";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+ sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+ };
+ };
+ "path-is-absolute-1.0.1" = {
+ name = "path-is-absolute";
+ packageName = "path-is-absolute";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ };
+ "path-to-regexp-0.1.7" = {
+ name = "path-to-regexp";
+ packageName = "path-to-regexp";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ };
+ "pg-8.5.1" = {
+ name = "pg";
+ packageName = "pg";
+ version = "8.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
+ sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
+ };
+ };
+ "pg-connection-string-2.4.0" = {
+ name = "pg-connection-string";
+ packageName = "pg-connection-string";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+ sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+ };
+ };
+ "pg-int8-1.0.1" = {
+ name = "pg-int8";
+ packageName = "pg-int8";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+ sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+ };
+ };
+ "pg-minify-1.6.2" = {
+ name = "pg-minify";
+ packageName = "pg-minify";
+ version = "1.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz";
+ sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==";
+ };
+ };
+ "pg-pool-3.2.2" = {
+ name = "pg-pool";
+ packageName = "pg-pool";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
+ sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+ };
+ };
+ "pg-promise-10.9.1" = {
+ name = "pg-promise";
+ packageName = "pg-promise";
+ version = "10.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz";
+ sha512 = "Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A==";
+ };
+ };
+ "pg-protocol-1.4.0" = {
+ name = "pg-protocol";
+ packageName = "pg-protocol";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
+ sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+ };
+ };
+ "pg-types-2.2.0" = {
+ name = "pg-types";
+ packageName = "pg-types";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+ sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+ };
+ };
+ "pgpass-1.0.4" = {
+ name = "pgpass";
+ packageName = "pgpass";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz";
+ sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
+ };
+ };
+ "pify-3.0.0" = {
+ name = "pify";
+ packageName = "pify";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ };
+ "postcss-7.0.35" = {
+ name = "postcss";
+ packageName = "postcss";
+ version = "7.0.35";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz";
+ sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
+ };
+ };
+ "postgres-array-2.0.0" = {
+ name = "postgres-array";
+ packageName = "postgres-array";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+ sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+ };
+ };
+ "postgres-bytea-1.0.0" = {
+ name = "postgres-bytea";
+ packageName = "postgres-bytea";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+ sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+ };
+ };
+ "postgres-date-1.0.7" = {
+ name = "postgres-date";
+ packageName = "postgres-date";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+ sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+ };
+ };
+ "postgres-interval-1.2.0" = {
+ name = "postgres-interval";
+ packageName = "postgres-interval";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+ sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+ };
+ };
+ "prebuild-install-5.3.6" = {
+ name = "prebuild-install";
+ packageName = "prebuild-install";
+ version = "5.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz";
+ sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
+ };
+ };
+ "process-nextick-args-2.0.1" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+ };
+ };
+ "prom-client-13.0.0" = {
+ name = "prom-client";
+ packageName = "prom-client";
+ version = "13.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz";
+ sha512 = "M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A==";
+ };
+ };
+ "proxy-addr-2.0.6" = {
+ name = "proxy-addr";
+ packageName = "proxy-addr";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+ sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+ };
+ };
+ "psl-1.8.0" = {
+ name = "psl";
+ packageName = "psl";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+ sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+ };
+ };
+ "pump-3.0.0" = {
+ name = "pump";
+ packageName = "pump";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+ sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+ };
+ };
+ "punycode-2.1.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+ sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+ };
+ };
+ "qs-6.7.0" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+ sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+ };
+ };
+ "quick-lru-5.1.1" = {
+ name = "quick-lru";
+ packageName = "quick-lru";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+ sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
+ };
+ };
+ "range-parser-1.2.1" = {
+ name = "range-parser";
+ packageName = "range-parser";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+ sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+ };
+ };
+ "raw-body-2.4.0" = {
+ name = "raw-body";
+ packageName = "raw-body";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+ sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+ };
+ };
+ "rc-1.2.8" = {
+ name = "rc";
+ packageName = "rc";
+ version = "1.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+ sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+ };
+ };
+ "readable-stream-2.3.7" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+ };
+ };
+ "readable-stream-3.6.0" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "3.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+ sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+ };
+ };
+ "reduce-flatten-2.0.0" = {
+ name = "reduce-flatten";
+ packageName = "reduce-flatten";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz";
+ sha512 = "EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==";
+ };
+ };
+ "resolve-alpn-1.0.0" = {
+ name = "resolve-alpn";
+ packageName = "resolve-alpn";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz";
+ sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==";
+ };
+ };
+ "responselike-2.0.0" = {
+ name = "responselike";
+ packageName = "responselike";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz";
+ sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==";
+ };
+ };
+ "rimraf-2.7.1" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+ sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+ };
+ };
+ "safe-buffer-5.1.2" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+ };
+ };
+ "safer-buffer-2.1.2" = {
+ name = "safer-buffer";
+ packageName = "safer-buffer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+ };
+ };
+ "sanitize-html-1.27.5" = {
+ name = "sanitize-html";
+ packageName = "sanitize-html";
+ version = "1.27.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz";
+ sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==";
+ };
+ };
+ "sax-1.2.4" = {
+ name = "sax";
+ packageName = "sax";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+ sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+ };
+ };
+ "semver-5.7.1" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+ sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+ };
+ };
+ "semver-6.3.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "6.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+ sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+ };
+ };
+ "send-0.17.1" = {
+ name = "send";
+ packageName = "send";
+ version = "0.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+ sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+ };
+ };
+ "sequin-0.1.1" = {
+ name = "sequin";
+ packageName = "sequin";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sequin/-/sequin-0.1.1.tgz";
+ sha1 = "5c2d389d66a383734eaafbc45edeb2c1cb1be701";
+ };
+ };
+ "serve-static-1.14.1" = {
+ name = "serve-static";
+ packageName = "serve-static";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+ sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+ };
+ };
+ "set-blocking-2.0.0" = {
+ name = "set-blocking";
+ packageName = "set-blocking";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ };
+ "setprototypeof-1.1.1" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+ };
+ };
+ "signal-exit-3.0.3" = {
+ name = "signal-exit";
+ packageName = "signal-exit";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+ sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+ };
+ };
+ "simple-concat-1.0.1" = {
+ name = "simple-concat";
+ packageName = "simple-concat";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+ sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
+ };
+ };
+ "simple-get-3.1.0" = {
+ name = "simple-get";
+ packageName = "simple-get";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
+ sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+ };
+ };
+ "simple-swizzle-0.2.2" = {
+ name = "simple-swizzle";
+ packageName = "simple-swizzle";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+ sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+ };
+ };
+ "source-map-0.6.1" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+ sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+ };
+ };
+ "spex-3.2.0" = {
+ name = "spex";
+ packageName = "spex";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz";
+ sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==";
+ };
+ };
+ "split2-3.2.2" = {
+ name = "split2";
+ packageName = "split2";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+ sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
+ };
+ };
+ "sprintf-js-1.0.3" = {
+ name = "sprintf-js";
+ packageName = "sprintf-js";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ };
+ "stack-trace-0.0.10" = {
+ name = "stack-trace";
+ packageName = "stack-trace";
+ version = "0.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+ sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+ };
+ };
+ "statuses-1.5.0" = {
+ name = "statuses";
+ packageName = "statuses";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ };
+ "steno-0.4.4" = {
+ name = "steno";
+ packageName = "steno";
+ version = "0.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz";
+ sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
+ };
+ };
+ "string-width-1.0.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ };
+ "string_decoder-1.1.1" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+ };
+ };
+ "strip-ansi-3.0.1" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ };
+ "strip-json-comments-2.0.1" = {
+ name = "strip-json-comments";
+ packageName = "strip-json-comments";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ };
+ "supports-color-5.5.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+ sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+ };
+ };
+ "supports-color-6.1.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "6.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+ sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+ };
+ };
+ "supports-color-7.2.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "7.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+ sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+ };
+ };
+ "table-layout-1.0.1" = {
+ name = "table-layout";
+ packageName = "table-layout";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz";
+ sha512 = "dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==";
+ };
+ };
+ "tar-4.4.10" = {
+ name = "tar";
+ packageName = "tar";
+ version = "4.4.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz";
+ sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==";
+ };
+ };
+ "tar-fs-2.1.1" = {
+ name = "tar-fs";
+ packageName = "tar-fs";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz";
+ sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
+ };
+ };
+ "tar-stream-2.2.0" = {
+ name = "tar-stream";
+ packageName = "tar-stream";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+ sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
+ };
+ };
+ "tdigest-0.1.1" = {
+ name = "tdigest";
+ packageName = "tdigest";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz";
+ sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+ };
+ };
+ "text-hex-1.0.0" = {
+ name = "text-hex";
+ packageName = "text-hex";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
+ sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
+ };
+ };
+ "toidentifier-1.0.0" = {
+ name = "toidentifier";
+ packageName = "toidentifier";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+ };
+ };
+ "tough-cookie-4.0.0" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz";
+ sha512 = "tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==";
+ };
+ };
+ "triple-beam-1.3.0" = {
+ name = "triple-beam";
+ packageName = "triple-beam";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
+ sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
+ };
+ };
+ "tunnel-agent-0.6.0" = {
+ name = "tunnel-agent";
+ packageName = "tunnel-agent";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ };
+ "type-fest-0.8.1" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+ sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+ };
+ };
+ "type-is-1.6.18" = {
+ name = "type-is";
+ packageName = "type-is";
+ version = "1.6.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+ sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+ };
+ };
+ "typical-4.0.0" = {
+ name = "typical";
+ packageName = "typical";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz";
+ sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==";
+ };
+ };
+ "typical-5.2.0" = {
+ name = "typical";
+ packageName = "typical";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz";
+ sha512 = "dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==";
+ };
+ };
+ "uc.micro-1.0.6" = {
+ name = "uc.micro";
+ packageName = "uc.micro";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz";
+ sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
+ };
+ };
+ "unescape-1.0.1" = {
+ name = "unescape";
+ packageName = "unescape";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz";
+ sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==";
+ };
+ };
+ "universalify-0.1.2" = {
+ name = "universalify";
+ packageName = "universalify";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+ sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+ };
+ };
+ "unpipe-1.0.0" = {
+ name = "unpipe";
+ packageName = "unpipe";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ };
+ "util-deprecate-1.0.2" = {
+ name = "util-deprecate";
+ packageName = "util-deprecate";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ };
+ "utils-merge-1.0.1" = {
+ name = "utils-merge";
+ packageName = "utils-merge";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ };
+ "uuid-3.4.0" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+ sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+ };
+ };
+ "vary-1.1.2" = {
+ name = "vary";
+ packageName = "vary";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ };
+ "websocket-driver-0.7.4" = {
+ name = "websocket-driver";
+ packageName = "websocket-driver";
+ version = "0.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz";
+ sha512 = "b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==";
+ };
+ };
+ "websocket-extensions-0.1.4" = {
+ name = "websocket-extensions";
+ packageName = "websocket-extensions";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+ sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
+ };
+ };
+ "which-pm-runs-1.0.0" = {
+ name = "which-pm-runs";
+ packageName = "which-pm-runs";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+ sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
+ };
+ };
+ "wide-align-1.1.3" = {
+ name = "wide-align";
+ packageName = "wide-align";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+ sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+ };
+ };
+ "winston-3.3.3" = {
+ name = "winston";
+ packageName = "winston";
+ version = "3.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+ sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
+ };
+ };
+ "winston-compat-0.1.5" = {
+ name = "winston-compat";
+ packageName = "winston-compat";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz";
+ sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==";
+ };
+ };
+ "winston-daily-rotate-file-3.10.0" = {
+ name = "winston-daily-rotate-file";
+ packageName = "winston-daily-rotate-file";
+ version = "3.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz";
+ sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==";
+ };
+ };
+ "winston-transport-4.4.0" = {
+ name = "winston-transport";
+ packageName = "winston-transport";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+ sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+ };
+ };
+ "wordwrapjs-4.0.0" = {
+ name = "wordwrapjs";
+ packageName = "wordwrapjs";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz";
+ sha512 = "Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==";
+ };
+ };
+ "wrappy-1.0.2" = {
+ name = "wrappy";
+ packageName = "wrappy";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ };
+ "xtend-4.0.2" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+ sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+ };
+ };
+ "yallist-3.1.1" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+ sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+ };
+ };
+ "yallist-4.0.0" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+ sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
+ };
+ };
+ };
+ args = {
+ name = "mx-puppet-groupme";
+ packageName = "mx-puppet-groupme";
+ version = "2";
+ src = ./.;
+ dependencies = [
+ sources."@dabh/diagnostics-2.0.2"
+ sources."@sindresorhus/is-4.0.0"
+ sources."@sorunome/matrix-bot-sdk-0.5.8"
+ sources."@szmarczak/http-timer-4.0.5"
+ sources."@types/body-parser-1.19.0"
+ sources."@types/cacheable-request-6.0.1"
+ sources."@types/connect-3.4.34"
+ sources."@types/express-4.17.11"
+ sources."@types/express-serve-static-core-4.17.18"
+ sources."@types/http-cache-semantics-4.0.0"
+ sources."@types/keyv-3.1.1"
+ sources."@types/mime-1.3.2"
+ sources."@types/node-14.14.20"
+ sources."@types/qs-6.9.5"
+ sources."@types/range-parser-1.2.3"
+ sources."@types/responselike-1.0.0"
+ sources."@types/serve-static-1.13.9"
+ sources."abbrev-1.1.1"
+ sources."accepts-1.3.7"
+ sources."ansi-regex-2.1.1"
+ sources."ansi-styles-4.3.0"
+ sources."aproba-1.2.0"
+ sources."are-we-there-yet-1.1.5"
+ sources."argparse-1.0.10"
+ sources."array-back-3.1.0"
+ sources."array-flatten-1.1.1"
+ sources."asap-2.0.6"
+ sources."assert-options-0.7.0"
+ sources."async-3.2.0"
+ sources."asynckit-0.4.0"
+ sources."axios-0.21.1"
+ sources."balanced-match-1.0.0"
+ sources."base64-js-1.5.1"
+ sources."basic-auth-2.0.1"
+ sources."better-sqlite3-6.0.1"
+ sources."bindings-1.5.0"
+ sources."bintrees-1.0.1"
+ (sources."bl-4.0.3" // {
+ dependencies = [
+ sources."inherits-2.0.4"
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."blurhash-1.1.3"
+ sources."body-parser-1.19.0"
+ sources."brace-expansion-1.1.11"
+ sources."buffer-5.7.1"
+ sources."buffer-writer-2.0.0"
+ sources."bytes-3.1.0"
+ sources."cacheable-lookup-5.0.4"
+ sources."cacheable-request-7.0.1"
+ sources."canvas-2.6.1"
+ sources."chalk-4.1.0"
+ sources."chownr-1.1.4"
+ sources."clone-response-1.0.2"
+ sources."code-point-at-1.1.0"
+ (sources."color-3.0.0" // {
+ dependencies = [
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ ];
+ })
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."color-string-1.5.4"
+ sources."colors-1.4.0"
+ sources."colorspace-1.1.2"
+ sources."combined-stream-1.0.8"
+ sources."command-line-args-5.1.1"
+ (sources."command-line-usage-6.1.1" // {
+ dependencies = [
+ sources."ansi-styles-3.2.1"
+ sources."array-back-4.0.1"
+ sources."chalk-2.4.2"
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ sources."has-flag-3.0.0"
+ sources."supports-color-5.5.0"
+ sources."typical-5.2.0"
+ ];
+ })
+ sources."concat-map-0.0.1"
+ sources."console-control-strings-1.1.0"
+ sources."content-disposition-0.5.3"
+ sources."content-type-1.0.4"
+ sources."cookie-0.4.0"
+ sources."cookie-signature-1.0.6"
+ sources."core-util-is-1.0.2"
+ sources."csprng-0.1.2"
+ sources."cycle-1.0.3"
+ sources."debug-2.6.9"
+ (sources."decompress-response-6.0.0" // {
+ dependencies = [
+ sources."mimic-response-3.1.0"
+ ];
+ })
+ sources."deep-extend-0.6.0"
+ sources."defer-to-connect-2.0.0"
+ sources."delayed-stream-1.0.0"
+ sources."delegates-1.0.0"
+ sources."depd-1.1.2"
+ sources."destroy-1.0.4"
+ sources."detect-libc-1.0.3"
+ (sources."dom-serializer-1.2.0" // {
+ dependencies = [
+ sources."domhandler-4.0.0"
+ ];
+ })
+ sources."domelementtype-2.1.0"
+ sources."domhandler-3.3.0"
+ (sources."domutils-2.4.4" // {
+ dependencies = [
+ sources."domhandler-4.0.0"
+ ];
+ })
+ sources."ee-first-1.1.1"
+ sources."enabled-2.0.0"
+ sources."encodeurl-1.0.2"
+ sources."end-of-stream-1.4.4"
+ sources."entities-2.1.0"
+ sources."escape-html-1.0.3"
+ sources."escape-string-regexp-1.0.5"
+ sources."esprima-4.0.1"
+ sources."etag-1.8.1"
+ sources."events-3.2.0"
+ sources."expand-template-2.0.3"
+ sources."expire-set-1.0.0"
+ sources."express-4.17.1"
+ sources."extend-shallow-2.0.1"
+ sources."fast-safe-stringify-2.0.7"
+ sources."faye-1.4.0"
+ sources."faye-websocket-0.11.3"
+ sources."fecha-4.2.0"
+ sources."file-stream-rotator-0.4.1"
+ sources."file-type-12.4.2"
+ sources."file-uri-to-path-1.0.0"
+ sources."finalhandler-1.1.2"
+ sources."find-replace-3.0.0"
+ sources."fn.name-1.1.0"
+ sources."follow-redirects-1.13.1"
+ sources."form-data-3.0.0"
+ sources."forwarded-0.1.2"
+ sources."fresh-0.5.2"
+ sources."fromentries-1.3.2"
+ sources."fs-constants-1.0.0"
+ sources."fs-minipass-1.2.7"
+ sources."fs.realpath-1.0.0"
+ sources."gauge-2.7.4"
+ sources."get-stream-5.2.0"
+ sources."github-from-package-0.0.0"
+ sources."glob-7.1.6"
+ sources."glob-to-regexp-0.4.1"
+ sources."got-11.8.1"
+ sources."graceful-fs-4.2.4"
+ sources."has-flag-4.0.0"
+ sources."has-unicode-2.0.1"
+ sources."hash.js-1.1.7"
+ sources."hasha-5.2.2"
+ sources."htmlencode-0.0.4"
+ sources."htmlparser2-4.1.0"
+ sources."http-cache-semantics-4.1.0"
+ sources."http-errors-1.7.2"
+ sources."http-parser-js-0.5.2"
+ sources."http2-wrapper-1.0.0-beta.5.2"
+ sources."iconv-lite-0.4.24"
+ sources."ieee754-1.2.1"
+ sources."ignore-walk-3.0.3"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.3"
+ sources."ini-1.3.8"
+ sources."integer-3.0.1"
+ sources."ipaddr.js-1.9.1"
+ sources."is-arrayish-0.3.2"
+ sources."is-extendable-0.1.1"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."is-promise-2.2.2"
+ sources."is-stream-2.0.0"
+ sources."isarray-1.0.0"
+ sources."js-yaml-3.14.1"
+ sources."json-buffer-3.0.1"
+ sources."keyv-4.0.3"
+ sources."kuler-2.0.0"
+ sources."linkify-it-2.2.0"
+ sources."lodash-4.17.20"
+ sources."lodash.camelcase-4.3.0"
+ (sources."logform-2.2.0" // {
+ dependencies = [
+ sources."ms-2.1.3"
+ ];
+ })
+ sources."lowdb-1.0.0"
+ sources."lowercase-keys-2.0.0"
+ sources."lru-cache-6.0.0"
+ (sources."markdown-it-9.1.0" // {
+ dependencies = [
+ sources."entities-1.1.2"
+ ];
+ })
+ sources."mdurl-1.0.1"
+ sources."media-typer-0.3.0"
+ sources."merge-descriptors-1.0.1"
+ sources."methods-1.1.2"
+ sources."mime-1.6.0"
+ sources."mime-db-1.44.0"
+ sources."mime-types-2.1.27"
+ sources."mimic-response-1.0.1"
+ sources."minimalistic-assert-1.0.1"
+ sources."minimatch-3.0.4"
+ sources."minimist-1.2.5"
+ (sources."minipass-2.9.0" // {
+ dependencies = [
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."minizlib-1.3.3"
+ sources."mkdirp-1.0.4"
+ sources."mkdirp-classic-0.5.3"
+ sources."moment-2.29.1"
+ (sources."morgan-1.10.0" // {
+ dependencies = [
+ sources."depd-2.0.0"
+ ];
+ })
+ sources."ms-2.0.0"
+ sources."mx-puppet-bridge-0.1.4"
+ sources."nan-2.14.2"
+ sources."napi-build-utils-1.0.2"
+ (sources."needle-2.6.0" // {
+ dependencies = [
+ sources."debug-3.2.7"
+ sources."ms-2.1.3"
+ ];
+ })
+ sources."negotiator-0.6.2"
+ sources."node-abi-2.19.3"
+ (sources."node-pre-gyp-0.11.0" // {
+ dependencies = [
+ sources."mkdirp-0.5.5"
+ ];
+ })
+ sources."noop-logger-0.1.1"
+ sources."nopt-4.0.3"
+ sources."normalize-url-4.5.0"
+ sources."npm-bundled-1.1.1"
+ sources."npm-normalize-package-bin-1.0.1"
+ sources."npm-packlist-1.4.8"
+ sources."npmlog-4.1.2"
+ sources."number-is-nan-1.0.1"
+ sources."object-assign-4.1.1"
+ sources."object-hash-1.3.1"
+ sources."on-finished-2.3.0"
+ sources."on-headers-1.0.2"
+ sources."once-1.4.0"
+ sources."one-time-1.0.0"
+ sources."os-homedir-1.0.2"
+ sources."os-tmpdir-1.0.2"
+ sources."osenv-0.1.5"
+ sources."p-cancelable-2.0.0"
+ sources."packet-reader-1.0.0"
+ sources."parse-srcset-1.0.2"
+ sources."parseurl-1.3.3"
+ sources."path-is-absolute-1.0.1"
+ sources."path-to-regexp-0.1.7"
+ sources."pg-8.5.1"
+ sources."pg-connection-string-2.4.0"
+ sources."pg-int8-1.0.1"
+ sources."pg-minify-1.6.2"
+ sources."pg-pool-3.2.2"
+ sources."pg-promise-10.9.1"
+ sources."pg-protocol-1.4.0"
+ sources."pg-types-2.2.0"
+ sources."pgpass-1.0.4"
+ sources."pify-3.0.0"
+ (sources."postcss-7.0.35" // {
+ dependencies = [
+ sources."ansi-styles-3.2.1"
+ (sources."chalk-2.4.2" // {
+ dependencies = [
+ sources."supports-color-5.5.0"
+ ];
+ })
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ sources."has-flag-3.0.0"
+ sources."supports-color-6.1.0"
+ ];
+ })
+ sources."postgres-array-2.0.0"
+ sources."postgres-bytea-1.0.0"
+ sources."postgres-date-1.0.7"
+ sources."postgres-interval-1.2.0"
+ sources."prebuild-install-5.3.6"
+ sources."process-nextick-args-2.0.1"
+ sources."prom-client-13.0.0"
+ sources."proxy-addr-2.0.6"
+ sources."psl-1.8.0"
+ sources."pump-3.0.0"
+ sources."punycode-2.1.1"
+ sources."qs-6.7.0"
+ sources."quick-lru-5.1.1"
+ sources."range-parser-1.2.1"
+ sources."raw-body-2.4.0"
+ sources."rc-1.2.8"
+ sources."readable-stream-2.3.7"
+ sources."reduce-flatten-2.0.0"
+ sources."resolve-alpn-1.0.0"
+ sources."responselike-2.0.0"
+ sources."rimraf-2.7.1"
+ sources."safe-buffer-5.1.2"
+ sources."safer-buffer-2.1.2"
+ sources."sanitize-html-1.27.5"
+ sources."sax-1.2.4"
+ sources."semver-5.7.1"
+ (sources."send-0.17.1" // {
+ dependencies = [
+ sources."ms-2.1.1"
+ ];
+ })
+ sources."sequin-0.1.1"
+ sources."serve-static-1.14.1"
+ sources."set-blocking-2.0.0"
+ sources."setprototypeof-1.1.1"
+ sources."signal-exit-3.0.3"
+ sources."simple-concat-1.0.1"
+ (sources."simple-get-3.1.0" // {
+ dependencies = [
+ sources."decompress-response-4.2.1"
+ sources."mimic-response-2.1.0"
+ ];
+ })
+ sources."simple-swizzle-0.2.2"
+ sources."source-map-0.6.1"
+ sources."spex-3.2.0"
+ (sources."split2-3.2.2" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."sprintf-js-1.0.3"
+ sources."stack-trace-0.0.10"
+ sources."statuses-1.5.0"
+ sources."steno-0.4.4"
+ sources."string-width-1.0.2"
+ sources."string_decoder-1.1.1"
+ sources."strip-ansi-3.0.1"
+ sources."strip-json-comments-2.0.1"
+ sources."supports-color-7.2.0"
+ (sources."table-layout-1.0.1" // {
+ dependencies = [
+ sources."array-back-4.0.1"
+ sources."typical-5.2.0"
+ ];
+ })
+ (sources."tar-4.4.10" // {
+ dependencies = [
+ sources."mkdirp-0.5.5"
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."tar-fs-2.1.1"
+ (sources."tar-stream-2.2.0" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."tdigest-0.1.1"
+ sources."text-hex-1.0.0"
+ sources."toidentifier-1.0.0"
+ sources."tough-cookie-4.0.0"
+ sources."triple-beam-1.3.0"
+ sources."tunnel-agent-0.6.0"
+ sources."type-fest-0.8.1"
+ sources."type-is-1.6.18"
+ sources."typical-4.0.0"
+ sources."uc.micro-1.0.6"
+ sources."unescape-1.0.1"
+ sources."universalify-0.1.2"
+ sources."unpipe-1.0.0"
+ sources."util-deprecate-1.0.2"
+ sources."utils-merge-1.0.1"
+ sources."uuid-3.4.0"
+ sources."vary-1.1.2"
+ sources."websocket-driver-0.7.4"
+ sources."websocket-extensions-0.1.4"
+ sources."which-pm-runs-1.0.0"
+ sources."wide-align-1.1.3"
+ (sources."winston-3.3.3" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ (sources."winston-compat-0.1.5" // {
+ dependencies = [
+ sources."fecha-2.3.3"
+ sources."logform-1.10.0"
+ sources."ms-2.1.3"
+ ];
+ })
+ (sources."winston-daily-rotate-file-3.10.0" // {
+ dependencies = [
+ sources."semver-6.3.0"
+ ];
+ })
+ sources."winston-transport-4.4.0"
+ (sources."wordwrapjs-4.0.0" // {
+ dependencies = [
+ sources."typical-5.2.0"
+ ];
+ })
+ sources."wrappy-1.0.2"
+ sources."xtend-4.0.2"
+ sources."yallist-4.0.0"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ };
+ production = true;
+ bypassCache = true;
+ reconstructLock = false;
+ };
+in
+{
+ args = args;
+ sources = sources;
+ tarball = nodeEnv.buildNodeSourceDist args;
+ package = nodeEnv.buildNodePackage args;
+ shell = nodeEnv.buildNodeShell args;
+ nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+ src = stdenv.mkDerivation {
+ name = args.name + "-package-json";
+ src = nix-gitignore.gitignoreSourcePure [
+ "*"
+ "!package.json"
+ "!package-lock.json"
+ ] args.src;
+ dontBuild = true;
+ installPhase = "mkdir -p $out; cp -r ./* $out;";
+ };
+ });
+}
diff --git a/pkgs/mx-puppet-groupme/package-lock.json b/pkgs/mx-puppet-groupme/package-lock.json
new file mode 100644
index 0000000..2f1e2b7
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/package-lock.json
@@ -0,0 +1,2527 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "@dabh/diagnostics": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
+ "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==",
+ "requires": {
+ "colorspace": "1.1.x",
+ "enabled": "2.0.x",
+ "kuler": "^2.0.0"
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz",
+ "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ=="
+ },
+ "@sorunome/matrix-bot-sdk": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.8.tgz",
+ "integrity": "sha512-Uifu8saeD1fPrj6F8ZdYiCeADCluySbdi/nVKJy0NQOi6cA5p68ZaeydlCyl+YuFJoCjsDWBe+Szq9CgFd/SpA==",
+ "requires": {
+ "@types/express": "^4.17.7",
+ "chalk": "^4.1.0",
+ "express": "^4.17.1",
+ "glob-to-regexp": "^0.4.1",
+ "got": "^11.6.0",
+ "hash.js": "^1.1.7",
+ "htmlencode": "^0.0.4",
+ "lowdb": "^1.0.0",
+ "lru-cache": "^6.0.0",
+ "mkdirp": "^1.0.4",
+ "morgan": "^1.10.0",
+ "sanitize-html": "^1.27.2"
+ }
+ },
+ "@szmarczak/http-timer": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz",
+ "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==",
+ "requires": {
+ "defer-to-connect": "^2.0.0"
+ }
+ },
+ "@types/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/cacheable-request": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz",
+ "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==",
+ "requires": {
+ "@types/http-cache-semantics": "*",
+ "@types/keyv": "*",
+ "@types/node": "*",
+ "@types/responselike": "*"
+ }
+ },
+ "@types/connect": {
+ "version": "3.4.34",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
+ "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/express": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz",
+ "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==",
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.18",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz",
+ "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==",
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "@types/http-cache-semantics": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz",
+ "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="
+ },
+ "@types/keyv": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz",
+ "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/mime": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
+ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
+ },
+ "@types/node": {
+ "version": "14.14.20",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz",
+ "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A=="
+ },
+ "@types/qs": {
+ "version": "6.9.5",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz",
+ "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="
+ },
+ "@types/range-parser": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
+ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
+ },
+ "@types/responselike": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
+ "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/serve-static": {
+ "version": "1.13.9",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz",
+ "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
+ "requires": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "array-back": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
+ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "assert-options": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz",
+ "integrity": "sha512-7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ=="
+ },
+ "async": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
+ "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "axios": {
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "requires": {
+ "follow-redirects": "^1.10.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "better-sqlite3": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz",
+ "integrity": "sha512-4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ==",
+ "requires": {
+ "bindings": "^1.5.0",
+ "integer": "^3.0.1",
+ "prebuild-install": "^5.3.3",
+ "tar": "4.4.10"
+ }
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "bintrees": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz",
+ "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ="
+ },
+ "bl": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
+ "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "blurhash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz",
+ "integrity": "sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw=="
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-writer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
+ "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+ },
+ "cacheable-lookup": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA=="
+ },
+ "cacheable-request": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz",
+ "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==",
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^2.0.0"
+ }
+ },
+ "canvas": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz",
+ "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==",
+ "requires": {
+ "nan": "^2.14.0",
+ "node-pre-gyp": "^0.11.0",
+ "simple-get": "^3.0.3"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "color": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
+ "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ }
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "color-string": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz",
+ "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
+ },
+ "colorspace": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
+ "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
+ "requires": {
+ "color": "3.0.x",
+ "text-hex": "1.0.x"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "command-line-args": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz",
+ "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==",
+ "requires": {
+ "array-back": "^3.0.1",
+ "find-replace": "^3.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "typical": "^4.0.0"
+ }
+ },
+ "command-line-usage": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz",
+ "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==",
+ "requires": {
+ "array-back": "^4.0.1",
+ "chalk": "^2.4.2",
+ "table-layout": "^1.0.1",
+ "typical": "^5.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "array-back": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz",
+ "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg=="
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "csprng": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/csprng/-/csprng-0.1.2.tgz",
+ "integrity": "sha1-S8aPEvo2jSUqWYQcusqXSxirReI=",
+ "requires": {
+ "sequin": "*"
+ }
+ },
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "requires": {
+ "mimic-response": "^3.1.0"
+ },
+ "dependencies": {
+ "mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+ }
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "defer-to-connect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz",
+ "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg=="
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+ },
+ "dom-serializer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
+ "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domhandler": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
+ "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
+ "requires": {
+ "domelementtype": "^2.1.0"
+ }
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
+ "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
+ },
+ "domhandler": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz",
+ "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==",
+ "requires": {
+ "domelementtype": "^2.0.1"
+ }
+ },
+ "domutils": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
+ "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0"
+ },
+ "dependencies": {
+ "domhandler": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
+ "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
+ "requires": {
+ "domelementtype": "^2.1.0"
+ }
+ }
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "enabled": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "entities": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
+ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "events": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+ "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="
+ },
+ "expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
+ },
+ "expire-set": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz",
+ "integrity": "sha512-wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg=="
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "fast-safe-stringify": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
+ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
+ },
+ "faye": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/faye/-/faye-1.4.0.tgz",
+ "integrity": "sha512-kRrIg4be8VNYhycS2PY//hpBJSzZPr/DBbcy9VWelhZMW3KhyLkQR0HL0k0MNpmVoNFF4EdfMFkNAWjTP65g6w==",
+ "requires": {
+ "asap": "*",
+ "csprng": "*",
+ "faye-websocket": ">=0.9.1",
+ "safe-buffer": "*",
+ "tough-cookie": "*",
+ "tunnel-agent": "*"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+ "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fecha": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz",
+ "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="
+ },
+ "file-stream-rotator": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz",
+ "integrity": "sha512-W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==",
+ "requires": {
+ "moment": "^2.11.2"
+ }
+ },
+ "file-type": {
+ "version": "12.4.2",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
+ "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg=="
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "find-replace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
+ "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
+ "requires": {
+ "array-back": "^3.0.1"
+ }
+ },
+ "fn.name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
+ },
+ "follow-redirects": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
+ "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
+ },
+ "form-data": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
+ "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fromentries": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg=="
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
+ },
+ "got": {
+ "version": "11.8.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.1.tgz",
+ "integrity": "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==",
+ "requires": {
+ "@sindresorhus/is": "^4.0.0",
+ "@szmarczak/http-timer": "^4.0.5",
+ "@types/cacheable-request": "^6.0.1",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^5.0.3",
+ "cacheable-request": "^7.0.1",
+ "decompress-response": "^6.0.0",
+ "http2-wrapper": "^1.0.0-beta.5.2",
+ "lowercase-keys": "^2.0.0",
+ "p-cancelable": "^2.0.0",
+ "responselike": "^2.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hasha": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
+ "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
+ "requires": {
+ "is-stream": "^2.0.0",
+ "type-fest": "^0.8.0"
+ }
+ },
+ "htmlencode": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz",
+ "integrity": "sha1-9+LWr74YqHp45jujMI51N2Z0Dj8="
+ },
+ "htmlparser2": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz",
+ "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^3.0.0",
+ "domutils": "^2.0.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz",
+ "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ=="
+ },
+ "http2-wrapper": {
+ "version": "1.0.0-beta.5.2",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz",
+ "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==",
+ "requires": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "ignore-walk": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "integer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz",
+ "integrity": "sha512-OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw==",
+ "requires": {
+ "bindings": "^1.5.0",
+ "prebuild-install": "^5.3.3"
+ }
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
+ },
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "keyv": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
+ "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "kuler": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
+ },
+ "linkify-it": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
+ "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
+ "requires": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
+ },
+ "logform": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz",
+ "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==",
+ "requires": {
+ "colors": "^1.2.1",
+ "fast-safe-stringify": "^2.0.4",
+ "fecha": "^4.2.0",
+ "ms": "^2.1.1",
+ "triple-beam": "^1.3.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "lowdb": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz",
+ "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==",
+ "requires": {
+ "graceful-fs": "^4.1.3",
+ "is-promise": "^2.1.0",
+ "lodash": "4",
+ "pify": "^3.0.0",
+ "steno": "^0.4.1"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "markdown-it": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz",
+ "integrity": "sha512-xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "entities": "~1.1.1",
+ "linkify-it": "^2.0.0",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+ }
+ }
+ },
+ "mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+ "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+ },
+ "mime-types": {
+ "version": "2.1.27",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+ "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+ "requires": {
+ "mime-db": "1.44.0"
+ }
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ }
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "requires": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+ },
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
+ "moment": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+ },
+ "morgan": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
+ "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
+ "requires": {
+ "basic-auth": "~2.0.1",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-finished": "~2.3.0",
+ "on-headers": "~1.0.2"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mx-puppet-bridge": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.4.tgz",
+ "integrity": "sha512-Jg4hszVqQv1n35Mvb5HcfK4VafjB0LaCEay8ylgiu/M2oIPE0fadFNdQpkwssXmShDzSeth/xga3HgP8G6O5Fg==",
+ "requires": {
+ "@sorunome/matrix-bot-sdk": "^0.5.8",
+ "better-sqlite3": "^6.0.1",
+ "blurhash": "^1.1.3",
+ "canvas": "^2.6.1",
+ "escape-html": "^1.0.3",
+ "events": "^3.1.0",
+ "expire-set": "^1.0.0",
+ "file-type": "^12.4.2",
+ "got": "^11.6.0",
+ "hasha": "^5.2.0",
+ "js-yaml": "^3.13.1",
+ "markdown-it": "^9.1.0",
+ "pg-promise": "^10.5.0",
+ "prom-client": "^13.0.0",
+ "unescape": "^1.0.1",
+ "uuid": "^3.4.0",
+ "winston": "^3.2.1",
+ "winston-daily-rotate-file": "^3.10.0"
+ }
+ },
+ "nan": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
+ },
+ "napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ },
+ "needle": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz",
+ "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==",
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "node-abi": {
+ "version": "2.19.3",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz",
+ "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==",
+ "requires": {
+ "semver": "^5.4.1"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz",
+ "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==",
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ }
+ }
+ },
+ "noop-logger": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
+ },
+ "nopt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
+ },
+ "npm-bundled": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+ },
+ "npm-packlist": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
+ "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-hash": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
+ "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "one-time": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
+ "requires": {
+ "fn.name": "1.x.x"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-cancelable": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz",
+ "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg=="
+ },
+ "packet-reader": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
+ "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
+ },
+ "parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE="
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "pg": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz",
+ "integrity": "sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==",
+ "requires": {
+ "buffer-writer": "2.0.0",
+ "packet-reader": "1.0.0",
+ "pg-connection-string": "^2.4.0",
+ "pg-pool": "^3.2.2",
+ "pg-protocol": "^1.4.0",
+ "pg-types": "^2.1.0",
+ "pgpass": "1.x"
+ }
+ },
+ "pg-connection-string": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz",
+ "integrity": "sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ=="
+ },
+ "pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
+ },
+ "pg-minify": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz",
+ "integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg=="
+ },
+ "pg-pool": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz",
+ "integrity": "sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA=="
+ },
+ "pg-promise": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz",
+ "integrity": "sha512-Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A==",
+ "requires": {
+ "assert-options": "0.7.0",
+ "pg": "8.5.1",
+ "pg-minify": "1.6.2",
+ "spex": "3.2.0"
+ }
+ },
+ "pg-protocol": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz",
+ "integrity": "sha512-El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA=="
+ },
+ "pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "requires": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ }
+ },
+ "pgpass": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
+ "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
+ "requires": {
+ "split2": "^3.1.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ },
+ "postcss": {
+ "version": "7.0.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+ "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
+ },
+ "postgres-bytea": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
+ "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
+ },
+ "postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
+ },
+ "postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "requires": {
+ "xtend": "^4.0.0"
+ }
+ },
+ "prebuild-install": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
+ "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.7.0",
+ "noop-logger": "^0.1.1",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0",
+ "which-pm-runs": "^1.0.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "prom-client": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz",
+ "integrity": "sha512-M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A==",
+ "requires": {
+ "tdigest": "^0.1.1"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ },
+ "quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "reduce-flatten": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
+ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w=="
+ },
+ "resolve-alpn": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz",
+ "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA=="
+ },
+ "responselike": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
+ "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==",
+ "requires": {
+ "lowercase-keys": "^2.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sanitize-html": {
+ "version": "1.27.5",
+ "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz",
+ "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==",
+ "requires": {
+ "htmlparser2": "^4.1.0",
+ "lodash": "^4.17.15",
+ "parse-srcset": "^1.0.2",
+ "postcss": "^7.0.27"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ }
+ }
+ },
+ "sequin": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/sequin/-/sequin-0.1.1.tgz",
+ "integrity": "sha1-XC04nWajg3NOqvvEXt6ywcsb5wE="
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+ },
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+ },
+ "simple-get": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
+ "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
+ "requires": {
+ "decompress-response": "^4.2.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ },
+ "dependencies": {
+ "decompress-response": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+ "requires": {
+ "mimic-response": "^2.0.0"
+ }
+ },
+ "mimic-response": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
+ }
+ }
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "spex": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz",
+ "integrity": "sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg=="
+ },
+ "split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "requires": {
+ "readable-stream": "^3.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ },
+ "steno": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz",
+ "integrity": "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=",
+ "requires": {
+ "graceful-fs": "^4.1.3"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "table-layout": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz",
+ "integrity": "sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==",
+ "requires": {
+ "array-back": "^4.0.1",
+ "deep-extend": "~0.6.0",
+ "typical": "^5.2.0",
+ "wordwrapjs": "^4.0.0"
+ },
+ "dependencies": {
+ "array-back": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz",
+ "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg=="
+ },
+ "typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="
+ }
+ }
+ },
+ "tar": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
+ "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.5",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
+ }
+ },
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "tdigest": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz",
+ "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=",
+ "requires": {
+ "bintrees": "1.0.1"
+ }
+ },
+ "text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+ },
+ "tough-cookie": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
+ "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
+ "requires": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.1.2"
+ }
+ },
+ "triple-beam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typescript": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz",
+ "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==",
+ "dev": true
+ },
+ "typical": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
+ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="
+ },
+ "uc.micro": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+ },
+ "unescape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz",
+ "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==",
+ "requires": {
+ "extend-shallow": "^2.0.1"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "requires": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
+ },
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "winston": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
+ "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
+ "requires": {
+ "@dabh/diagnostics": "^2.0.2",
+ "async": "^3.1.0",
+ "is-stream": "^2.0.0",
+ "logform": "^2.2.0",
+ "one-time": "^1.0.0",
+ "readable-stream": "^3.4.0",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "winston-compat": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz",
+ "integrity": "sha512-EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==",
+ "requires": {
+ "cycle": "~1.0.3",
+ "logform": "^1.6.0",
+ "triple-beam": "^1.2.0"
+ },
+ "dependencies": {
+ "fecha": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
+ "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
+ },
+ "logform": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz",
+ "integrity": "sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==",
+ "requires": {
+ "colors": "^1.2.1",
+ "fast-safe-stringify": "^2.0.4",
+ "fecha": "^2.3.3",
+ "ms": "^2.1.1",
+ "triple-beam": "^1.2.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "winston-daily-rotate-file": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz",
+ "integrity": "sha512-KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==",
+ "requires": {
+ "file-stream-rotator": "^0.4.1",
+ "object-hash": "^1.3.0",
+ "semver": "^6.2.0",
+ "triple-beam": "^1.3.0",
+ "winston-compat": "^0.1.4",
+ "winston-transport": "^4.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "winston-transport": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz",
+ "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==",
+ "requires": {
+ "readable-stream": "^2.3.7",
+ "triple-beam": "^1.2.0"
+ }
+ },
+ "wordwrapjs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz",
+ "integrity": "sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==",
+ "requires": {
+ "reduce-flatten": "^2.0.0",
+ "typical": "^5.0.0"
+ },
+ "dependencies": {
+ "typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+}
diff --git a/pkgs/mx-puppet-groupme/package.json b/pkgs/mx-puppet-groupme/package.json
new file mode 100644
index 0000000..9feee46
--- /dev/null
+++ b/pkgs/mx-puppet-groupme/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "mx-puppet-groupme",
+ "version": "2",
+ "main": "build/index.js",
+ "scripts": {
+ "build": "tsc",
+ "start": "npm run build && node build/index.js",
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "dependencies": {
+ "axios": "^0.21.0",
+ "command-line-args": "^5.1.1",
+ "command-line-usage": "^6.1.1",
+ "events": "^3.2.0",
+ "faye": "^1.4.0",
+ "form-data": "^3.0.0",
+ "fromentries": "^1.3.2",
+ "mx-puppet-bridge": "^0.1.4"
+ },
+ "devDependencies": {
+ "@types/node": "^14.14.20",
+ "typescript": "^4.1.3"
+ }
+}
diff --git a/pkgs/mx-puppet-slack/default.nix b/pkgs/mx-puppet-slack/default.nix
new file mode 100644
index 0000000..ddc4ef2
--- /dev/null
+++ b/pkgs/mx-puppet-slack/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchFromGitHub
+, pkgs
+, lib
+, nodejs
+, nodePackages
+, pkg-config
+, libjpeg
+, pixman
+, cairo
+, pango
+}:
+
+let
+ # No official version ever released
+ src = fetchFromGitHub {
+ owner = "Sorunome";
+ repo = pname;
+ rev = "691e53d2d703bd169e1f23a8d8dff3f008d8c4ef";
+ sha256 = "sha256-cjRmlVCk6jX+CCQiAc/dcormPLe/BafBJeRHCv6Mu1k=";
+ };
+
+ myNodePackages = import ./node-composition.nix {
+ inherit pkgs nodejs;
+ inherit (stdenv.hostPlatform) system;
+ };
+
+ pname = "mx-puppet-slack";
+
+in
+myNodePackages.package.override {
+
+ inherit src;
+
+ nativeBuildInputs = [ nodePackages.node-pre-gyp pkg-config ];
+ buildInputs = [ libjpeg pixman cairo pango ];
+
+ postInstall = ''
+ # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems
+ patchShebangs --build "$out/lib/node_modules/${pname}/node_modules/"
+ # compile Typescript sources
+ npm run build
+ # Make an executable to run the server
+ mkdir -p $out/bin
+ cat <<EOF > $out/bin/${pname}
+ #!/bin/sh
+ exec ${nodejs}/bin/node $out/lib/node_modules/${pname}/build/index.js "\$@"
+ EOF
+ chmod +x $out/bin/${pname}
+ '';
+
+ meta = with lib; {
+ description = "A slack puppeting bridge for matrix";
+ license = licenses.asl20;
+ homepage = "https://github.com/Sorunome/mx-puppet-slack";
+ maintainers = with maintainers; [ pacman99 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/mx-puppet-slack/generate.sh b/pkgs/mx-puppet-slack/generate.sh
new file mode 100755
index 0000000..d36f515
--- /dev/null
+++ b/pkgs/mx-puppet-slack/generate.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+# No official release
+rev=691e53d2d703bd169e1f23a8d8dff3f008d8c4ef
+u=https://raw.githubusercontent.com/Sorunome/mx-puppet-slack/$rev
+# Download package.json and package-lock.json
+curl -O $u/package.json
+curl -O $u/package-lock.json
+
+node2nix \
+ --nodejs-12 \
+ --node-env node-env.nix \
+ --input package.json \
+ --lock package-lock.json \
+ --output node-packages.nix \
+ --composition node-composition.nix
+
+sed -i 's|<nixpkgs>|../../..|' node-composition.nix
+
+rm -f package.json package-lock.json
diff --git a/pkgs/mx-puppet-slack/node-composition.nix b/pkgs/mx-puppet-slack/node-composition.nix
new file mode 100644
index 0000000..16fd035
--- /dev/null
+++ b/pkgs/mx-puppet-slack/node-composition.nix
@@ -0,0 +1,20 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{ pkgs ? import ../../.. {
+ inherit system;
+ }
+, system ? builtins.currentSystem
+, nodejs ? pkgs."nodejs-12_x"
+}:
+
+let
+ nodeEnv = import ./node-env.nix {
+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+ inherit pkgs nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+in
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+ inherit nodeEnv;
+}
diff --git a/pkgs/mx-puppet-slack/node-env.nix b/pkgs/mx-puppet-slack/node-env.nix
new file mode 100644
index 0000000..576ce15
--- /dev/null
+++ b/pkgs/mx-puppet-slack/node-env.nix
@@ -0,0 +1,578 @@
+# This file originates from node2nix
+
+{ lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile }:
+
+let
+ # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
+ utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
+
+ python = if nodejs ? python then nodejs.python else python2;
+
+ # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+ tarWrapper = runCommand "tarWrapper" { } ''
+ mkdir -p $out/bin
+
+ cat > $out/bin/tar <<EOF
+ #! ${stdenv.shell} -e
+ $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+ EOF
+
+ chmod +x $out/bin/tar
+ '';
+
+ # Function that generates a TGZ file from a NPM project
+ buildNodeSourceDist =
+ { name, version, src, ... }:
+
+ stdenv.mkDerivation {
+ name = "node-tarball-${name}-${version}";
+ inherit src;
+ buildInputs = [ nodejs ];
+ buildPhase = ''
+ export HOME=$TMPDIR
+ tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+ '';
+ installPhase = ''
+ mkdir -p $out/tarballs
+ mv $tgzFile $out/tarballs
+ mkdir -p $out/nix-support
+ echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+ '';
+ };
+
+ includeDependencies = { dependencies }:
+ lib.optionalString (dependencies != [ ])
+ (lib.concatMapStrings
+ (dependency:
+ ''
+ # Bundle the dependencies of the package
+ mkdir -p node_modules
+ cd node_modules
+
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ if [ ! -e "${dependency.name}" ]
+ then
+ ${composePackage dependency}
+ fi
+
+ cd ..
+ ''
+ )
+ dependencies);
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [ ], ... }@args:
+ builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+ DIR=$(pwd)
+ cd $TMPDIR
+
+ unpackFile ${src}
+
+ # Make the base dir in which the target dependency resides first
+ mkdir -p "$(dirname "$DIR/${packageName}")"
+
+ if [ -f "${src}" ]
+ then
+ # Figure out what directory has been unpacked
+ packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+ # Restore write permissions to make building work
+ find "$packageDir" -type d -exec chmod u+x {} \;
+ chmod -R u+w "$packageDir"
+
+ # Move the extracted tarball into the output folder
+ mv "$packageDir" "$DIR/${packageName}"
+ elif [ -d "${src}" ]
+ then
+ # Get a stripped name (without hash) of the source directory.
+ # On old nixpkgs it's already set internally.
+ if [ -z "$strippedName" ]
+ then
+ strippedName="$(stripHash ${src})"
+ fi
+
+ # Restore write permissions to make building work
+ chmod -R u+w "$strippedName"
+
+ # Move the extracted directory into the output folder
+ mv "$strippedName" "$DIR/${packageName}"
+ fi
+
+ # Unset the stripped name to not confuse the next unpack step
+ unset strippedName
+
+ # Include the dependencies of the package
+ cd "$DIR/${packageName}"
+ ${includeDependencies { inherit dependencies; }}
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ '';
+
+ pinpointDependencies = { dependencies, production }:
+ let
+ pinpointDependenciesFromPackageJSON = writeTextFile {
+ name = "pinpointDependencies.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function resolveDependencyVersion(location, name) {
+ if(location == process.env['NIX_STORE']) {
+ return null;
+ } else {
+ var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+ if(fs.existsSync(dependencyPackageJSON)) {
+ var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+ if(dependencyPackageObj.name == name) {
+ return dependencyPackageObj.version;
+ }
+ } else {
+ return resolveDependencyVersion(path.resolve(location, ".."), name);
+ }
+ }
+ }
+
+ function replaceDependencies(dependencies) {
+ if(typeof dependencies == "object" && dependencies !== null) {
+ for(var dependency in dependencies) {
+ var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+ if(resolvedVersion === null) {
+ process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+ } else {
+ dependencies[dependency] = resolvedVersion;
+ }
+ }
+ }
+ }
+
+ /* Read the package.json configuration */
+ var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+ /* Pinpoint all dependencies */
+ replaceDependencies(packageObj.dependencies);
+ if(process.argv[2] == "development") {
+ replaceDependencies(packageObj.devDependencies);
+ }
+ replaceDependencies(packageObj.optionalDependencies);
+
+ /* Write the fixed package.json file */
+ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+ '';
+ };
+ in
+ ''
+ node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+ ${lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+ cd ..
+ fi
+ ''}
+ '';
+
+ # Recursively traverses all dependencies of a package and pinpoints all
+ # dependencies in the package.json file to the versions that are actually
+ # being used.
+
+ pinpointDependenciesOfPackage = { packageName, dependencies ? [ ], production ? true, ... }@args:
+ ''
+ if [ -d "${packageName}" ]
+ then
+ cd "${packageName}"
+ ${pinpointDependencies { inherit dependencies production; }}
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ fi
+ '';
+
+ # Extract the Node.js source code which is used to compile packages with
+ # native bindings
+ nodeSources = runCommand "node-sources" { } ''
+ tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+ mv node-* $out
+ '';
+
+ # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+ addIntegrityFieldsScript = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function augmentDependencies(baseDir, dependencies) {
+ for(var dependencyName in dependencies) {
+ var dependency = dependencies[dependencyName];
+
+ // Open package.json and augment metadata fields
+ var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+ var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+ if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+ console.log("Adding metadata fields to: "+packageJSONPath);
+ var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+ if(dependency.integrity) {
+ packageObj["_integrity"] = dependency.integrity;
+ } else {
+ packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+ }
+
+ if(dependency.resolved) {
+ packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+ } else {
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ }
+
+ if(dependency.from !== undefined) { // Adopt from property if one has been provided
+ packageObj["_from"] = dependency.from;
+ }
+
+ fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+ }
+
+ // Augment transitive dependencies
+ if(dependency.dependencies !== undefined) {
+ augmentDependencies(packageJSONDir, dependency.dependencies);
+ }
+ }
+ }
+
+ if(fs.existsSync("./package-lock.json")) {
+ var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+ if(![1, 2].includes(packageLock.lockfileVersion)) {
+ process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
+ process.exit(1);
+ }
+
+ if(packageLock.dependencies !== undefined) {
+ augmentDependencies(".", packageLock.dependencies);
+ }
+ }
+ '';
+ };
+
+ # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+ reconstructPackageLock = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var lockObj = {
+ name: packageObj.name,
+ version: packageObj.version,
+ lockfileVersion: 1,
+ requires: true,
+ dependencies: {}
+ };
+
+ function augmentPackageJSON(filePath, dependencies) {
+ var packageJSON = path.join(filePath, "package.json");
+ if(fs.existsSync(packageJSON)) {
+ var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+ dependencies[packageObj.name] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: {}
+ };
+ processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+ }
+ }
+
+ function processDependencies(dir, dependencies) {
+ if(fs.existsSync(dir)) {
+ var files = fs.readdirSync(dir);
+
+ files.forEach(function(entry) {
+ var filePath = path.join(dir, entry);
+ var stats = fs.statSync(filePath);
+
+ if(stats.isDirectory()) {
+ if(entry.substr(0, 1) == "@") {
+ // When we encounter a namespace folder, augment all packages belonging to the scope
+ var pkgFiles = fs.readdirSync(filePath);
+
+ pkgFiles.forEach(function(entry) {
+ if(stats.isDirectory()) {
+ var pkgFilePath = path.join(filePath, entry);
+ augmentPackageJSON(pkgFilePath, dependencies);
+ }
+ });
+ } else {
+ augmentPackageJSON(filePath, dependencies);
+ }
+ }
+ });
+ }
+ }
+
+ processDependencies("node_modules", lockObj.dependencies);
+
+ fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+ '';
+ };
+
+ prepareAndInvokeNPM = { packageName, bypassCache, reconstructLock, npmFlags, production }:
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ in
+ ''
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ source $pinpointDependenciesScriptPath
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ # Deploy the Node.js package by running npm install. Since the
+ # dependencies have been provided already by ourselves, it should not
+ # attempt to install them again, which is good, because we want to make
+ # it Nix's responsibility. If it needs to install any dependencies
+ # anyway (e.g. because the dependency parameters are
+ # incomplete/incorrect), it fails.
+ #
+ # The other responsibilities of NPM are kept -- version checks, build
+ # steps, postprocessing etc.
+
+ export HOME=$TMPDIR
+ cd "${packageName}"
+ runHook preRebuild
+
+ ${lib.optionalString bypassCache ''
+ ${lib.optionalString reconstructLock ''
+ if [ -f package-lock.json ]
+ then
+ echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+ echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+ rm package-lock.json
+ else
+ echo "No package-lock.json file found, reconstructing..."
+ fi
+
+ node ${reconstructPackageLock}
+ ''}
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
+
+ if [ "''${dontNpmInstall-}" != "1" ]
+ then
+ # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+ rm -f npm-shrinkwrap.json
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
+ fi
+ '';
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version
+ , dependencies ? [ ]
+ , buildInputs ? [ ]
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , meta ? { }
+ , ...
+ }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
+ in
+ stdenv.mkDerivation ({
+ name = "${name}-${version}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ lib.optional (stdenv.isLinux) utillinux
+ ++ lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit nodejs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+ compositionScript = composePackage args;
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ # Create and enter a root node_modules/ folder
+ mkdir -p $out/lib/node_modules
+ cd $out/lib/node_modules
+
+ # Compose the package and all its dependencies
+ source $compositionScriptPath
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Create symlink to the deployed executable folder, if applicable
+ if [ -d "$out/lib/node_modules/.bin" ]
+ then
+ ln -s $out/lib/node_modules/.bin $out/bin
+ fi
+
+ # Create symlinks to the deployed manual page folders, if applicable
+ if [ -d "$out/lib/node_modules/${packageName}/man" ]
+ then
+ mkdir -p $out/share
+ for dir in "$out/lib/node_modules/${packageName}/man/"*
+ do
+ mkdir -p $out/share/man/$(basename "$dir")
+ for page in "$dir"/*
+ do
+ ln -s $page $out/share/man/$(basename "$dir")
+ done
+ done
+ fi
+
+ # Run post install hook, if provided
+ runHook postInstall
+ '';
+
+ meta = {
+ # default to Node.js' platforms
+ platforms = nodejs.meta.platforms;
+ } // meta;
+ } // extraArgs);
+
+ # Builds a node environment (a node_modules folder and a set of binaries)
+ buildNodeDependencies =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? [ ]
+ , buildInputs ? [ ]
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ...
+ }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node-dependencies-${name}-${version}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ lib.optional (stdenv.isLinux) utillinux
+ ++ lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall unpackPhase buildPhase;
+
+ includeScript = includeDependencies { inherit dependencies; };
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ mkdir -p $out/${packageName}
+ cd $out/${packageName}
+
+ source $includeScriptPath
+
+ # Create fake package.json to make the npm commands work properly
+ cp ${src}/package.json .
+ chmod 644 package.json
+ ${lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ fi
+ ''}
+
+ # Go to the parent folder to make sure that all packages are pinpointed
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Expose the executables that were installed
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? [ ]
+ , buildInputs ? [ ]
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ...
+ }@args:
+
+ let
+ nodeDependencies = buildNodeDependencies args;
+ in
+ stdenv.mkDerivation {
+ name = "node-shell-${name}-${version}";
+
+ buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+ buildCommand = ''
+ mkdir -p $out/bin
+ cat > $out/bin/shell <<EOF
+ #! ${stdenv.shell} -e
+ $shellHook
+ exec ${stdenv.shell}
+ EOF
+ chmod +x $out/bin/shell
+ '';
+
+ # Provide the dependencies in a development shell through the NODE_PATH environment variable
+ inherit nodeDependencies;
+ shellHook = lib.optionalString (dependencies != [ ]) ''
+ export NODE_PATH=${nodeDependencies}/lib/node_modules
+ export PATH="${nodeDependencies}/bin:$PATH"
+ '';
+ };
+in
+{
+ buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
+ buildNodePackage = lib.makeOverridable buildNodePackage;
+ buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
+ buildNodeShell = lib.makeOverridable buildNodeShell;
+}
diff --git a/pkgs/mx-puppet-slack/node-packages.nix b/pkgs/mx-puppet-slack/node-packages.nix
new file mode 100644
index 0000000..16612c6
--- /dev/null
+++ b/pkgs/mx-puppet-slack/node-packages.nix
@@ -0,0 +1,4217 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{ nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? [ ] }:
+
+let
+ sources = {
+ "@babel/code-frame-7.8.3" = {
+ name = "_at_babel_slash_code-frame";
+ packageName = "@babel/code-frame";
+ version = "7.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
+ sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+ };
+ };
+ "@babel/helper-validator-identifier-7.9.5" = {
+ name = "_at_babel_slash_helper-validator-identifier";
+ packageName = "@babel/helper-validator-identifier";
+ version = "7.9.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
+ sha512 = "/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==";
+ };
+ };
+ "@babel/highlight-7.9.0" = {
+ name = "_at_babel_slash_highlight";
+ packageName = "@babel/highlight";
+ version = "7.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
+ sha512 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==";
+ };
+ };
+ "@dabh/diagnostics-2.0.2" = {
+ name = "_at_dabh_slash_diagnostics";
+ packageName = "@dabh/diagnostics";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+ sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+ };
+ };
+ "@sindresorhus/is-2.1.1" = {
+ name = "_at_sindresorhus_slash_is";
+ packageName = "@sindresorhus/is";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz";
+ sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
+ };
+ };
+ "@sindresorhus/is-4.0.1" = {
+ name = "_at_sindresorhus_slash_is";
+ packageName = "@sindresorhus/is";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz";
+ sha512 = "Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==";
+ };
+ };
+ "@slack/events-api-2.3.4" = {
+ name = "_at_slack_slash_events-api";
+ packageName = "@slack/events-api";
+ version = "2.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@slack/events-api/-/events-api-2.3.4.tgz";
+ sha512 = "4H+/op+GwIJ5aqpN7K1WcLuyqvpjCw48HYS4Xaw35tN84T0MDfOvQIA6Sacor9OpwCxKaY60Mwo73FT5Q+VvKg==";
+ };
+ };
+ "@slack/logger-1.1.1" = {
+ name = "_at_slack_slash_logger";
+ packageName = "@slack/logger";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@slack/logger/-/logger-1.1.1.tgz";
+ sha512 = "PAC5CMnNAv/FPtJ0le+YD2wUV+tZ7n3Bnjj9dBI+deIcHsExCnQkQmZE79cLvfuYXbz3PWyv5coti30MJQhEjA==";
+ };
+ };
+ "@slack/rtm-api-5.0.5" = {
+ name = "_at_slack_slash_rtm-api";
+ packageName = "@slack/rtm-api";
+ version = "5.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.5.tgz";
+ sha512 = "x2B4hyoxjg62cxf4M5QRomx+xYp2XoajPKdd24SM2Sl4m+IrzwKzmcrysQuYmF6BMsm3IoTKymW5BBGckHGTIw==";
+ };
+ };
+ "@slack/types-1.10.0" = {
+ name = "_at_slack_slash_types";
+ packageName = "@slack/types";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@slack/types/-/types-1.10.0.tgz";
+ sha512 = "tA7GG7Tj479vojfV3AoxbckalA48aK6giGjNtgH6ihpLwTyHE3fIgRrvt8TWfLwW8X8dyu7vgmAsGLRG7hWWOg==";
+ };
+ };
+ "@slack/web-api-5.15.0" = {
+ name = "_at_slack_slash_web-api";
+ packageName = "@slack/web-api";
+ version = "5.15.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.15.0.tgz";
+ sha512 = "tjQ8Zqv/Fmj9SOL9yIEd7IpTiKfKHi9DKAkfRVeotoX0clMr3SqQtBqO+KZMX27gm7dmgJsQaDKlILyzdCO+IA==";
+ };
+ };
+ "@sorunome/matrix-bot-sdk-0.5.13" = {
+ name = "_at_sorunome_slash_matrix-bot-sdk";
+ packageName = "@sorunome/matrix-bot-sdk";
+ version = "0.5.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.13.tgz";
+ sha512 = "WEeuei8/QS9FO76n71nT17TBZ3tRW2POjOpN7YIvsy5tA0WD0tMUKWZDcTo1A+xKOvzgjRTy9v88rKSLIr4wHA==";
+ };
+ };
+ "@szmarczak/http-timer-4.0.5" = {
+ name = "_at_szmarczak_slash_http-timer";
+ packageName = "@szmarczak/http-timer";
+ version = "4.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz";
+ sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==";
+ };
+ };
+ "@types/body-parser-1.19.0" = {
+ name = "_at_types_slash_body-parser";
+ packageName = "@types/body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
+ };
+ };
+ "@types/cacheable-request-6.0.1" = {
+ name = "_at_types_slash_cacheable-request";
+ packageName = "@types/cacheable-request";
+ version = "6.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz";
+ sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==";
+ };
+ };
+ "@types/connect-3.4.33" = {
+ name = "_at_types_slash_connect";
+ packageName = "@types/connect";
+ version = "3.4.33";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
+ sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
+ };
+ };
+ "@types/debug-4.1.5" = {
+ name = "_at_types_slash_debug";
+ packageName = "@types/debug";
+ version = "4.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz";
+ sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
+ };
+ };
+ "@types/express-4.17.8" = {
+ name = "_at_types_slash_express";
+ packageName = "@types/express";
+ version = "4.17.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express/-/express-4.17.8.tgz";
+ sha512 = "wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==";
+ };
+ };
+ "@types/express-serve-static-core-4.17.13" = {
+ name = "_at_types_slash_express-serve-static-core";
+ packageName = "@types/express-serve-static-core";
+ version = "4.17.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz";
+ sha512 = "RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==";
+ };
+ };
+ "@types/http-cache-semantics-4.0.0" = {
+ name = "_at_types_slash_http-cache-semantics";
+ packageName = "@types/http-cache-semantics";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz";
+ sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
+ };
+ };
+ "@types/is-stream-1.1.0" = {
+ name = "_at_types_slash_is-stream";
+ packageName = "@types/is-stream";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/is-stream/-/is-stream-1.1.0.tgz";
+ sha512 = "jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==";
+ };
+ };
+ "@types/keyv-3.1.1" = {
+ name = "_at_types_slash_keyv";
+ packageName = "@types/keyv";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz";
+ sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
+ };
+ };
+ "@types/lodash-4.14.168" = {
+ name = "_at_types_slash_lodash";
+ packageName = "@types/lodash";
+ version = "4.14.168";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz";
+ sha512 = "oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==";
+ };
+ };
+ "@types/lodash.isstring-4.0.6" = {
+ name = "_at_types_slash_lodash.isstring";
+ packageName = "@types/lodash.isstring";
+ version = "4.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/lodash.isstring/-/lodash.isstring-4.0.6.tgz";
+ sha512 = "uUGvF9G1G7jQ5H42Y38GA9rZmUoY8wI/OMSwnW0BZA+Ra0uxzpuQf4CixXl3yG3TvF6LjuduMyt1WvKl+je8QA==";
+ };
+ };
+ "@types/mime-2.0.3" = {
+ name = "_at_types_slash_mime";
+ packageName = "@types/mime";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
+ sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
+ };
+ };
+ "@types/node-12.12.34" = {
+ name = "_at_types_slash_node";
+ packageName = "@types/node";
+ version = "12.12.34";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/node/-/node-12.12.34.tgz";
+ sha512 = "BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g==";
+ };
+ };
+ "@types/p-queue-2.3.2" = {
+ name = "_at_types_slash_p-queue";
+ packageName = "@types/p-queue";
+ version = "2.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/p-queue/-/p-queue-2.3.2.tgz";
+ sha512 = "eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==";
+ };
+ };
+ "@types/prop-types-15.7.3" = {
+ name = "_at_types_slash_prop-types";
+ packageName = "@types/prop-types";
+ version = "15.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz";
+ sha512 = "KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==";
+ };
+ };
+ "@types/qs-6.9.5" = {
+ name = "_at_types_slash_qs";
+ packageName = "@types/qs";
+ version = "6.9.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
+ sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+ };
+ };
+ "@types/range-parser-1.2.3" = {
+ name = "_at_types_slash_range-parser";
+ packageName = "@types/range-parser";
+ version = "1.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
+ sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
+ };
+ };
+ "@types/react-17.0.0" = {
+ name = "_at_types_slash_react";
+ packageName = "@types/react";
+ version = "17.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz";
+ sha512 = "aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==";
+ };
+ };
+ "@types/responselike-1.0.0" = {
+ name = "_at_types_slash_responselike";
+ packageName = "@types/responselike";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz";
+ sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==";
+ };
+ };
+ "@types/retry-0.12.0" = {
+ name = "_at_types_slash_retry";
+ packageName = "@types/retry";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz";
+ sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
+ };
+ };
+ "@types/serve-static-1.13.5" = {
+ name = "_at_types_slash_serve-static";
+ packageName = "@types/serve-static";
+ version = "1.13.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz";
+ sha512 = "6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==";
+ };
+ };
+ "@types/ws-7.4.0" = {
+ name = "_at_types_slash_ws";
+ packageName = "@types/ws";
+ version = "7.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/ws/-/ws-7.4.0.tgz";
+ sha512 = "Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==";
+ };
+ };
+ "@types/yargs-15.0.13" = {
+ name = "_at_types_slash_yargs";
+ packageName = "@types/yargs";
+ version = "15.0.13";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz";
+ sha512 = "kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==";
+ };
+ };
+ "@types/yargs-parser-20.2.0" = {
+ name = "_at_types_slash_yargs-parser";
+ packageName = "@types/yargs-parser";
+ version = "20.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz";
+ sha512 = "37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==";
+ };
+ };
+ "abbrev-1.1.1" = {
+ name = "abbrev";
+ packageName = "abbrev";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+ sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+ };
+ };
+ "accepts-1.3.7" = {
+ name = "accepts";
+ packageName = "accepts";
+ version = "1.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+ sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+ };
+ };
+ "ansi-regex-2.1.1" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ };
+ "ansi-regex-5.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+ sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+ };
+ };
+ "ansi-styles-3.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "3.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+ };
+ };
+ "ansi-styles-4.3.0" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+ sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+ };
+ };
+ "aproba-1.2.0" = {
+ name = "aproba";
+ packageName = "aproba";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+ sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+ };
+ };
+ "are-we-there-yet-1.1.5" = {
+ name = "are-we-there-yet";
+ packageName = "are-we-there-yet";
+ version = "1.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+ };
+ };
+ "argparse-1.0.10" = {
+ name = "argparse";
+ packageName = "argparse";
+ version = "1.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+ sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+ };
+ };
+ "array-back-2.0.0" = {
+ name = "array-back";
+ packageName = "array-back";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz";
+ sha512 = "eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==";
+ };
+ };
+ "array-back-3.1.0" = {
+ name = "array-back";
+ packageName = "array-back";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
+ sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==";
+ };
+ };
+ "array-flatten-1.1.1" = {
+ name = "array-flatten";
+ packageName = "array-flatten";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ };
+ "assert-options-0.7.0" = {
+ name = "assert-options";
+ packageName = "assert-options";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz";
+ sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ==";
+ };
+ };
+ "async-3.2.0" = {
+ name = "async";
+ packageName = "async";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+ sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+ };
+ };
+ "async-limiter-1.0.1" = {
+ name = "async-limiter";
+ packageName = "async-limiter";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
+ sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
+ };
+ };
+ "asynckit-0.4.0" = {
+ name = "asynckit";
+ packageName = "asynckit";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ };
+ "axios-0.21.1" = {
+ name = "axios";
+ packageName = "axios";
+ version = "0.21.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz";
+ sha512 = "dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==";
+ };
+ };
+ "balanced-match-1.0.0" = {
+ name = "balanced-match";
+ packageName = "balanced-match";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ };
+ "base64-js-1.5.1" = {
+ name = "base64-js";
+ packageName = "base64-js";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+ sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+ };
+ };
+ "basic-auth-2.0.1" = {
+ name = "basic-auth";
+ packageName = "basic-auth";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+ sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
+ };
+ };
+ "better-sqlite3-7.4.3" = {
+ name = "better-sqlite3";
+ packageName = "better-sqlite3";
+ version = "7.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.3.tgz";
+ sha512 = "07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==";
+ };
+ };
+ "bindings-1.5.0" = {
+ name = "bindings";
+ packageName = "bindings";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+ sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+ };
+ };
+ "bintrees-1.0.1" = {
+ name = "bintrees";
+ packageName = "bintrees";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz";
+ sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+ };
+ };
+ "bl-4.1.0" = {
+ name = "bl";
+ packageName = "bl";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
+ sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
+ };
+ };
+ "blurhash-1.1.3" = {
+ name = "blurhash";
+ packageName = "blurhash";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz";
+ sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==";
+ };
+ };
+ "body-parser-1.19.0" = {
+ name = "body-parser";
+ packageName = "body-parser";
+ version = "1.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+ sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+ };
+ };
+ "brace-expansion-1.1.11" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+ };
+ };
+ "buffer-5.7.1" = {
+ name = "buffer";
+ packageName = "buffer";
+ version = "5.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+ sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+ };
+ };
+ "buffer-writer-2.0.0" = {
+ name = "buffer-writer";
+ packageName = "buffer-writer";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+ sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+ };
+ };
+ "builtin-modules-1.1.1" = {
+ name = "builtin-modules";
+ packageName = "builtin-modules";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz";
+ sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+ };
+ };
+ "bytes-3.1.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+ sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+ };
+ };
+ "cacheable-lookup-2.0.1" = {
+ name = "cacheable-lookup";
+ packageName = "cacheable-lookup";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz";
+ sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
+ };
+ };
+ "cacheable-lookup-5.0.4" = {
+ name = "cacheable-lookup";
+ packageName = "cacheable-lookup";
+ version = "5.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz";
+ sha512 = "2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==";
+ };
+ };
+ "cacheable-request-7.0.1" = {
+ name = "cacheable-request";
+ packageName = "cacheable-request";
+ version = "7.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz";
+ sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==";
+ };
+ };
+ "camelcase-5.3.1" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "5.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+ sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+ };
+ };
+ "canvas-2.6.1" = {
+ name = "canvas";
+ packageName = "canvas";
+ version = "2.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz";
+ sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==";
+ };
+ };
+ "chalk-2.4.2" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+ sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+ };
+ };
+ "chalk-4.1.1" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz";
+ sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==";
+ };
+ };
+ "chownr-1.1.4" = {
+ name = "chownr";
+ packageName = "chownr";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+ sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+ };
+ };
+ "chownr-2.0.0" = {
+ name = "chownr";
+ packageName = "chownr";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz";
+ sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
+ };
+ };
+ "cliui-6.0.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+ sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+ };
+ };
+ "clone-response-1.0.2" = {
+ name = "clone-response";
+ packageName = "clone-response";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz";
+ sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+ };
+ };
+ "code-point-at-1.1.0" = {
+ name = "code-point-at";
+ packageName = "code-point-at";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ };
+ "color-3.0.0" = {
+ name = "color";
+ packageName = "color";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
+ sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+ };
+ };
+ "color-convert-1.9.3" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "1.9.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+ sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+ };
+ };
+ "color-convert-2.0.1" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+ sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+ };
+ };
+ "color-name-1.1.3" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ };
+ "color-name-1.1.4" = {
+ name = "color-name";
+ packageName = "color-name";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+ sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+ };
+ };
+ "color-string-1.5.4" = {
+ name = "color-string";
+ packageName = "color-string";
+ version = "1.5.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
+ sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
+ };
+ };
+ "colorette-1.2.2" = {
+ name = "colorette";
+ packageName = "colorette";
+ version = "1.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
+ sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
+ };
+ };
+ "colors-1.4.0" = {
+ name = "colors";
+ packageName = "colors";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
+ sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
+ };
+ };
+ "colorspace-1.1.2" = {
+ name = "colorspace";
+ packageName = "colorspace";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
+ sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+ };
+ };
+ "combined-stream-1.0.8" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "1.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+ sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+ };
+ };
+ "command-line-args-5.1.1" = {
+ name = "command-line-args";
+ packageName = "command-line-args";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz";
+ sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==";
+ };
+ };
+ "command-line-usage-5.0.5" = {
+ name = "command-line-usage";
+ packageName = "command-line-usage";
+ version = "5.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz";
+ sha512 = "d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==";
+ };
+ };
+ "commander-2.20.3" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.20.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+ sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "console-control-strings-1.1.0" = {
+ name = "console-control-strings";
+ packageName = "console-control-strings";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ };
+ "content-disposition-0.5.3" = {
+ name = "content-disposition";
+ packageName = "content-disposition";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+ sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+ };
+ };
+ "content-type-1.0.4" = {
+ name = "content-type";
+ packageName = "content-type";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+ sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+ };
+ };
+ "cookie-0.4.0" = {
+ name = "cookie";
+ packageName = "cookie";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+ sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+ };
+ };
+ "cookie-signature-1.0.6" = {
+ name = "cookie-signature";
+ packageName = "cookie-signature";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ };
+ "core-util-is-1.0.2" = {
+ name = "core-util-is";
+ packageName = "core-util-is";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ };
+ "csstype-3.0.6" = {
+ name = "csstype";
+ packageName = "csstype";
+ version = "3.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz";
+ sha512 = "+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==";
+ };
+ };
+ "cycle-1.0.3" = {
+ name = "cycle";
+ packageName = "cycle";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+ sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+ };
+ };
+ "dateformat-3.0.3" = {
+ name = "dateformat";
+ packageName = "dateformat";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz";
+ sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
+ };
+ };
+ "debug-2.6.9" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.6.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+ sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+ };
+ };
+ "debug-3.2.7" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
+ sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
+ };
+ };
+ "decamelize-1.2.0" = {
+ name = "decamelize";
+ packageName = "decamelize";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ };
+ "decompress-response-4.2.1" = {
+ name = "decompress-response";
+ packageName = "decompress-response";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
+ sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+ };
+ };
+ "decompress-response-5.0.0" = {
+ name = "decompress-response";
+ packageName = "decompress-response";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz";
+ sha512 = "TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==";
+ };
+ };
+ "decompress-response-6.0.0" = {
+ name = "decompress-response";
+ packageName = "decompress-response";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz";
+ sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==";
+ };
+ };
+ "deep-extend-0.6.0" = {
+ name = "deep-extend";
+ packageName = "deep-extend";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+ };
+ };
+ "deepmerge-4.2.2" = {
+ name = "deepmerge";
+ packageName = "deepmerge";
+ version = "4.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz";
+ sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
+ };
+ };
+ "defer-to-connect-2.0.0" = {
+ name = "defer-to-connect";
+ packageName = "defer-to-connect";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
+ sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==";
+ };
+ };
+ "delayed-stream-1.0.0" = {
+ name = "delayed-stream";
+ packageName = "delayed-stream";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ };
+ "delegates-1.0.0" = {
+ name = "delegates";
+ packageName = "delegates";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ };
+ "depd-1.1.2" = {
+ name = "depd";
+ packageName = "depd";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ };
+ "depd-2.0.0" = {
+ name = "depd";
+ packageName = "depd";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+ sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+ };
+ };
+ "destroy-1.0.4" = {
+ name = "destroy";
+ packageName = "destroy";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ };
+ "detect-libc-1.0.3" = {
+ name = "detect-libc";
+ packageName = "detect-libc";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ };
+ "diff-4.0.2" = {
+ name = "diff";
+ packageName = "diff";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
+ sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
+ };
+ };
+ "dom-serializer-1.3.2" = {
+ name = "dom-serializer";
+ packageName = "dom-serializer";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz";
+ sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==";
+ };
+ };
+ "domelementtype-2.2.0" = {
+ name = "domelementtype";
+ packageName = "domelementtype";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
+ sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
+ };
+ };
+ "domhandler-3.3.0" = {
+ name = "domhandler";
+ packageName = "domhandler";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz";
+ sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
+ };
+ };
+ "domhandler-4.2.0" = {
+ name = "domhandler";
+ packageName = "domhandler";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz";
+ sha512 = "zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==";
+ };
+ };
+ "domutils-2.7.0" = {
+ name = "domutils";
+ packageName = "domutils";
+ version = "2.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz";
+ sha512 = "8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==";
+ };
+ };
+ "duplexer3-0.1.4" = {
+ name = "duplexer3";
+ packageName = "duplexer3";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ };
+ "ee-first-1.1.1" = {
+ name = "ee-first";
+ packageName = "ee-first";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ };
+ "emoji-regex-8.0.0" = {
+ name = "emoji-regex";
+ packageName = "emoji-regex";
+ version = "8.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+ sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+ };
+ };
+ "enabled-2.0.0" = {
+ name = "enabled";
+ packageName = "enabled";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+ sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
+ };
+ };
+ "encodeurl-1.0.2" = {
+ name = "encodeurl";
+ packageName = "encodeurl";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ };
+ "end-of-stream-1.4.4" = {
+ name = "end-of-stream";
+ packageName = "end-of-stream";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+ sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+ };
+ };
+ "entities-1.1.2" = {
+ name = "entities";
+ packageName = "entities";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+ sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+ };
+ };
+ "entities-2.2.0" = {
+ name = "entities";
+ packageName = "entities";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz";
+ sha512 = "p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==";
+ };
+ };
+ "escape-html-1.0.3" = {
+ name = "escape-html";
+ packageName = "escape-html";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ };
+ "escape-string-regexp-1.0.5" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ };
+ "escape-string-regexp-4.0.0" = {
+ name = "escape-string-regexp";
+ packageName = "escape-string-regexp";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+ sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+ };
+ };
+ "esprima-4.0.1" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+ sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+ };
+ };
+ "etag-1.8.1" = {
+ name = "etag";
+ packageName = "etag";
+ version = "1.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ };
+ "eventemitter3-3.1.2" = {
+ name = "eventemitter3";
+ packageName = "eventemitter3";
+ version = "3.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz";
+ sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
+ };
+ };
+ "eventemitter3-4.0.7" = {
+ name = "eventemitter3";
+ packageName = "eventemitter3";
+ version = "4.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+ sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
+ };
+ };
+ "events-3.1.0" = {
+ name = "events";
+ packageName = "events";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
+ sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==";
+ };
+ };
+ "expand-template-2.0.3" = {
+ name = "expand-template";
+ packageName = "expand-template";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+ sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+ };
+ };
+ "expire-set-1.0.0" = {
+ name = "expire-set";
+ packageName = "expire-set";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz";
+ sha512 = "wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg==";
+ };
+ };
+ "express-4.17.1" = {
+ name = "express";
+ packageName = "express";
+ version = "4.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+ sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+ };
+ };
+ "extend-shallow-2.0.1" = {
+ name = "extend-shallow";
+ packageName = "extend-shallow";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ };
+ "fast-safe-stringify-2.0.7" = {
+ name = "fast-safe-stringify";
+ packageName = "fast-safe-stringify";
+ version = "2.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
+ sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
+ };
+ };
+ "fecha-2.3.3" = {
+ name = "fecha";
+ packageName = "fecha";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
+ sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+ };
+ };
+ "fecha-4.2.0" = {
+ name = "fecha";
+ packageName = "fecha";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+ sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+ };
+ };
+ "file-stream-rotator-0.4.1" = {
+ name = "file-stream-rotator";
+ packageName = "file-stream-rotator";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
+ sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==";
+ };
+ };
+ "file-type-12.4.2" = {
+ name = "file-type";
+ packageName = "file-type";
+ version = "12.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz";
+ sha512 = "UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==";
+ };
+ };
+ "file-uri-to-path-1.0.0" = {
+ name = "file-uri-to-path";
+ packageName = "file-uri-to-path";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+ sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+ };
+ };
+ "finalhandler-1.1.2" = {
+ name = "finalhandler";
+ packageName = "finalhandler";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+ sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+ };
+ };
+ "find-replace-3.0.0" = {
+ name = "find-replace";
+ packageName = "find-replace";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz";
+ sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==";
+ };
+ };
+ "find-up-4.1.0" = {
+ name = "find-up";
+ packageName = "find-up";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+ sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+ };
+ };
+ "finity-0.5.4" = {
+ name = "finity";
+ packageName = "finity";
+ version = "0.5.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/finity/-/finity-0.5.4.tgz";
+ sha512 = "3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==";
+ };
+ };
+ "fn.name-1.1.0" = {
+ name = "fn.name";
+ packageName = "fn.name";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+ sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+ };
+ };
+ "follow-redirects-1.13.1" = {
+ name = "follow-redirects";
+ packageName = "follow-redirects";
+ version = "1.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz";
+ sha512 = "SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==";
+ };
+ };
+ "form-data-2.5.1" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "2.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz";
+ sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==";
+ };
+ };
+ "forwarded-0.1.2" = {
+ name = "forwarded";
+ packageName = "forwarded";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ };
+ "fresh-0.5.2" = {
+ name = "fresh";
+ packageName = "fresh";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ };
+ "fs-constants-1.0.0" = {
+ name = "fs-constants";
+ packageName = "fs-constants";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+ sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+ };
+ };
+ "fs-minipass-1.2.7" = {
+ name = "fs-minipass";
+ packageName = "fs-minipass";
+ version = "1.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+ sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+ };
+ };
+ "fs-minipass-2.1.0" = {
+ name = "fs-minipass";
+ packageName = "fs-minipass";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
+ sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
+ };
+ };
+ "fs.realpath-1.0.0" = {
+ name = "fs.realpath";
+ packageName = "fs.realpath";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ };
+ "gauge-2.7.4" = {
+ name = "gauge";
+ packageName = "gauge";
+ version = "2.7.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ };
+ "get-caller-file-2.0.5" = {
+ name = "get-caller-file";
+ packageName = "get-caller-file";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+ sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+ };
+ };
+ "get-stream-5.2.0" = {
+ name = "get-stream";
+ packageName = "get-stream";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+ sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+ };
+ };
+ "github-from-package-0.0.0" = {
+ name = "github-from-package";
+ packageName = "github-from-package";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz";
+ sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+ };
+ };
+ "glob-7.1.6" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+ sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+ };
+ };
+ "glob-to-regexp-0.4.1" = {
+ name = "glob-to-regexp";
+ packageName = "glob-to-regexp";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+ sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
+ };
+ };
+ "got-10.7.0" = {
+ name = "got";
+ packageName = "got";
+ version = "10.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/got/-/got-10.7.0.tgz";
+ sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
+ };
+ };
+ "got-11.8.2" = {
+ name = "got";
+ packageName = "got";
+ version = "11.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/got/-/got-11.8.2.tgz";
+ sha512 = "D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==";
+ };
+ };
+ "graceful-fs-4.2.6" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
+ sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+ };
+ };
+ "has-flag-3.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ };
+ "has-flag-4.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+ sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+ };
+ };
+ "has-unicode-2.0.1" = {
+ name = "has-unicode";
+ packageName = "has-unicode";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ };
+ "hash.js-1.1.7" = {
+ name = "hash.js";
+ packageName = "hash.js";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
+ sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+ };
+ };
+ "hasha-5.2.2" = {
+ name = "hasha";
+ packageName = "hasha";
+ version = "5.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz";
+ sha512 = "Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==";
+ };
+ };
+ "he-1.2.0" = {
+ name = "he";
+ packageName = "he";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+ sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+ };
+ };
+ "html-to-text-6.0.0" = {
+ name = "html-to-text";
+ packageName = "html-to-text";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/html-to-text/-/html-to-text-6.0.0.tgz";
+ sha512 = "r0KNC5aqCAItsjlgtirW6RW25c92Ee3ybQj8z//4Sl4suE3HIPqM4deGpYCUJULLjtVPEP1+Ma+1ZeX1iMsCiA==";
+ };
+ };
+ "htmlencode-0.0.4" = {
+ name = "htmlencode";
+ packageName = "htmlencode";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz";
+ sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
+ };
+ };
+ "htmlparser2-4.1.0" = {
+ name = "htmlparser2";
+ packageName = "htmlparser2";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz";
+ sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
+ };
+ };
+ "htmlparser2-6.1.0" = {
+ name = "htmlparser2";
+ packageName = "htmlparser2";
+ version = "6.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz";
+ sha512 = "gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==";
+ };
+ };
+ "http-cache-semantics-4.1.0" = {
+ name = "http-cache-semantics";
+ packageName = "http-cache-semantics";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
+ sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
+ };
+ };
+ "http-errors-1.7.2" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+ sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+ };
+ };
+ "http2-wrapper-1.0.3" = {
+ name = "http2-wrapper";
+ packageName = "http2-wrapper";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz";
+ sha512 = "V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==";
+ };
+ };
+ "iconv-lite-0.4.24" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+ };
+ };
+ "ieee754-1.2.1" = {
+ name = "ieee754";
+ packageName = "ieee754";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+ sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+ };
+ };
+ "ignore-walk-3.0.3" = {
+ name = "ignore-walk";
+ packageName = "ignore-walk";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
+ sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+ };
+ };
+ "inflight-1.0.6" = {
+ name = "inflight";
+ packageName = "inflight";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ };
+ "inherits-2.0.3" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ };
+ "inherits-2.0.4" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+ sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+ };
+ };
+ "ini-1.3.8" = {
+ name = "ini";
+ packageName = "ini";
+ version = "1.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
+ sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
+ };
+ };
+ "ipaddr.js-1.9.1" = {
+ name = "ipaddr.js";
+ packageName = "ipaddr.js";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+ sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+ };
+ };
+ "is-arrayish-0.3.2" = {
+ name = "is-arrayish";
+ packageName = "is-arrayish";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+ sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+ };
+ };
+ "is-extendable-0.1.1" = {
+ name = "is-extendable";
+ packageName = "is-extendable";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ };
+ "is-fullwidth-code-point-1.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ };
+ "is-fullwidth-code-point-3.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+ sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+ };
+ };
+ "is-plain-object-5.0.0" = {
+ name = "is-plain-object";
+ packageName = "is-plain-object";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz";
+ sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==";
+ };
+ };
+ "is-promise-2.2.2" = {
+ name = "is-promise";
+ packageName = "is-promise";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz";
+ sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
+ };
+ };
+ "is-stream-1.1.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ };
+ "is-stream-2.0.0" = {
+ name = "is-stream";
+ packageName = "is-stream";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+ sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+ };
+ };
+ "isarray-1.0.0" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ };
+ "js-tokens-4.0.0" = {
+ name = "js-tokens";
+ packageName = "js-tokens";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+ };
+ };
+ "js-yaml-3.13.1" = {
+ name = "js-yaml";
+ packageName = "js-yaml";
+ version = "3.13.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+ sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+ };
+ };
+ "json-buffer-3.0.1" = {
+ name = "json-buffer";
+ packageName = "json-buffer";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz";
+ sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==";
+ };
+ };
+ "keyv-4.0.3" = {
+ name = "keyv";
+ packageName = "keyv";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz";
+ sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
+ };
+ };
+ "klona-2.0.4" = {
+ name = "klona";
+ packageName = "klona";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz";
+ sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==";
+ };
+ };
+ "kuler-2.0.0" = {
+ name = "kuler";
+ packageName = "kuler";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+ sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
+ };
+ };
+ "linkify-it-2.2.0" = {
+ name = "linkify-it";
+ packageName = "linkify-it";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz";
+ sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
+ };
+ };
+ "locate-path-5.0.0" = {
+ name = "locate-path";
+ packageName = "locate-path";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+ sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+ };
+ };
+ "lodash-4.17.21" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.21";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+ sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
+ };
+ };
+ "lodash.camelcase-4.3.0" = {
+ name = "lodash.camelcase";
+ packageName = "lodash.camelcase";
+ version = "4.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+ sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+ };
+ };
+ "lodash.isstring-4.0.1" = {
+ name = "lodash.isstring";
+ packageName = "lodash.isstring";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz";
+ sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
+ };
+ };
+ "lodash.padend-4.6.1" = {
+ name = "lodash.padend";
+ packageName = "lodash.padend";
+ version = "4.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz";
+ sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e";
+ };
+ };
+ "lodash.toarray-4.4.0" = {
+ name = "lodash.toarray";
+ packageName = "lodash.toarray";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
+ sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
+ };
+ };
+ "logform-1.10.0" = {
+ name = "logform";
+ packageName = "logform";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
+ sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
+ };
+ };
+ "logform-2.2.0" = {
+ name = "logform";
+ packageName = "logform";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+ sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+ };
+ };
+ "lowdb-1.0.0" = {
+ name = "lowdb";
+ packageName = "lowdb";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz";
+ sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==";
+ };
+ };
+ "lowercase-keys-2.0.0" = {
+ name = "lowercase-keys";
+ packageName = "lowercase-keys";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+ sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==";
+ };
+ };
+ "lru-cache-6.0.0" = {
+ name = "lru-cache";
+ packageName = "lru-cache";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+ sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+ };
+ };
+ "markdown-it-9.1.0" = {
+ name = "markdown-it";
+ packageName = "markdown-it";
+ version = "9.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz";
+ sha512 = "xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w==";
+ };
+ };
+ "matrix-slack-parser-0.1.5" = {
+ name = "matrix-slack-parser";
+ packageName = "matrix-slack-parser";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/matrix-slack-parser/-/matrix-slack-parser-0.1.5.tgz";
+ sha512 = "oM2RNRIlQGp8VEX1fakZCmSdK9co9Egxt54A3sog/lBqlutCw2H5l3iiF30J7g9KPAh7D44togpeOUTu6B+6Fw==";
+ };
+ };
+ "mdurl-1.0.1" = {
+ name = "mdurl";
+ packageName = "mdurl";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz";
+ sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+ };
+ };
+ "media-typer-0.3.0" = {
+ name = "media-typer";
+ packageName = "media-typer";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ };
+ "merge-descriptors-1.0.1" = {
+ name = "merge-descriptors";
+ packageName = "merge-descriptors";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ };
+ "methods-1.1.2" = {
+ name = "methods";
+ packageName = "methods";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ };
+ "mime-1.6.0" = {
+ name = "mime";
+ packageName = "mime";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+ sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+ };
+ };
+ "mime-db-1.43.0" = {
+ name = "mime-db";
+ packageName = "mime-db";
+ version = "1.43.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
+ sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+ };
+ };
+ "mime-types-2.1.26" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "2.1.26";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
+ sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
+ };
+ };
+ "mimic-response-1.0.1" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
+ sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
+ };
+ };
+ "mimic-response-2.1.0" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
+ sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+ };
+ };
+ "mimic-response-3.1.0" = {
+ name = "mimic-response";
+ packageName = "mimic-response";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz";
+ sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==";
+ };
+ };
+ "minimalistic-assert-1.0.1" = {
+ name = "minimalistic-assert";
+ packageName = "minimalistic-assert";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+ sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+ };
+ };
+ "minimist-1.2.5" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+ sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+ };
+ };
+ "minipass-2.9.0" = {
+ name = "minipass";
+ packageName = "minipass";
+ version = "2.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+ sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+ };
+ };
+ "minipass-3.1.3" = {
+ name = "minipass";
+ packageName = "minipass";
+ version = "3.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz";
+ sha512 = "Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==";
+ };
+ };
+ "minizlib-1.3.3" = {
+ name = "minizlib";
+ packageName = "minizlib";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+ sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+ };
+ };
+ "minizlib-2.1.2" = {
+ name = "minizlib";
+ packageName = "minizlib";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+ sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
+ };
+ };
+ "mkdirp-0.5.5" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+ sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+ };
+ };
+ "mkdirp-1.0.4" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+ sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+ };
+ };
+ "mkdirp-classic-0.5.3" = {
+ name = "mkdirp-classic";
+ packageName = "mkdirp-classic";
+ version = "0.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+ sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
+ };
+ };
+ "moment-2.29.1" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.29.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
+ sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
+ };
+ };
+ "morgan-1.10.0" = {
+ name = "morgan";
+ packageName = "morgan";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+ sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
+ };
+ };
+ "ms-2.0.0" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ };
+ "ms-2.1.1" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+ sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+ };
+ };
+ "ms-2.1.3" = {
+ name = "ms";
+ packageName = "ms";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+ sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+ };
+ };
+ "mx-puppet-bridge-0.1.6" = {
+ name = "mx-puppet-bridge";
+ packageName = "mx-puppet-bridge";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.6.tgz";
+ sha512 = "q8XtOcmn25NkdBPM1LWYGAlgZZi+mI7+Dp7F5a1zQD0JM9cMcpW9FIO/JqAer+s3Y8CgTim3JZ2AyrUjfLRKsg==";
+ };
+ };
+ "nan-2.14.2" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.14.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
+ sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+ };
+ };
+ "nanoid-3.1.23" = {
+ name = "nanoid";
+ packageName = "nanoid";
+ version = "3.1.23";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz";
+ sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==";
+ };
+ };
+ "napi-build-utils-1.0.2" = {
+ name = "napi-build-utils";
+ packageName = "napi-build-utils";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+ sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
+ };
+ };
+ "needle-2.6.0" = {
+ name = "needle";
+ packageName = "needle";
+ version = "2.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz";
+ sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==";
+ };
+ };
+ "negotiator-0.6.2" = {
+ name = "negotiator";
+ packageName = "negotiator";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+ sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+ };
+ };
+ "node-abi-2.30.0" = {
+ name = "node-abi";
+ packageName = "node-abi";
+ version = "2.30.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz";
+ sha512 = "g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==";
+ };
+ };
+ "node-emoji-1.10.0" = {
+ name = "node-emoji";
+ packageName = "node-emoji";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz";
+ sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
+ };
+ };
+ "node-html-parser-1.4.9" = {
+ name = "node-html-parser";
+ packageName = "node-html-parser";
+ version = "1.4.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz";
+ sha512 = "UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==";
+ };
+ };
+ "node-pre-gyp-0.11.0" = {
+ name = "node-pre-gyp";
+ packageName = "node-pre-gyp";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+ sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+ };
+ };
+ "nopt-4.0.3" = {
+ name = "nopt";
+ packageName = "nopt";
+ version = "4.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
+ sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+ };
+ };
+ "normalize-url-4.5.1" = {
+ name = "normalize-url";
+ packageName = "normalize-url";
+ version = "4.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz";
+ sha512 = "9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==";
+ };
+ };
+ "normalize-version-1.0.5" = {
+ name = "normalize-version";
+ packageName = "normalize-version";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/normalize-version/-/normalize-version-1.0.5.tgz";
+ sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712";
+ };
+ };
+ "npm-bundled-1.1.1" = {
+ name = "npm-bundled";
+ packageName = "npm-bundled";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
+ sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+ };
+ };
+ "npm-normalize-package-bin-1.0.1" = {
+ name = "npm-normalize-package-bin";
+ packageName = "npm-normalize-package-bin";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
+ sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+ };
+ };
+ "npm-packlist-1.4.8" = {
+ name = "npm-packlist";
+ packageName = "npm-packlist";
+ version = "1.4.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
+ sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
+ };
+ };
+ "npmlog-4.1.2" = {
+ name = "npmlog";
+ packageName = "npmlog";
+ version = "4.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+ sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+ };
+ };
+ "number-is-nan-1.0.1" = {
+ name = "number-is-nan";
+ packageName = "number-is-nan";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ };
+ "object-assign-4.1.1" = {
+ name = "object-assign";
+ packageName = "object-assign";
+ version = "4.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ };
+ "object-hash-1.3.1" = {
+ name = "object-hash";
+ packageName = "object-hash";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
+ sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
+ };
+ };
+ "on-finished-2.3.0" = {
+ name = "on-finished";
+ packageName = "on-finished";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ };
+ "on-headers-1.0.2" = {
+ name = "on-headers";
+ packageName = "on-headers";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+ sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+ };
+ };
+ "once-1.4.0" = {
+ name = "once";
+ packageName = "once";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ };
+ "one-time-1.0.0" = {
+ name = "one-time";
+ packageName = "one-time";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+ sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
+ };
+ };
+ "os-homedir-1.0.2" = {
+ name = "os-homedir";
+ packageName = "os-homedir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ };
+ "os-tmpdir-1.0.2" = {
+ name = "os-tmpdir";
+ packageName = "os-tmpdir";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ };
+ "osenv-0.1.5" = {
+ name = "osenv";
+ packageName = "osenv";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+ sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+ };
+ };
+ "p-cancelable-1.1.0" = {
+ name = "p-cancelable";
+ packageName = "p-cancelable";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
+ sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
+ };
+ };
+ "p-cancelable-2.0.0" = {
+ name = "p-cancelable";
+ packageName = "p-cancelable";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
+ sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+ };
+ };
+ "p-event-4.2.0" = {
+ name = "p-event";
+ packageName = "p-event";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz";
+ sha512 = "KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==";
+ };
+ };
+ "p-finally-1.0.0" = {
+ name = "p-finally";
+ packageName = "p-finally";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ };
+ "p-limit-2.3.0" = {
+ name = "p-limit";
+ packageName = "p-limit";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+ sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+ };
+ };
+ "p-locate-4.1.0" = {
+ name = "p-locate";
+ packageName = "p-locate";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+ sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+ };
+ };
+ "p-queue-2.4.2" = {
+ name = "p-queue";
+ packageName = "p-queue";
+ version = "2.4.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-queue/-/p-queue-2.4.2.tgz";
+ sha512 = "n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==";
+ };
+ };
+ "p-queue-6.6.2" = {
+ name = "p-queue";
+ packageName = "p-queue";
+ version = "6.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz";
+ sha512 = "RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==";
+ };
+ };
+ "p-retry-4.2.0" = {
+ name = "p-retry";
+ packageName = "p-retry";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz";
+ sha512 = "jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==";
+ };
+ };
+ "p-timeout-3.2.0" = {
+ name = "p-timeout";
+ packageName = "p-timeout";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
+ sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
+ };
+ };
+ "p-try-2.2.0" = {
+ name = "p-try";
+ packageName = "p-try";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+ sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+ };
+ };
+ "packet-reader-1.0.0" = {
+ name = "packet-reader";
+ packageName = "packet-reader";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+ sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+ };
+ };
+ "parse-srcset-1.0.2" = {
+ name = "parse-srcset";
+ packageName = "parse-srcset";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz";
+ sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1";
+ };
+ };
+ "parseurl-1.3.3" = {
+ name = "parseurl";
+ packageName = "parseurl";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+ sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+ };
+ };
+ "path-exists-4.0.0" = {
+ name = "path-exists";
+ packageName = "path-exists";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+ sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+ };
+ };
+ "path-is-absolute-1.0.1" = {
+ name = "path-is-absolute";
+ packageName = "path-is-absolute";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ };
+ "path-parse-1.0.6" = {
+ name = "path-parse";
+ packageName = "path-parse";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+ sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+ };
+ };
+ "path-to-regexp-0.1.7" = {
+ name = "path-to-regexp";
+ packageName = "path-to-regexp";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ };
+ "pg-8.5.1" = {
+ name = "pg";
+ packageName = "pg";
+ version = "8.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
+ sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
+ };
+ };
+ "pg-connection-string-2.4.0" = {
+ name = "pg-connection-string";
+ packageName = "pg-connection-string";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+ sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+ };
+ };
+ "pg-int8-1.0.1" = {
+ name = "pg-int8";
+ packageName = "pg-int8";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+ sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+ };
+ };
+ "pg-minify-1.6.2" = {
+ name = "pg-minify";
+ packageName = "pg-minify";
+ version = "1.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz";
+ sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==";
+ };
+ };
+ "pg-pool-3.2.2" = {
+ name = "pg-pool";
+ packageName = "pg-pool";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
+ sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+ };
+ };
+ "pg-promise-10.9.1" = {
+ name = "pg-promise";
+ packageName = "pg-promise";
+ version = "10.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz";
+ sha512 = "Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A==";
+ };
+ };
+ "pg-protocol-1.4.0" = {
+ name = "pg-protocol";
+ packageName = "pg-protocol";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
+ sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+ };
+ };
+ "pg-types-2.2.0" = {
+ name = "pg-types";
+ packageName = "pg-types";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+ sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+ };
+ };
+ "pgpass-1.0.4" = {
+ name = "pgpass";
+ packageName = "pgpass";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz";
+ sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
+ };
+ };
+ "pify-3.0.0" = {
+ name = "pify";
+ packageName = "pify";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ };
+ "postcss-8.3.6" = {
+ name = "postcss";
+ packageName = "postcss";
+ version = "8.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz";
+ sha512 = "wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==";
+ };
+ };
+ "postgres-array-2.0.0" = {
+ name = "postgres-array";
+ packageName = "postgres-array";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+ sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+ };
+ };
+ "postgres-bytea-1.0.0" = {
+ name = "postgres-bytea";
+ packageName = "postgres-bytea";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+ sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+ };
+ };
+ "postgres-date-1.0.7" = {
+ name = "postgres-date";
+ packageName = "postgres-date";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+ sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+ };
+ };
+ "postgres-interval-1.2.0" = {
+ name = "postgres-interval";
+ packageName = "postgres-interval";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+ sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+ };
+ };
+ "prebuild-install-6.1.3" = {
+ name = "prebuild-install";
+ packageName = "prebuild-install";
+ version = "6.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.3.tgz";
+ sha512 = "iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q==";
+ };
+ };
+ "process-nextick-args-2.0.1" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+ sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+ };
+ };
+ "prom-client-13.0.0" = {
+ name = "prom-client";
+ packageName = "prom-client";
+ version = "13.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz";
+ sha512 = "M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A==";
+ };
+ };
+ "proxy-addr-2.0.6" = {
+ name = "proxy-addr";
+ packageName = "proxy-addr";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+ sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+ };
+ };
+ "pump-3.0.0" = {
+ name = "pump";
+ packageName = "pump";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+ sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+ };
+ };
+ "qs-6.7.0" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+ sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+ };
+ };
+ "quick-lru-5.1.1" = {
+ name = "quick-lru";
+ packageName = "quick-lru";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+ sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
+ };
+ };
+ "range-parser-1.2.1" = {
+ name = "range-parser";
+ packageName = "range-parser";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+ sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+ };
+ };
+ "raw-body-2.4.0" = {
+ name = "raw-body";
+ packageName = "raw-body";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+ sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+ };
+ };
+ "rc-1.2.8" = {
+ name = "rc";
+ packageName = "rc";
+ version = "1.2.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+ sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+ };
+ };
+ "readable-stream-2.3.7" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+ sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+ };
+ };
+ "readable-stream-3.6.0" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "3.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+ sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+ };
+ };
+ "reduce-flatten-1.0.1" = {
+ name = "reduce-flatten";
+ packageName = "reduce-flatten";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz";
+ sha1 = "258c78efd153ddf93cb561237f61184f3696e327";
+ };
+ };
+ "require-directory-2.1.1" = {
+ name = "require-directory";
+ packageName = "require-directory";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ };
+ "require-main-filename-2.0.0" = {
+ name = "require-main-filename";
+ packageName = "require-main-filename";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+ sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+ };
+ };
+ "resolve-1.11.1" = {
+ name = "resolve";
+ packageName = "resolve";
+ version = "1.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz";
+ sha512 = "vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==";
+ };
+ };
+ "resolve-alpn-1.2.0" = {
+ name = "resolve-alpn";
+ packageName = "resolve-alpn";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.0.tgz";
+ sha512 = "e4FNQs+9cINYMO5NMFc6kOUCdohjqFPSgMuwuZAOUWqrfWsen+Yjy5qZFkV5K7VO7tFSLKcUL97olkED7sCBHA==";
+ };
+ };
+ "responselike-2.0.0" = {
+ name = "responselike";
+ packageName = "responselike";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz";
+ sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==";
+ };
+ };
+ "retry-0.12.0" = {
+ name = "retry";
+ packageName = "retry";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ };
+ "rimraf-2.7.1" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+ sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+ };
+ };
+ "safe-buffer-5.1.2" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+ };
+ };
+ "safer-buffer-2.1.2" = {
+ name = "safer-buffer";
+ packageName = "safer-buffer";
+ version = "2.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+ };
+ };
+ "sanitize-html-2.4.0" = {
+ name = "sanitize-html";
+ packageName = "sanitize-html";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.4.0.tgz";
+ sha512 = "Y1OgkUiTPMqwZNRLPERSEi39iOebn2XJLbeiGOBhaJD/yLqtLGu6GE5w7evx177LeGgSE+4p4e107LMiydOf6A==";
+ };
+ };
+ "sax-1.2.4" = {
+ name = "sax";
+ packageName = "sax";
+ version = "1.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+ sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+ };
+ };
+ "semver-5.7.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz";
+ sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==";
+ };
+ };
+ "semver-6.3.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "6.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+ sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+ };
+ };
+ "semver-closest-0.1.2" = {
+ name = "semver-closest";
+ packageName = "semver-closest";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver-closest/-/semver-closest-0.1.2.tgz";
+ sha512 = "Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og==";
+ };
+ };
+ "send-0.17.1" = {
+ name = "send";
+ packageName = "send";
+ version = "0.17.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+ sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+ };
+ };
+ "serve-static-1.14.1" = {
+ name = "serve-static";
+ packageName = "serve-static";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+ sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+ };
+ };
+ "set-blocking-2.0.0" = {
+ name = "set-blocking";
+ packageName = "set-blocking";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ };
+ "setprototypeof-1.1.1" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+ sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+ };
+ };
+ "signal-exit-3.0.3" = {
+ name = "signal-exit";
+ packageName = "signal-exit";
+ version = "3.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+ sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+ };
+ };
+ "simple-concat-1.0.1" = {
+ name = "simple-concat";
+ packageName = "simple-concat";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+ sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
+ };
+ };
+ "simple-get-3.1.0" = {
+ name = "simple-get";
+ packageName = "simple-get";
+ version = "3.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
+ sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+ };
+ };
+ "simple-markdown-0.7.3" = {
+ name = "simple-markdown";
+ packageName = "simple-markdown";
+ version = "0.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.3.tgz";
+ sha512 = "uGXIc13NGpqfPeFJIt/7SHHxd6HekEJYtsdoCM06mEBPL9fQH/pSD7LRM6PZ7CKchpSvxKL4tvwMamqAaNDAyg==";
+ };
+ };
+ "simple-swizzle-0.2.2" = {
+ name = "simple-swizzle";
+ packageName = "simple-swizzle";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+ sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+ };
+ };
+ "slack-markdown-0.0.5" = {
+ name = "slack-markdown";
+ packageName = "slack-markdown";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slack-markdown/-/slack-markdown-0.0.5.tgz";
+ sha512 = "mHluS1Kb/KBlV1MbFzzzLkAE/jGhk75Lo9bofIZxZ8p462jyXgwKmrzuJviIxgSI+KXB34ntyPoSMl3BhxAe6g==";
+ };
+ };
+ "soru-slack-client-0.1.2" = {
+ name = "soru-slack-client";
+ packageName = "soru-slack-client";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/soru-slack-client/-/soru-slack-client-0.1.2.tgz";
+ sha512 = "Rh8ruthZPpgNmilLBktm8x53NwlHjgXLMx8lOaphOio4EF8u3yTIyvuKp5QN7ibR3WSGNJYG60T4fn71c8q06A==";
+ };
+ };
+ "source-map-js-0.6.2" = {
+ name = "source-map-js";
+ packageName = "source-map-js";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz";
+ sha512 = "/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==";
+ };
+ };
+ "spex-3.2.0" = {
+ name = "spex";
+ packageName = "spex";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz";
+ sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==";
+ };
+ };
+ "split2-3.2.2" = {
+ name = "split2";
+ packageName = "split2";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+ sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
+ };
+ };
+ "sprintf-js-1.0.3" = {
+ name = "sprintf-js";
+ packageName = "sprintf-js";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ };
+ "stack-trace-0.0.10" = {
+ name = "stack-trace";
+ packageName = "stack-trace";
+ version = "0.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+ sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+ };
+ };
+ "statuses-1.5.0" = {
+ name = "statuses";
+ packageName = "statuses";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ };
+ "steno-0.4.4" = {
+ name = "steno";
+ packageName = "steno";
+ version = "0.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz";
+ sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
+ };
+ };
+ "string-width-1.0.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ };
+ "string-width-4.2.2" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "4.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz";
+ sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
+ };
+ };
+ "string_decoder-1.1.1" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+ };
+ };
+ "strip-ansi-3.0.1" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ };
+ "strip-ansi-6.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "6.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+ sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+ };
+ };
+ "strip-json-comments-2.0.1" = {
+ name = "strip-json-comments";
+ packageName = "strip-json-comments";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ };
+ "supports-color-5.5.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "5.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+ sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+ };
+ };
+ "supports-color-7.2.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "7.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+ sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+ };
+ };
+ "table-layout-0.4.5" = {
+ name = "table-layout";
+ packageName = "table-layout";
+ version = "0.4.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz";
+ sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==";
+ };
+ };
+ "tar-4.4.10" = {
+ name = "tar";
+ packageName = "tar";
+ version = "4.4.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz";
+ sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==";
+ };
+ };
+ "tar-6.1.0" = {
+ name = "tar";
+ packageName = "tar";
+ version = "6.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz";
+ sha512 = "DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==";
+ };
+ };
+ "tar-fs-2.1.1" = {
+ name = "tar-fs";
+ packageName = "tar-fs";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz";
+ sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
+ };
+ };
+ "tar-stream-2.2.0" = {
+ name = "tar-stream";
+ packageName = "tar-stream";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+ sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
+ };
+ };
+ "tdigest-0.1.1" = {
+ name = "tdigest";
+ packageName = "tdigest";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz";
+ sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+ };
+ };
+ "text-hex-1.0.0" = {
+ name = "text-hex";
+ packageName = "text-hex";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
+ sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
+ };
+ };
+ "to-readable-stream-2.1.0" = {
+ name = "to-readable-stream";
+ packageName = "to-readable-stream";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz";
+ sha512 = "o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==";
+ };
+ };
+ "toidentifier-1.0.0" = {
+ name = "toidentifier";
+ packageName = "toidentifier";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+ sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+ };
+ };
+ "triple-beam-1.3.0" = {
+ name = "triple-beam";
+ packageName = "triple-beam";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
+ sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
+ };
+ };
+ "tslib-1.11.1" = {
+ name = "tslib";
+ packageName = "tslib";
+ version = "1.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
+ sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
+ };
+ };
+ "tslint-5.20.1" = {
+ name = "tslint";
+ packageName = "tslint";
+ version = "5.20.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz";
+ sha512 = "EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==";
+ };
+ };
+ "tsscmp-1.0.6" = {
+ name = "tsscmp";
+ packageName = "tsscmp";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz";
+ sha512 = "LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==";
+ };
+ };
+ "tsutils-2.29.0" = {
+ name = "tsutils";
+ packageName = "tsutils";
+ version = "2.29.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz";
+ sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
+ };
+ };
+ "tunnel-agent-0.6.0" = {
+ name = "tunnel-agent";
+ packageName = "tunnel-agent";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ };
+ "type-fest-0.10.0" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz";
+ sha512 = "EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==";
+ };
+ };
+ "type-fest-0.8.1" = {
+ name = "type-fest";
+ packageName = "type-fest";
+ version = "0.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+ sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+ };
+ };
+ "type-is-1.6.18" = {
+ name = "type-is";
+ packageName = "type-is";
+ version = "1.6.18";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+ sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+ };
+ };
+ "typescript-3.8.3" = {
+ name = "typescript";
+ packageName = "typescript";
+ version = "3.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
+ sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+ };
+ };
+ "typical-2.6.1" = {
+ name = "typical";
+ packageName = "typical";
+ version = "2.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz";
+ sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
+ };
+ };
+ "typical-4.0.0" = {
+ name = "typical";
+ packageName = "typical";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz";
+ sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==";
+ };
+ };
+ "uc.micro-1.0.6" = {
+ name = "uc.micro";
+ packageName = "uc.micro";
+ version = "1.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz";
+ sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
+ };
+ };
+ "unescape-1.0.1" = {
+ name = "unescape";
+ packageName = "unescape";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz";
+ sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==";
+ };
+ };
+ "unescape-html-1.1.0" = {
+ name = "unescape-html";
+ packageName = "unescape-html";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unescape-html/-/unescape-html-1.1.0.tgz";
+ sha512 = "O9/yBNqIkArjS597iHez5hAaAdn7b8/230SX8IncgXAX5tWI9XlEQYaz6Qbou0Sloa9n6lx9G5s6hg5qhJyzGg==";
+ };
+ };
+ "unpipe-1.0.0" = {
+ name = "unpipe";
+ packageName = "unpipe";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ };
+ "useragent-generator-1.1.1-amkt-22079-finish.0" = {
+ name = "useragent-generator";
+ packageName = "useragent-generator";
+ version = "1.1.1-amkt-22079-finish.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz";
+ sha512 = "jUVHvx1t3bVjx2dI9fG4iKzjO5WA6qtjWaR/PitNvd6zQMJNlFYehNwRUaAAKkhBCkw1T0U9e2oG9Sg3wSmc6Q==";
+ };
+ };
+ "util-deprecate-1.0.2" = {
+ name = "util-deprecate";
+ packageName = "util-deprecate";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ };
+ "utils-merge-1.0.1" = {
+ name = "utils-merge";
+ packageName = "utils-merge";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ };
+ "uuid-3.4.0" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+ sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+ };
+ };
+ "vary-1.1.2" = {
+ name = "vary";
+ packageName = "vary";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ };
+ "which-module-2.0.0" = {
+ name = "which-module";
+ packageName = "which-module";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ };
+ "wide-align-1.1.3" = {
+ name = "wide-align";
+ packageName = "wide-align";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+ sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+ };
+ };
+ "winston-3.3.3" = {
+ name = "winston";
+ packageName = "winston";
+ version = "3.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+ sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
+ };
+ };
+ "winston-compat-0.1.5" = {
+ name = "winston-compat";
+ packageName = "winston-compat";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz";
+ sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==";
+ };
+ };
+ "winston-daily-rotate-file-3.10.0" = {
+ name = "winston-daily-rotate-file";
+ packageName = "winston-daily-rotate-file";
+ version = "3.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz";
+ sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==";
+ };
+ };
+ "winston-transport-4.4.0" = {
+ name = "winston-transport";
+ packageName = "winston-transport";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+ sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+ };
+ };
+ "wordwrapjs-3.0.0" = {
+ name = "wordwrapjs";
+ packageName = "wordwrapjs";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz";
+ sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==";
+ };
+ };
+ "wrap-ansi-6.2.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "6.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+ sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+ };
+ };
+ "wrappy-1.0.2" = {
+ name = "wrappy";
+ packageName = "wrappy";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ };
+ "ws-5.2.3" = {
+ name = "ws";
+ packageName = "ws";
+ version = "5.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz";
+ sha512 = "jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==";
+ };
+ };
+ "xtend-4.0.2" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+ sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+ };
+ };
+ "y18n-4.0.1" = {
+ name = "y18n";
+ packageName = "y18n";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz";
+ sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
+ };
+ };
+ "yallist-3.1.1" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+ sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+ };
+ };
+ "yallist-4.0.0" = {
+ name = "yallist";
+ packageName = "yallist";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+ sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
+ };
+ };
+ "yargs-15.4.1" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "15.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+ sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+ };
+ };
+ "yargs-parser-18.1.3" = {
+ name = "yargs-parser";
+ packageName = "yargs-parser";
+ version = "18.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+ sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+ };
+ };
+ };
+ args = {
+ name = "mx-puppet-slack";
+ packageName = "mx-puppet-slack";
+ version = "0.0.0";
+ src = ./.;
+ dependencies = [
+ sources."@babel/code-frame-7.8.3"
+ sources."@babel/helper-validator-identifier-7.9.5"
+ sources."@babel/highlight-7.9.0"
+ sources."@dabh/diagnostics-2.0.2"
+ sources."@sindresorhus/is-4.0.1"
+ sources."@slack/events-api-2.3.4"
+ sources."@slack/logger-1.1.1"
+ (sources."@slack/rtm-api-5.0.5" // {
+ dependencies = [
+ sources."p-cancelable-1.1.0"
+ ];
+ })
+ sources."@slack/types-1.10.0"
+ (sources."@slack/web-api-5.15.0" // {
+ dependencies = [
+ sources."is-stream-1.1.0"
+ (sources."p-queue-6.6.2" // {
+ dependencies = [
+ sources."eventemitter3-4.0.7"
+ ];
+ })
+ ];
+ })
+ (sources."@sorunome/matrix-bot-sdk-0.5.13" // {
+ dependencies = [
+ sources."ansi-styles-4.3.0"
+ sources."chalk-4.1.1"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."has-flag-4.0.0"
+ sources."mkdirp-1.0.4"
+ sources."supports-color-7.2.0"
+ ];
+ })
+ sources."@szmarczak/http-timer-4.0.5"
+ sources."@types/body-parser-1.19.0"
+ sources."@types/cacheable-request-6.0.1"
+ sources."@types/connect-3.4.33"
+ sources."@types/debug-4.1.5"
+ sources."@types/express-4.17.8"
+ sources."@types/express-serve-static-core-4.17.13"
+ sources."@types/http-cache-semantics-4.0.0"
+ sources."@types/is-stream-1.1.0"
+ sources."@types/keyv-3.1.1"
+ sources."@types/lodash-4.14.168"
+ sources."@types/lodash.isstring-4.0.6"
+ sources."@types/mime-2.0.3"
+ sources."@types/node-12.12.34"
+ sources."@types/p-queue-2.3.2"
+ sources."@types/prop-types-15.7.3"
+ sources."@types/qs-6.9.5"
+ sources."@types/range-parser-1.2.3"
+ sources."@types/react-17.0.0"
+ sources."@types/responselike-1.0.0"
+ sources."@types/retry-0.12.0"
+ sources."@types/serve-static-1.13.5"
+ sources."@types/ws-7.4.0"
+ sources."@types/yargs-15.0.13"
+ sources."@types/yargs-parser-20.2.0"
+ sources."abbrev-1.1.1"
+ sources."accepts-1.3.7"
+ sources."ansi-regex-2.1.1"
+ sources."ansi-styles-3.2.1"
+ sources."aproba-1.2.0"
+ sources."are-we-there-yet-1.1.5"
+ sources."argparse-1.0.10"
+ sources."array-back-3.1.0"
+ sources."array-flatten-1.1.1"
+ sources."assert-options-0.7.0"
+ sources."async-3.2.0"
+ sources."async-limiter-1.0.1"
+ sources."asynckit-0.4.0"
+ sources."axios-0.21.1"
+ sources."balanced-match-1.0.0"
+ sources."base64-js-1.5.1"
+ sources."basic-auth-2.0.1"
+ (sources."better-sqlite3-7.4.3" // {
+ dependencies = [
+ sources."chownr-2.0.0"
+ sources."fs-minipass-2.1.0"
+ sources."minipass-3.1.3"
+ sources."minizlib-2.1.2"
+ sources."mkdirp-1.0.4"
+ sources."tar-6.1.0"
+ ];
+ })
+ sources."bindings-1.5.0"
+ sources."bintrees-1.0.1"
+ (sources."bl-4.1.0" // {
+ dependencies = [
+ sources."inherits-2.0.4"
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."blurhash-1.1.3"
+ sources."body-parser-1.19.0"
+ sources."brace-expansion-1.1.11"
+ sources."buffer-5.7.1"
+ sources."buffer-writer-2.0.0"
+ sources."builtin-modules-1.1.1"
+ sources."bytes-3.1.0"
+ sources."cacheable-lookup-5.0.4"
+ sources."cacheable-request-7.0.1"
+ sources."camelcase-5.3.1"
+ sources."canvas-2.6.1"
+ sources."chalk-2.4.2"
+ sources."chownr-1.1.4"
+ (sources."cliui-6.0.0" // {
+ dependencies = [
+ sources."ansi-regex-5.0.0"
+ sources."is-fullwidth-code-point-3.0.0"
+ sources."string-width-4.2.2"
+ sources."strip-ansi-6.0.0"
+ ];
+ })
+ sources."clone-response-1.0.2"
+ sources."code-point-at-1.1.0"
+ sources."color-3.0.0"
+ sources."color-convert-1.9.3"
+ sources."color-name-1.1.3"
+ sources."color-string-1.5.4"
+ sources."colorette-1.2.2"
+ sources."colors-1.4.0"
+ sources."colorspace-1.1.2"
+ sources."combined-stream-1.0.8"
+ sources."command-line-args-5.1.1"
+ (sources."command-line-usage-5.0.5" // {
+ dependencies = [
+ sources."array-back-2.0.0"
+ sources."typical-2.6.1"
+ ];
+ })
+ sources."commander-2.20.3"
+ sources."concat-map-0.0.1"
+ sources."console-control-strings-1.1.0"
+ sources."content-disposition-0.5.3"
+ sources."content-type-1.0.4"
+ sources."cookie-0.4.0"
+ sources."cookie-signature-1.0.6"
+ sources."core-util-is-1.0.2"
+ sources."csstype-3.0.6"
+ sources."cycle-1.0.3"
+ sources."dateformat-3.0.3"
+ sources."debug-2.6.9"
+ sources."decamelize-1.2.0"
+ (sources."decompress-response-6.0.0" // {
+ dependencies = [
+ sources."mimic-response-3.1.0"
+ ];
+ })
+ sources."deep-extend-0.6.0"
+ sources."deepmerge-4.2.2"
+ sources."defer-to-connect-2.0.0"
+ sources."delayed-stream-1.0.0"
+ sources."delegates-1.0.0"
+ sources."depd-1.1.2"
+ sources."destroy-1.0.4"
+ sources."detect-libc-1.0.3"
+ sources."diff-4.0.2"
+ (sources."dom-serializer-1.3.2" // {
+ dependencies = [
+ sources."domhandler-4.2.0"
+ ];
+ })
+ sources."domelementtype-2.2.0"
+ sources."domhandler-3.3.0"
+ (sources."domutils-2.7.0" // {
+ dependencies = [
+ sources."domhandler-4.2.0"
+ ];
+ })
+ sources."duplexer3-0.1.4"
+ sources."ee-first-1.1.1"
+ sources."emoji-regex-8.0.0"
+ sources."enabled-2.0.0"
+ sources."encodeurl-1.0.2"
+ sources."end-of-stream-1.4.4"
+ sources."entities-2.2.0"
+ sources."escape-html-1.0.3"
+ sources."escape-string-regexp-1.0.5"
+ sources."esprima-4.0.1"
+ sources."etag-1.8.1"
+ sources."eventemitter3-3.1.2"
+ sources."events-3.1.0"
+ sources."expand-template-2.0.3"
+ sources."expire-set-1.0.0"
+ sources."express-4.17.1"
+ sources."extend-shallow-2.0.1"
+ sources."fast-safe-stringify-2.0.7"
+ sources."fecha-4.2.0"
+ sources."file-stream-rotator-0.4.1"
+ sources."file-type-12.4.2"
+ sources."file-uri-to-path-1.0.0"
+ sources."finalhandler-1.1.2"
+ sources."find-replace-3.0.0"
+ sources."find-up-4.1.0"
+ sources."finity-0.5.4"
+ sources."fn.name-1.1.0"
+ sources."follow-redirects-1.13.1"
+ sources."form-data-2.5.1"
+ sources."forwarded-0.1.2"
+ sources."fresh-0.5.2"
+ sources."fs-constants-1.0.0"
+ sources."fs-minipass-1.2.7"
+ sources."fs.realpath-1.0.0"
+ sources."gauge-2.7.4"
+ sources."get-caller-file-2.0.5"
+ sources."get-stream-5.2.0"
+ sources."github-from-package-0.0.0"
+ sources."glob-7.1.6"
+ sources."glob-to-regexp-0.4.1"
+ sources."got-11.8.2"
+ sources."graceful-fs-4.2.6"
+ sources."has-flag-3.0.0"
+ sources."has-unicode-2.0.1"
+ sources."hash.js-1.1.7"
+ sources."hasha-5.2.2"
+ sources."he-1.2.0"
+ sources."html-to-text-6.0.0"
+ sources."htmlencode-0.0.4"
+ sources."htmlparser2-4.1.0"
+ sources."http-cache-semantics-4.1.0"
+ sources."http-errors-1.7.2"
+ sources."http2-wrapper-1.0.3"
+ sources."iconv-lite-0.4.24"
+ sources."ieee754-1.2.1"
+ sources."ignore-walk-3.0.3"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.3"
+ sources."ini-1.3.8"
+ sources."ipaddr.js-1.9.1"
+ sources."is-arrayish-0.3.2"
+ sources."is-extendable-0.1.1"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."is-plain-object-5.0.0"
+ sources."is-promise-2.2.2"
+ sources."is-stream-2.0.0"
+ sources."isarray-1.0.0"
+ sources."js-tokens-4.0.0"
+ sources."js-yaml-3.13.1"
+ sources."json-buffer-3.0.1"
+ sources."keyv-4.0.3"
+ sources."klona-2.0.4"
+ sources."kuler-2.0.0"
+ sources."linkify-it-2.2.0"
+ sources."locate-path-5.0.0"
+ sources."lodash-4.17.21"
+ sources."lodash.camelcase-4.3.0"
+ sources."lodash.isstring-4.0.1"
+ sources."lodash.padend-4.6.1"
+ sources."lodash.toarray-4.4.0"
+ (sources."logform-2.2.0" // {
+ dependencies = [
+ sources."ms-2.1.3"
+ ];
+ })
+ sources."lowdb-1.0.0"
+ sources."lowercase-keys-2.0.0"
+ sources."lru-cache-6.0.0"
+ (sources."markdown-it-9.1.0" // {
+ dependencies = [
+ sources."entities-1.1.2"
+ ];
+ })
+ sources."matrix-slack-parser-0.1.5"
+ sources."mdurl-1.0.1"
+ sources."media-typer-0.3.0"
+ sources."merge-descriptors-1.0.1"
+ sources."methods-1.1.2"
+ sources."mime-1.6.0"
+ sources."mime-db-1.43.0"
+ sources."mime-types-2.1.26"
+ sources."mimic-response-1.0.1"
+ sources."minimalistic-assert-1.0.1"
+ sources."minimatch-3.0.4"
+ sources."minimist-1.2.5"
+ (sources."minipass-2.9.0" // {
+ dependencies = [
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."minizlib-1.3.3"
+ sources."mkdirp-0.5.5"
+ sources."mkdirp-classic-0.5.3"
+ sources."moment-2.29.1"
+ (sources."morgan-1.10.0" // {
+ dependencies = [
+ sources."depd-2.0.0"
+ ];
+ })
+ sources."ms-2.0.0"
+ sources."mx-puppet-bridge-0.1.6"
+ sources."nan-2.14.2"
+ sources."nanoid-3.1.23"
+ sources."napi-build-utils-1.0.2"
+ (sources."needle-2.6.0" // {
+ dependencies = [
+ sources."debug-3.2.7"
+ sources."ms-2.1.3"
+ ];
+ })
+ sources."negotiator-0.6.2"
+ sources."node-abi-2.30.0"
+ sources."node-emoji-1.10.0"
+ sources."node-html-parser-1.4.9"
+ sources."node-pre-gyp-0.11.0"
+ sources."nopt-4.0.3"
+ sources."normalize-url-4.5.1"
+ sources."normalize-version-1.0.5"
+ sources."npm-bundled-1.1.1"
+ sources."npm-normalize-package-bin-1.0.1"
+ sources."npm-packlist-1.4.8"
+ sources."npmlog-4.1.2"
+ sources."number-is-nan-1.0.1"
+ sources."object-assign-4.1.1"
+ sources."object-hash-1.3.1"
+ sources."on-finished-2.3.0"
+ sources."on-headers-1.0.2"
+ sources."once-1.4.0"
+ sources."one-time-1.0.0"
+ sources."os-homedir-1.0.2"
+ sources."os-tmpdir-1.0.2"
+ sources."osenv-0.1.5"
+ sources."p-cancelable-2.0.0"
+ sources."p-event-4.2.0"
+ sources."p-finally-1.0.0"
+ sources."p-limit-2.3.0"
+ sources."p-locate-4.1.0"
+ sources."p-queue-2.4.2"
+ sources."p-retry-4.2.0"
+ sources."p-timeout-3.2.0"
+ sources."p-try-2.2.0"
+ sources."packet-reader-1.0.0"
+ sources."parse-srcset-1.0.2"
+ sources."parseurl-1.3.3"
+ sources."path-exists-4.0.0"
+ sources."path-is-absolute-1.0.1"
+ sources."path-parse-1.0.6"
+ sources."path-to-regexp-0.1.7"
+ sources."pg-8.5.1"
+ sources."pg-connection-string-2.4.0"
+ sources."pg-int8-1.0.1"
+ sources."pg-minify-1.6.2"
+ sources."pg-pool-3.2.2"
+ sources."pg-promise-10.9.1"
+ sources."pg-protocol-1.4.0"
+ sources."pg-types-2.2.0"
+ sources."pgpass-1.0.4"
+ sources."pify-3.0.0"
+ sources."postcss-8.3.6"
+ sources."postgres-array-2.0.0"
+ sources."postgres-bytea-1.0.0"
+ sources."postgres-date-1.0.7"
+ sources."postgres-interval-1.2.0"
+ sources."prebuild-install-6.1.3"
+ sources."process-nextick-args-2.0.1"
+ sources."prom-client-13.0.0"
+ sources."proxy-addr-2.0.6"
+ sources."pump-3.0.0"
+ sources."qs-6.7.0"
+ sources."quick-lru-5.1.1"
+ sources."range-parser-1.2.1"
+ sources."raw-body-2.4.0"
+ sources."rc-1.2.8"
+ sources."readable-stream-2.3.7"
+ sources."reduce-flatten-1.0.1"
+ sources."require-directory-2.1.1"
+ sources."require-main-filename-2.0.0"
+ sources."resolve-1.11.1"
+ sources."resolve-alpn-1.2.0"
+ sources."responselike-2.0.0"
+ sources."retry-0.12.0"
+ sources."rimraf-2.7.1"
+ sources."safe-buffer-5.1.2"
+ sources."safer-buffer-2.1.2"
+ (sources."sanitize-html-2.4.0" // {
+ dependencies = [
+ sources."domhandler-4.2.0"
+ sources."escape-string-regexp-4.0.0"
+ sources."htmlparser2-6.1.0"
+ ];
+ })
+ sources."sax-1.2.4"
+ sources."semver-5.7.0"
+ sources."semver-closest-0.1.2"
+ (sources."send-0.17.1" // {
+ dependencies = [
+ sources."ms-2.1.1"
+ ];
+ })
+ sources."serve-static-1.14.1"
+ sources."set-blocking-2.0.0"
+ sources."setprototypeof-1.1.1"
+ sources."signal-exit-3.0.3"
+ sources."simple-concat-1.0.1"
+ (sources."simple-get-3.1.0" // {
+ dependencies = [
+ sources."decompress-response-4.2.1"
+ sources."mimic-response-2.1.0"
+ ];
+ })
+ sources."simple-markdown-0.7.3"
+ sources."simple-swizzle-0.2.2"
+ sources."slack-markdown-0.0.5"
+ (sources."soru-slack-client-0.1.2" // {
+ dependencies = [
+ sources."@sindresorhus/is-2.1.1"
+ sources."cacheable-lookup-2.0.1"
+ sources."decompress-response-5.0.0"
+ sources."got-10.7.0"
+ sources."mimic-response-2.1.0"
+ sources."type-fest-0.10.0"
+ ];
+ })
+ sources."source-map-js-0.6.2"
+ sources."spex-3.2.0"
+ (sources."split2-3.2.2" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."sprintf-js-1.0.3"
+ sources."stack-trace-0.0.10"
+ sources."statuses-1.5.0"
+ sources."steno-0.4.4"
+ sources."string-width-1.0.2"
+ sources."string_decoder-1.1.1"
+ sources."strip-ansi-3.0.1"
+ sources."strip-json-comments-2.0.1"
+ sources."supports-color-5.5.0"
+ (sources."table-layout-0.4.5" // {
+ dependencies = [
+ sources."array-back-2.0.0"
+ sources."typical-2.6.1"
+ ];
+ })
+ (sources."tar-4.4.10" // {
+ dependencies = [
+ sources."yallist-3.1.1"
+ ];
+ })
+ sources."tar-fs-2.1.1"
+ (sources."tar-stream-2.2.0" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ sources."tdigest-0.1.1"
+ sources."text-hex-1.0.0"
+ sources."to-readable-stream-2.1.0"
+ sources."toidentifier-1.0.0"
+ sources."triple-beam-1.3.0"
+ sources."tslib-1.11.1"
+ sources."tslint-5.20.1"
+ sources."tsscmp-1.0.6"
+ sources."tsutils-2.29.0"
+ sources."tunnel-agent-0.6.0"
+ sources."type-fest-0.8.1"
+ sources."type-is-1.6.18"
+ sources."typescript-3.8.3"
+ sources."typical-4.0.0"
+ sources."uc.micro-1.0.6"
+ sources."unescape-1.0.1"
+ sources."unescape-html-1.1.0"
+ sources."unpipe-1.0.0"
+ sources."useragent-generator-1.1.1-amkt-22079-finish.0"
+ sources."util-deprecate-1.0.2"
+ sources."utils-merge-1.0.1"
+ sources."uuid-3.4.0"
+ sources."vary-1.1.2"
+ sources."which-module-2.0.0"
+ sources."wide-align-1.1.3"
+ (sources."winston-3.3.3" // {
+ dependencies = [
+ sources."readable-stream-3.6.0"
+ ];
+ })
+ (sources."winston-compat-0.1.5" // {
+ dependencies = [
+ sources."fecha-2.3.3"
+ sources."logform-1.10.0"
+ sources."ms-2.1.3"
+ ];
+ })
+ (sources."winston-daily-rotate-file-3.10.0" // {
+ dependencies = [
+ sources."semver-6.3.0"
+ ];
+ })
+ sources."winston-transport-4.4.0"
+ (sources."wordwrapjs-3.0.0" // {
+ dependencies = [
+ sources."typical-2.6.1"
+ ];
+ })
+ (sources."wrap-ansi-6.2.0" // {
+ dependencies = [
+ sources."ansi-regex-5.0.0"
+ sources."ansi-styles-4.3.0"
+ sources."color-convert-2.0.1"
+ sources."color-name-1.1.4"
+ sources."is-fullwidth-code-point-3.0.0"
+ sources."string-width-4.2.2"
+ sources."strip-ansi-6.0.0"
+ ];
+ })
+ sources."wrappy-1.0.2"
+ sources."ws-5.2.3"
+ sources."xtend-4.0.2"
+ sources."y18n-4.0.1"
+ sources."yallist-4.0.0"
+ (sources."yargs-15.4.1" // {
+ dependencies = [
+ sources."ansi-regex-5.0.0"
+ sources."is-fullwidth-code-point-3.0.0"
+ sources."string-width-4.2.2"
+ sources."strip-ansi-6.0.0"
+ ];
+ })
+ sources."yargs-parser-18.1.3"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "";
+ };
+ production = true;
+ bypassCache = true;
+ reconstructLock = false;
+ };
+in
+{
+ args = args;
+ sources = sources;
+ tarball = nodeEnv.buildNodeSourceDist args;
+ package = nodeEnv.buildNodePackage args;
+ shell = nodeEnv.buildNodeShell args;
+ nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+ src = stdenv.mkDerivation {
+ name = args.name + "-package-json";
+ src = nix-gitignore.gitignoreSourcePure [
+ "*"
+ "!package.json"
+ "!package-lock.json"
+ ]
+ args.src;
+ dontBuild = true;
+ installPhase = "mkdir -p $out; cp -r ./* $out;";
+ };
+ });
+}
diff --git a/profile.nix b/profile.nix
new file mode 100644
index 0000000..4aa1901
--- /dev/null
+++ b/profile.nix
@@ -0,0 +1,73 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.services.matrix-appservices;
+ domain = cfg.homeserverDomain;
+in
+{
+ services.signald.enable = true;
+
+ services.matrix-appservices = {
+ addRegistrationFiles = true;
+
+ services = {
+ discord = {
+ port = 29180;
+ format = "mx-puppet";
+ package = pkgs.mx-puppet-discord;
+ settings.bridge.enableGroupSync = true;
+ };
+ groupme = {
+ port = 29181;
+ format = "mx-puppet";
+ package = pkgs.mx-puppet-groupme;
+ };
+ slack = {
+ port = 29182;
+ format = "mx-puppet";
+ package = pkgs.mx-puppet-slack;
+ };
+
+ whatsapp = {
+ port = 29183;
+ format = "mautrix-go";
+ package = pkgs.mautrix-whatsapp;
+ };
+
+ signal = {
+ port = 29184;
+ format = "mautrix-python";
+ package = pkgs.mautrix-signal;
+ serviceDependencies = [ "signald.service" ];
+ serviceConfig = {
+ StateDirectory = [ "matrix-as-signal" "signald" ];
+ JoinNamespaceOf = "signald.service";
+ SupplementaryGroups = [ "signald" ];
+ };
+ settings.signal = {
+ socket_path = "/run/signald/signald.sock";
+ outgoing_attachment_dir = "/var/lib/signald/tmp";
+ };
+ };
+
+ facebook = {
+ port = 29185;
+ format = "mautrix-python";
+ package = pkgs.mautrix-facebook;
+ };
+
+ twitter = {
+ port = 29186;
+ format = "mautrix-python";
+ package = pkgs.mautrix-twitter;
+ };
+
+ instagram = {
+ port = 29187;
+ format = "mautrix-python";
+ package = pkgs.mautrix-instagram;
+ };
+ };
+ };
+}
diff --git a/test.nix b/test.nix
new file mode 100644
index 0000000..0257623
--- /dev/null
+++ b/test.nix
@@ -0,0 +1,123 @@
+{ pkgs ? import <nixpkgs> { } }:
+(import "${pkgs.path}/nixos/tests/make-test-python.nix" (
+ { pkgs, ... }:
+ let
+ homeserverURL = "http://homeserver:8008";
+ homeserverDomain = "example.com";
+
+ private_key = pkgs.runCommand "matrix_key.pem" {
+ buildInputs = [ pkgs.dendrite ];
+ } "generate-keys --private-key $out";
+ in
+ {
+ name = "dendrite";
+ meta = with pkgs.lib; {
+ maintainers = teams.matrix.members;
+ };
+
+ nodes = {
+ homeserver = { pkgs, ... }: {
+ imports = [ ./module ];
+ services.dendrite = {
+ enable = true;
+ settings = {
+ global.server_name = homeserverDomain;
+ global.private_key = private_key;
+ client_api.registration_disabled = false;
+ };
+ };
+
+ networking.firewall.allowedTCPPorts = [ 8008 ];
+
+ services.matrix-appservices = {
+ inherit homeserverDomain homeserverURL;
+ addRegistrationFiles = true;
+ homeserver = "dendrite";
+ services = {
+ discord = {
+ port = 29180;
+ package = pkgs.mx-puppet-discord;
+ format = "mx-puppet";
+ };
+ };
+ };
+ };
+
+ client = { pkgs, ... }: {
+ environment.systemPackages = [
+ (
+ pkgs.writers.writePython3Bin "do_test"
+ { libraries = [ pkgs.python3Packages.matrix-nio ]; } ''
+ import asyncio
+
+ from nio import AsyncClient
+
+
+ async def main() -> None:
+ # Connect to dendrite
+ client = AsyncClient("http://homeserver:8008", "alice")
+
+ # Register as user alice
+ response = await client.register("alice", "my-secret-password")
+
+ # Log in as user alice
+ response = await client.login("my-secret-password")
+
+ # Create a new room
+ response = await client.room_create(federate=False)
+ room_id = response.room_id
+
+ # Join the room
+ response = await client.join(room_id)
+
+ # Invite whatsapp user to room
+ response = await client.room_invite(
+ room_id,
+ "@_discordpuppet_bot:${homeserverDomain}"
+ )
+
+ # Send a message to the room
+ response = await client.room_send(
+ room_id=room_id,
+ message_type="m.room.message",
+ content={
+ "msgtype": "m.text",
+ "body": "ping"
+ }
+ )
+
+ # Sync responses
+ response = await client.sync(timeout=30000)
+
+ response = await client.joined_members(room_id)
+
+ # Check the message was received by dendrite
+ # last_message = response.rooms.join[room_id].timeline.events[-1].body
+
+ # Leave the room
+ response = await client.room_leave(room_id)
+
+ # Close the client
+ await client.close()
+
+ asyncio.get_event_loop().run_until_complete(main())
+ ''
+ )
+ ];
+ };
+ };
+
+ testScript = ''
+ start_all()
+
+ with subtest("start the homeserver"):
+ homeserver.wait_for_unit("dendrite.service")
+ homeserver.wait_for_open_port(8008)
+ homeserver.wait_for_unit("matrix-as-discord.service")
+
+ with subtest("ensure messages can be exchanged"):
+ client.succeed("do_test")
+ '';
+
+ }
+)) { inherit (pkgs) pkgs system; }